stream-chat-react 11.7.0 → 11.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/Window-5e0717c0.js +42989 -0
  2. package/dist/browser.full-bundle.js +1593 -282
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +4 -4
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Attachment/Attachment.d.ts +1 -1
  7. package/dist/components/Attachment/Attachment.d.ts.map +1 -1
  8. package/dist/components/Attachment/AttachmentActions.d.ts +2 -1
  9. package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
  10. package/dist/components/Attachment/AttachmentContainer.d.ts +9 -9
  11. package/dist/components/Attachment/AttachmentContainer.d.ts.map +1 -1
  12. package/dist/components/Attachment/Audio.d.ts +3 -3
  13. package/dist/components/Attachment/Audio.d.ts.map +1 -1
  14. package/dist/components/Attachment/Card.d.ts +3 -2
  15. package/dist/components/Attachment/Card.d.ts.map +1 -1
  16. package/dist/components/Attachment/DownloadButton.d.ts +2 -1
  17. package/dist/components/Attachment/DownloadButton.d.ts.map +1 -1
  18. package/dist/components/Attachment/FileAttachment.d.ts +2 -1
  19. package/dist/components/Attachment/FileAttachment.d.ts.map +1 -1
  20. package/dist/components/Attachment/FileSizeIndicator.d.ts +2 -1
  21. package/dist/components/Attachment/FileSizeIndicator.d.ts.map +1 -1
  22. package/dist/components/Attachment/UnsupportedAttachment.d.ts +2 -1
  23. package/dist/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
  24. package/dist/components/Attachment/icons.d.ts +4 -3
  25. package/dist/components/Attachment/icons.d.ts.map +1 -1
  26. package/dist/components/Attachment/utils.d.ts +8 -8
  27. package/dist/components/Attachment/utils.d.ts.map +1 -1
  28. package/dist/components/AutoCompleteTextarea/Header.d.ts +2 -1
  29. package/dist/components/AutoCompleteTextarea/Header.d.ts.map +1 -1
  30. package/dist/components/AutoCompleteTextarea/List.d.ts +2 -1
  31. package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
  32. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +2 -2
  33. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  34. package/dist/components/Avatar/Avatar.d.ts +1 -1
  35. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  36. package/dist/components/Channel/Channel.d.ts +9 -7
  37. package/dist/components/Channel/Channel.d.ts.map +1 -1
  38. package/dist/components/Channel/Channel.js +110 -63
  39. package/dist/components/Channel/LoadingChannel.d.ts +2 -1
  40. package/dist/components/Channel/LoadingChannel.d.ts.map +1 -1
  41. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
  42. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +3 -1
  43. package/dist/components/ChannelHeader/ChannelHeader.d.ts +1 -1
  44. package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
  45. package/dist/components/ChannelHeader/ChannelHeader.js +1 -1
  46. package/dist/components/ChannelHeader/icons.d.ts +2 -1
  47. package/dist/components/ChannelHeader/icons.d.ts.map +1 -1
  48. package/dist/components/ChannelList/ChannelList.d.ts +1 -1
  49. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  50. package/dist/components/ChannelList/ChannelListMessenger.d.ts +1 -1
  51. package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +1 -1
  52. package/dist/components/ChannelList/ChannelListMessenger.js +3 -1
  53. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  54. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +1 -3
  55. package/dist/components/ChannelPreview/ChannelPreview.d.ts +1 -17
  56. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  57. package/dist/components/ChannelPreview/ChannelPreview.js +11 -8
  58. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -6
  59. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
  60. package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +2 -62
  61. package/dist/components/ChannelPreview/utils.d.ts +2 -1
  62. package/dist/components/ChannelPreview/utils.d.ts.map +1 -1
  63. package/dist/components/ChannelSearch/ChannelSearch.d.ts +1 -1
  64. package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
  65. package/dist/components/ChannelSearch/SearchBar.d.ts +1 -1
  66. package/dist/components/ChannelSearch/SearchBar.d.ts.map +1 -1
  67. package/dist/components/ChannelSearch/SearchInput.d.ts +1 -1
  68. package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
  69. package/dist/components/ChannelSearch/SearchResults.d.ts +1 -1
  70. package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
  71. package/dist/components/ChannelSearch/SearchResults.js +2 -1
  72. package/dist/components/ChannelSearch/icons.d.ts +5 -4
  73. package/dist/components/ChannelSearch/icons.d.ts.map +1 -1
  74. package/dist/components/Chat/Chat.d.ts +1 -1
  75. package/dist/components/Chat/Chat.d.ts.map +1 -1
  76. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +1 -1
  77. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
  78. package/dist/components/ChatDown/ChatDown.d.ts +1 -1
  79. package/dist/components/ChatDown/ChatDown.d.ts.map +1 -1
  80. package/dist/components/ChatDown/icons.d.ts +2 -1
  81. package/dist/components/ChatDown/icons.d.ts.map +1 -1
  82. package/dist/components/CommandItem/CommandItem.d.ts +2 -2
  83. package/dist/components/CommandItem/CommandItem.d.ts.map +1 -1
  84. package/dist/components/DateSeparator/DateSeparator.d.ts +2 -1
  85. package/dist/components/DateSeparator/DateSeparator.d.ts.map +1 -1
  86. package/dist/components/Emojis/EmojiPicker.d.ts +1 -1
  87. package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -1
  88. package/dist/components/Emojis/EmojiPicker.js +1 -1
  89. package/dist/components/Emojis/index.cjs.js +31 -13
  90. package/dist/components/EmoticonItem/EmoticonItem.d.ts +2 -1
  91. package/dist/components/EmoticonItem/EmoticonItem.d.ts.map +1 -1
  92. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +2 -1
  93. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
  94. package/dist/components/EmptyStateIndicator/icons.d.ts +2 -1
  95. package/dist/components/EmptyStateIndicator/icons.d.ts.map +1 -1
  96. package/dist/components/EventComponent/EventComponent.d.ts +1 -1
  97. package/dist/components/EventComponent/EventComponent.d.ts.map +1 -1
  98. package/dist/components/Gallery/BaseImage.d.ts +2 -2
  99. package/dist/components/Gallery/BaseImage.d.ts.map +1 -1
  100. package/dist/components/Gallery/Gallery.d.ts +2 -2
  101. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  102. package/dist/components/Gallery/Image.d.ts +2 -2
  103. package/dist/components/Gallery/Image.d.ts.map +1 -1
  104. package/dist/components/Gallery/ModalGallery.d.ts +2 -1
  105. package/dist/components/Gallery/ModalGallery.d.ts.map +1 -1
  106. package/dist/components/LoadMore/LoadMoreButton.d.ts +1 -1
  107. package/dist/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
  108. package/dist/components/LoadMore/LoadMoreButton.js +1 -1
  109. package/dist/components/LoadMore/LoadMorePaginator.d.ts +2 -2
  110. package/dist/components/LoadMore/LoadMorePaginator.d.ts.map +1 -1
  111. package/dist/components/Loading/LoadingChannels.d.ts +1 -1
  112. package/dist/components/Loading/LoadingChannels.d.ts.map +1 -1
  113. package/dist/components/Loading/LoadingErrorIndicator.d.ts +2 -1
  114. package/dist/components/Loading/LoadingErrorIndicator.d.ts.map +1 -1
  115. package/dist/components/Loading/LoadingIndicator.d.ts +2 -1
  116. package/dist/components/Loading/LoadingIndicator.d.ts.map +1 -1
  117. package/dist/components/MML/MML.d.ts +2 -1
  118. package/dist/components/MML/MML.d.ts.map +1 -1
  119. package/dist/components/Message/FixedHeightMessage.d.ts +2 -1
  120. package/dist/components/Message/FixedHeightMessage.d.ts.map +1 -1
  121. package/dist/components/Message/Message.d.ts +2 -1
  122. package/dist/components/Message/Message.d.ts.map +1 -1
  123. package/dist/components/Message/MessageDeleted.d.ts +2 -1
  124. package/dist/components/Message/MessageDeleted.d.ts.map +1 -1
  125. package/dist/components/Message/MessageErrorText.d.ts +9 -0
  126. package/dist/components/Message/MessageErrorText.d.ts.map +1 -0
  127. package/dist/components/Message/MessageErrorText.js +16 -0
  128. package/dist/components/Message/MessageOptions.d.ts +1 -1
  129. package/dist/components/Message/MessageOptions.d.ts.map +1 -1
  130. package/dist/components/Message/MessageOptions.js +5 -3
  131. package/dist/components/Message/MessageRepliesCountButton.d.ts +2 -2
  132. package/dist/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
  133. package/dist/components/Message/MessageSimple.d.ts +2 -1
  134. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  135. package/dist/components/Message/MessageSimple.js +17 -5
  136. package/dist/components/Message/MessageStatus.d.ts +1 -1
  137. package/dist/components/Message/MessageStatus.d.ts.map +1 -1
  138. package/dist/components/Message/MessageText.d.ts +2 -1
  139. package/dist/components/Message/MessageText.d.ts.map +1 -1
  140. package/dist/components/Message/MessageText.js +3 -5
  141. package/dist/components/Message/MessageTimestamp.d.ts +2 -1
  142. package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
  143. package/dist/components/Message/QuotedMessage.d.ts +2 -1
  144. package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
  145. package/dist/components/Message/icons.d.ts +11 -10
  146. package/dist/components/Message/icons.d.ts.map +1 -1
  147. package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts +2 -2
  148. package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts.map +1 -1
  149. package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts +2 -1
  150. package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts.map +1 -1
  151. package/dist/components/Message/renderText/componentRenderers/Mention.d.ts +2 -2
  152. package/dist/components/Message/renderText/componentRenderers/Mention.d.ts.map +1 -1
  153. package/dist/components/Message/renderText/renderText.d.ts +2 -2
  154. package/dist/components/Message/renderText/renderText.d.ts.map +1 -1
  155. package/dist/components/Message/utils.d.ts +1 -0
  156. package/dist/components/Message/utils.d.ts.map +1 -1
  157. package/dist/components/Message/utils.js +5 -0
  158. package/dist/components/MessageActions/CustomMessageActionsList.d.ts +2 -1
  159. package/dist/components/MessageActions/CustomMessageActionsList.d.ts.map +1 -1
  160. package/dist/components/MessageActions/MessageActions.d.ts +1 -1
  161. package/dist/components/MessageActions/MessageActions.d.ts.map +1 -1
  162. package/dist/components/MessageActions/MessageActions.js +3 -1
  163. package/dist/components/MessageActions/MessageActionsBox.d.ts +1 -1
  164. package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
  165. package/dist/components/MessageActions/MessageActionsBox.js +2 -2
  166. package/dist/components/MessageBounce/MessageBounceModal.d.ts +8 -0
  167. package/dist/components/MessageBounce/MessageBounceModal.d.ts.map +1 -0
  168. package/dist/components/MessageBounce/MessageBounceModal.js +10 -0
  169. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +7 -0
  170. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts.map +1 -0
  171. package/dist/components/MessageBounce/MessageBouncePrompt.js +19 -0
  172. package/dist/components/MessageBounce/index.d.ts +3 -0
  173. package/dist/components/MessageBounce/index.d.ts.map +1 -0
  174. package/dist/components/MessageBounce/index.js +2 -0
  175. package/dist/components/MessageInput/AttachmentPreviewList.d.ts +3 -2
  176. package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +1 -1
  177. package/dist/components/MessageInput/CooldownTimer.d.ts +1 -1
  178. package/dist/components/MessageInput/CooldownTimer.d.ts.map +1 -1
  179. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +1 -1
  180. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
  181. package/dist/components/MessageInput/DropzoneProvider.d.ts +1 -1
  182. package/dist/components/MessageInput/DropzoneProvider.d.ts.map +1 -1
  183. package/dist/components/MessageInput/EditMessageForm.d.ts +2 -1
  184. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  185. package/dist/components/MessageInput/LinkPreviewList.d.ts +2 -1
  186. package/dist/components/MessageInput/LinkPreviewList.d.ts.map +1 -1
  187. package/dist/components/MessageInput/MessageInput.d.ts +1 -1
  188. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  189. package/dist/components/MessageInput/MessageInputFlat.d.ts +2 -1
  190. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
  191. package/dist/components/MessageInput/MessageInputFlat.js +1 -1
  192. package/dist/components/MessageInput/MessageInputSmall.d.ts +2 -1
  193. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  194. package/dist/components/MessageInput/QuotedMessagePreview.d.ts +3 -2
  195. package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
  196. package/dist/components/MessageInput/QuotedMessagePreview.js +1 -1
  197. package/dist/components/MessageInput/UploadsPreview.d.ts +2 -1
  198. package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
  199. package/dist/components/MessageInput/hooks/useSubmitHandler.js +1 -1
  200. package/dist/components/MessageInput/icons.d.ts +14 -14
  201. package/dist/components/MessageInput/icons.d.ts.map +1 -1
  202. package/dist/components/MessageInput/icons.js +2 -1
  203. package/dist/components/MessageList/ConnectionStatus.d.ts +1 -1
  204. package/dist/components/MessageList/ConnectionStatus.d.ts.map +1 -1
  205. package/dist/components/MessageList/CustomNotification.d.ts +2 -2
  206. package/dist/components/MessageList/CustomNotification.d.ts.map +1 -1
  207. package/dist/components/MessageList/GiphyPreviewMessage.d.ts +2 -1
  208. package/dist/components/MessageList/GiphyPreviewMessage.d.ts.map +1 -1
  209. package/dist/components/MessageList/MessageList.d.ts +7 -3
  210. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  211. package/dist/components/MessageList/MessageList.js +15 -14
  212. package/dist/components/MessageList/MessageListMainPanel.d.ts +2 -1
  213. package/dist/components/MessageList/MessageListMainPanel.d.ts.map +1 -1
  214. package/dist/components/MessageList/MessageListNotifications.d.ts +1 -1
  215. package/dist/components/MessageList/MessageListNotifications.d.ts.map +1 -1
  216. package/dist/components/MessageList/MessageNotification.d.ts +1 -1
  217. package/dist/components/MessageList/MessageNotification.d.ts.map +1 -1
  218. package/dist/components/MessageList/ScrollToBottomButton.d.ts +2 -1
  219. package/dist/components/MessageList/ScrollToBottomButton.d.ts.map +1 -1
  220. package/dist/components/MessageList/ScrollToBottomButton.js +44 -3
  221. package/dist/components/MessageList/UnreadMessagesNotification.d.ts +12 -1
  222. package/dist/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
  223. package/dist/components/MessageList/UnreadMessagesNotification.js +6 -4
  224. package/dist/components/MessageList/UnreadMessagesSeparator.d.ts +9 -1
  225. package/dist/components/MessageList/UnreadMessagesSeparator.d.ts.map +1 -1
  226. package/dist/components/MessageList/UnreadMessagesSeparator.js +2 -2
  227. package/dist/components/MessageList/VirtualizedMessageList.d.ts +7 -3
  228. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  229. package/dist/components/MessageList/VirtualizedMessageList.js +14 -14
  230. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +6 -6
  231. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
  232. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +2 -1
  233. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -1
  234. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.js +3 -4
  235. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts +2 -1
  236. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +1 -1
  237. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js +27 -13
  238. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -1
  239. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js +3 -3
  240. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +3 -1
  241. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts.map +1 -1
  242. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js +13 -7
  243. package/dist/components/MessageList/hooks/useMarkRead.d.ts +3 -2
  244. package/dist/components/MessageList/hooks/useMarkRead.d.ts.map +1 -1
  245. package/dist/components/MessageList/hooks/useMarkRead.js +65 -11
  246. package/dist/components/MessageList/icons.d.ts +4 -3
  247. package/dist/components/MessageList/icons.d.ts.map +1 -1
  248. package/dist/components/MessageList/renderMessages.d.ts +9 -8
  249. package/dist/components/MessageList/renderMessages.d.ts.map +1 -1
  250. package/dist/components/MessageList/renderMessages.js +4 -4
  251. package/dist/components/Modal/Modal.d.ts +1 -1
  252. package/dist/components/Modal/Modal.d.ts.map +1 -1
  253. package/dist/components/Modal/Modal.js +9 -7
  254. package/dist/components/Modal/icons.d.ts +2 -1
  255. package/dist/components/Modal/icons.d.ts.map +1 -1
  256. package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +1 -1
  257. package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts.map +1 -1
  258. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts +12 -12
  259. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts.map +1 -1
  260. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts +18 -18
  261. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts.map +1 -1
  262. package/dist/components/ReactFileUtilities/FilePreviewer.d.ts +2 -1
  263. package/dist/components/ReactFileUtilities/FilePreviewer.d.ts.map +1 -1
  264. package/dist/components/ReactFileUtilities/FileUploadButton.d.ts +2 -2
  265. package/dist/components/ReactFileUtilities/FileUploadButton.d.ts.map +1 -1
  266. package/dist/components/ReactFileUtilities/FileUploadButton.js +3 -1
  267. package/dist/components/ReactFileUtilities/IconButton.d.ts +2 -2
  268. package/dist/components/ReactFileUtilities/IconButton.d.ts.map +1 -1
  269. package/dist/components/ReactFileUtilities/IconButton.js +3 -1
  270. package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +2 -2
  271. package/dist/components/ReactFileUtilities/ImageDropzone.d.ts.map +1 -1
  272. package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts +2 -2
  273. package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts.map +1 -1
  274. package/dist/components/ReactFileUtilities/ImagePreviewer.js +3 -1
  275. package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts +2 -2
  276. package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts.map +1 -1
  277. package/dist/components/ReactFileUtilities/ImageUploadButton.js +3 -1
  278. package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts +2 -1
  279. package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts.map +1 -1
  280. package/dist/components/ReactFileUtilities/Thumbnail.d.ts +2 -2
  281. package/dist/components/ReactFileUtilities/Thumbnail.d.ts.map +1 -1
  282. package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts +2 -1
  283. package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts.map +1 -1
  284. package/dist/components/ReactFileUtilities/UploadButton.d.ts +2 -2
  285. package/dist/components/ReactFileUtilities/UploadButton.d.ts.map +1 -1
  286. package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts +2 -1
  287. package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts.map +1 -1
  288. package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts +2 -1
  289. package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts.map +1 -1
  290. package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts +2 -2
  291. package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts.map +1 -1
  292. package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts +2 -1
  293. package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts.map +1 -1
  294. package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts +2 -1
  295. package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts.map +1 -1
  296. package/dist/components/Reactions/ReactionsList.d.ts +2 -1
  297. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  298. package/dist/components/Reactions/ReactionsList.js +3 -1
  299. package/dist/components/Reactions/ReactionsListModal.d.ts +2 -2
  300. package/dist/components/Reactions/ReactionsListModal.d.ts.map +1 -1
  301. package/dist/components/Reactions/ReactionsListModal.js +2 -2
  302. package/dist/components/Reactions/SimpleReactionsList.d.ts +2 -1
  303. package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
  304. package/dist/components/Reactions/SpriteImage.d.ts +2 -1
  305. package/dist/components/Reactions/SpriteImage.d.ts.map +1 -1
  306. package/dist/components/Reactions/SpriteImage.js +3 -17
  307. package/dist/components/Reactions/StreamEmoji.d.ts +1 -1
  308. package/dist/components/Reactions/StreamEmoji.d.ts.map +1 -1
  309. package/dist/components/Reactions/StreamEmoji.js +3 -1
  310. package/dist/components/Reactions/hooks/useFetchReactions.js +2 -2
  311. package/dist/components/SafeAnchor/SafeAnchor.d.ts +2 -2
  312. package/dist/components/SafeAnchor/SafeAnchor.d.ts.map +1 -1
  313. package/dist/components/SafeAnchor/SafeAnchor.js +3 -1
  314. package/dist/components/Thread/Thread.d.ts +1 -1
  315. package/dist/components/Thread/Thread.d.ts.map +1 -1
  316. package/dist/components/Thread/ThreadHead.d.ts +2 -1
  317. package/dist/components/Thread/ThreadHead.d.ts.map +1 -1
  318. package/dist/components/Thread/ThreadHeader.d.ts +1 -1
  319. package/dist/components/Thread/ThreadHeader.d.ts.map +1 -1
  320. package/dist/components/Thread/ThreadHeader.js +1 -1
  321. package/dist/components/Thread/ThreadStart.d.ts +2 -1
  322. package/dist/components/Thread/ThreadStart.d.ts.map +1 -1
  323. package/dist/components/Thread/icons.d.ts +2 -1
  324. package/dist/components/Thread/icons.d.ts.map +1 -1
  325. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  326. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  327. package/dist/components/TypingIndicator/TypingIndicator.d.ts +1 -1
  328. package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
  329. package/dist/components/UserItem/UserItem.d.ts +1 -1
  330. package/dist/components/UserItem/UserItem.d.ts.map +1 -1
  331. package/dist/components/Window/Window.d.ts +1 -1
  332. package/dist/components/Window/Window.d.ts.map +1 -1
  333. package/dist/context/ChannelActionContext.d.ts +13 -4
  334. package/dist/context/ChannelActionContext.d.ts.map +1 -1
  335. package/dist/context/ChannelListContext.d.ts +1 -1
  336. package/dist/context/ChannelListContext.d.ts.map +1 -1
  337. package/dist/context/ChannelStateContext.d.ts +4 -3
  338. package/dist/context/ChannelStateContext.d.ts.map +1 -1
  339. package/dist/context/ChatContext.d.ts +2 -2
  340. package/dist/context/ChatContext.d.ts.map +1 -1
  341. package/dist/context/ComponentContext.d.ts +5 -3
  342. package/dist/context/ComponentContext.d.ts.map +1 -1
  343. package/dist/context/MessageBounceContext.d.ts +12 -0
  344. package/dist/context/MessageBounceContext.d.ts.map +1 -0
  345. package/dist/context/MessageBounceContext.js +37 -0
  346. package/dist/context/MessageContext.d.ts +2 -2
  347. package/dist/context/MessageContext.d.ts.map +1 -1
  348. package/dist/context/MessageInputContext.d.ts +1 -1
  349. package/dist/context/MessageInputContext.d.ts.map +1 -1
  350. package/dist/context/MessageListContext.d.ts +1 -1
  351. package/dist/context/MessageListContext.d.ts.map +1 -1
  352. package/dist/context/TranslationContext.d.ts +2 -2
  353. package/dist/context/TranslationContext.d.ts.map +1 -1
  354. package/dist/context/TypingContext.d.ts +2 -2
  355. package/dist/context/TypingContext.d.ts.map +1 -1
  356. package/dist/context/index.d.ts +1 -0
  357. package/dist/context/index.d.ts.map +1 -1
  358. package/dist/context/index.js +1 -0
  359. package/dist/css/v2/index.css +1 -1
  360. package/dist/css/v2/index.layout.css +1 -1
  361. package/dist/i18n/Streami18n.d.ts +22 -0
  362. package/dist/i18n/Streami18n.d.ts.map +1 -1
  363. package/dist/i18n/de.json +22 -0
  364. package/dist/i18n/en.json +22 -0
  365. package/dist/i18n/es.json +22 -0
  366. package/dist/i18n/fr.json +22 -0
  367. package/dist/i18n/hi.json +22 -0
  368. package/dist/i18n/it.json +22 -0
  369. package/dist/i18n/ja.json +22 -0
  370. package/dist/i18n/ko.json +22 -0
  371. package/dist/i18n/nl.json +22 -0
  372. package/dist/i18n/pt.json +22 -0
  373. package/dist/i18n/ru.json +22 -0
  374. package/dist/i18n/tr.json +22 -0
  375. package/dist/index.cjs.js +1468 -39772
  376. package/dist/index.d.ts +1 -0
  377. package/dist/index.d.ts.map +1 -1
  378. package/dist/index.js +1 -0
  379. package/dist/scss/v2/{MessageBounceOptions/MessageBounceOptions-layout.scss → MessageBouncePrompt/MessageBouncePrompt-layout.scss} +2 -1
  380. package/dist/scss/v2/{MessageBounceOptions/MessageBounceOptions-theme.scss → MessageBouncePrompt/MessageBouncePrompt-theme.scss} +1 -1
  381. package/dist/scss/v2/MessageReactions/MessageReactions-layout.scss +15 -1
  382. package/dist/scss/v2/index.layout.scss +1 -1
  383. package/dist/scss/v2/index.scss +1 -1
  384. package/dist/types/index.d.ts +2 -0
  385. package/dist/types/index.d.ts.map +1 -0
  386. package/dist/types/index.js +1 -0
  387. package/dist/types/types.d.ts +12 -10
  388. package/dist/types/types.d.ts.map +1 -1
  389. package/dist/version.d.ts +1 -1
  390. package/dist/version.js +1 -1
  391. package/package.json +8 -7
  392. package/dist/icons-7ead3d97.js +0 -3172
@@ -1,4 +1,4 @@
1
- var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, ReactDOM, Picker) {
1
+ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamChat, Picker) {
2
2
  'use strict';
3
3
 
4
4
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -5726,6 +5726,40 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
5726
5726
  return WithMessageContextComponent;
5727
5727
  };
5728
5728
 
5729
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageBounceContext = React$2.createContext(undefined);
5730
+ function useMessageBounceContext(componentName) {
5731
+ var contextValue = React$2.useContext(MessageBounceContext);
5732
+ if (!contextValue) {
5733
+ console.warn("The useMessageBounceContext hook was called outside of the MessageBounceContext provider. The errored call is located in the ".concat(componentName, " component."));
5734
+ return {};
5735
+ }
5736
+ return contextValue;
5737
+ }
5738
+ function MessageBounceProvider(_a) {
5739
+ var children = _a.children;
5740
+ var _b = useMessageContext('MessageBounceProvider'), doHandleRetry = _b.handleRetry, message = _b.message, setEditingState = _b.setEditingState;
5741
+ if (!isMessageBounced(message)) {
5742
+ console.warn("The MessageBounceProvider was rendered for a message that is not bounced. Have you missed the \"isMessageBounced\" check?");
5743
+ }
5744
+ var removeMessage = useChannelActionContext('MessageBounceProvider').removeMessage;
5745
+ var handleDelete = React$2.useCallback(function () {
5746
+ removeMessage(message);
5747
+ }, [message, removeMessage]);
5748
+ var handleEdit = React$2.useCallback(function (e) {
5749
+ setEditingState(e);
5750
+ }, [setEditingState]);
5751
+ var handleRetry = React$2.useCallback(function () {
5752
+ doHandleRetry(message);
5753
+ }, [doHandleRetry, message]);
5754
+ var value = React$2.useMemo(function () { return ({
5755
+ handleDelete: handleDelete,
5756
+ handleEdit: handleEdit,
5757
+ handleRetry: handleRetry,
5758
+ message: message,
5759
+ }); }, [handleDelete, handleEdit, handleRetry, message]);
5760
+ return React__default["default"].createElement(MessageBounceContext.Provider, { value: value }, children);
5761
+ }
5762
+
5729
5763
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageInputContext = React$2.createContext(undefined);
5730
5764
  var MessageInputContextProvider = function (_a) {
5731
5765
  var children = _a.children, value = _a.value;
@@ -5791,29 +5825,29 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
5791
5825
 
5792
5826
  var localizedFormat = localizedFormat$1.exports;
5793
5827
 
5794
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Zugestellt";var Flag$b="Meldung";var Menu$b="Menü";var Mute$b="Stumm schalten";var New$b="Neu";var Pin$b="Pin";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Shuffle$b="Mischen";var Thread$c="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Pin entfernen";var live$b="live";var replyCount_one$b="1 Antwort";var replyCount_other$b="{{ count }} Antworten";var searchResultsCount_one$b="1 Ergebnis";var searchResultsCount_other$b="{{ count }} Ergebnisse";var unreadMessagesSeparatorText_one$9="1 ungelesene Nachricht";var unreadMessagesSeparatorText_other$b="{{count}} ungelesene Nachrichten";var deTranslations = {"Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, Wiederherstellung der Verbindung...",Delete:Delete$b,Delivered:Delivered$b,"Drag your files here":"Ziehen Sie Ihre Dateien hierher","Drag your files here to add to your post":"Ziehen Sie Ihre Dateien hierher, um sie Ihrem Beitrag hinzuzufügen","Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Verbindungsfehler zum Chat, Aktualisiere die Seite um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error fetching reactions":"Fehler beim Laden von Reaktionen","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Fehler beim Markieren der Nachricht als ungelesen. Kann keine älteren ungelesenen Nachrichten markieren als die neuesten 100 Kanalnachrichten.","Error muting a user ...":"Fehler beim Stummschalten eines Nutzers.","Error pinning message":"Fehler beim Pinnen der Nachricht","Error removing message pin":"Fehler beim Entfernen der gepinnten Nachricht","Error unmuting a user ...":"Stummschaltung des Nutzers fehlgeschlagen ...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Hochladen des Bildes fehlgeschlagen","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}","Failed to jump to the first unread message":"Fehler beim Springen zur ersten ungelesenen Nachricht",Flag:Flag$b,"Latest Messages":"Neueste Nachrichten","Load more":"Mehr laden","Mark as unread":"Als ungelesen markieren",Menu:Menu$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich gemeldet","Message pinned":"Nachricht gepinnt","Messages have been marked unread.":"Nachrichten wurden als ungelesen markiert.",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No chats here yet…":"Noch keine Chats hier...","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Open emoji picker":"Emoji-Picker öffnen","People matching":"Passende Personen",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send message request failed":"Senden der Nachrichtenanfrage fehlgeschlagen","Sending...":"Senden...",Shuffle:Shuffle$b,"Slow Mode ON":"Slow-Mode EIN","Some of the files will not be accepted":"Einige der Dateien werden nicht akzeptiert","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$c,"Type your message":"Nachricht eingeben",Unmute:Unmute$b,Unpin:Unpin$b,"Unread messages":"Ungelesene Nachrichten","Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","User uploaded content":"Benutzer hochgeladenen Inhalts","Wait until all attachments have uploaded":"Bitte warten, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Du hast momentan noch keinen Channels","You've reached the maximum number of files":"Die maximale Dateianzahl ist erreicht","ban-command-args":"[@Benutzername] [Text]","ban-command-description":"Einen Benutzer verbannen","giphy-command-args":"[Text]","giphy-command-description":"Poste ein zufälliges Gif in den Kanal",live:live$b,"mute-command-args":"[@Benutzername]","mute-command-description":"Stummschalten eines Benutzers",replyCount_one:replyCount_one$b,replyCount_other:replyCount_other$b,searchResultsCount_one:searchResultsCount_one$b,searchResultsCount_other:searchResultsCount_other$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","unban-command-args":"[@Benutzername]","unban-command-description":"Einen Benutzer entbannen","unmute-command-args":"[@Benutzername]","unmute-command-description":"Stummschaltung eines Benutzers aufheben",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$9,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$b,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ user }} is typing...":"{{ user }} tippt...","{{ users }} and more are typing...":"{{ users }} und mehr tippen...","{{ users }} and {{ user }} are typing...":"{{ users }} und {{ user }} tippen...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} ungelesen","{{count}} unread_other":"{{count}} ungelesen","🏙 Attachment...":"🏙 Anhang..."};
5828
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Zugestellt";var Flag$b="Meldung";var Menu$b="Menü";var Mute$b="Stumm schalten";var New$b="Neu";var Pin$b="Pin";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Shuffle$b="Mischen";var Thread$c="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Pin entfernen";var live$b="live";var replyCount_one$b="1 Antwort";var replyCount_other$b="{{ count }} Antworten";var searchResultsCount_one$b="1 Ergebnis";var searchResultsCount_other$b="{{ count }} Ergebnisse";var unreadMessagesSeparatorText_one$9="1 ungelesene Nachricht";var unreadMessagesSeparatorText_other$b="{{count}} ungelesene Nachrichten";var deTranslations = {"Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, Wiederherstellung der Verbindung...",Delete:Delete$b,Delivered:Delivered$b,"Drag your files here":"Ziehen Sie Ihre Dateien hierher","Drag your files here to add to your post":"Ziehen Sie Ihre Dateien hierher, um sie Ihrem Beitrag hinzuzufügen","Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Verbindungsfehler zum Chat, Aktualisiere die Seite um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error fetching reactions":"Fehler beim Laden von Reaktionen","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Fehler beim Markieren der Nachricht als ungelesen. Kann keine älteren ungelesenen Nachrichten markieren als die neuesten 100 Kanalnachrichten.","Error muting a user ...":"Fehler beim Stummschalten eines Nutzers.","Error pinning message":"Fehler beim Pinnen der Nachricht","Error removing message pin":"Fehler beim Entfernen der gepinnten Nachricht","Error unmuting a user ...":"Stummschaltung des Nutzers fehlgeschlagen ...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Hochladen des Bildes fehlgeschlagen","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}","Failed to jump to the first unread message":"Fehler beim Springen zur ersten ungelesenen Nachricht","Failed to mark channel as read":"Fehler beim Markieren des Kanals als gelesen",Flag:Flag$b,"Latest Messages":"Neueste Nachrichten","Load more":"Mehr laden","Mark as unread":"Als ungelesen markieren",Menu:Menu$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich gemeldet","Message pinned":"Nachricht gepinnt","Messages have been marked unread.":"Nachrichten wurden als ungelesen markiert.",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No chats here yet…":"Noch keine Chats hier...","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Open emoji picker":"Emoji-Picker öffnen","People matching":"Passende Personen",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send Anyway":"Trotzdem senden","Send message request failed":"Senden der Nachrichtenanfrage fehlgeschlagen","Sending...":"Senden...",Shuffle:Shuffle$b,"Slow Mode ON":"Slow-Mode EIN","Some of the files will not be accepted":"Einige der Dateien werden nicht akzeptiert","This message did not meet our content guidelines":"Diese Nachricht entsprach nicht unseren Inhaltsrichtlinien","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$c,"Type your message":"Nachricht eingeben",Unmute:Unmute$b,Unpin:Unpin$b,"Unread messages":"Ungelesene Nachrichten","Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","User uploaded content":"Benutzer hochgeladenen Inhalts","Wait until all attachments have uploaded":"Bitte warten, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Du hast momentan noch keinen Channels","You've reached the maximum number of files":"Die maximale Dateianzahl ist erreicht","aria/Attachment":"Anhang","aria/Cancel Reply":"Antwort abbrechen","aria/Cancel upload":"Upload abbrechen","aria/Channel list":"Kanalliste","aria/Channel search results":"Kanalsuchergebnisse","aria/Close thread":"Thread schließen","aria/Emoji picker":"Emoji-Auswahl","aria/File input":"Dateieingabe","aria/File upload":"Datei hochladen","aria/Image input":"Bildeingabe","aria/Load More Channels":"Mehr Kanäle laden","aria/Menu":"Menü","aria/Message Options":"Nachrichtenoptionen","aria/Open Message Actions Menu":"Nachrichtenaktionsmenü öffnen","aria/Open Reaction Selector":"Reaktionsauswahl öffnen","aria/Open Thread":"Thread öffnen","aria/Reaction list":"Reaktionsliste","aria/Retry upload":"Upload erneut versuchen","aria/Send":"Senden","ban-command-args":"[@Benutzername] [Text]","ban-command-description":"Einen Benutzer verbannen","giphy-command-args":"[Text]","giphy-command-description":"Poste ein zufälliges Gif in den Kanal",live:live$b,"mute-command-args":"[@Benutzername]","mute-command-description":"Stummschalten eines Benutzers",replyCount_one:replyCount_one$b,replyCount_other:replyCount_other$b,searchResultsCount_one:searchResultsCount_one$b,searchResultsCount_other:searchResultsCount_other$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","unban-command-args":"[@Benutzername]","unban-command-description":"Einen Benutzer entbannen","unmute-command-args":"[@Benutzername]","unmute-command-description":"Stummschaltung eines Benutzers aufheben",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$9,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$b,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ user }} is typing...":"{{ user }} tippt...","{{ users }} and more are typing...":"{{ users }} und mehr tippen...","{{ users }} and {{ user }} are typing...":"{{ users }} und {{ user }} tippen...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} ungelesen","{{count}} unread_other":"{{count}} ungelesen","🏙 Attachment...":"🏙 Anhang..."};
5795
5829
 
5796
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Menu$a="Menu";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Shuffle$a="Shuffle";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var replyCount_one$a="1 reply";var replyCount_other$a="{{ count }} replies";var searchResultsCount_one$a="1 result";var searchResultsCount_other$a="{{ count }} results";var unreadMessagesSeparatorText_one$8="1 unread message";var unreadMessagesSeparatorText_other$a="{{count}} unread messages";var enTranslations = {"Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Drag your files here":"Drag your files here","Drag your files here to add to your post":"Drag your files here to add to your post","Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error fetching reactions":"Error loading reactions","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}","Failed to jump to the first unread message":"Failed to jump to the first unread message",Flag:Flag$a,"Latest Messages":"Latest Messages","Load more":"Load more","Mark as unread":"Mark as unread",Menu:Menu$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned","Messages have been marked unread.":"Messages have been marked unread.",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No chats here yet…":"No chats here yet…","No results found":"No results found","Nothing yet...":"Nothing yet...","Open emoji picker":"Open emoji picker","People matching":"People matching",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...",Shuffle:Shuffle$a,"Slow Mode ON":"Slow Mode ON","Some of the files will not be accepted":"Some of the files will not be accepted","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Unread messages":"Unread messages","Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","User uploaded content":"User uploaded content","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,replyCount_one:replyCount_one$a,replyCount_other:replyCount_other$a,searchResultsCount_one:searchResultsCount_one$a,searchResultsCount_other:searchResultsCount_other$a,"this content could not be displayed":"this content could not be displayed",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$8,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$a,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} unread","{{count}} unread_other":"{{count}} unread","🏙 Attachment...":"🏙 Attachment..."};
5830
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Menu$a="Menu";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Shuffle$a="Shuffle";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var replyCount_one$a="1 reply";var replyCount_other$a="{{ count }} replies";var searchResultsCount_one$a="1 result";var searchResultsCount_other$a="{{ count }} results";var unreadMessagesSeparatorText_one$8="1 unread message";var unreadMessagesSeparatorText_other$a="{{count}} unread messages";var enTranslations = {"Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Drag your files here":"Drag your files here","Drag your files here to add to your post":"Drag your files here to add to your post","Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error fetching reactions":"Error loading reactions","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}","Failed to jump to the first unread message":"Failed to jump to the first unread message","Failed to mark channel as read":"Failed to mark channel as read",Flag:Flag$a,"Latest Messages":"Latest Messages","Load more":"Load more","Mark as unread":"Mark as unread",Menu:Menu$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned","Messages have been marked unread.":"Messages have been marked unread.",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No chats here yet…":"No chats here yet…","No results found":"No results found","Nothing yet...":"Nothing yet...","Open emoji picker":"Open emoji picker","People matching":"People matching",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send Anyway":"Send Anyway","Send message request failed":"Send message request failed","Sending...":"Sending...",Shuffle:Shuffle$a,"Slow Mode ON":"Slow Mode ON","Some of the files will not be accepted":"Some of the files will not be accepted","This message did not meet our content guidelines":"This message did not meet our content guidelines","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Unread messages":"Unread messages","Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","User uploaded content":"User uploaded content","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files","aria/Attachment":"Attachment","aria/Cancel Reply":"Cancel Reply","aria/Cancel upload":"Cancel upload","aria/Channel list":"Channel list","aria/Channel search results":"Channel search results","aria/Close thread":"Close thread","aria/Emoji picker":"Emoji picker","aria/File input":"File input","aria/File upload":"File upload","aria/Image input":"Image input","aria/Load More Channels":"Load More Channels","aria/Menu":"Menu","aria/Message Options":"Message Options","aria/Open Message Actions Menu":"Open Message Actions Menu","aria/Open Reaction Selector":"Open Reaction Selector","aria/Open Thread":"Open Thread","aria/Reaction list":"Reaction list","aria/Retry upload":"Retry upload","aria/Send":"Send",live:live$a,replyCount_one:replyCount_one$a,replyCount_other:replyCount_other$a,searchResultsCount_one:searchResultsCount_one$a,searchResultsCount_other:searchResultsCount_other$a,"this content could not be displayed":"this content could not be displayed",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$8,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$a,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} unread","{{count}} unread_other":"{{count}} unread","🏙 Attachment...":"🏙 Attachment..."};
5797
5831
 
5798
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Menu$9="Menú";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Shuffle$9="Mezclar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var replyCount_many$4="{{ count }} respuestas";var replyCount_one$9="1 respuesta";var replyCount_other$9="{{ count }} respuestas";var searchResultsCount_many$4="{{ count }} resultados";var searchResultsCount_one$9="1 resultado";var searchResultsCount_other$9="{{ count }} resultados";var unreadMessagesSeparatorText_many$4="{{count}} mensajes no leídos";var unreadMessagesSeparatorText_one$7="1 mensaje no leído";var unreadMessagesSeparatorText_other$9="{{count}} mensajes no leídos";var esTranslations = {"Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Drag your files here":"Arrastra tus archivos aquí","Drag your files here to add to your post":"Arrastra tus archivos aquí para agregarlos a tu publicación","Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error fetching reactions":"Error al cargar las reacciones","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Error al marcar el mensaje como no leído. No se pueden marcar mensajes no leídos más antiguos que los últimos 100 mensajes del canal.","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}","Failed to jump to the first unread message":"Error al saltar al primer mensaje no leído",Flag:Flag$9,"Latest Messages":"Últimos mensajes","Load more":"Cargar más","Mark as unread":"Marcar como no leído",Menu:Menu$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado","Messages have been marked unread.":"Los mensajes han sido marcados como no leídos.",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No chats here yet…":"Aún no hay mensajes aquí...","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...",Shuffle:Shuffle$9,"Slow Mode ON":"Modo lento activado","Some of the files will not be accepted":"Algunos de los archivos no serán aceptados","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Unread messages":"Mensajes no leídos","Upload type: \"{{ type }}\" is not allowed":"Tipo de carga: \"{{ type }}\" no está permitido","User uploaded content":"Contenido subido por el usuario","Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos","ban-command-args":"[@usuario] [texto]","ban-command-description":"Prohibir a un usuario","giphy-command-args":"[texto]","giphy-command-description":"Publicar un gif aleatorio en el canal",live:live$9,"mute-command-args":"[@usuario]","mute-command-description":"Silenciar a un usuario",replyCount_many:replyCount_many$4,replyCount_one:replyCount_one$9,replyCount_other:replyCount_other$9,searchResultsCount_many:searchResultsCount_many$4,searchResultsCount_one:searchResultsCount_one$9,searchResultsCount_other:searchResultsCount_other$9,"this content could not be displayed":"este contenido no se pudo mostrar","unban-command-args":"[@usuario]","unban-command-description":"Quitar la prohibición a un usuario","unmute-command-args":"[@usuario]","unmute-command-description":"Anular el silencio de un usuario",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$4,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$7,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$9,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ user }} is typing...":"{{ user }} está escribiendo...","{{ users }} and more are typing...":"{{ users }} y más están escribiendo...","{{ users }} and {{ user }} are typing...":"{{ users }} y {{ user }} están escribiendo...","{{ watcherCount }} online":"{{ watcherCount }} en línea","{{count}} unread_many":"{{count}} no leídos","{{count}} unread_one":"{{count}} no leído","{{count}} unread_other":"{{count}} no leídos","🏙 Attachment...":"🏙 Adjunto..."};
5832
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Menu$9="Menú";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Shuffle$9="Mezclar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var replyCount_many$4="{{ count }} respuestas";var replyCount_one$9="1 respuesta";var replyCount_other$9="{{ count }} respuestas";var searchResultsCount_many$4="{{ count }} resultados";var searchResultsCount_one$9="1 resultado";var searchResultsCount_other$9="{{ count }} resultados";var unreadMessagesSeparatorText_many$4="{{count}} mensajes no leídos";var unreadMessagesSeparatorText_one$7="1 mensaje no leído";var unreadMessagesSeparatorText_other$9="{{count}} mensajes no leídos";var esTranslations = {"Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Drag your files here":"Arrastra tus archivos aquí","Drag your files here to add to your post":"Arrastra tus archivos aquí para agregarlos a tu publicación","Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error fetching reactions":"Error al cargar las reacciones","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Error al marcar el mensaje como no leído. No se pueden marcar mensajes no leídos más antiguos que los últimos 100 mensajes del canal.","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}","Failed to jump to the first unread message":"Error al saltar al primer mensaje no leído","Failed to mark channel as read":"Error al marcar el canal como leído",Flag:Flag$9,"Latest Messages":"Últimos mensajes","Load more":"Cargar más","Mark as unread":"Marcar como no leído",Menu:Menu$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado","Messages have been marked unread.":"Los mensajes han sido marcados como no leídos.",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No chats here yet…":"Aún no hay mensajes aquí...","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send Anyway":"Enviar de todos modos","Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...",Shuffle:Shuffle$9,"Slow Mode ON":"Modo lento activado","Some of the files will not be accepted":"Algunos de los archivos no serán aceptados","This message did not meet our content guidelines":"Este mensaje no cumple nuestras directrices de contenido","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Unread messages":"Mensajes no leídos","Upload type: \"{{ type }}\" is not allowed":"Tipo de carga: \"{{ type }}\" no está permitido","User uploaded content":"Contenido subido por el usuario","Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos","aria/Attachment":"Adjunto","aria/Cancel Reply":"Cancelar respuesta","aria/Cancel upload":"Cancelar carga","aria/Channel list":"Lista de canales","aria/Channel search results":"Resultados de búsqueda de canales","aria/Close thread":"Cerrar hilo","aria/Emoji picker":"Selector de emojis","aria/File input":"Entrada de archivo","aria/File upload":"Carga de archivo","aria/Image input":"Entrada de imagen","aria/Load More Channels":"Cargar más canales","aria/Menu":"Menú","aria/Message Options":"Opciones de mensaje","aria/Open Message Actions Menu":"Abrir menú de acciones de mensaje","aria/Open Reaction Selector":"Abrir selector de reacción","aria/Open Thread":"Abrir hilo","aria/Reaction list":"Lista de reacciones","aria/Retry upload":"Reintentar carga","aria/Send":"Enviar","ban-command-args":"[@usuario] [texto]","ban-command-description":"Prohibir a un usuario","giphy-command-args":"[texto]","giphy-command-description":"Publicar un gif aleatorio en el canal",live:live$9,"mute-command-args":"[@usuario]","mute-command-description":"Silenciar a un usuario",replyCount_many:replyCount_many$4,replyCount_one:replyCount_one$9,replyCount_other:replyCount_other$9,searchResultsCount_many:searchResultsCount_many$4,searchResultsCount_one:searchResultsCount_one$9,searchResultsCount_other:searchResultsCount_other$9,"this content could not be displayed":"este contenido no se pudo mostrar","unban-command-args":"[@usuario]","unban-command-description":"Quitar la prohibición a un usuario","unmute-command-args":"[@usuario]","unmute-command-description":"Anular el silencio de un usuario",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$4,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$7,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$9,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ user }} is typing...":"{{ user }} está escribiendo...","{{ users }} and more are typing...":"{{ users }} y más están escribiendo...","{{ users }} and {{ user }} are typing...":"{{ users }} y {{ user }} están escribiendo...","{{ watcherCount }} online":"{{ watcherCount }} en línea","{{count}} unread_many":"{{count}} no leídos","{{count}} unread_one":"{{count}} no leído","{{count}} unread_other":"{{count}} no leídos","🏙 Attachment...":"🏙 Adjunto..."};
5799
5833
 
5800
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Menu$8="Menu";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Shuffle$8="Mélanger";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var replyCount_many$3="{{ count }} réponses";var replyCount_one$8="1 réponse";var replyCount_other$8="{{ count }} réponses";var searchResultsCount_many$3="{{ count }} résultats";var searchResultsCount_one$8="1 résultat";var searchResultsCount_other$8="{{ count }} résultats";var unreadMessagesSeparatorText_many$3="{{count}} messages non lus";var unreadMessagesSeparatorText_one$6="1 message non lu";var unreadMessagesSeparatorText_other$8="{{count}} messages non lus";var frTranslations = {"Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Drag your files here":"Glissez vos fichiers ici","Drag your files here to add to your post":"Glissez vos fichiers ici pour les ajouter à votre publication","Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error fetching reactions":"Erreur de chargement des réactions","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Erreur lors de la marque du message comme non lu. Impossible de marquer des messages non lus plus anciens que les 100 derniers messages du canal.","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}","Failed to jump to the first unread message":"Échec de saut vers le premier message non lu",Flag:Flag$8,"Latest Messages":"Derniers messages","Load more":"Charger plus","Mark as unread":"Marquer comme non lu",Menu:Menu$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé","Messages have been marked unread.":"Les messages ont été marqués comme non lus.",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No chats here yet…":"Pas encore de messages ici...","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...",Shuffle:Shuffle$8,"Slow Mode ON":"Mode lent activé","Some of the files will not be accepted":"Certains fichiers ne seront pas acceptés","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Unread messages":"Messages non lus","Upload type: \"{{ type }}\" is not allowed":"Le type de téléchargement: \"{{ type }}\" n'est pas autorisé","User uploaded content":"Contenu téléchargé par l'utilisateur","Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers","ban-command-args":"[@nomdutilisateur] [texte]","ban-command-description":"Bannir un utilisateur","giphy-command-args":"[texte]","giphy-command-description":"Poster un GIF aléatoire dans le canal",live:live$8,"mute-command-args":"[@nomdutilisateur]","mute-command-description":"Muter un utilisateur",replyCount_many:replyCount_many$3,replyCount_one:replyCount_one$8,replyCount_other:replyCount_other$8,searchResultsCount_many:searchResultsCount_many$3,searchResultsCount_one:searchResultsCount_one$8,searchResultsCount_other:searchResultsCount_other$8,"this content could not be displayed":"ce contenu n'a pu être affiché","unban-command-args":"[@nomdutilisateur]","unban-command-description":"Débannir un utilisateur","unmute-command-args":"[@nomdutilisateur]","unmute-command-description":"Démuter un utilisateur",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$3,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$6,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$8,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} en ligne","{{count}} unread_many":"{{count}} non lus","{{count}} unread_one":"{{count}} non lu","{{count}} unread_other":"{{count}} non lus","🏙 Attachment...":"🏙 Pièce jointe..."};
5834
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Menu$8="Menu";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Shuffle$8="Mélanger";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var replyCount_many$3="{{ count }} réponses";var replyCount_one$8="1 réponse";var replyCount_other$8="{{ count }} réponses";var searchResultsCount_many$3="{{ count }} résultats";var searchResultsCount_one$8="1 résultat";var searchResultsCount_other$8="{{ count }} résultats";var unreadMessagesSeparatorText_many$3="{{count}} messages non lus";var unreadMessagesSeparatorText_one$6="1 message non lu";var unreadMessagesSeparatorText_other$8="{{count}} messages non lus";var frTranslations = {"Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Drag your files here":"Glissez vos fichiers ici","Drag your files here to add to your post":"Glissez vos fichiers ici pour les ajouter à votre publication","Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error fetching reactions":"Erreur de chargement des réactions","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Erreur lors de la marque du message comme non lu. Impossible de marquer des messages non lus plus anciens que les 100 derniers messages du canal.","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}","Failed to jump to the first unread message":"Échec de saut vers le premier message non lu","Failed to mark channel as read":"Échec de la marque du canal comme lu",Flag:Flag$8,"Latest Messages":"Derniers messages","Load more":"Charger plus","Mark as unread":"Marquer comme non lu",Menu:Menu$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé","Messages have been marked unread.":"Les messages ont été marqués comme non lus.",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No chats here yet…":"Pas encore de messages ici...","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send Anyway":"Envoyer quand même","Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...",Shuffle:Shuffle$8,"Slow Mode ON":"Mode lent activé","Some of the files will not be accepted":"Certains fichiers ne seront pas acceptés","This message did not meet our content guidelines":"Ce message n'est pas conforme à nos lignes directrices en matière de contenu","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Unread messages":"Messages non lus","Upload type: \"{{ type }}\" is not allowed":"Le type de téléchargement: \"{{ type }}\" n'est pas autorisé","User uploaded content":"Contenu téléchargé par l'utilisateur","Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers","aria/Attachment":"Pièce jointe","aria/Cancel Reply":"Annuler la réponse","aria/Cancel upload":"Annuler le téléchargement","aria/Channel list":"Liste des canaux","aria/Channel search results":"Résultats de la recherche de canaux","aria/Close thread":"Fermer le fil","aria/Emoji picker":"Sélecteur d'émojis","aria/File input":"Entrée de fichier","aria/File upload":"Téléchargement de fichier","aria/Image input":"Entrée d'image","aria/Load More Channels":"Charger plus de canaux","aria/Menu":"Menu","aria/Message Options":"Options de message","aria/Open Message Actions Menu":"Ouvrir le menu des actions de message","aria/Open Reaction Selector":"Ouvrir le sélecteur de réaction","aria/Open Thread":"Ouvrir le fil","aria/Reaction list":"Liste des réactions","aria/Retry upload":"Réessayer le téléchargement","aria/Send":"Envoyer","ban-command-args":"[@nomdutilisateur] [texte]","ban-command-description":"Bannir un utilisateur","giphy-command-args":"[texte]","giphy-command-description":"Poster un GIF aléatoire dans le canal",live:live$8,"mute-command-args":"[@nomdutilisateur]","mute-command-description":"Muter un utilisateur",replyCount_many:replyCount_many$3,replyCount_one:replyCount_one$8,replyCount_other:replyCount_other$8,searchResultsCount_many:searchResultsCount_many$3,searchResultsCount_one:searchResultsCount_one$8,searchResultsCount_other:searchResultsCount_other$8,"this content could not be displayed":"ce contenu n'a pu être affiché","unban-command-args":"[@nomdutilisateur]","unban-command-description":"Débannir un utilisateur","unmute-command-args":"[@nomdutilisateur]","unmute-command-description":"Démuter un utilisateur",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$3,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$6,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$8,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} en ligne","{{count}} unread_many":"{{count}} non lus","{{count}} unread_one":"{{count}} non lu","{{count}} unread_other":"{{count}} non lus","🏙 Attachment...":"🏙 Pièce jointe..."};
5801
5835
 
5802
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Menu$7="मेन्यू";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Shuffle$7="मिश्रित करें";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var replyCount_one$7="1 रिप्लाई";var replyCount_other$7="{{ count }} रिप्लाई";var searchResultsCount_one$7="1 परिणाम";var searchResultsCount_other$7="{{ count }} परिणाम";var unreadMessagesSeparatorText_one$5="1 अपठित संदेश";var unreadMessagesSeparatorText_other$7="{{count}} अपठित संदेश";var hiTranslations = {"Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Drag your files here":"अपनी फ़ाइलें यहाँ खींचें","Drag your files here to add to your post":"अपनी फ़ाइलें यहाँ खींचें और अपने पोस्ट में जोड़ने के लिए","Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error fetching reactions":"प्रतिक्रियाएँ लोड करने में त्रुटि","Error marking message unread":"संदेश को अपठित चिह्नित करने में त्रुटि","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"संदेश को अपठित मार्क करने में त्रुटि। सबसे नए 100 चैनल संदेश से पहले के सभी अपठित संदेशों को अपठित मार्क नहीं किया जा सकता है।","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}","Failed to jump to the first unread message":"पहले अपठित संदेश पर जाने में विफल",Flag:Flag$7,"Latest Messages":"नवीनतम संदेश","Load more":"और लोड करें","Mark as unread":"अपठित चिह्नित करें",Menu:Menu$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया","Messages have been marked unread.":"संदेशों को अपठित चिह्नित किया गया है।",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No chats here yet…":"यहां अभी तक कोई चैट नहीं...","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है",Shuffle:Shuffle$7,"Slow Mode ON":"स्लो मोड ऑन","Some of the files will not be accepted":"कुछ फ़ाइलें स्वीकार नहीं की जाएंगी","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Unread messages":"अपठित संदेश","Upload type: \"{{ type }}\" is not allowed":"अपलोड प्रकार: \"{{ type }}\" की अनुमति नहीं है","User uploaded content":"उपयोगकर्ता अपलोड की गई सामग्री","Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं","ban-command-args":"[@उपयोगकर्तनाम] [पाठ]","ban-command-description":"एक उपयोगकर्ता को प्रतिषेधित करें","giphy-command-args":"[पाठ]","giphy-command-description":"चैनल पर एक क्रॉफिल जीआइएफ पोस्ट करें",live:live$7,"mute-command-args":"[@उपयोगकर्तनाम]","mute-command-description":"एक उपयोगकर्ता को म्यूट करें",replyCount_one:replyCount_one$7,replyCount_other:replyCount_other$7,searchResultsCount_one:searchResultsCount_one$7,searchResultsCount_other:searchResultsCount_other$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","unban-command-args":"[@उपयोगकर्तनाम]","unban-command-description":"एक उपयोगकर्ता को प्रतिषेध से मुक्त करें","unmute-command-args":"[@उपयोगकर्तनाम]","unmute-command-description":"एक उपयोगकर्ता को अनम्यूट करें",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$5,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$7,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} अपठित","{{count}} unread_other":"{{count}} अपठित","🏙 Attachment...":"🏙 अटैचमेंट"};
5836
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Menu$7="मेन्यू";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Shuffle$7="मिश्रित करें";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var replyCount_one$7="1 रिप्लाई";var replyCount_other$7="{{ count }} रिप्लाई";var searchResultsCount_one$7="1 परिणाम";var searchResultsCount_other$7="{{ count }} परिणाम";var unreadMessagesSeparatorText_one$5="1 अपठित संदेश";var unreadMessagesSeparatorText_other$7="{{count}} अपठित संदेश";var hiTranslations = {"Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Drag your files here":"अपनी फ़ाइलें यहाँ खींचें","Drag your files here to add to your post":"अपनी फ़ाइलें यहाँ खींचें और अपने पोस्ट में जोड़ने के लिए","Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error fetching reactions":"प्रतिक्रियाएँ लोड करने में त्रुटि","Error marking message unread":"संदेश को अपठित चिह्नित करने में त्रुटि","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"संदेश को अपठित मार्क करने में त्रुटि। सबसे नए 100 चैनल संदेश से पहले के सभी अपठित संदेशों को अपठित मार्क नहीं किया जा सकता है।","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}","Failed to jump to the first unread message":"पहले अपठित संदेश पर जाने में विफल","Failed to mark channel as read":"चैनल को पढ़ा हुआ चिह्नित करने में विफल।",Flag:Flag$7,"Latest Messages":"नवीनतम संदेश","Load more":"और लोड करें","Mark as unread":"अपठित चिह्नित करें",Menu:Menu$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया","Messages have been marked unread.":"संदेशों को अपठित चिह्नित किया गया है।",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No chats here yet…":"यहां अभी तक कोई चैट नहीं...","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send Anyway":"वैसे भी भेजें","Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है",Shuffle:Shuffle$7,"Slow Mode ON":"स्लो मोड ऑन","Some of the files will not be accepted":"कुछ फ़ाइलें स्वीकार नहीं की जाएंगी","This message did not meet our content guidelines":"यह संदेश हमारे सामग्री दिशानिर्देशों के अनुरूप नहीं था","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Unread messages":"अपठित संदेश","Upload type: \"{{ type }}\" is not allowed":"अपलोड प्रकार: \"{{ type }}\" की अनुमति नहीं है","User uploaded content":"उपयोगकर्ता अपलोड की गई सामग्री","Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं","aria/Attachment":"अनुलग्नक","aria/Cancel Reply":"उत्तर रद्द करें","aria/Cancel upload":"अपलोड रद्द करें","aria/Channel list":"चैनल सूची","aria/Channel search results":"चैनल खोज परिणाम","aria/Close thread":"थ्रेड बंद करें","aria/Emoji picker":"इमोजी चुनने वाला","aria/File input":"फ़ाइल इनपुट","aria/File upload":"फ़ाइल अपलोड","aria/Image input":"छवि इनपुट","aria/Load More Channels":"और चैनल लोड करें","aria/Menu":"मेन्यू","aria/Message Options":"संदेश विकल्प","aria/Open Message Actions Menu":"संदेश क्रिया मेन्यू खोलें","aria/Open Reaction Selector":"प्रतिक्रिया चयनकर्ता खोलें","aria/Open Thread":"थ्रेड खोलें","aria/Reaction list":"प्रतिक्रिया सूची","aria/Retry upload":"अपलोड पुनः प्रयास करें","aria/Send":"भेजें","ban-command-args":"[@उपयोगकर्तनाम] [पाठ]","ban-command-description":"एक उपयोगकर्ता को प्रतिषेधित करें","giphy-command-args":"[पाठ]","giphy-command-description":"चैनल पर एक क्रॉफिल जीआइएफ पोस्ट करें",live:live$7,"mute-command-args":"[@उपयोगकर्तनाम]","mute-command-description":"एक उपयोगकर्ता को म्यूट करें",replyCount_one:replyCount_one$7,replyCount_other:replyCount_other$7,searchResultsCount_one:searchResultsCount_one$7,searchResultsCount_other:searchResultsCount_other$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","unban-command-args":"[@उपयोगकर्तनाम]","unban-command-description":"एक उपयोगकर्ता को प्रतिषेध से मुक्त करें","unmute-command-args":"[@उपयोगकर्तनाम]","unmute-command-description":"एक उपयोगकर्ता को अनम्यूट करें",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$5,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$7,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} अपठित","{{count}} unread_other":"{{count}} अपठित","🏙 Attachment...":"🏙 अटैचमेंट"};
5803
5837
 
5804
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Menu$6="Menù";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Shuffle$6="Mescolare";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var replyCount_many$2="{{ count }} risposte";var replyCount_one$6="Una risposta";var replyCount_other$6="{{ count }} risposte";var searchResultsCount_many$2="{{ count }} risultati";var searchResultsCount_one$6="1 risultato";var searchResultsCount_other$6="{{ count }} risultati";var unreadMessagesSeparatorText_many$2="{{count}} messaggi non letti";var unreadMessagesSeparatorText_one$4="1 messaggio non letto";var unreadMessagesSeparatorText_other$6="{{count}} messaggi non letti";var itTranslations = {"Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Drag your files here":"Trascina i tuoi file qui","Drag your files here to add to your post":"Trascina i tuoi file qui per aggiungerli al tuo post","Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error fetching reactions":"Errore nel caricamento delle reazioni","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Errore durante la marcatura del messaggio come non letto. Impossibile marcare messaggi non letti più vecchi dei più recenti 100 messaggi del canale.","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}","Failed to jump to the first unread message":"Impossibile passare al primo messaggio non letto",Flag:Flag$6,"Latest Messages":"Ultimi messaggi","Load more":"Carica di più","Mark as unread":"Contrassegna come non letto",Menu:Menu$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato","Messages have been marked unread.":"I messaggi sono stati contrassegnati come non letti.",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No chats here yet…":"Non ci sono ancora messaggi qui...","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...",Shuffle:Shuffle$6,"Slow Mode ON":"Modalità lenta attivata","Some of the files will not be accepted":"Alcuni dei file non saranno accettati","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Unread messages":"Messaggi non letti","Upload type: \"{{ type }}\" is not allowed":"Tipo di caricamento: \"{{ type }}\" non è consentito","User uploaded content":"Contenuto caricato dall'utente","Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file","ban-command-args":"[@nomeutente] [testo]","ban-command-description":"Vietare un utente","giphy-command-args":"[testo]","giphy-command-description":"Pubblica un gif casuale sul canale",live:live$6,"mute-command-args":"[@nomeutente]","mute-command-description":"Silenzia un utente",replyCount_many:replyCount_many$2,replyCount_one:replyCount_one$6,replyCount_other:replyCount_other$6,searchResultsCount_many:searchResultsCount_many$2,searchResultsCount_one:searchResultsCount_one$6,searchResultsCount_other:searchResultsCount_other$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","unban-command-args":"[@nomeutente]","unban-command-description":"Togliere il divieto a un utente","unmute-command-args":"[@nomeutente]","unmute-command-description":"Togliere il silenzio a un utente",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$2,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$4,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$6,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_many":"{{count}} non letti","{{count}} unread_one":"{{count}} non letto","{{count}} unread_other":"{{count}} non letti","🏙 Attachment...":"🏙 Allegato..."};
5838
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Menu$6="Menù";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Shuffle$6="Mescolare";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var replyCount_many$2="{{ count }} risposte";var replyCount_one$6="Una risposta";var replyCount_other$6="{{ count }} risposte";var searchResultsCount_many$2="{{ count }} risultati";var searchResultsCount_one$6="1 risultato";var searchResultsCount_other$6="{{ count }} risultati";var unreadMessagesSeparatorText_many$2="{{count}} messaggi non letti";var unreadMessagesSeparatorText_one$4="1 messaggio non letto";var unreadMessagesSeparatorText_other$6="{{count}} messaggi non letti";var itTranslations = {"Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Drag your files here":"Trascina i tuoi file qui","Drag your files here to add to your post":"Trascina i tuoi file qui per aggiungerli al tuo post","Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error fetching reactions":"Errore nel caricamento delle reazioni","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Errore durante la marcatura del messaggio come non letto. Impossibile marcare messaggi non letti più vecchi dei più recenti 100 messaggi del canale.","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}","Failed to jump to the first unread message":"Impossibile passare al primo messaggio non letto","Failed to mark channel as read":"Impossibile contrassegnare il canale come letto",Flag:Flag$6,"Latest Messages":"Ultimi messaggi","Load more":"Carica di più","Mark as unread":"Contrassegna come non letto",Menu:Menu$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato","Messages have been marked unread.":"I messaggi sono stati contrassegnati come non letti.",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No chats here yet…":"Non ci sono ancora messaggi qui...","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send Anyway":"Invia comunque","Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...",Shuffle:Shuffle$6,"Slow Mode ON":"Modalità lenta attivata","Some of the files will not be accepted":"Alcuni dei file non saranno accettati","This message did not meet our content guidelines":"Questo messaggio non soddisfa le nostre linee guida sui contenuti","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Unread messages":"Messaggi non letti","Upload type: \"{{ type }}\" is not allowed":"Tipo di caricamento: \"{{ type }}\" non è consentito","User uploaded content":"Contenuto caricato dall'utente","Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file","aria/Attachment":"Allegato","aria/Cancel Reply":"Annulla risposta","aria/Cancel upload":"Annulla caricamento","aria/Channel list":"Elenco dei canali","aria/Channel search results":"Risultati della ricerca dei canali","aria/Close thread":"Chiudi discussione","aria/Emoji picker":"Selettore di emoji","aria/File input":"Input di file","aria/File upload":"Caricamento di file","aria/Image input":"Input di immagine","aria/Load More Channels":"Carica altri canali","aria/Menu":"Menu","aria/Message Options":"Opzioni di messaggio","aria/Open Message Actions Menu":"Apri il menu delle azioni di messaggio","aria/Open Reaction Selector":"Apri il selettore di reazione","aria/Open Thread":"Apri discussione","aria/Reaction list":"Elenco delle reazioni","aria/Retry upload":"Riprova caricamento","aria/Send":"Invia","ban-command-args":"[@nomeutente] [testo]","ban-command-description":"Vietare un utente","giphy-command-args":"[testo]","giphy-command-description":"Pubblica un gif casuale sul canale",live:live$6,"mute-command-args":"[@nomeutente]","mute-command-description":"Silenzia un utente",replyCount_many:replyCount_many$2,replyCount_one:replyCount_one$6,replyCount_other:replyCount_other$6,searchResultsCount_many:searchResultsCount_many$2,searchResultsCount_one:searchResultsCount_one$6,searchResultsCount_other:searchResultsCount_other$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","unban-command-args":"[@nomeutente]","unban-command-description":"Togliere il divieto a un utente","unmute-command-args":"[@nomeutente]","unmute-command-description":"Togliere il silenzio a un utente",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$2,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$4,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$6,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_many":"{{count}} non letti","{{count}} unread_one":"{{count}} non letto","{{count}} unread_other":"{{count}} non letti","🏙 Attachment...":"🏙 Allegato..."};
5805
5839
 
5806
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Menu$5="メニュー";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Shuffle$5="シャッフル";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var replyCount_one$5="1件の返信";var replyCount_other$5="{{ count }} 返信";var searchResultsCount_one$5="1件の結果";var searchResultsCount_other$5="{{ count }}件の結果";var unreadMessagesSeparatorText_other$5="未読メッセージ {{count}} 件";var jaTranslations = {"Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Drag your files here":"ここにファイルをドラッグ","Drag your files here to add to your post":"投稿に追加するためにここにファイルをドラッグ","Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error fetching reactions":"反応の読み込みエラー","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"メッセージを未読にする際にエラーが発生しました。最新の100件のチャンネルメッセージより古い未読メッセージはマークできません。","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}","Failed to jump to the first unread message":"最初の未読メッセージにジャンプできませんでした",Flag:Flag$5,"Latest Messages":"最新のメッセージ","Load more":"もっと読み込む","Mark as unread":"未読としてマーク",Menu:Menu$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました","Messages have been marked unread.":"メッセージは未読としてマークされました。",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No chats here yet…":"ここにはまだチャットはありません…","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...",Shuffle:Shuffle$5,"Slow Mode ON":"スローモードオン","Some of the files will not be accepted":"一部のファイルは受け付けられません","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Unread messages":"未読メッセージ","Upload type: \"{{ type }}\" is not allowed":"アップロードタイプ:\"{{ type }}\"は許可されていません","User uploaded content":"ユーザーがアップロードしたコンテンツ","Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました","ban-command-args":"[@ユーザ名] [テキスト]","ban-command-description":"ユーザーを禁止する","giphy-command-args":"[テキスト]","giphy-command-description":"チャンネルにランダムなGIFを投稿する",live:live$5,"mute-command-args":"[@ユーザ名]","mute-command-description":"ユーザーをミュートする",replyCount_one:replyCount_one$5,replyCount_other:replyCount_other$5,searchResultsCount_one:searchResultsCount_one$5,searchResultsCount_other:searchResultsCount_other$5,"this content could not be displayed":"このコンテンツは表示できませんでした","unban-command-args":"[@ユーザ名]","unban-command-description":"ユーザーの禁止を解除する","unmute-command-args":"[@ユーザ名]","unmute-command-description":"ユーザーのミュートを解除する",unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$5,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} オンライン","{{count}} unread_other":"{{count}} 未読","🏙 Attachment...":"🏙 アタッチメント..."};
5840
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Menu$5="メニュー";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Shuffle$5="シャッフル";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var replyCount_one$5="1件の返信";var replyCount_other$5="{{ count }} 返信";var searchResultsCount_one$5="1件の結果";var searchResultsCount_other$5="{{ count }}件の結果";var unreadMessagesSeparatorText_other$5="未読メッセージ {{count}} 件";var jaTranslations = {"Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Drag your files here":"ここにファイルをドラッグ","Drag your files here to add to your post":"投稿に追加するためにここにファイルをドラッグ","Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error fetching reactions":"反応の読み込みエラー","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"メッセージを未読にする際にエラーが発生しました。最新の100件のチャンネルメッセージより古い未読メッセージはマークできません。","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}","Failed to jump to the first unread message":"最初の未読メッセージにジャンプできませんでした","Failed to mark channel as read":"チャンネルを既読にすることができませんでした",Flag:Flag$5,"Latest Messages":"最新のメッセージ","Load more":"もっと読み込む","Mark as unread":"未読としてマーク",Menu:Menu$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました","Messages have been marked unread.":"メッセージは未読としてマークされました。",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No chats here yet…":"ここにはまだチャットはありません…","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send Anyway":"とにかく送信する","Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...",Shuffle:Shuffle$5,"Slow Mode ON":"スローモードオン","Some of the files will not be accepted":"一部のファイルは受け付けられません","This message did not meet our content guidelines":"このメッセージはコンテンツガイドラインに適合していません","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Unread messages":"未読メッセージ","Upload type: \"{{ type }}\" is not allowed":"アップロードタイプ:\"{{ type }}\"は許可されていません","User uploaded content":"ユーザーがアップロードしたコンテンツ","Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました","aria/Attachment":"添付ファイル","aria/Cancel Reply":"返信をキャンセル","aria/Cancel upload":"アップロードをキャンセル","aria/Channel list":"チャンネル一覧","aria/Channel search results":"チャンネル検索結果","aria/Close thread":"スレッドを閉じる","aria/Emoji picker":"絵文字ピッカー","aria/File input":"ファイル入力","aria/File upload":"ファイルアップロード","aria/Image input":"画像入力","aria/Load More Channels":"さらにチャンネルを読み込む","aria/Menu":"メニュー","aria/Message Options":"メッセージオプション","aria/Open Message Actions Menu":"メッセージアクションメニューを開く","aria/Open Reaction Selector":"リアクションセレクターを開く","aria/Open Thread":"スレッドを開く","aria/Reaction list":"リアクション一覧","aria/Retry upload":"アップロードを再試行","aria/Send":"送信","ban-command-args":"[@ユーザ名] [テキスト]","ban-command-description":"ユーザーを禁止する","giphy-command-args":"[テキスト]","giphy-command-description":"チャンネルにランダムなGIFを投稿する",live:live$5,"mute-command-args":"[@ユーザ名]","mute-command-description":"ユーザーをミュートする",replyCount_one:replyCount_one$5,replyCount_other:replyCount_other$5,searchResultsCount_one:searchResultsCount_one$5,searchResultsCount_other:searchResultsCount_other$5,"this content could not be displayed":"このコンテンツは表示できませんでした","unban-command-args":"[@ユーザ名]","unban-command-description":"ユーザーの禁止を解除する","unmute-command-args":"[@ユーザ名]","unmute-command-description":"ユーザーのミュートを解除する",unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$5,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} オンライン","{{count}} unread_other":"{{count}} 未読","🏙 Attachment...":"🏙 アタッチメント..."};
5807
5841
 
5808
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Menu$4="메뉴";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Shuffle$4="셔플";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var replyCount_one$4="답장 1개";var replyCount_other$4="{{ count }} 답장";var searchResultsCount_one$4="1개의 결과";var searchResultsCount_other$4="{{ count }}개 결과";var unreadMessagesSeparatorText_other$4="읽지 않은 메시지 {{count}}개";var koTranslations = {"Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Drag your files here":"여기로 파일을 끌어다 놓으세요","Drag your files here to add to your post":"게시물에 추가하려면 파일을 여기로 끌어다 놓으세요","Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error fetching reactions":"반응 로딩 오류.","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"메시지를 읽지 않음으로 표시하는 중 오류가 발생했습니다. 가장 최근 100개의 채널 메시지보다 오래된 읽지 않은 메시지는 표시할 수 없습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}","Failed to jump to the first unread message":"첫 번째 읽지 않은 메시지로 이동하지 못했습니다",Flag:Flag$4,"Latest Messages":"최신 메시지","Load more":"더 불러오기","Mark as unread":"읽지 않음으로 표시",Menu:Menu$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다","Messages have been marked unread.":"메시지가 읽지 않음으로 표시되었습니다.",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No chats here yet…":"아직 채팅이 없습니다...","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...",Shuffle:Shuffle$4,"Slow Mode ON":"슬로우 모드 켜짐","Some of the files will not be accepted":"일부 파일은 허용되지 않을 수 있습니다","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Unread messages":"읽지 않은 메시지","Upload type: \"{{ type }}\" is not allowed":"업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.","User uploaded content":"사용자 업로드 콘텐츠","Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.","ban-command-args":"[@사용자이름] [텍스트]","ban-command-description":"사용자를 차단","giphy-command-args":"[텍스트]","giphy-command-description":"채널에 무작위 GIF 게시",live:live$4,"mute-command-args":"[@사용자이름]","mute-command-description":"사용자 음소거",replyCount_one:replyCount_one$4,replyCount_other:replyCount_other$4,searchResultsCount_one:searchResultsCount_one$4,searchResultsCount_other:searchResultsCount_other$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","unban-command-args":"[@사용자이름]","unban-command-description":"사용자 차단 해제","unmute-command-args":"[@사용자이름]","unmute-command-description":"사용자 음소거 해제",unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$4,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} 온라인","{{count}} unread_other":"{{count}} 읽지 않음","🏙 Attachment...":"🏙 부착..."};
5842
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Menu$4="메뉴";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Shuffle$4="셔플";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var replyCount_one$4="답장 1개";var replyCount_other$4="{{ count }} 답장";var searchResultsCount_one$4="1개의 결과";var searchResultsCount_other$4="{{ count }}개 결과";var unreadMessagesSeparatorText_other$4="읽지 않은 메시지 {{count}}개";var koTranslations = {"Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Drag your files here":"여기로 파일을 끌어다 놓으세요","Drag your files here to add to your post":"게시물에 추가하려면 파일을 여기로 끌어다 놓으세요","Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error fetching reactions":"반응 로딩 오류.","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"메시지를 읽지 않음으로 표시하는 중 오류가 발생했습니다. 가장 최근 100개의 채널 메시지보다 오래된 읽지 않은 메시지는 표시할 수 없습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}","Failed to jump to the first unread message":"첫 번째 읽지 않은 메시지로 이동하지 못했습니다","Failed to mark channel as read":"채널을 읽음으로 표시하는 데 실패했습니다",Flag:Flag$4,"Latest Messages":"최신 메시지","Load more":"더 불러오기","Mark as unread":"읽지 않음으로 표시",Menu:Menu$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다","Messages have been marked unread.":"메시지가 읽지 않음으로 표시되었습니다.",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No chats here yet…":"아직 채팅이 없습니다...","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send Anyway":"어쨌든 보내기","Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...",Shuffle:Shuffle$4,"Slow Mode ON":"슬로우 모드 켜짐","Some of the files will not be accepted":"일부 파일은 허용되지 않을 수 있습니다","This message did not meet our content guidelines":"이 메시지는 콘텐츠 가이드라인을 충족하지 않습니다.","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Unread messages":"읽지 않은 메시지","Upload type: \"{{ type }}\" is not allowed":"업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.","User uploaded content":"사용자 업로드 콘텐츠","Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.","aria/Attachment":"첨부 파일","aria/Cancel Reply":"답장 취소","aria/Cancel upload":"업로드 취소","aria/Channel list":"채널 목록","aria/Channel search results":"채널 검색 결과","aria/Close thread":"스레드 닫기","aria/Emoji picker":"이모지 선택기","aria/File input":"파일 입력","aria/File upload":"파일 업로드","aria/Image input":"이미지 입력","aria/Load More Channels":"더 많은 채널 불러오기","aria/Menu":"메뉴","aria/Message Options":"메시지 옵션","aria/Open Message Actions Menu":"메시지 액션 메뉴 열기","aria/Open Reaction Selector":"반응 선택기 열기","aria/Open Thread":"스레드 열기","aria/Reaction list":"반응 목록","aria/Retry upload":"업로드 다시 시도","aria/Send":"보내기","ban-command-args":"[@사용자이름] [텍스트]","ban-command-description":"사용자를 차단","giphy-command-args":"[텍스트]","giphy-command-description":"채널에 무작위 GIF 게시",live:live$4,"mute-command-args":"[@사용자이름]","mute-command-description":"사용자 음소거",replyCount_one:replyCount_one$4,replyCount_other:replyCount_other$4,searchResultsCount_one:searchResultsCount_one$4,searchResultsCount_other:searchResultsCount_other$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","unban-command-args":"[@사용자이름]","unban-command-description":"사용자 차단 해제","unmute-command-args":"[@사용자이름]","unmute-command-description":"사용자 음소거 해제",unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$4,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} 온라인","{{count}} unread_other":"{{count}} 읽지 않음","🏙 Attachment...":"🏙 부착..."};
5809
5843
 
5810
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Menu$3="Menu";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Shuffle$3="Schudden";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var replyCount_one$3="1 antwoord";var replyCount_other$3="{{ count }} antwoorden";var searchResultsCount_one$3="1 resultaat";var searchResultsCount_other$3="{{ count }} resultaten";var unreadMessagesSeparatorText_one$3="1 ongelezen bericht";var unreadMessagesSeparatorText_other$3="{{count}} ongelezen berichten";var nlTranslations = {"Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Drag your files here":"Sleep je bestanden hier naartoe","Drag your files here to add to your post":"Sleep je bestanden hier naartoe om aan je bericht toe te voegen","Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error fetching reactions":"Fout bij het laden van reacties","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Fout bij markeren van bericht als ongelezen. Kan geen oudere ongelezen berichten markeren dan de nieuwste 100 kanaalberichten.","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}","Failed to jump to the first unread message":"Niet gelukt om naar het eerste ongelezen bericht te springen",Flag:Flag$3,"Latest Messages":"Laatste berichten","Load more":"Meer laden","Mark as unread":"Markeren als ongelezen",Menu:Menu$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet","Messages have been marked unread.":"Berichten zijn gemarkeerd als ongelezen.",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No chats here yet…":"Nog geen chats hier...","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...",Shuffle:Shuffle$3,"Slow Mode ON":"Langzame modus aan","Some of the files will not be accepted":"Sommige bestanden zullen niet worden geaccepteerd","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Unread messages":"Ongelezen berichten","Upload type: \"{{ type }}\" is not allowed":"Uploadtype: \"{{ type }}\" is niet toegestaan","User uploaded content":"Gebruikersgeüploade inhoud","Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt","ban-command-args":"[@gebruikersnaam] [tekst]","ban-command-description":"Een gebruiker verbannen","giphy-command-args":"[tekst]","giphy-command-description":"Plaats een willekeurige gif in het kanaal",live:live$3,"mute-command-args":"[@gebruikersnaam]","mute-command-description":"Een gebruiker dempen",replyCount_one:replyCount_one$3,replyCount_other:replyCount_other$3,searchResultsCount_one:searchResultsCount_one$3,searchResultsCount_other:searchResultsCount_other$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","unban-command-args":"[@gebruikersnaam]","unban-command-description":"Een gebruiker debannen","unmute-command-args":"[@gebruikersnaam]","unmute-command-description":"Een gebruiker niet meer dempen",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$3,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$3,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} ongelezen","{{count}} unread_other":"{{count}} ongelezen","🏙 Attachment...":"🏙 Bijlage..."};
5844
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Menu$3="Menu";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Shuffle$3="Schudden";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var replyCount_one$3="1 antwoord";var replyCount_other$3="{{ count }} antwoorden";var searchResultsCount_one$3="1 resultaat";var searchResultsCount_other$3="{{ count }} resultaten";var unreadMessagesSeparatorText_one$3="1 ongelezen bericht";var unreadMessagesSeparatorText_other$3="{{count}} ongelezen berichten";var nlTranslations = {"Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Drag your files here":"Sleep je bestanden hier naartoe","Drag your files here to add to your post":"Sleep je bestanden hier naartoe om aan je bericht toe te voegen","Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error fetching reactions":"Fout bij het laden van reacties","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Fout bij markeren van bericht als ongelezen. Kan geen oudere ongelezen berichten markeren dan de nieuwste 100 kanaalberichten.","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}","Failed to jump to the first unread message":"Niet gelukt om naar het eerste ongelezen bericht te springen","Failed to mark channel as read":"Kanaal kon niet als gelezen worden gemarkeerd",Flag:Flag$3,"Latest Messages":"Laatste berichten","Load more":"Meer laden","Mark as unread":"Markeren als ongelezen",Menu:Menu$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet","Messages have been marked unread.":"Berichten zijn gemarkeerd als ongelezen.",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No chats here yet…":"Nog geen chats hier...","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send Anyway":"Toch versturen","Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...",Shuffle:Shuffle$3,"Slow Mode ON":"Langzame modus aan","Some of the files will not be accepted":"Sommige bestanden zullen niet worden geaccepteerd","This message did not meet our content guidelines":"Dit bericht voldeed niet aan onze inhoudsrichtlijnen","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Unread messages":"Ongelezen berichten","Upload type: \"{{ type }}\" is not allowed":"Uploadtype: \"{{ type }}\" is niet toegestaan","User uploaded content":"Gebruikersgeüploade inhoud","Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt","aria/Attachment":"Bijlage","aria/Cancel Reply":"Antwoord annuleren","aria/Cancel upload":"Upload annuleren","aria/Channel list":"Kanaallijst","aria/Channel search results":"Zoekresultaten voor kanalen","aria/Close thread":"Draad sluiten","aria/Emoji picker":"Emoji kiezer","aria/File input":"Bestandsinvoer","aria/File upload":"Bestand uploaden","aria/Image input":"Afbeelding invoeren","aria/Load More Channels":"Meer kanalen laden","aria/Menu":"Menu","aria/Message Options":"Berichtopties","aria/Open Message Actions Menu":"Menu voor berichtacties openen","aria/Open Reaction Selector":"Reactiekiezer openen","aria/Open Thread":"Draad openen","aria/Reaction list":"Reactielijst","aria/Retry upload":"Upload opnieuw proberen","aria/Send":"Verzenden","ban-command-args":"[@gebruikersnaam] [tekst]","ban-command-description":"Een gebruiker verbannen","giphy-command-args":"[tekst]","giphy-command-description":"Plaats een willekeurige gif in het kanaal",live:live$3,"mute-command-args":"[@gebruikersnaam]","mute-command-description":"Een gebruiker dempen",replyCount_one:replyCount_one$3,replyCount_other:replyCount_other$3,searchResultsCount_one:searchResultsCount_one$3,searchResultsCount_other:searchResultsCount_other$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","unban-command-args":"[@gebruikersnaam]","unban-command-description":"Een gebruiker debannen","unmute-command-args":"[@gebruikersnaam]","unmute-command-description":"Een gebruiker niet meer dempen",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$3,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$3,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_one":"{{count}} ongelezen","{{count}} unread_other":"{{count}} ongelezen","🏙 Attachment...":"🏙 Bijlage..."};
5811
5845
 
5812
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$2="Cancelar";var Close$2="Fechar";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Reportar";var Menu$2="Menu";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Fixar";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Enviar";var Shuffle$2="Embaralhar";var Thread$3="Fio";var Unmute$2="Ativar som";var Unpin$2="Liberar";var live$2="ao vivo";var replyCount_many$1="{{ count }} respostas";var replyCount_one$2="1 resposta";var replyCount_other$2="{{ count }} respostas";var searchResultsCount_many$1="{{ count }} resultados";var searchResultsCount_one$2="1 resultado";var searchResultsCount_other$2="{{ count }} resultados";var unreadMessagesSeparatorText_many$1="{{count}} mensagens não lidas";var unreadMessagesSeparatorText_one$2="1 mensagem não lida";var unreadMessagesSeparatorText_other$2="{{count}} mensagens não lidas";var ptTranslations = {"Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Comandos correspondentes","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora...",Delete:Delete$2,Delivered:Delivered$2,"Drag your files here":"Arraste seus arquivos aqui","Drag your files here to add to your post":"Arraste seus arquivos aqui para adicionar ao seu post","Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia...","Error adding flag":"Erro ao reportar","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error fetching reactions":"Erro ao carregar reacções","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Erro ao marcar a mensagem como não lida. Não é possível marcar mensagens não lidas mais antigas do que as 100 mensagens mais recentes do canal.","Error muting a user ...":"Erro ao silenciar um usuário...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}","Failed to jump to the first unread message":"Falha ao pular para a primeira mensagem não lida",Flag:Flag$2,"Latest Messages":"Mensagens mais recentes","Load more":"Carregar mais","Mark as unread":"Marcar como não lida",Menu:Menu$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi reportada com sucesso","Message pinned":"Mensagem fixada","Messages have been marked unread.":"Mensagens foram marcadas como não lidas.",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No chats here yet…":"Ainda não há conversas aqui...","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas correspondentes",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando...",Shuffle:Shuffle$2,"Slow Mode ON":"Modo lento LIGADO","Some of the files will not be accepted":"Alguns dos arquivos não serão aceitos","This message was deleted...":"Esta mensagem foi excluída...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Unread messages":"Mensagens não lidas","Upload type: \"{{ type }}\" is not allowed":"Tipo de upload: \"{{ type }}\" não é permitido","User uploaded content":"Conteúdo enviado pelo usuário","Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos","ban-command-args":"[@nomedeusuário] [texto]","ban-command-description":"Banir um usuário","giphy-command-args":"[texto]","giphy-command-description":"Postar um gif aleatório no canal",live:live$2,"mute-command-args":"[@nomedeusuário]","mute-command-description":"Silenciar um usuário",replyCount_many:replyCount_many$1,replyCount_one:replyCount_one$2,replyCount_other:replyCount_other$2,searchResultsCount_many:searchResultsCount_many$1,searchResultsCount_one:searchResultsCount_one$2,searchResultsCount_other:searchResultsCount_other$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","unban-command-args":"[@nomedeusuário]","unban-command-description":"Desbanir um usuário","unmute-command-args":"[@nomedeusuário]","unmute-command-description":"Retirar o silenciamento de um usuário",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$1,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$2,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$2,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_many":"{{count}} não lidos","{{count}} unread_one":"{{count}} não lido","{{count}} unread_other":"{{count}} não lidos","🏙 Attachment...":"🏙 Anexo..."};
5846
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$2="Cancelar";var Close$2="Fechar";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Reportar";var Menu$2="Menu";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Fixar";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Enviar";var Shuffle$2="Embaralhar";var Thread$3="Fio";var Unmute$2="Ativar som";var Unpin$2="Liberar";var live$2="ao vivo";var replyCount_many$1="{{ count }} respostas";var replyCount_one$2="1 resposta";var replyCount_other$2="{{ count }} respostas";var searchResultsCount_many$1="{{ count }} resultados";var searchResultsCount_one$2="1 resultado";var searchResultsCount_other$2="{{ count }} resultados";var unreadMessagesSeparatorText_many$1="{{count}} mensagens não lidas";var unreadMessagesSeparatorText_one$2="1 mensagem não lida";var unreadMessagesSeparatorText_other$2="{{count}} mensagens não lidas";var ptTranslations = {"Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Comandos correspondentes","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora...",Delete:Delete$2,Delivered:Delivered$2,"Drag your files here":"Arraste seus arquivos aqui","Drag your files here to add to your post":"Arraste seus arquivos aqui para adicionar ao seu post","Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia...","Error adding flag":"Erro ao reportar","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error fetching reactions":"Erro ao carregar reacções","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Erro ao marcar a mensagem como não lida. Não é possível marcar mensagens não lidas mais antigas do que as 100 mensagens mais recentes do canal.","Error muting a user ...":"Erro ao silenciar um usuário...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}","Failed to jump to the first unread message":"Falha ao pular para a primeira mensagem não lida","Failed to mark channel as read":"Falha ao marcar o canal como lido",Flag:Flag$2,"Latest Messages":"Mensagens mais recentes","Load more":"Carregar mais","Mark as unread":"Marcar como não lida",Menu:Menu$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi reportada com sucesso","Message pinned":"Mensagem fixada","Messages have been marked unread.":"Mensagens foram marcadas como não lidas.",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No chats here yet…":"Ainda não há conversas aqui...","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas correspondentes",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send Anyway":"Enviar de qualquer forma","Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando...",Shuffle:Shuffle$2,"Slow Mode ON":"Modo lento LIGADO","Some of the files will not be accepted":"Alguns dos arquivos não serão aceitos","This message did not meet our content guidelines":"Esta mensagem não corresponde às nossas directrizes de conteúdo","This message was deleted...":"Esta mensagem foi excluída...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Unread messages":"Mensagens não lidas","Upload type: \"{{ type }}\" is not allowed":"Tipo de upload: \"{{ type }}\" não é permitido","User uploaded content":"Conteúdo enviado pelo usuário","Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos","aria/Attachment":"Bijlage","aria/Cancel Reply":"Antwoord annuleren","aria/Cancel upload":"Upload annuleren","aria/Channel list":"Kanaallijst","aria/Channel search results":"Zoekresultaten voor kanalen","aria/Close thread":"Draad sluiten","aria/Emoji picker":"Emoji kiezer","aria/File input":"Bestandsinvoer","aria/File upload":"Bestand uploaden","aria/Image input":"Afbeelding invoeren","aria/Load More Channels":"Meer kanalen laden","aria/Menu":"Menu","aria/Message Options":"Berichtopties","aria/Open Message Actions Menu":"Menu voor berichtacties openen","aria/Open Reaction Selector":"Reactiekiezer openen","aria/Open Thread":"Draad openen","aria/Reaction list":"Reactielijst","aria/Retry upload":"Upload opnieuw proberen","aria/Send":"Verzenden","ban-command-args":"[@nomedeusuário] [texto]","ban-command-description":"Banir um usuário","giphy-command-args":"[texto]","giphy-command-description":"Postar um gif aleatório no canal",live:live$2,"mute-command-args":"[@nomedeusuário]","mute-command-description":"Silenciar um usuário",replyCount_many:replyCount_many$1,replyCount_one:replyCount_one$2,replyCount_other:replyCount_other$2,searchResultsCount_many:searchResultsCount_many$1,searchResultsCount_one:searchResultsCount_one$2,searchResultsCount_other:searchResultsCount_other$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","unban-command-args":"[@nomedeusuário]","unban-command-description":"Desbanir um usuário","unmute-command-args":"[@nomedeusuário]","unmute-command-description":"Retirar o silenciamento de um usuário",unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many$1,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$2,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$2,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","{{count}} unread_many":"{{count}} não lidos","{{count}} unread_one":"{{count}} não lido","{{count}} unread_other":"{{count}} não lidos","🏙 Attachment...":"🏙 Anexo..."};
5813
5847
 
5814
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Menu$1="Меню";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Shuffle$1="Перемешать";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var replyCount_few="{{ count }} ответов";var replyCount_many="{{ count }} ответов";var replyCount_one$1="1 ответ";var replyCount_other$1="{{ count }} ответов";var searchResultsCount_few="{{ count }} результата";var searchResultsCount_many="{{ count }} результатов";var searchResultsCount_one$1="1 результат";var searchResultsCount_other$1="{{ count }} результатов";var unreadMessagesSeparatorText_few="1 непрочитанное сообщения";var unreadMessagesSeparatorText_many="{{count}} непрочитанных сообщений";var unreadMessagesSeparatorText_one$1="1 непрочитанное сообщение";var unreadMessagesSeparatorText_other$1="{{count}} непрочитанных сообщений";var ruTranslations = {"Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Drag your files here":"Перетащите ваши файлы сюда","Drag your files here to add to your post":"Перетащите ваши файлы сюда, чтобы добавить их в ваш пост","Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error fetching reactions":"Ошибка при загрузке реакций","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Ошибка при отметке сообщения как непрочитанного. Невозможно отметить как непрочитанные сообщения старше последних 100 сообщений в канале.","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}","Failed to jump to the first unread message":"Не удалось перейти к первому непрочитанному сообщению",Flag:Flag$1,"Latest Messages":"Последние сообщения","Load more":"Загрузить больше","Mark as unread":"Отметить как непрочитанное",Menu:Menu$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено","Messages have been marked unread.":"Сообщения были отмечены как непрочитанные.",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No chats here yet…":"Здесь еще нет чатов...","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...",Shuffle:Shuffle$1,"Slow Mode ON":"Медленный режим включен","Some of the files will not be accepted":"Некоторые файлы не будут приняты","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Unread messages":"Непрочитанные сообщения","Upload type: \"{{ type }}\" is not allowed":"Тип загрузки: \"{{ type }}\" не разрешен","User uploaded content":"Пользователь загрузил контент","Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов","ban-command-args":"[@имяпользователя] [текст]","ban-command-description":"Заблокировать пользователя","giphy-command-args":"[текст]","giphy-command-description":"Опубликовать случайную GIF-анимацию в канале",live:live$1,"mute-command-args":"[@имяпользователя]","mute-command-description":"Выключить микрофон у пользователя",replyCount_few:replyCount_few,replyCount_many:replyCount_many,replyCount_one:replyCount_one$1,replyCount_other:replyCount_other$1,searchResultsCount_few:searchResultsCount_few,searchResultsCount_many:searchResultsCount_many,searchResultsCount_one:searchResultsCount_one$1,searchResultsCount_other:searchResultsCount_other$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","unban-command-args":"[@имяпользователя]","unban-command-description":"Разблокировать пользователя","unmute-command-args":"[@имяпользователя]","unmute-command-description":"Включить микрофон у пользователя",unreadMessagesSeparatorText_few:unreadMessagesSeparatorText_few,unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$1,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$1,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} в сети","{{count}} unread_few":"{{count}} непрочитанных","{{count}} unread_many":"{{count}} непрочитанных","{{count}} unread_one":"{{count}} непрочитанное","{{count}} unread_other":"{{count}} непрочитанных","🏙 Attachment...":"🏙 Вложение..."};
5848
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Menu$1="Меню";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Shuffle$1="Перемешать";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var replyCount_few="{{ count }} ответов";var replyCount_many="{{ count }} ответов";var replyCount_one$1="1 ответ";var replyCount_other$1="{{ count }} ответов";var searchResultsCount_few="{{ count }} результата";var searchResultsCount_many="{{ count }} результатов";var searchResultsCount_one$1="1 результат";var searchResultsCount_other$1="{{ count }} результатов";var unreadMessagesSeparatorText_few="1 непрочитанное сообщения";var unreadMessagesSeparatorText_many="{{count}} непрочитанных сообщений";var unreadMessagesSeparatorText_one$1="1 непрочитанное сообщение";var unreadMessagesSeparatorText_other$1="{{count}} непрочитанных сообщений";var ruTranslations = {"Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Drag your files here":"Перетащите ваши файлы сюда","Drag your files here to add to your post":"Перетащите ваши файлы сюда, чтобы добавить их в ваш пост","Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error fetching reactions":"Ошибка при загрузке реакций","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Ошибка при отметке сообщения как непрочитанного. Невозможно отметить как непрочитанные сообщения старше последних 100 сообщений в канале.","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}","Failed to jump to the first unread message":"Не удалось перейти к первому непрочитанному сообщению","Failed to mark channel as read":"Не удалось пометить канал как прочитанный",Flag:Flag$1,"Latest Messages":"Последние сообщения","Load more":"Загрузить больше","Mark as unread":"Отметить как непрочитанное",Menu:Menu$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено","Messages have been marked unread.":"Сообщения были отмечены как непрочитанные.",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No chats here yet…":"Здесь еще нет чатов...","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send Anyway":"Мне всё равно, отправить","Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...",Shuffle:Shuffle$1,"Slow Mode ON":"Медленный режим включен","Some of the files will not be accepted":"Некоторые файлы не будут приняты","This message did not meet our content guidelines":"Сообщение не соответствует правилам","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Unread messages":"Непрочитанные сообщения","Upload type: \"{{ type }}\" is not allowed":"Тип загрузки: \"{{ type }}\" не разрешен","User uploaded content":"Пользователь загрузил контент","Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов","aria/Attachment":"Вложение","aria/Cancel Reply":"Отменить ответ","aria/Cancel upload":"Отменить загрузку","aria/Channel list":"Список каналов","aria/Channel search results":"Результаты поиска по каналам","aria/Close thread":"Закрыть тему","aria/Emoji picker":"Выбор эмодзи","aria/File input":"Ввод файла","aria/File upload":"Загрузка файла","aria/Image input":"Ввод изображения","aria/Load More Channels":"Загрузить больше каналов","aria/Menu":"Меню","aria/Message Options":"Параметры сообщения","aria/Open Message Actions Menu":"Открыть меню действий с сообщениями","aria/Open Reaction Selector":"Открыть селектор реакций","aria/Open Thread":"Открыть тему","aria/Reaction list":"Список реакций","aria/Retry upload":"Повторить загрузку","aria/Send":"Отправить","ban-command-args":"[@имяпользователя] [текст]","ban-command-description":"Заблокировать пользователя","giphy-command-args":"[текст]","giphy-command-description":"Опубликовать случайную GIF-анимацию в канале",live:live$1,"mute-command-args":"[@имяпользователя]","mute-command-description":"Выключить микрофон у пользователя",replyCount_few:replyCount_few,replyCount_many:replyCount_many,replyCount_one:replyCount_one$1,replyCount_other:replyCount_other$1,searchResultsCount_few:searchResultsCount_few,searchResultsCount_many:searchResultsCount_many,searchResultsCount_one:searchResultsCount_one$1,searchResultsCount_other:searchResultsCount_other$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","unban-command-args":"[@имяпользователя]","unban-command-description":"Разблокировать пользователя","unmute-command-args":"[@имяпользователя]","unmute-command-description":"Включить микрофон у пользователя",unreadMessagesSeparatorText_few:unreadMessagesSeparatorText_few,unreadMessagesSeparatorText_many:unreadMessagesSeparatorText_many,unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one$1,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other$1,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} в сети","{{count}} unread_few":"{{count}} непрочитанных","{{count}} unread_many":"{{count}} непрочитанных","{{count}} unread_one":"{{count}} непрочитанное","{{count}} unread_other":"{{count}} непрочитанных","🏙 Attachment...":"🏙 Вложение..."};
5815
5849
 
5816
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Menu="Menü";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Shuffle="Karıştır";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var replyCount_one="1 cevap";var replyCount_other="{{ count }} cevaplar";var searchResultsCount_one="1 sonuç";var searchResultsCount_other="{{ count }} sonuç";var unreadMessagesSeparatorText_one="1 okunmamış mesaj";var unreadMessagesSeparatorText_other="{{count}} okunmamış mesaj";var trTranslations = {"Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Drag your files here":"Dosyalarınızı buraya sürükleyin","Drag your files here to add to your post":"Gönderinize eklemek için dosyalarınızı buraya sürükleyin","Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error fetching reactions":"Reaksiyonlar alınırken hata oluştu","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Mesajı okunmamış olarak işaretleme hatası. En yeni 100 kanal mesajından daha eski okunmamış mesajları işaretleme yapılamaz.","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}","Failed to jump to the first unread message":"İlk okunmamış mesaja atlamada hata oluştu",Flag:Flag,"Latest Messages":"Son Mesajlar","Load more":"Daha fazla yükle","Mark as unread":"Okunmamış olarak işaretle",Menu:Menu,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi","Messages have been marked unread.":"Mesajlar okunmamış olarak işaretlendi.",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No chats here yet…":"Henüz burada sohbet yok...","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...",Shuffle:Shuffle,"Slow Mode ON":"Yavaş Mod Açık","Some of the files will not be accepted":"Bazı dosyalar kabul edilmeyecektir","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Unread messages":"Okunmamış mesajlar","Upload type: \"{{ type }}\" is not allowed":"Yükleme türü: \"{{ type }}\" izin verilmez","User uploaded content":"Kullanıcı tarafından yüklenen içerik","Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız","ban-command-args":"[@kullanıcıadı] [metin]","ban-command-description":"Bir kullanıcıyı yasakla","giphy-command-args":"[metin]","giphy-command-description":"Rastgele bir gif'i kanala gönder",live:live,"mute-command-args":"[@kullanıcıadı]","mute-command-description":"Bir kullanıcının sesini kapat",replyCount_one:replyCount_one,replyCount_other:replyCount_other,searchResultsCount_one:searchResultsCount_one,searchResultsCount_other:searchResultsCount_other,"this content could not be displayed":"bu içerik gösterilemiyor","unban-command-args":"[@kullanıcıadı]","unban-command-description":"Bir kullanıcının yasağını kaldır","unmute-command-args":"[@kullanıcıadı]","unmute-command-description":"Bir kullanıcının sesini aç",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","{{count}} unread_one":"{{count}} okunmamış","{{count}} unread_other":"{{count}} okunmamış","🏙 Attachment...":"🏙 Ek..."};
5850
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Menu="Menü";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Shuffle="Karıştır";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var replyCount_one="1 cevap";var replyCount_other="{{ count }} cevaplar";var searchResultsCount_one="1 sonuç";var searchResultsCount_other="{{ count }} sonuç";var unreadMessagesSeparatorText_one="1 okunmamış mesaj";var unreadMessagesSeparatorText_other="{{count}} okunmamış mesaj";var trTranslations = {"Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Drag your files here":"Dosyalarınızı buraya sürükleyin","Drag your files here to add to your post":"Gönderinize eklemek için dosyalarınızı buraya sürükleyin","Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error fetching reactions":"Reaksiyonlar alınırken hata oluştu","Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.":"Mesajı okunmamış olarak işaretleme hatası. En yeni 100 kanal mesajından daha eski okunmamış mesajları işaretleme yapılamaz.","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}","Failed to jump to the first unread message":"İlk okunmamış mesaja atlamada hata oluştu","Failed to mark channel as read":"Kanalı okundu olarak işaretleme başarısız oldu",Flag:Flag,"Latest Messages":"Son Mesajlar","Load more":"Daha fazla yükle","Mark as unread":"Okunmamış olarak işaretle",Menu:Menu,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi","Messages have been marked unread.":"Mesajlar okunmamış olarak işaretlendi.",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No chats here yet…":"Henüz burada sohbet yok...","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send Anyway":"Neyse Gönder","Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...",Shuffle:Shuffle,"Slow Mode ON":"Yavaş Mod Açık","Some of the files will not be accepted":"Bazı dosyalar kabul edilmeyecektir","This message did not meet our content guidelines":"Bu mesaj içerik yönergelerimize uygun değil","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Unread messages":"Okunmamış mesajlar","Upload type: \"{{ type }}\" is not allowed":"Yükleme türü: \"{{ type }}\" izin verilmez","User uploaded content":"Kullanıcı tarafından yüklenen içerik","Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız","aria/Attachment":"Bijlage","aria/Cancel Reply":"Antwoord annuleren","aria/Cancel upload":"Upload annuleren","aria/Channel list":"Kanaallijst","aria/Channel search results":"Zoekresultaten voor kanalen","aria/Close thread":"Draad sluiten","aria/Emoji picker":"Emoji kiezer","aria/File input":"Bestandsinvoer","aria/File upload":"Bestand uploaden","aria/Image input":"Afbeelding invoeren","aria/Load More Channels":"Meer kanalen laden","aria/Menu":"Menu","aria/Message Options":"Berichtopties","aria/Open Message Actions Menu":"Menu voor berichtacties openen","aria/Open Reaction Selector":"Reactiekiezer openen","aria/Open Thread":"Draad openen","aria/Reaction list":"Reactielijst","aria/Retry upload":"Upload opnieuw proberen","aria/Send":"Verzenden","ban-command-args":"[@kullanıcıadı] [metin]","ban-command-description":"Bir kullanıcıyı yasakla","giphy-command-args":"[metin]","giphy-command-description":"Rastgele bir gif'i kanala gönder",live:live,"mute-command-args":"[@kullanıcıadı]","mute-command-description":"Bir kullanıcının sesini kapat",replyCount_one:replyCount_one,replyCount_other:replyCount_other,searchResultsCount_one:searchResultsCount_one,searchResultsCount_other:searchResultsCount_other,"this content could not be displayed":"bu içerik gösterilemiyor","unban-command-args":"[@kullanıcıadı]","unban-command-description":"Bir kullanıcının yasağını kaldır","unmute-command-args":"[@kullanıcıadı]","unmute-command-description":"Bir kullanıcının sesini aç",unreadMessagesSeparatorText_one:unreadMessagesSeparatorText_one,unreadMessagesSeparatorText_other:unreadMessagesSeparatorText_other,"{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","{{count}} unread_one":"{{count}} okunmamış","{{count}} unread_other":"{{count}} okunmamış","🏙 Attachment...":"🏙 Ek..."};
5817
5851
 
5818
5852
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
5819
5853
 
@@ -9816,10 +9850,11 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
9816
9850
 
9817
9851
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedSafeAnchor = function (props) {
9818
9852
  var children = props.children, className = props.className, download = props.download, href = props.href, rel = props.rel, target = props.target;
9853
+ var t = useTranslationContext('SafeAnchor').t;
9819
9854
  if (!href)
9820
9855
  return null;
9821
9856
  var sanitized = dist$1.sanitizeUrl(href);
9822
- return (React__default["default"].createElement("a", { "aria-label": 'Attachment', className: className, download: download, href: sanitized, rel: rel, target: target }, children));
9857
+ return (React__default["default"].createElement("a", { "aria-label": t('aria/Attachment'), className: className, download: download, href: sanitized, rel: rel, target: target }, children));
9823
9858
  };
9824
9859
  var SafeAnchor = React__default["default"].memo(UnMemoizedSafeAnchor);
9825
9860
 
@@ -9957,6 +9992,1122 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
9957
9992
  error && React__default["default"].createElement(DownloadButton, { assetUrl: props.src })));
9958
9993
  });
9959
9994
 
9995
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
9996
+ /*
9997
+ * Copyright 2020 Adobe. All rights reserved.
9998
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
9999
+ * you may not use this file except in compliance with the License. You may obtain a copy
10000
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10001
+ *
10002
+ * Unless required by applicable law or agreed to in writing, software distributed under
10003
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10004
+ * OF ANY KIND, either express or implied. See the License for the specific language
10005
+ * governing permissions and limitations under the License.
10006
+ */ /*
10007
+ * Copyright 2020 Adobe. All rights reserved.
10008
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10009
+ * you may not use this file except in compliance with the License. You may obtain a copy
10010
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10011
+ *
10012
+ * Unless required by applicable law or agreed to in writing, software distributed under
10013
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10014
+ * OF ANY KIND, either express or implied. See the License for the specific language
10015
+ * governing permissions and limitations under the License.
10016
+ */
10017
+ /*
10018
+ * Copyright 2020 Adobe. All rights reserved.
10019
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10020
+ * you may not use this file except in compliance with the License. You may obtain a copy
10021
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10022
+ *
10023
+ * Unless required by applicable law or agreed to in writing, software distributed under
10024
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10025
+ * OF ANY KIND, either express or implied. See the License for the specific language
10026
+ * governing permissions and limitations under the License.
10027
+ */
10028
+ const $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== "undefined" ? (React__default["default"]).useLayoutEffect : ()=>{};
10029
+
10030
+
10031
+ const $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{
10032
+ var _el_ownerDocument;
10033
+ return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;
10034
+ };
10035
+ const $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{
10036
+ if (el && "window" in el && el.window === el) return el;
10037
+ const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);
10038
+ return doc.defaultView || window;
10039
+ };
10040
+
10041
+
10042
+ /*
10043
+ * Copyright 2020 Adobe. All rights reserved.
10044
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10045
+ * you may not use this file except in compliance with the License. You may obtain a copy
10046
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10047
+ *
10048
+ * Unless required by applicable law or agreed to in writing, software distributed under
10049
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10050
+ * OF ANY KIND, either express or implied. See the License for the specific language
10051
+ * governing permissions and limitations under the License.
10052
+ */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {
10053
+ if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({
10054
+ preventScroll: true
10055
+ });
10056
+ else {
10057
+ let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);
10058
+ element.focus();
10059
+ $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);
10060
+ }
10061
+ }
10062
+ let $7215afc6de606d6b$var$supportsPreventScrollCached = null;
10063
+ function $7215afc6de606d6b$var$supportsPreventScroll() {
10064
+ if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {
10065
+ $7215afc6de606d6b$var$supportsPreventScrollCached = false;
10066
+ try {
10067
+ let focusElem = document.createElement("div");
10068
+ focusElem.focus({
10069
+ get preventScroll () {
10070
+ $7215afc6de606d6b$var$supportsPreventScrollCached = true;
10071
+ return true;
10072
+ }
10073
+ });
10074
+ } catch (e) {
10075
+ // Ignore
10076
+ }
10077
+ }
10078
+ return $7215afc6de606d6b$var$supportsPreventScrollCached;
10079
+ }
10080
+ function $7215afc6de606d6b$var$getScrollableElements(element) {
10081
+ let parent = element.parentNode;
10082
+ let scrollableElements = [];
10083
+ let rootScrollingElement = document.scrollingElement || document.documentElement;
10084
+ while(parent instanceof HTMLElement && parent !== rootScrollingElement){
10085
+ if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
10086
+ element: parent,
10087
+ scrollTop: parent.scrollTop,
10088
+ scrollLeft: parent.scrollLeft
10089
+ });
10090
+ parent = parent.parentNode;
10091
+ }
10092
+ if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({
10093
+ element: rootScrollingElement,
10094
+ scrollTop: rootScrollingElement.scrollTop,
10095
+ scrollLeft: rootScrollingElement.scrollLeft
10096
+ });
10097
+ return scrollableElements;
10098
+ }
10099
+ function $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {
10100
+ for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){
10101
+ element.scrollTop = scrollTop;
10102
+ element.scrollLeft = scrollLeft;
10103
+ }
10104
+ }
10105
+
10106
+
10107
+ /*
10108
+ * Copyright 2023 Adobe. All rights reserved.
10109
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10110
+ * you may not use this file except in compliance with the License. You may obtain a copy
10111
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10112
+ *
10113
+ * Unless required by applicable law or agreed to in writing, software distributed under
10114
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10115
+ * OF ANY KIND, either express or implied. See the License for the specific language
10116
+ * governing permissions and limitations under the License.
10117
+ */ /*
10118
+ * Copyright 2020 Adobe. All rights reserved.
10119
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10120
+ * you may not use this file except in compliance with the License. You may obtain a copy
10121
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10122
+ *
10123
+ * Unless required by applicable law or agreed to in writing, software distributed under
10124
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10125
+ * OF ANY KIND, either express or implied. See the License for the specific language
10126
+ * governing permissions and limitations under the License.
10127
+ */ function $c87311424ea30a05$var$testUserAgent(re) {
10128
+ var _window_navigator_userAgentData;
10129
+ if (typeof window === "undefined" || window.navigator == null) return false;
10130
+ return ((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);
10131
+ }
10132
+ function $c87311424ea30a05$var$testPlatform(re) {
10133
+ var _window_navigator_userAgentData;
10134
+ return typeof window !== "undefined" && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;
10135
+ }
10136
+ function $c87311424ea30a05$export$9ac100e40613ea10() {
10137
+ return $c87311424ea30a05$var$testPlatform(/^Mac/i);
10138
+ }
10139
+ function $c87311424ea30a05$export$a11b0059900ceec8() {
10140
+ return $c87311424ea30a05$var$testUserAgent(/Android/i);
10141
+ }
10142
+
10143
+
10144
+ /*
10145
+ * Copyright 2020 Adobe. All rights reserved.
10146
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10147
+ * you may not use this file except in compliance with the License. You may obtain a copy
10148
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10149
+ *
10150
+ * Unless required by applicable law or agreed to in writing, software distributed under
10151
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10152
+ * OF ANY KIND, either express or implied. See the License for the specific language
10153
+ * governing permissions and limitations under the License.
10154
+ */ // We store a global list of elements that are currently transitioning,
10155
+ // mapped to a set of CSS properties that are transitioning for that element.
10156
+ // This is necessary rather than a simple count of transitions because of browser
10157
+ // bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather
10158
+ // than one or the other. So we need to track what's actually transitioning so that
10159
+ // we can ignore these duplicate events.
10160
+ let $bbed8b41f857bcc0$var$transitionsByElement = new Map();
10161
+ // A list of callbacks to call once there are no transitioning elements.
10162
+ let $bbed8b41f857bcc0$var$transitionCallbacks = new Set();
10163
+ function $bbed8b41f857bcc0$var$setupGlobalEvents() {
10164
+ if (typeof window === "undefined") return;
10165
+ function isTransitionEvent(event) {
10166
+ return "propertyName" in event;
10167
+ }
10168
+ let onTransitionStart = (e)=>{
10169
+ if (!isTransitionEvent(e) || !e.target) return;
10170
+ // Add the transitioning property to the list for this element.
10171
+ let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
10172
+ if (!transitions) {
10173
+ transitions = new Set();
10174
+ $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);
10175
+ // The transitioncancel event must be registered on the element itself, rather than as a global
10176
+ // event. This enables us to handle when the node is deleted from the document while it is transitioning.
10177
+ // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
10178
+ e.target.addEventListener("transitioncancel", onTransitionEnd, {
10179
+ once: true
10180
+ });
10181
+ }
10182
+ transitions.add(e.propertyName);
10183
+ };
10184
+ let onTransitionEnd = (e)=>{
10185
+ if (!isTransitionEvent(e) || !e.target) return;
10186
+ // Remove property from list of transitioning properties.
10187
+ let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
10188
+ if (!properties) return;
10189
+ properties.delete(e.propertyName);
10190
+ // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.
10191
+ if (properties.size === 0) {
10192
+ e.target.removeEventListener("transitioncancel", onTransitionEnd);
10193
+ $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);
10194
+ }
10195
+ // If no transitioning elements, call all of the queued callbacks.
10196
+ if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {
10197
+ for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)cb();
10198
+ $bbed8b41f857bcc0$var$transitionCallbacks.clear();
10199
+ }
10200
+ };
10201
+ document.body.addEventListener("transitionrun", onTransitionStart);
10202
+ document.body.addEventListener("transitionend", onTransitionEnd);
10203
+ }
10204
+ if (typeof document !== "undefined") {
10205
+ if (document.readyState !== "loading") $bbed8b41f857bcc0$var$setupGlobalEvents();
10206
+ else document.addEventListener("DOMContentLoaded", $bbed8b41f857bcc0$var$setupGlobalEvents);
10207
+ }
10208
+ function $bbed8b41f857bcc0$export$24490316f764c430(fn) {
10209
+ // Wait one frame to see if an animation starts, e.g. a transition on mount.
10210
+ requestAnimationFrame(()=>{
10211
+ // If no transitions are running, call the function immediately.
10212
+ // Otherwise, add it to a list of callbacks to run at the end of the animation.
10213
+ if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) fn();
10214
+ else $bbed8b41f857bcc0$var$transitionCallbacks.add(fn);
10215
+ });
10216
+ }
10217
+
10218
+
10219
+
10220
+ /*
10221
+ * Copyright 2022 Adobe. All rights reserved.
10222
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10223
+ * you may not use this file except in compliance with the License. You may obtain a copy
10224
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10225
+ *
10226
+ * Unless required by applicable law or agreed to in writing, software distributed under
10227
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10228
+ * OF ANY KIND, either express or implied. See the License for the specific language
10229
+ * governing permissions and limitations under the License.
10230
+ */
10231
+ function $6a7db85432448f7f$export$60278871457622de(event) {
10232
+ // JAWS/NVDA with Firefox.
10233
+ if (event.mozInputSource === 0 && event.isTrusted) return true;
10234
+ // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead
10235
+ // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check
10236
+ // to detect TalkBack virtual clicks.
10237
+ if (($c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === "click" && event.buttons === 1;
10238
+ return event.detail === 0 && !event.pointerType;
10239
+ }
10240
+
10241
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10242
+
10243
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10244
+
10245
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10246
+
10247
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10248
+
10249
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10250
+
10251
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10252
+
10253
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10254
+
10255
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10256
+
10257
+ /*
10258
+ * Copyright 2020 Adobe. All rights reserved.
10259
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10260
+ * you may not use this file except in compliance with the License. You may obtain a copy
10261
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10262
+ *
10263
+ * Unless required by applicable law or agreed to in writing, software distributed under
10264
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10265
+ * OF ANY KIND, either express or implied. See the License for the specific language
10266
+ * governing permissions and limitations under the License.
10267
+ */
10268
+ const $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = (React__default["default"]).createContext({
10269
+ register: ()=>{}
10270
+ });
10271
+ $ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = "PressResponderContext";
10272
+
10273
+
10274
+ /*
10275
+ * Copyright 2020 Adobe. All rights reserved.
10276
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10277
+ * you may not use this file except in compliance with the License. You may obtain a copy
10278
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10279
+ *
10280
+ * Unless required by applicable law or agreed to in writing, software distributed under
10281
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10282
+ * OF ANY KIND, either express or implied. See the License for the specific language
10283
+ * governing permissions and limitations under the License.
10284
+ */ // Portions of the code in this file are based on code from react.
10285
+ // Original licensing for the following can be found in the
10286
+ // NOTICE file in the root directory of this source tree.
10287
+ // See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
10288
+
10289
+
10290
+
10291
+ let $507fabe10e71c6fb$var$currentModality = null;
10292
+ let $507fabe10e71c6fb$var$changeHandlers = new Set();
10293
+ let $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.
10294
+ let $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
10295
+ let $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
10296
+ function $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {
10297
+ for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);
10298
+ }
10299
+ /**
10300
+ * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.
10301
+ */ function $507fabe10e71c6fb$var$isValidKey(e) {
10302
+ // Control and Shift keys trigger when navigating back to the tab with keyboard.
10303
+ return !(e.metaKey || !($c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta");
10304
+ }
10305
+ function $507fabe10e71c6fb$var$handleKeyboardEvent(e) {
10306
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
10307
+ if ($507fabe10e71c6fb$var$isValidKey(e)) {
10308
+ $507fabe10e71c6fb$var$currentModality = "keyboard";
10309
+ $507fabe10e71c6fb$var$triggerChangeHandlers("keyboard", e);
10310
+ }
10311
+ }
10312
+ function $507fabe10e71c6fb$var$handlePointerEvent(e) {
10313
+ $507fabe10e71c6fb$var$currentModality = "pointer";
10314
+ if (e.type === "mousedown" || e.type === "pointerdown") {
10315
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
10316
+ $507fabe10e71c6fb$var$triggerChangeHandlers("pointer", e);
10317
+ }
10318
+ }
10319
+ function $507fabe10e71c6fb$var$handleClickEvent(e) {
10320
+ if (($6a7db85432448f7f$export$60278871457622de)(e)) {
10321
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
10322
+ $507fabe10e71c6fb$var$currentModality = "virtual";
10323
+ }
10324
+ }
10325
+ function $507fabe10e71c6fb$var$handleFocusEvent(e) {
10326
+ // Firefox fires two extra focus events when the user first clicks into an iframe:
10327
+ // first on the window, then on the document. We ignore these events so they don't
10328
+ // cause keyboard focus rings to appear.
10329
+ if (e.target === window || e.target === document) return;
10330
+ // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.
10331
+ // This occurs, for example, when navigating a form with the next/previous buttons on iOS.
10332
+ if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {
10333
+ $507fabe10e71c6fb$var$currentModality = "virtual";
10334
+ $507fabe10e71c6fb$var$triggerChangeHandlers("virtual", e);
10335
+ }
10336
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
10337
+ $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
10338
+ }
10339
+ function $507fabe10e71c6fb$var$handleWindowBlur() {
10340
+ // When the window is blurred, reset state. This is necessary when tabbing out of the window,
10341
+ // for example, since a subsequent focus event won't be fired.
10342
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
10343
+ $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;
10344
+ }
10345
+ /**
10346
+ * Setup global event listeners to control when keyboard focus style should be visible.
10347
+ */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {
10348
+ if (typeof window === "undefined" || $507fabe10e71c6fb$export$d90243b58daecda7.get(($431fbd86ca7dc216$export$f21a1ffae260145a)(element))) return;
10349
+ const windowObject = ($431fbd86ca7dc216$export$f21a1ffae260145a)(element);
10350
+ const documentObject = ($431fbd86ca7dc216$export$b204af158042fbac)(element);
10351
+ // Programmatic focus() calls shouldn't affect the current input modality.
10352
+ // However, we need to detect other cases when a focus event occurs without
10353
+ // a preceding user event (e.g. screen reader focus). Overriding the focus
10354
+ // method on HTMLElement.prototype is a bit hacky, but works.
10355
+ let focus = windowObject.HTMLElement.prototype.focus;
10356
+ windowObject.HTMLElement.prototype.focus = function() {
10357
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
10358
+ focus.apply(this, arguments);
10359
+ };
10360
+ documentObject.addEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
10361
+ documentObject.addEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
10362
+ documentObject.addEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true);
10363
+ // Register focus events on the window so they are sure to happen
10364
+ // before React's event listeners (registered on the document).
10365
+ windowObject.addEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true);
10366
+ windowObject.addEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false);
10367
+ if (typeof PointerEvent !== "undefined") {
10368
+ documentObject.addEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true);
10369
+ documentObject.addEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true);
10370
+ documentObject.addEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true);
10371
+ } else {
10372
+ documentObject.addEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true);
10373
+ documentObject.addEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true);
10374
+ documentObject.addEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true);
10375
+ }
10376
+ // Add unmount handler
10377
+ windowObject.addEventListener("beforeunload", ()=>{
10378
+ $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);
10379
+ }, {
10380
+ once: true
10381
+ });
10382
+ $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {
10383
+ focus: focus
10384
+ });
10385
+ }
10386
+ const $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{
10387
+ const windowObject = ($431fbd86ca7dc216$export$f21a1ffae260145a)(element);
10388
+ const documentObject = ($431fbd86ca7dc216$export$b204af158042fbac)(element);
10389
+ if (loadListener) documentObject.removeEventListener("DOMContentLoaded", loadListener);
10390
+ if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;
10391
+ windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;
10392
+ documentObject.removeEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
10393
+ documentObject.removeEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
10394
+ documentObject.removeEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true);
10395
+ windowObject.removeEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true);
10396
+ windowObject.removeEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false);
10397
+ if (typeof PointerEvent !== "undefined") {
10398
+ documentObject.removeEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true);
10399
+ documentObject.removeEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true);
10400
+ documentObject.removeEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true);
10401
+ } else {
10402
+ documentObject.removeEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true);
10403
+ documentObject.removeEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true);
10404
+ documentObject.removeEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true);
10405
+ }
10406
+ $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);
10407
+ };
10408
+ function $507fabe10e71c6fb$export$2f1888112f558a7d(element) {
10409
+ const documentObject = ($431fbd86ca7dc216$export$b204af158042fbac)(element);
10410
+ let loadListener;
10411
+ if (documentObject.readyState !== "loading") $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);
10412
+ else {
10413
+ loadListener = ()=>{
10414
+ $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);
10415
+ };
10416
+ documentObject.addEventListener("DOMContentLoaded", loadListener);
10417
+ }
10418
+ return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);
10419
+ }
10420
+ // Server-side rendering does not have the document object defined
10421
+ // eslint-disable-next-line no-restricted-globals
10422
+ if (typeof document !== "undefined") $507fabe10e71c6fb$export$2f1888112f558a7d();
10423
+ function $507fabe10e71c6fb$export$630ff653c5ada6a9() {
10424
+ return $507fabe10e71c6fb$var$currentModality;
10425
+ }
10426
+
10427
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10428
+ /*
10429
+ * Copyright 2020 Adobe. All rights reserved.
10430
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10431
+ * you may not use this file except in compliance with the License. You may obtain a copy
10432
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10433
+ *
10434
+ * Unless required by applicable law or agreed to in writing, software distributed under
10435
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10436
+ * OF ANY KIND, either express or implied. See the License for the specific language
10437
+ * governing permissions and limitations under the License.
10438
+ */ /*
10439
+ * Copyright 2020 Adobe. All rights reserved.
10440
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10441
+ * you may not use this file except in compliance with the License. You may obtain a copy
10442
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10443
+ *
10444
+ * Unless required by applicable law or agreed to in writing, software distributed under
10445
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10446
+ * OF ANY KIND, either express or implied. See the License for the specific language
10447
+ * governing permissions and limitations under the License.
10448
+ */ /*
10449
+ * Copyright 2020 Adobe. All rights reserved.
10450
+ * This file is licensed to you under the Apache License, Version 2.0 (the 'License');
10451
+ * you may not use this file except in compliance with the License. You may obtain a copy
10452
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10453
+ *
10454
+ * Unless required by applicable law or agreed to in writing, software distributed under
10455
+ * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10456
+ * OF ANY KIND, either express or implied. See the License for the specific language
10457
+ * governing permissions and limitations under the License.
10458
+ */
10459
+
10460
+ function $6a99195332edec8b$export$80f3e147d781571c(element) {
10461
+ // If the user is interacting with a virtual cursor, e.g. screen reader, then
10462
+ // wait until after any animated transitions that are currently occurring on
10463
+ // the page before shifting focus. This avoids issues with VoiceOver on iOS
10464
+ // causing the page to scroll when moving focus if the element is transitioning
10465
+ // from off the screen.
10466
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(element);
10467
+ if (($507fabe10e71c6fb$export$630ff653c5ada6a9)() === "virtual") {
10468
+ let lastFocusedElement = ownerDocument.activeElement;
10469
+ ($bbed8b41f857bcc0$export$24490316f764c430)(()=>{
10470
+ // If focus did not move and the element is still in the document, focus it.
10471
+ if (ownerDocument.activeElement === lastFocusedElement && element.isConnected) ($7215afc6de606d6b$export$de79e2c695e052f3)(element);
10472
+ });
10473
+ } else ($7215afc6de606d6b$export$de79e2c695e052f3)(element);
10474
+ }
10475
+
10476
+
10477
+
10478
+ /*
10479
+ * Copyright 2021 Adobe. All rights reserved.
10480
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
10481
+ * you may not use this file except in compliance with the License. You may obtain a copy
10482
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
10483
+ *
10484
+ * Unless required by applicable law or agreed to in writing, software distributed under
10485
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
10486
+ * OF ANY KIND, either express or implied. See the License for the specific language
10487
+ * governing permissions and limitations under the License.
10488
+ */
10489
+ function $645f2e67b85a24c9$var$isStyleVisible(element) {
10490
+ const windowObject = ($431fbd86ca7dc216$export$f21a1ffae260145a)(element);
10491
+ if (!(element instanceof windowObject.HTMLElement) && !(element instanceof windowObject.SVGElement)) return false;
10492
+ let { display: display, visibility: visibility } = element.style;
10493
+ let isVisible = display !== "none" && visibility !== "hidden" && visibility !== "collapse";
10494
+ if (isVisible) {
10495
+ const { getComputedStyle: getComputedStyle } = element.ownerDocument.defaultView;
10496
+ let { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);
10497
+ isVisible = computedDisplay !== "none" && computedVisibility !== "hidden" && computedVisibility !== "collapse";
10498
+ }
10499
+ return isVisible;
10500
+ }
10501
+ function $645f2e67b85a24c9$var$isAttributeVisible(element, childElement) {
10502
+ return !element.hasAttribute("hidden") && (element.nodeName === "DETAILS" && childElement && childElement.nodeName !== "SUMMARY" ? element.hasAttribute("open") : true);
10503
+ }
10504
+ function $645f2e67b85a24c9$export$e989c0fffaa6b27a(element, childElement) {
10505
+ return element.nodeName !== "#comment" && $645f2e67b85a24c9$var$isStyleVisible(element) && $645f2e67b85a24c9$var$isAttributeVisible(element, childElement) && (!element.parentElement || $645f2e67b85a24c9$export$e989c0fffaa6b27a(element.parentElement, element));
10506
+ }
10507
+
10508
+
10509
+
10510
+ const $9bf71ea28793e738$var$FocusContext = /*#__PURE__*/ (React__default["default"]).createContext(null);
10511
+ let $9bf71ea28793e738$var$activeScope = null;
10512
+ function $9bf71ea28793e738$export$20e40289641fbbb6(props) {
10513
+ let { children: children, contain: contain, restoreFocus: restoreFocus, autoFocus: autoFocus } = props;
10514
+ let startRef = (React$2.useRef)(null);
10515
+ let endRef = (React$2.useRef)(null);
10516
+ let scopeRef = (React$2.useRef)([]);
10517
+ let { parentNode: parentNode } = (React$2.useContext)($9bf71ea28793e738$var$FocusContext) || {};
10518
+ // Create a tree node here so we can add children to it even before it is added to the tree.
10519
+ let node = (React$2.useMemo)(()=>new $9bf71ea28793e738$var$TreeNode({
10520
+ scopeRef: scopeRef
10521
+ }), [
10522
+ scopeRef
10523
+ ]);
10524
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10525
+ // If a new scope mounts outside the active scope, (e.g. DialogContainer launched from a menu),
10526
+ // use the active scope as the parent instead of the parent from context. Layout effects run bottom
10527
+ // up, so if the parent is not yet added to the tree, don't do this. Only the outer-most FocusScope
10528
+ // that is being added should get the activeScope as its parent.
10529
+ let parent = parentNode || $9bf71ea28793e738$export$d06fae2ee68b101e.root;
10530
+ if ($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parent.scopeRef) && $9bf71ea28793e738$var$activeScope && !$9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, parent.scopeRef)) {
10531
+ let activeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);
10532
+ if (activeNode) parent = activeNode;
10533
+ }
10534
+ // Add the node to the parent, and to the tree.
10535
+ parent.addChild(node);
10536
+ $9bf71ea28793e738$export$d06fae2ee68b101e.addNode(node);
10537
+ }, [
10538
+ node,
10539
+ parentNode
10540
+ ]);
10541
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10542
+ let node = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);
10543
+ if (node) node.contain = !!contain;
10544
+ }, [
10545
+ contain
10546
+ ]);
10547
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10548
+ var _startRef_current;
10549
+ // Find all rendered nodes between the sentinels and add them to the scope.
10550
+ let node = (_startRef_current = startRef.current) === null || _startRef_current === void 0 ? void 0 : _startRef_current.nextSibling;
10551
+ let nodes = [];
10552
+ while(node && node !== endRef.current){
10553
+ nodes.push(node);
10554
+ node = node.nextSibling;
10555
+ }
10556
+ scopeRef.current = nodes;
10557
+ }, [
10558
+ children
10559
+ ]);
10560
+ $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restoreFocus, contain);
10561
+ $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain);
10562
+ $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain);
10563
+ $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus);
10564
+ // This needs to be an effect so that activeScope is updated after the FocusScope tree is complete.
10565
+ // It cannot be a useLayoutEffect because the parent of this node hasn't been attached in the tree yet.
10566
+ (React$2.useEffect)(()=>{
10567
+ const activeElement = ($431fbd86ca7dc216$export$b204af158042fbac)(scopeRef.current ? scopeRef.current[0] : undefined).activeElement;
10568
+ let scope = null;
10569
+ if ($9bf71ea28793e738$var$isElementInScope(activeElement, scopeRef.current)) {
10570
+ // We need to traverse the focusScope tree and find the bottom most scope that
10571
+ // contains the active element and set that as the activeScope.
10572
+ for (let node of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse())if (node.scopeRef && $9bf71ea28793e738$var$isElementInScope(activeElement, node.scopeRef.current)) scope = node;
10573
+ if (scope === $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) $9bf71ea28793e738$var$activeScope = scope.scopeRef;
10574
+ }
10575
+ }, [
10576
+ scopeRef
10577
+ ]);
10578
+ // This layout effect cleanup is so that the tree node is removed synchronously with react before the RAF
10579
+ // in useRestoreFocus cleanup runs.
10580
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10581
+ return ()=>{
10582
+ var _focusScopeTree_getTreeNode_parent, _focusScopeTree_getTreeNode;
10583
+ var _focusScopeTree_getTreeNode_parent_scopeRef;
10584
+ // Scope may have been re-parented.
10585
+ let parentScope = (_focusScopeTree_getTreeNode_parent_scopeRef = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : (_focusScopeTree_getTreeNode_parent = _focusScopeTree_getTreeNode.parent) === null || _focusScopeTree_getTreeNode_parent === void 0 ? void 0 : _focusScopeTree_getTreeNode_parent.scopeRef) !== null && _focusScopeTree_getTreeNode_parent_scopeRef !== void 0 ? _focusScopeTree_getTreeNode_parent_scopeRef : null;
10586
+ if ((scopeRef === $9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope(scopeRef, $9bf71ea28793e738$var$activeScope)) && (!parentScope || $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parentScope))) $9bf71ea28793e738$var$activeScope = parentScope;
10587
+ $9bf71ea28793e738$export$d06fae2ee68b101e.removeTreeNode(scopeRef);
10588
+ };
10589
+ }, [
10590
+ scopeRef
10591
+ ]);
10592
+ let focusManager = (React$2.useMemo)(()=>$9bf71ea28793e738$var$createFocusManagerForScope(scopeRef), []);
10593
+ let value = (React$2.useMemo)(()=>({
10594
+ focusManager: focusManager,
10595
+ parentNode: node
10596
+ }), [
10597
+ node,
10598
+ focusManager
10599
+ ]);
10600
+ return /*#__PURE__*/ (React__default["default"]).createElement($9bf71ea28793e738$var$FocusContext.Provider, {
10601
+ value: value
10602
+ }, /*#__PURE__*/ (React__default["default"]).createElement("span", {
10603
+ "data-focus-scope-start": true,
10604
+ hidden: true,
10605
+ ref: startRef
10606
+ }), children, /*#__PURE__*/ (React__default["default"]).createElement("span", {
10607
+ "data-focus-scope-end": true,
10608
+ hidden: true,
10609
+ ref: endRef
10610
+ }));
10611
+ }
10612
+ function $9bf71ea28793e738$var$createFocusManagerForScope(scopeRef) {
10613
+ return {
10614
+ focusNext (opts = {}) {
10615
+ let scope = scopeRef.current;
10616
+ let { from: from, tabbable: tabbable, wrap: wrap, accept: accept } = opts;
10617
+ let node = from || ($431fbd86ca7dc216$export$b204af158042fbac)(scope[0]).activeElement;
10618
+ let sentinel = scope[0].previousElementSibling;
10619
+ let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10620
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10621
+ tabbable: tabbable,
10622
+ accept: accept
10623
+ }, scope);
10624
+ walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;
10625
+ let nextNode = walker.nextNode();
10626
+ if (!nextNode && wrap) {
10627
+ walker.currentNode = sentinel;
10628
+ nextNode = walker.nextNode();
10629
+ }
10630
+ if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);
10631
+ return nextNode;
10632
+ },
10633
+ focusPrevious (opts = {}) {
10634
+ let scope = scopeRef.current;
10635
+ let { from: from, tabbable: tabbable, wrap: wrap, accept: accept } = opts;
10636
+ let node = from || ($431fbd86ca7dc216$export$b204af158042fbac)(scope[0]).activeElement;
10637
+ let sentinel = scope[scope.length - 1].nextElementSibling;
10638
+ let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10639
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10640
+ tabbable: tabbable,
10641
+ accept: accept
10642
+ }, scope);
10643
+ walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;
10644
+ let previousNode = walker.previousNode();
10645
+ if (!previousNode && wrap) {
10646
+ walker.currentNode = sentinel;
10647
+ previousNode = walker.previousNode();
10648
+ }
10649
+ if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);
10650
+ return previousNode;
10651
+ },
10652
+ focusFirst (opts = {}) {
10653
+ let scope = scopeRef.current;
10654
+ let { tabbable: tabbable, accept: accept } = opts;
10655
+ let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10656
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10657
+ tabbable: tabbable,
10658
+ accept: accept
10659
+ }, scope);
10660
+ walker.currentNode = scope[0].previousElementSibling;
10661
+ let nextNode = walker.nextNode();
10662
+ if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);
10663
+ return nextNode;
10664
+ },
10665
+ focusLast (opts = {}) {
10666
+ let scope = scopeRef.current;
10667
+ let { tabbable: tabbable, accept: accept } = opts;
10668
+ let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10669
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10670
+ tabbable: tabbable,
10671
+ accept: accept
10672
+ }, scope);
10673
+ walker.currentNode = scope[scope.length - 1].nextElementSibling;
10674
+ let previousNode = walker.previousNode();
10675
+ if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);
10676
+ return previousNode;
10677
+ }
10678
+ };
10679
+ }
10680
+ const $9bf71ea28793e738$var$focusableElements = [
10681
+ "input:not([disabled]):not([type=hidden])",
10682
+ "select:not([disabled])",
10683
+ "textarea:not([disabled])",
10684
+ "button:not([disabled])",
10685
+ "a[href]",
10686
+ "area[href]",
10687
+ "summary",
10688
+ "iframe",
10689
+ "object",
10690
+ "embed",
10691
+ "audio[controls]",
10692
+ "video[controls]",
10693
+ "[contenteditable]"
10694
+ ];
10695
+ const $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(":not([hidden]),") + ",[tabindex]:not([disabled]):not([hidden])";
10696
+ $9bf71ea28793e738$var$focusableElements.push('[tabindex]:not([tabindex="-1"]):not([disabled])');
10697
+ const $9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(':not([hidden]):not([tabindex="-1"]),');
10698
+ function $9bf71ea28793e738$var$getScopeRoot(scope) {
10699
+ return scope[0].parentElement;
10700
+ }
10701
+ function $9bf71ea28793e738$var$shouldContainFocus(scopeRef) {
10702
+ let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);
10703
+ while(scope && scope.scopeRef !== scopeRef){
10704
+ if (scope.contain) return false;
10705
+ scope = scope.parent;
10706
+ }
10707
+ return true;
10708
+ }
10709
+ function $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain) {
10710
+ let focusedNode = (React$2.useRef)();
10711
+ let raf = (React$2.useRef)();
10712
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10713
+ let scope = scopeRef.current;
10714
+ if (!contain) {
10715
+ // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment
10716
+ if (raf.current) {
10717
+ cancelAnimationFrame(raf.current);
10718
+ raf.current = undefined;
10719
+ }
10720
+ return;
10721
+ }
10722
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(scope ? scope[0] : undefined);
10723
+ // Handle the Tab key to contain focus within the scope
10724
+ let onKeyDown = (e)=>{
10725
+ if (e.key !== "Tab" || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef)) return;
10726
+ let focusedElement = ownerDocument.activeElement;
10727
+ let scope = scopeRef.current;
10728
+ if (!scope || !$9bf71ea28793e738$var$isElementInScope(focusedElement, scope)) return;
10729
+ let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10730
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10731
+ tabbable: true
10732
+ }, scope);
10733
+ if (!focusedElement) return;
10734
+ walker.currentNode = focusedElement;
10735
+ let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
10736
+ if (!nextElement) {
10737
+ walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;
10738
+ nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
10739
+ }
10740
+ e.preventDefault();
10741
+ if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);
10742
+ };
10743
+ let onFocus = (e)=>{
10744
+ // If focusing an element in a child scope of the currently active scope, the child becomes active.
10745
+ // Moving out of the active scope to an ancestor is not allowed.
10746
+ if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope(e.target, scopeRef.current)) {
10747
+ $9bf71ea28793e738$var$activeScope = scopeRef;
10748
+ focusedNode.current = e.target;
10749
+ } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(e.target, scopeRef)) {
10750
+ // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),
10751
+ // restore focus to the previously focused node or the first tabbable element in the active scope.
10752
+ if (focusedNode.current) focusedNode.current.focus();
10753
+ else if ($9bf71ea28793e738$var$activeScope && $9bf71ea28793e738$var$activeScope.current) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);
10754
+ } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef)) focusedNode.current = e.target;
10755
+ };
10756
+ let onBlur = (e)=>{
10757
+ // Firefox doesn't shift focus back to the Dialog properly without this
10758
+ if (raf.current) cancelAnimationFrame(raf.current);
10759
+ raf.current = requestAnimationFrame(()=>{
10760
+ // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe
10761
+ if (ownerDocument.activeElement && $9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(ownerDocument.activeElement, scopeRef)) {
10762
+ $9bf71ea28793e738$var$activeScope = scopeRef;
10763
+ if (ownerDocument.body.contains(e.target)) {
10764
+ var _focusedNode_current;
10765
+ focusedNode.current = e.target;
10766
+ (_focusedNode_current = focusedNode.current) === null || _focusedNode_current === void 0 ? void 0 : _focusedNode_current.focus();
10767
+ } else if ($9bf71ea28793e738$var$activeScope.current) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);
10768
+ }
10769
+ });
10770
+ };
10771
+ ownerDocument.addEventListener("keydown", onKeyDown, false);
10772
+ ownerDocument.addEventListener("focusin", onFocus, false);
10773
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener("focusin", onFocus, false));
10774
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener("focusout", onBlur, false));
10775
+ return ()=>{
10776
+ ownerDocument.removeEventListener("keydown", onKeyDown, false);
10777
+ ownerDocument.removeEventListener("focusin", onFocus, false);
10778
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener("focusin", onFocus, false));
10779
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener("focusout", onBlur, false));
10780
+ };
10781
+ }, [
10782
+ scopeRef,
10783
+ contain
10784
+ ]);
10785
+ // This is a useLayoutEffect so it is guaranteed to run before our async synthetic blur
10786
+ // eslint-disable-next-line arrow-body-style
10787
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10788
+ return ()=>{
10789
+ if (raf.current) cancelAnimationFrame(raf.current);
10790
+ };
10791
+ }, [
10792
+ raf
10793
+ ]);
10794
+ }
10795
+ function $9bf71ea28793e738$var$isElementInAnyScope(element) {
10796
+ return $9bf71ea28793e738$var$isElementInChildScope(element);
10797
+ }
10798
+ function $9bf71ea28793e738$var$isElementInScope(element, scope) {
10799
+ if (!element) return false;
10800
+ if (!scope) return false;
10801
+ return scope.some((node)=>node.contains(element));
10802
+ }
10803
+ function $9bf71ea28793e738$var$isElementInChildScope(element, scope = null) {
10804
+ // If the element is within a top layer element (e.g. toasts), always allow moving focus there.
10805
+ if (element instanceof Element && element.closest("[data-react-aria-top-layer]")) return true;
10806
+ // node.contains in isElementInScope covers child scopes that are also DOM children,
10807
+ // but does not cover child scopes in portals.
10808
+ for (let { scopeRef: s } of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope))){
10809
+ if (s && $9bf71ea28793e738$var$isElementInScope(element, s.current)) return true;
10810
+ }
10811
+ return false;
10812
+ }
10813
+ function $9bf71ea28793e738$var$isAncestorScope(ancestor, scope) {
10814
+ var _focusScopeTree_getTreeNode;
10815
+ let parent = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : _focusScopeTree_getTreeNode.parent;
10816
+ while(parent){
10817
+ if (parent.scopeRef === ancestor) return true;
10818
+ parent = parent.parent;
10819
+ }
10820
+ return false;
10821
+ }
10822
+ function $9bf71ea28793e738$var$focusElement(element, scroll = false) {
10823
+ if (element != null && !scroll) try {
10824
+ (0, $6a99195332edec8b$export$80f3e147d781571c)(element);
10825
+ } catch (err) {
10826
+ // ignore
10827
+ }
10828
+ else if (element != null) try {
10829
+ element.focus();
10830
+ } catch (err) {
10831
+ // ignore
10832
+ }
10833
+ }
10834
+ function $9bf71ea28793e738$var$focusFirstInScope(scope, tabbable = true) {
10835
+ let sentinel = scope[0].previousElementSibling;
10836
+ let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10837
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10838
+ tabbable: tabbable
10839
+ }, scope);
10840
+ walker.currentNode = sentinel;
10841
+ let nextNode = walker.nextNode();
10842
+ // If the scope does not contain a tabbable element, use the first focusable element.
10843
+ if (tabbable && !nextNode) {
10844
+ scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);
10845
+ walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {
10846
+ tabbable: false
10847
+ }, scope);
10848
+ walker.currentNode = sentinel;
10849
+ nextNode = walker.nextNode();
10850
+ }
10851
+ $9bf71ea28793e738$var$focusElement(nextNode);
10852
+ }
10853
+ function $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus) {
10854
+ const autoFocusRef = (React__default["default"]).useRef(autoFocus);
10855
+ (React$2.useEffect)(()=>{
10856
+ if (autoFocusRef.current) {
10857
+ $9bf71ea28793e738$var$activeScope = scopeRef;
10858
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(scopeRef.current ? scopeRef.current[0] : undefined);
10859
+ if (!$9bf71ea28793e738$var$isElementInScope(ownerDocument.activeElement, $9bf71ea28793e738$var$activeScope.current) && scopeRef.current) $9bf71ea28793e738$var$focusFirstInScope(scopeRef.current);
10860
+ }
10861
+ autoFocusRef.current = false;
10862
+ }, [
10863
+ scopeRef
10864
+ ]);
10865
+ }
10866
+ function $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restore, contain) {
10867
+ // tracks the active scope, in case restore and contain are both false.
10868
+ // if either are true, this is tracked in useRestoreFocus or useFocusContainment.
10869
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10870
+ if (restore || contain) return;
10871
+ let scope = scopeRef.current;
10872
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(scope ? scope[0] : undefined);
10873
+ let onFocus = (e)=>{
10874
+ let target = e.target;
10875
+ if ($9bf71ea28793e738$var$isElementInScope(target, scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;
10876
+ else if (!$9bf71ea28793e738$var$isElementInAnyScope(target)) $9bf71ea28793e738$var$activeScope = null;
10877
+ };
10878
+ ownerDocument.addEventListener("focusin", onFocus, false);
10879
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener("focusin", onFocus, false));
10880
+ return ()=>{
10881
+ ownerDocument.removeEventListener("focusin", onFocus, false);
10882
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener("focusin", onFocus, false));
10883
+ };
10884
+ }, [
10885
+ scopeRef,
10886
+ restore,
10887
+ contain
10888
+ ]);
10889
+ }
10890
+ function $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef) {
10891
+ let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);
10892
+ while(scope && scope.scopeRef !== scopeRef){
10893
+ if (scope.nodeToRestore) return false;
10894
+ scope = scope.parent;
10895
+ }
10896
+ return (scope === null || scope === void 0 ? void 0 : scope.scopeRef) === scopeRef;
10897
+ }
10898
+ function $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain) {
10899
+ // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.
10900
+ // eslint-disable-next-line no-restricted-globals
10901
+ const nodeToRestoreRef = (React$2.useRef)(typeof document !== "undefined" ? ($431fbd86ca7dc216$export$b204af158042fbac)(scopeRef.current ? scopeRef.current[0] : undefined).activeElement : null);
10902
+ // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus
10903
+ // restoring-non-containing scopes should only care if they become active so they can perform the restore
10904
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10905
+ let scope = scopeRef.current;
10906
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(scope ? scope[0] : undefined);
10907
+ if (!restoreFocus || contain) return;
10908
+ let onFocus = ()=>{
10909
+ // If focusing an element in a child scope of the currently active scope, the child becomes active.
10910
+ // Moving out of the active scope to an ancestor is not allowed.
10911
+ if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope(ownerDocument.activeElement, scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;
10912
+ };
10913
+ ownerDocument.addEventListener("focusin", onFocus, false);
10914
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener("focusin", onFocus, false));
10915
+ return ()=>{
10916
+ ownerDocument.removeEventListener("focusin", onFocus, false);
10917
+ scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener("focusin", onFocus, false));
10918
+ };
10919
+ // eslint-disable-next-line react-hooks/exhaustive-deps
10920
+ }, [
10921
+ scopeRef,
10922
+ contain
10923
+ ]);
10924
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10925
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(scopeRef.current ? scopeRef.current[0] : undefined);
10926
+ if (!restoreFocus) return;
10927
+ // Handle the Tab key so that tabbing out of the scope goes to the next element
10928
+ // after the node that had focus when the scope mounted. This is important when
10929
+ // using portals for overlays, so that focus goes to the expected element when
10930
+ // tabbing out of the overlay.
10931
+ let onKeyDown = (e)=>{
10932
+ if (e.key !== "Tab" || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef)) return;
10933
+ let focusedElement = ownerDocument.activeElement;
10934
+ if (!$9bf71ea28793e738$var$isElementInScope(focusedElement, scopeRef.current)) return;
10935
+ let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);
10936
+ if (!treeNode) return;
10937
+ let nodeToRestore = treeNode.nodeToRestore;
10938
+ // Create a DOM tree walker that matches all tabbable elements
10939
+ let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(ownerDocument.body, {
10940
+ tabbable: true
10941
+ });
10942
+ // Find the next tabbable element after the currently focused element
10943
+ walker.currentNode = focusedElement;
10944
+ let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
10945
+ if (!nodeToRestore || !ownerDocument.body.contains(nodeToRestore) || nodeToRestore === ownerDocument.body) {
10946
+ nodeToRestore = undefined;
10947
+ treeNode.nodeToRestore = undefined;
10948
+ }
10949
+ // If there is no next element, or it is outside the current scope, move focus to the
10950
+ // next element after the node to restore to instead.
10951
+ if ((!nextElement || !$9bf71ea28793e738$var$isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {
10952
+ walker.currentNode = nodeToRestore;
10953
+ // Skip over elements within the scope, in case the scope immediately follows the node to restore.
10954
+ do nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
10955
+ while ($9bf71ea28793e738$var$isElementInScope(nextElement, scopeRef.current));
10956
+ e.preventDefault();
10957
+ e.stopPropagation();
10958
+ if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);
10959
+ else // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)
10960
+ // then move focus to the body.
10961
+ // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)
10962
+ if (!$9bf71ea28793e738$var$isElementInAnyScope(nodeToRestore)) focusedElement.blur();
10963
+ else $9bf71ea28793e738$var$focusElement(nodeToRestore, true);
10964
+ }
10965
+ };
10966
+ if (!contain) ownerDocument.addEventListener("keydown", onKeyDown, true);
10967
+ return ()=>{
10968
+ if (!contain) ownerDocument.removeEventListener("keydown", onKeyDown, true);
10969
+ };
10970
+ }, [
10971
+ scopeRef,
10972
+ restoreFocus,
10973
+ contain
10974
+ ]);
10975
+ // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.
10976
+ ($f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{
10977
+ const ownerDocument = ($431fbd86ca7dc216$export$b204af158042fbac)(scopeRef.current ? scopeRef.current[0] : undefined);
10978
+ if (!restoreFocus) return;
10979
+ let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);
10980
+ if (!treeNode) return;
10981
+ var _nodeToRestoreRef_current;
10982
+ treeNode.nodeToRestore = (_nodeToRestoreRef_current = nodeToRestoreRef.current) !== null && _nodeToRestoreRef_current !== void 0 ? _nodeToRestoreRef_current : undefined;
10983
+ return ()=>{
10984
+ let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);
10985
+ if (!treeNode) return;
10986
+ let nodeToRestore = treeNode.nodeToRestore;
10987
+ // if we already lost focus to the body and this was the active scope, then we should attempt to restore
10988
+ if (restoreFocus && nodeToRestore && // eslint-disable-next-line react-hooks/exhaustive-deps
10989
+ ($9bf71ea28793e738$var$isElementInScope(ownerDocument.activeElement, scopeRef.current) || ownerDocument.activeElement === ownerDocument.body && $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef))) {
10990
+ // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it
10991
+ let clonedTree = $9bf71ea28793e738$export$d06fae2ee68b101e.clone();
10992
+ requestAnimationFrame(()=>{
10993
+ // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere
10994
+ if (ownerDocument.activeElement === ownerDocument.body) {
10995
+ // look up the tree starting with our scope to find a nodeToRestore still in the DOM
10996
+ let treeNode = clonedTree.getTreeNode(scopeRef);
10997
+ while(treeNode){
10998
+ if (treeNode.nodeToRestore && treeNode.nodeToRestore.isConnected) {
10999
+ $9bf71ea28793e738$var$focusElement(treeNode.nodeToRestore);
11000
+ return;
11001
+ }
11002
+ treeNode = treeNode.parent;
11003
+ }
11004
+ // If no nodeToRestore was found, focus the first element in the nearest
11005
+ // ancestor scope that is still in the tree.
11006
+ treeNode = clonedTree.getTreeNode(scopeRef);
11007
+ while(treeNode){
11008
+ if (treeNode.scopeRef && treeNode.scopeRef.current && $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(treeNode.scopeRef)) {
11009
+ $9bf71ea28793e738$var$focusFirstInScope(treeNode.scopeRef.current, true);
11010
+ return;
11011
+ }
11012
+ treeNode = treeNode.parent;
11013
+ }
11014
+ }
11015
+ });
11016
+ }
11017
+ };
11018
+ }, [
11019
+ scopeRef,
11020
+ restoreFocus
11021
+ ]);
11022
+ }
11023
+ function $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, opts, scope) {
11024
+ let selector = (opts === null || opts === void 0 ? void 0 : opts.tabbable) ? $9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR : $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR;
11025
+ let walker = ($431fbd86ca7dc216$export$b204af158042fbac)(root).createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
11026
+ acceptNode (node) {
11027
+ var _opts_from;
11028
+ // Skip nodes inside the starting node.
11029
+ if (opts === null || opts === void 0 ? void 0 : (_opts_from = opts.from) === null || _opts_from === void 0 ? void 0 : _opts_from.contains(node)) return NodeFilter.FILTER_REJECT;
11030
+ if (node.matches(selector) && ($645f2e67b85a24c9$export$e989c0fffaa6b27a)(node) && (!scope || $9bf71ea28793e738$var$isElementInScope(node, scope)) && (!(opts === null || opts === void 0 ? void 0 : opts.accept) || opts.accept(node))) return NodeFilter.FILTER_ACCEPT;
11031
+ return NodeFilter.FILTER_SKIP;
11032
+ }
11033
+ });
11034
+ if (opts === null || opts === void 0 ? void 0 : opts.from) walker.currentNode = opts.from;
11035
+ return walker;
11036
+ }
11037
+ class $9bf71ea28793e738$var$Tree {
11038
+ get size() {
11039
+ return this.fastMap.size;
11040
+ }
11041
+ getTreeNode(data) {
11042
+ return this.fastMap.get(data);
11043
+ }
11044
+ addTreeNode(scopeRef, parent, nodeToRestore) {
11045
+ let parentNode = this.fastMap.get(parent !== null && parent !== void 0 ? parent : null);
11046
+ if (!parentNode) return;
11047
+ let node = new $9bf71ea28793e738$var$TreeNode({
11048
+ scopeRef: scopeRef
11049
+ });
11050
+ parentNode.addChild(node);
11051
+ node.parent = parentNode;
11052
+ this.fastMap.set(scopeRef, node);
11053
+ if (nodeToRestore) node.nodeToRestore = nodeToRestore;
11054
+ }
11055
+ addNode(node) {
11056
+ this.fastMap.set(node.scopeRef, node);
11057
+ }
11058
+ removeTreeNode(scopeRef) {
11059
+ // never remove the root
11060
+ if (scopeRef === null) return;
11061
+ let node = this.fastMap.get(scopeRef);
11062
+ if (!node) return;
11063
+ let parentNode = node.parent;
11064
+ // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing
11065
+ // if we are, then replace the siblings restore with the restore from the scope we're removing
11066
+ for (let current of this.traverse())if (current !== node && node.nodeToRestore && current.nodeToRestore && node.scopeRef && node.scopeRef.current && $9bf71ea28793e738$var$isElementInScope(current.nodeToRestore, node.scopeRef.current)) current.nodeToRestore = node.nodeToRestore;
11067
+ let children = node.children;
11068
+ if (parentNode) {
11069
+ parentNode.removeChild(node);
11070
+ if (children.size > 0) children.forEach((child)=>parentNode && parentNode.addChild(child));
11071
+ }
11072
+ this.fastMap.delete(node.scopeRef);
11073
+ }
11074
+ // Pre Order Depth First
11075
+ *traverse(node = this.root) {
11076
+ if (node.scopeRef != null) yield node;
11077
+ if (node.children.size > 0) for (let child of node.children)yield* this.traverse(child);
11078
+ }
11079
+ clone() {
11080
+ var _node_parent;
11081
+ let newTree = new $9bf71ea28793e738$var$Tree();
11082
+ var _node_parent_scopeRef;
11083
+ for (let node of this.traverse())newTree.addTreeNode(node.scopeRef, (_node_parent_scopeRef = (_node_parent = node.parent) === null || _node_parent === void 0 ? void 0 : _node_parent.scopeRef) !== null && _node_parent_scopeRef !== void 0 ? _node_parent_scopeRef : null, node.nodeToRestore);
11084
+ return newTree;
11085
+ }
11086
+ constructor(){
11087
+ this.fastMap = new Map();
11088
+ this.root = new $9bf71ea28793e738$var$TreeNode({
11089
+ scopeRef: null
11090
+ });
11091
+ this.fastMap.set(null, this.root);
11092
+ }
11093
+ }
11094
+ class $9bf71ea28793e738$var$TreeNode {
11095
+ addChild(node) {
11096
+ this.children.add(node);
11097
+ node.parent = this;
11098
+ }
11099
+ removeChild(node) {
11100
+ this.children.delete(node);
11101
+ node.parent = undefined;
11102
+ }
11103
+ constructor(props){
11104
+ this.children = new Set();
11105
+ this.contain = false;
11106
+ this.scopeRef = props.scopeRef;
11107
+ }
11108
+ }
11109
+ let $9bf71ea28793e738$export$d06fae2ee68b101e = new $9bf71ea28793e738$var$Tree();
11110
+
9960
11111
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CloseIconRound = function () { return (React__default["default"].createElement("svg", { "data-testid": 'close-icon-round', fill: 'none', height: '28', viewBox: '0 0 28 28', width: '28', xmlns: 'http://www.w3.org/2000/svg' },
9961
11112
  React__default["default"].createElement("rect", { fill: '#72767E', height: '28', rx: '14', width: '28' }),
9962
11113
  React__default["default"].createElement("circle", { cx: '14', cy: '14', fill: '#72767E', r: '12' }),
@@ -9988,13 +11139,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
9988
11139
  if (!open)
9989
11140
  return null;
9990
11141
  return (React__default["default"].createElement("div", { className: 'str-chat__modal str-chat__modal--open', onClick: handleClick },
9991
- React__default["default"].createElement("button", { className: 'str-chat__modal__close-button', ref: closeRef, title: t('Close') },
9992
- themeVersion === '2' && React__default["default"].createElement(CloseIconRound, null),
9993
- themeVersion === '1' && (React__default["default"].createElement(React__default["default"].Fragment, null,
9994
- t('Close'),
9995
- React__default["default"].createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
9996
- React__default["default"].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' }))))),
9997
- React__default["default"].createElement("div", { className: 'str-chat__modal__inner str-chat-react__modal__inner', ref: innerRef }, children)));
11142
+ React__default["default"].createElement($9bf71ea28793e738$export$20e40289641fbbb6, { autoFocus: true, contain: true },
11143
+ React__default["default"].createElement("button", { className: 'str-chat__modal__close-button', ref: closeRef, title: t('Close') },
11144
+ themeVersion === '2' && React__default["default"].createElement(CloseIconRound, null),
11145
+ themeVersion === '1' && (React__default["default"].createElement(React__default["default"].Fragment, null,
11146
+ t('Close'),
11147
+ React__default["default"].createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
11148
+ React__default["default"].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' }))))),
11149
+ React__default["default"].createElement("div", { className: 'str-chat__modal__inner str-chat-react__modal__inner', ref: innerRef }, children))));
9998
11150
  };
9999
11151
 
10000
11152
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -10889,13 +12041,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
10889
12041
  */
10890
12042
  var FileUploadButton = function (_a) {
10891
12043
  var _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.multiple, multiple = _c === void 0 ? false : _c, _d = _a.children, children = _d === void 0 ? React__default["default"].createElement(AttachmentIcon, null) : _d, handleFiles = _a.handleFiles, accepts = _a.accepts, _e = _a.resetOnChange, resetOnChange = _e === void 0 ? true : _e;
12044
+ var t = useTranslationContext('FileUploadButton').t;
10892
12045
  var className = 'rfu-file-upload-button';
10893
12046
  if (disabled) {
10894
12047
  className = "".concat(className, " rfu-file-upload-button--disabled");
10895
12048
  }
10896
12049
  return (React__default["default"].createElement("div", { className: className },
10897
12050
  React__default["default"].createElement("label", null,
10898
- React__default["default"].createElement(UploadButton, { accept: Array.isArray(accepts) ? accepts.join(',') : accepts, "aria-label": 'File input', className: 'rfu-file-input', disabled: disabled, multiple: multiple, onFileChange: handleFiles, resetOnChange: resetOnChange }),
12051
+ React__default["default"].createElement(UploadButton, { accept: Array.isArray(accepts) ? accepts.join(',') : accepts, "aria-label": t('aria/File input'), className: 'rfu-file-input', disabled: disabled, multiple: multiple, onFileChange: handleFiles, resetOnChange: resetOnChange }),
10899
12052
  children)));
10900
12053
  };
10901
12054
 
@@ -12566,7 +13719,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
12566
13719
  */
12567
13720
  var IconButton = function (_a) {
12568
13721
  var children = _a.children, onClick = _a.onClick;
12569
- return (React__default["default"].createElement("button", { "aria-label": 'Cancel upload', className: 'rfu-icon-button', "data-testid": 'cancel-upload-button', onClick: onClick, type: 'button' }, children));
13722
+ var t = useTranslationContext('IconButton').t;
13723
+ return (React__default["default"].createElement("button", { "aria-label": t('aria/Cancel upload'), className: 'rfu-icon-button', "data-testid": 'cancel-upload-button', onClick: onClick, type: 'button' }, children));
12570
13724
  };
12571
13725
 
12572
13726
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Thumbnail = function (_a) {
@@ -12583,9 +13737,10 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
12583
13737
  */
12584
13738
  var ImageUploadButton = function (_a) {
12585
13739
  var _b = _a.multiple, multiple = _b === void 0 ? false : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, handleFiles = _a.handleFiles, _d = _a.children, children = _d === void 0 ? React__default["default"].createElement(PictureIcon, null) : _d, _e = _a.resetOnChange, resetOnChange = _e === void 0 ? false : _e;
13740
+ var t = useTranslationContext('ImageUploadButton').t;
12586
13741
  return (React__default["default"].createElement("div", { className: 'rfu-image-upload-button' },
12587
13742
  React__default["default"].createElement("label", null,
12588
- React__default["default"].createElement(UploadButton, { accept: 'image/*', "aria-label": 'Image input', className: 'rfu-image-input', disabled: disabled, multiple: multiple, onFileChange: handleFiles, resetOnChange: resetOnChange }),
13743
+ React__default["default"].createElement(UploadButton, { accept: 'image/*', "aria-label": t('aria/Image input'), className: 'rfu-image-input', disabled: disabled, multiple: multiple, onFileChange: handleFiles, resetOnChange: resetOnChange }),
12589
13744
  children)));
12590
13745
  };
12591
13746
 
@@ -12599,6 +13754,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
12599
13754
 
12600
13755
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ImagePreviewer = function (_a) {
12601
13756
  var _b = _a.disabled, disabled = _b === void 0 ? false : _b, handleFiles = _a.handleFiles, handleRemove = _a.handleRemove, handleRetry = _a.handleRetry, imageUploads = _a.imageUploads, _c = _a.multiple, multiple = _c === void 0 ? true : _c;
13757
+ var t = useTranslationContext('ImagePreviewer').t;
12602
13758
  var onClose = React$2.useCallback(function (id, event) {
12603
13759
  if (!id)
12604
13760
  return console.warn("image.id of closed image was \"null\", this shouldn't happen");
@@ -12608,7 +13764,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
12608
13764
  imageUploads.map(function (image) {
12609
13765
  var url = image.url || image.previewUri;
12610
13766
  return (React__default["default"].createElement("div", { className: clsx('rfu-image-previewer__image', image.state === 'finished' && 'rfu-image-previewer__image--loaded'), key: image.id },
12611
- image.state === 'failed' && (React__default["default"].createElement("button", { "aria-label": 'Retry upload', className: 'rfu-image-previewer__retry', onClick: function (event) { return handleRetry === null || handleRetry === void 0 ? void 0 : handleRetry(image.id, event); }, type: 'button' },
13767
+ image.state === 'failed' && (React__default["default"].createElement("button", { "aria-label": t('aria/Retry upload'), className: 'rfu-image-previewer__retry', onClick: function (event) { return handleRetry === null || handleRetry === void 0 ? void 0 : handleRetry(image.id, event); }, type: 'button' },
12612
13768
  React__default["default"].createElement(RetryIcon$1, null))),
12613
13769
  url && React__default["default"].createElement(Thumbnail, { handleClose: function (event) { return onClose(image.id, event); }, image: url }),
12614
13770
  image.state === 'uploading' && (React__default["default"].createElement(LoadingIndicator$1, { backgroundColor: '#ffffff19', color: '#ffffffb2' }))));
@@ -44689,7 +45845,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
44689
45845
 
44690
45846
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCreateChannelStateContext = function (value) {
44691
45847
  var _a;
44692
- var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, debounceURLEnrichmentMs = value.debounceURLEnrichmentMs, dragAndDropWindow = value.dragAndDropWindow, enrichURLForPreview = value.enrichURLForPreview, giphyVersion = value.giphyVersion, error = value.error, findURLFn = value.findURLFn, hasMore = value.hasMore, hasMoreNewer = value.hasMoreNewer, imageAttachmentSizeHandler = value.imageAttachmentSizeHandler, suppressAutoscroll = value.suppressAutoscroll, highlightedMessageId = value.highlightedMessageId, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, onLinkPreviewDismissed = value.onLinkPreviewDismissed, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, shouldGenerateVideoThumbnail = value.shouldGenerateVideoThumbnail, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, videoAttachmentSizeHandler = value.videoAttachmentSizeHandler, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
45848
+ var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, debounceURLEnrichmentMs = value.debounceURLEnrichmentMs, dragAndDropWindow = value.dragAndDropWindow, enrichURLForPreview = value.enrichURLForPreview, giphyVersion = value.giphyVersion, error = value.error, findURLFn = value.findURLFn, hasMore = value.hasMore, hasMoreNewer = value.hasMoreNewer, imageAttachmentSizeHandler = value.imageAttachmentSizeHandler, suppressAutoscroll = value.suppressAutoscroll, highlightedMessageId = value.highlightedMessageId, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, onLinkPreviewDismissed = value.onLinkPreviewDismissed, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, shouldGenerateVideoThumbnail = value.shouldGenerateVideoThumbnail, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, channelUnreadUiState = value.channelUnreadUiState, videoAttachmentSizeHandler = value.videoAttachmentSizeHandler, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
44693
45849
  var channelId = channel.cid;
44694
45850
  var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
44695
45851
  var membersLength = Object.keys(members || []).length;
@@ -44734,6 +45890,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
44734
45890
  channel: channel,
44735
45891
  channelCapabilities: channelCapabilities,
44736
45892
  channelConfig: channelConfig,
45893
+ channelUnreadUiState: channelUnreadUiState,
44737
45894
  debounceURLEnrichmentMs: debounceURLEnrichmentMs,
44738
45895
  dragAndDropWindow: dragAndDropWindow,
44739
45896
  enrichURLForPreview: enrichURLForPreview,
@@ -44770,6 +45927,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
44770
45927
  // eslint-disable-next-line react-hooks/exhaustive-deps
44771
45928
  [
44772
45929
  channelId,
45930
+ channelUnreadUiState,
44773
45931
  debounceURLEnrichmentMs,
44774
45932
  enrichURLForPreview,
44775
45933
  error,
@@ -44970,6 +46128,33 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
44970
46128
  React__default["default"].createElement("path", { d: 'M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2Z', fill: 'black', id: 'background' }),
44971
46129
  React__default["default"].createElement("path", { d: 'M13 17H11V15H13V17ZM13 13H11V7H13V13Z', fill: 'white' })))); };
44972
46130
 
46131
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function MessageBounceModal(_a) {
46132
+ var MessageBouncePrompt = _a.MessageBouncePrompt, modalProps = __rest(_a, ["MessageBouncePrompt"]);
46133
+ return (React__default["default"].createElement(Modal, __assign({}, modalProps),
46134
+ React__default["default"].createElement(MessageBounceProvider, null,
46135
+ React__default["default"].createElement(MessageBouncePrompt, { onClose: modalProps.onClose }))));
46136
+ }
46137
+
46138
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function MessageBouncePrompt(_a) {
46139
+ var children = _a.children, onClose = _a.onClose;
46140
+ var _b = useMessageBounceContext('MessageBouncePrompt'), handleDelete = _b.handleDelete, handleEdit = _b.handleEdit, handleRetry = _b.handleRetry;
46141
+ var t = useTranslationContext('MessageBouncePrompt').t;
46142
+ function createHandler(handle) {
46143
+ return function (e) {
46144
+ handle(e);
46145
+ onClose === null || onClose === void 0 ? void 0 : onClose(e);
46146
+ };
46147
+ }
46148
+ return (React__default["default"].createElement("div", { className: 'str-chat__message-bounce-prompt', "data-testid": 'message-bounce-prompt' },
46149
+ React__default["default"].createElement("div", { className: 'str-chat__message-bounce-prompt-header' }, children !== null && children !== void 0 ? children : t('This message did not meet our content guidelines')),
46150
+ React__default["default"].createElement("div", { className: 'str-chat__message-bounce-actions' },
46151
+ React__default["default"].createElement("button", { className: 'str-chat__message-bounce-edit', "data-testid": 'message-bounce-edit', onClick: createHandler(handleEdit), type: 'button' }, t('Edit Message')),
46152
+ React__default["default"].createElement("button", { className: 'str-chat__message-bounce-send', "data-testid": 'message-bounce-send', onClick: createHandler(handleRetry) }, t('Send Anyway')),
46153
+ React__default["default"].createElement("button", { className: 'str-chat__message-bounce-delete', "data-testid": 'message-bounce-delete', onClick: createHandler(handleDelete) }, t('Delete')))));
46154
+ }
46155
+
46156
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
46157
+
44973
46158
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
44974
46159
  var _a, _b, _c;
44975
46160
  var _d = useChannelStateContext('useUserRole'), channel = _d.channel, _e = _d.channelCapabilities, channelCapabilities = _e === void 0 ? {} : _e;
@@ -45324,6 +46509,11 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
45324
46509
  var noSpace = noEmojis.replace(/[\s\n]/gm, '');
45325
46510
  return !noSpace;
45326
46511
  };
46512
+ var isMessageBounced = function (message) {
46513
+ var _a;
46514
+ return message.type === 'error' &&
46515
+ ((_a = message.moderation_details) === null || _a === void 0 ? void 0 : _a.action) === 'MESSAGE_RESPONSE_ACTION_BOUNCE';
46516
+ };
45327
46517
 
45328
46518
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CustomMessageActionsList = function (props) {
45329
46519
  var customMessageActions = props.customMessageActions, message = props.message;
@@ -45337,7 +46527,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
45337
46527
  };
45338
46528
 
45339
46529
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedMessageActionsBox = React__default["default"].forwardRef(function (props, ref) {
45340
- var getMessageActions = props.getMessageActions, handleDelete = props.handleDelete, handleEdit = props.handleEdit, handleFlag = props.handleFlag, handleMarkUnread = props.handleMarkUnread, handleMute = props.handleMute, handlePin = props.handlePin, isUserMuted = props.isUserMuted, _a = props.open, open = _a === void 0 ? false : _a, restDivProps = __rest(props, ["getMessageActions", "handleDelete", "handleEdit", "handleFlag", "handleMarkUnread", "handleMute", "handlePin", "isUserMuted", "open"]);
46530
+ var getMessageActions = props.getMessageActions, handleDelete = props.handleDelete, handleEdit = props.handleEdit, handleFlag = props.handleFlag, handleMarkUnread = props.handleMarkUnread, handleMute = props.handleMute, handlePin = props.handlePin, isUserMuted = props.isUserMuted; props.mine; var _a = props.open, open = _a === void 0 ? false : _a, restDivProps = __rest(props, ["getMessageActions", "handleDelete", "handleEdit", "handleFlag", "handleMarkUnread", "handleMute", "handlePin", "isUserMuted", "mine", "open"]);
45341
46531
  var _b = useComponentContext('MessageActionsBox').CustomMessageActionsList, CustomMessageActionsList$1 = _b === void 0 ? CustomMessageActionsList : _b;
45342
46532
  var setQuotedMessage = useChannelActionContext('MessageActionsBox').setQuotedMessage;
45343
46533
  var _c = useMessageContext('MessageActionsBox'), customMessageActions = _c.customMessageActions, message = _c.message, threadList = _c.threadList;
@@ -45358,7 +46548,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
45358
46548
  });
45359
46549
  var buttonClassName = 'str-chat__message-actions-list-item str-chat__message-actions-list-item-button';
45360
46550
  return (React__default["default"].createElement("div", __assign({}, restDivProps, { className: rootClassName, "data-testid": 'message-actions-box', ref: ref }),
45361
- React__default["default"].createElement("div", { "aria-label": 'Message Options', className: 'str-chat__message-actions-list', role: 'listbox' },
46551
+ React__default["default"].createElement("div", { "aria-label": t('aria/Message Options'), className: 'str-chat__message-actions-list', role: 'listbox' },
45362
46552
  React__default["default"].createElement(CustomMessageActionsList$1, { customMessageActions: customMessageActions, message: message }),
45363
46553
  messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 && (React__default["default"].createElement("button", { "aria-selected": 'false', className: buttonClassName, onClick: handleQuote, role: 'option' }, t('Reply'))),
45364
46554
  messageActions.indexOf(MESSAGE_ACTIONS.pin) > -1 && !message.parent_id && (React__default["default"].createElement("button", { "aria-selected": 'false', className: buttonClassName, onClick: handlePin, role: 'option' }, !message.pinned ? t('Pin') : t('Unpin'))),
@@ -47344,6 +48534,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47344
48534
  var _a = props.ActionsIcon, ActionsIcon$1 = _a === void 0 ? ActionsIcon : _a, _b = props.customWrapperClass, customWrapperClass = _b === void 0 ? '' : _b, propGetMessageActions = props.getMessageActions, propHandleDelete = props.handleDelete, propHandleFlag = props.handleFlag, propHandleMarkUnread = props.handleMarkUnread, propHandleMute = props.handleMute, propHandlePin = props.handlePin, inline = props.inline, propMessage = props.message, messageWrapperRef = props.messageWrapperRef, mine = props.mine;
47345
48535
  var mutes = useChatContext('MessageActions').mutes;
47346
48536
  var _c = useMessageContext('MessageActions'), customMessageActions = _c.customMessageActions, contextGetMessageActions = _c.getMessageActions, contextHandleDelete = _c.handleDelete, contextHandleFlag = _c.handleFlag, contextHandleMarkUnread = _c.handleMarkUnread, contextHandleMute = _c.handleMute, contextHandlePin = _c.handlePin, isMyMessage = _c.isMyMessage, contextMessage = _c.message, setEditingState = _c.setEditingState;
48537
+ var t = useTranslationContext('MessageActions').t;
47347
48538
  var getMessageActions = propGetMessageActions || contextGetMessageActions;
47348
48539
  var handleDelete = propHandleDelete || contextHandleDelete;
47349
48540
  var handleFlag = propHandleFlag || contextHandleFlag;
@@ -47392,7 +48583,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47392
48583
  return null;
47393
48584
  return (React__default["default"].createElement(MessageActionsWrapper, { customWrapperClass: customWrapperClass, inline: inline, setActionsBoxOpen: setActionsBoxOpen },
47394
48585
  React__default["default"].createElement(MessageActionsBox, __assign({}, attributes.popper, { getMessageActions: getMessageActions, handleDelete: handleDelete, handleEdit: setEditingState, handleFlag: handleFlag, handleMarkUnread: handleMarkUnread, handleMute: handleMute, handlePin: handlePin, isUserMuted: isMuted, mine: isMine, open: actionsBoxOpen, ref: popperElementRef, style: styles.popper })),
47395
- React__default["default"].createElement("button", { "aria-expanded": actionsBoxOpen, "aria-haspopup": 'true', "aria-label": 'Open Message Actions Menu', className: 'str-chat__message-actions-box-button', ref: actionsBoxButtonRef },
48586
+ React__default["default"].createElement("button", { "aria-expanded": actionsBoxOpen, "aria-haspopup": 'true', "aria-label": t('aria/Open Message Actions Menu'), className: 'str-chat__message-actions-box-button', ref: actionsBoxButtonRef },
47396
48587
  React__default["default"].createElement(ActionsIcon$1, { className: 'str-chat__message-action-icon' }))));
47397
48588
  };
47398
48589
  var MessageActionsWrapper = function (props) {
@@ -47417,7 +48608,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47417
48608
 
47418
48609
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedMessageOptions = function (props) {
47419
48610
  var _a = props.ActionsIcon, ActionsIcon$1 = _a === void 0 ? ActionsIcon : _a, _b = props.displayReplies, displayReplies = _b === void 0 ? true : _b, propHandleOpenThread = props.handleOpenThread, messageWrapperRef = props.messageWrapperRef, _c = props.ReactionIcon, ReactionIcon$1 = _c === void 0 ? ReactionIcon : _c, _d = props.theme, theme = _d === void 0 ? 'simple' : _d, _e = props.ThreadIcon, ThreadIcon$1 = _e === void 0 ? ThreadIcon : _e;
47420
- var _f = useMessageContext('MessageOptions'), customMessageActions = _f.customMessageActions, getMessageActions = _f.getMessageActions, contextHandleOpenThread = _f.handleOpenThread, initialMessage = _f.initialMessage, message = _f.message, onReactionListClick = _f.onReactionListClick, threadList = _f.threadList;
48611
+ var _f = useMessageContext('MessageOptions'), customMessageActions = _f.customMessageActions, getMessageActions = _f.getMessageActions, contextHandleOpenThread = _f.handleOpenThread, initialMessage = _f.initialMessage, message = _f.message, onReactionListClick = _f.onReactionListClick, showDetailedReactions = _f.showDetailedReactions, threadList = _f.threadList;
48612
+ var t = useTranslationContext('MessageOptions').t;
47421
48613
  var handleOpenThread = propHandleOpenThread || contextHandleOpenThread;
47422
48614
  var messageActions = getMessageActions();
47423
48615
  var showActionsBox = showMessageActionsBox(messageActions, threadList) || !!customMessageActions;
@@ -47435,9 +48627,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47435
48627
  var rootClassName = "str-chat__message-".concat(theme, "__actions str-chat__message-options");
47436
48628
  return (React__default["default"].createElement("div", { className: rootClassName, "data-testid": 'message-options' },
47437
48629
  showActionsBox && (React__default["default"].createElement(MessageActions, { ActionsIcon: ActionsIcon$1, messageWrapperRef: messageWrapperRef })),
47438
- shouldShowReplies && (React__default["default"].createElement("button", { "aria-label": 'Open Thread', className: "str-chat__message-".concat(theme, "__actions__action str-chat__message-").concat(theme, "__actions__action--thread str-chat__message-reply-in-thread-button"), "data-testid": 'thread-action', onClick: handleOpenThread },
48630
+ shouldShowReplies && (React__default["default"].createElement("button", { "aria-label": t('aria/Open Thread'), className: "str-chat__message-".concat(theme, "__actions__action str-chat__message-").concat(theme, "__actions__action--thread str-chat__message-reply-in-thread-button"), "data-testid": 'thread-action', onClick: handleOpenThread },
47439
48631
  React__default["default"].createElement(ThreadIcon$1, { className: 'str-chat__message-action-icon' }))),
47440
- shouldShowReactions && (React__default["default"].createElement("button", { "aria-label": 'Open Reaction Selector', className: "str-chat__message-".concat(theme, "__actions__action str-chat__message-").concat(theme, "__actions__action--reactions str-chat__message-reactions-button"), "data-testid": 'message-reaction-action', onClick: onReactionListClick },
48632
+ shouldShowReactions && (React__default["default"].createElement("button", { "aria-expanded": showDetailedReactions, "aria-label": t('aria/Open Reaction Selector'), className: "str-chat__message-".concat(theme, "__actions__action str-chat__message-").concat(theme, "__actions__action--reactions str-chat__message-reactions-button"), "data-testid": 'message-reaction-action', onClick: onReactionListClick },
47441
48633
  React__default["default"].createElement(ReactionIcon$1, { className: 'str-chat__message-action-icon' })))));
47442
48634
  };
47443
48635
  var MessageOptions = React__default["default"].memo(UnMemoizedMessageOptions);
@@ -47578,13 +48770,27 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47578
48770
  ((_c = message.attachments) === null || _c === void 0 ? void 0 : _c.length) ? React__default["default"].createElement(Attachment, { attachments: message.attachments }) : null));
47579
48771
  };
47580
48772
 
48773
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function MessageErrorText(_a) {
48774
+ var message = _a.message, theme = _a.theme;
48775
+ var t = useTranslationContext('MessageText').t;
48776
+ if (message.type === 'error' && !isMessageBounced(message)) {
48777
+ return (React__default["default"].createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, t('Error · Unsent')));
48778
+ }
48779
+ if (message.status === 'failed') {
48780
+ return (React__default["default"].createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, message.errorStatusCode !== 403
48781
+ ? t('Message Failed · Click to try again')
48782
+ : t('Message Failed · Unauthorized')));
48783
+ }
48784
+ return null;
48785
+ }
48786
+
47581
48787
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedMessageTextComponent = function (props) {
47582
48788
  var _a, _b;
47583
48789
  var customInnerClass = props.customInnerClass, _c = props.customWrapperClass, customWrapperClass = _c === void 0 ? '' : _c, propMessage = props.message, propsRenderText = props.renderText, _d = props.theme, theme = _d === void 0 ? 'simple' : _d;
47584
48790
  var _e = useComponentContext('MessageText').QuotedMessage, QuotedMessage$1 = _e === void 0 ? QuotedMessage : _e;
47585
48791
  var _f = useMessageContext('MessageText'), contextMessage = _f.message, onMentionsClickMessage = _f.onMentionsClickMessage, onMentionsHoverMessage = _f.onMentionsHoverMessage, contextRenderText = _f.renderText, unsafeHTML = _f.unsafeHTML;
47586
48792
  var renderText$1 = (_a = propsRenderText !== null && propsRenderText !== void 0 ? propsRenderText : contextRenderText) !== null && _a !== void 0 ? _a : renderText;
47587
- var _g = useTranslationContext('MessageText'), t = _g.t, userLanguage = _g.userLanguage;
48793
+ var userLanguage = useTranslationContext('MessageText').userLanguage;
47588
48794
  var message = propMessage || contextMessage;
47589
48795
  var hasAttachment = messageHasAttachments(message);
47590
48796
  var messageTextToRender = ((_b = message.i18n) === null || _b === void 0 ? void 0 : _b["".concat(userLanguage, "_text")]) || message.text;
@@ -47602,10 +48808,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47602
48808
  ? " str-chat__message-".concat(theme, "-text-inner--is-emoji")
47603
48809
  : '', "\n ").trim(), "data-testid": 'message-text-inner-wrapper', onClick: onMentionsClickMessage, onMouseOver: onMentionsHoverMessage },
47604
48810
  message.quoted_message && React__default["default"].createElement(QuotedMessage$1, null),
47605
- message.type === 'error' && (React__default["default"].createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, t('Error · Unsent'))),
47606
- message.status === 'failed' && (React__default["default"].createElement("div", { className: "str-chat__".concat(theme, "-message--error-message str-chat__message--error-message") }, message.errorStatusCode !== 403
47607
- ? t('Message Failed · Click to try again')
47608
- : t('Message Failed · Unauthorized'))),
48811
+ React__default["default"].createElement(MessageErrorText, { message: message, theme: theme }),
47609
48812
  unsafeHTML && message.html ? (React__default["default"].createElement("div", { dangerouslySetInnerHTML: { __html: message.html } })) : (React__default["default"].createElement("div", null, messageText)))));
47610
48813
  };
47611
48814
  var MessageText = React__default["default"].memo(UnMemoizedMessageTextComponent);
@@ -47743,7 +48946,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
47743
48946
  var SendButton = function (_a) {
47744
48947
  var sendMessage = _a.sendMessage, rest = __rest(_a, ["sendMessage"]);
47745
48948
  var themeVersion = useChatContext('SendButton').themeVersion;
47746
- return (React__default["default"].createElement("button", __assign({ "aria-label": 'Send', className: 'str-chat__send-button', "data-testid": 'send-button', onClick: sendMessage, type: 'button' }, rest), themeVersion === '2' ? React__default["default"].createElement(SendIconV2, null) : React__default["default"].createElement(SendIconV1, null)));
48949
+ var t = useTranslationContext('SendButton').t;
48950
+ return (React__default["default"].createElement("button", __assign({ "aria-label": t('aria/Send'), className: 'str-chat__send-button', "data-testid": 'send-button', onClick: sendMessage, type: 'button' }, rest), themeVersion === '2' ? React__default["default"].createElement(SendIconV2, null) : React__default["default"].createElement(SendIconV1, null)));
47747
48951
  };
47748
48952
 
47749
48953
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var AttachmentPreviewList = function () {
@@ -48318,7 +49522,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
48318
49522
  var t = useTranslationContext('QuotedMessagePreview').t;
48319
49523
  return (React__default["default"].createElement("div", { className: 'quoted-message-preview-header str-chat__quoted-message-preview-header' },
48320
49524
  React__default["default"].createElement("div", { className: 'str-chat__quoted-message-reply-to-message' }, t('Reply to Message')),
48321
- React__default["default"].createElement("button", { "aria-label": 'Cancel Reply', className: 'str-chat__square-button str-chat__quoted-message-remove', onClick: function () { return setQuotedMessage(undefined); } },
49525
+ React__default["default"].createElement("button", { "aria-label": t('aria/Cancel Reply'), className: 'str-chat__square-button str-chat__quoted-message-remove', onClick: function () { return setQuotedMessage(undefined); } },
48322
49526
  React__default["default"].createElement(CloseIcon$2, null))));
48323
49527
  };
48324
49528
  var QuotedMessagePreview = function (_a) {
@@ -48484,7 +49688,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
48484
49688
  displayQuotedMessage && React__default["default"].createElement(QuotedMessagePreviewHeader, null),
48485
49689
  React__default["default"].createElement("div", { className: 'str-chat__message-input-inner' },
48486
49690
  React__default["default"].createElement("div", { className: 'str-chat__file-input-container', "data-testid": 'file-upload-button' },
48487
- React__default["default"].createElement(UploadButton, { accept: acceptedFiles === null || acceptedFiles === void 0 ? void 0 : acceptedFiles.join(','), "aria-label": 'File upload', className: 'str-chat__file-input', "data-testid": 'file-input', disabled: !isUploadEnabled || maxFilesLeft === 0, id: id, multiple: multipleUploads, onFileChange: uploadNewFiles }),
49691
+ React__default["default"].createElement(UploadButton, { accept: acceptedFiles === null || acceptedFiles === void 0 ? void 0 : acceptedFiles.join(','), "aria-label": t('aria/File upload'), className: 'str-chat__file-input', "data-testid": 'file-input', disabled: !isUploadEnabled || maxFilesLeft === 0, id: id, multiple: multipleUploads, onFileChange: uploadNewFiles }),
48488
49692
  React__default["default"].createElement("label", { className: 'str-chat__file-input-label', htmlFor: id },
48489
49693
  React__default["default"].createElement(FileUploadIcon, null))),
48490
49694
  React__default["default"].createElement("div", { className: 'str-chat__message-textarea-container' },
@@ -49027,7 +50231,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
49027
50231
  ((!someLinkPreviewsLoading && attachmentsFromLinkPreviews.length > 0) ||
49028
50232
  someLinkPreviewsDismissed);
49029
50233
  sendOptions = linkPreviewsEnabled ? { skip_enrich_url: skip_enrich_url } : undefined;
49030
- if (!message) return [3 /*break*/, 5];
50234
+ if (!(message && message.type !== 'error')) return [3 /*break*/, 5];
49031
50235
  delete message.i18n;
49032
50236
  _a.label = 1;
49033
50237
  case 1:
@@ -49829,9 +51033,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
49829
51033
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function useFetchReactions(options) {
49830
51034
  var _this = this;
49831
51035
  var contextHandleFetchReactions = useMessageContext('useFetchReactions').handleFetchReactions;
49832
- var _a = React$2.useState(false), isLoading = _a[0], setIsLoading = _a[1];
49833
- var _b = React$2.useState([]), reactions = _b[0], setReactions = _b[1];
51036
+ var _a = React$2.useState([]), reactions = _a[0], setReactions = _a[1];
49834
51037
  var propHandleFetchReactions = options.handleFetchReactions, shouldFetch = options.shouldFetch;
51038
+ var _b = React$2.useState(shouldFetch), isLoading = _b[0], setIsLoading = _b[1];
49835
51039
  var handleFetchReactions = propHandleFetchReactions !== null && propHandleFetchReactions !== void 0 ? propHandleFetchReactions : contextHandleFetchReactions;
49836
51040
  React$2.useEffect(function () {
49837
51041
  if (!shouldFetch) {
@@ -49899,12 +51103,12 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
49899
51103
  return EmojiComponent && (React__default["default"].createElement("div", { className: clsx('str-chat__message-reactions-details-reaction-type', {
49900
51104
  'str-chat__message-reactions-details-reaction-type--selected': selectedReactionType === reactionType,
49901
51105
  }), "data-testid": "reaction-details-selector-".concat(reactionType), key: reactionType, onClick: function () { return onSelectedReactionTypeChange === null || onSelectedReactionTypeChange === void 0 ? void 0 : onSelectedReactionTypeChange(reactionType); } },
49902
- React__default["default"].createElement("span", { className: 'emoji str-chat__message-reaction-emoji' },
51106
+ React__default["default"].createElement("span", { className: 'emoji str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback' },
49903
51107
  React__default["default"].createElement(EmojiComponent, null)),
49904
51108
  "\u00A0",
49905
51109
  React__default["default"].createElement("span", { className: 'str-chat__message-reaction-count' }, reactionCount)));
49906
51110
  })),
49907
- SelectedEmojiComponent && (React__default["default"].createElement("div", { className: 'emoji str-chat__message-reaction-emoji str-chat__message-reaction-emoji-big' },
51111
+ SelectedEmojiComponent && (React__default["default"].createElement("div", { className: 'emoji str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback str-chat__message-reaction-emoji-big' },
49908
51112
  React__default["default"].createElement(SelectedEmojiComponent, null))),
49909
51113
  React__default["default"].createElement("div", { className: 'str-chat__message-reactions-details-reacting-users', "data-testid": 'all-reacting-users' }, areReactionsLoading ? (React__default["default"].createElement(LoadingIndicator, null)) : (currentReactions.map(function (_a) {
49910
51114
  var user = _a.user;
@@ -50530,6 +51734,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50530
51734
  var handleFetchReactions = props.handleFetchReactions, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["handleFetchReactions", "reverse"]);
50531
51735
  var _b = useProcessReactions(rest), existingReactions = _b.existingReactions, hasReactions = _b.hasReactions, totalReactionCount = _b.totalReactionCount;
50532
51736
  var _c = React$2.useState(null), selectedReactionType = _c[0], setSelectedReactionType = _c[1];
51737
+ var t = useTranslationContext('ReactionsList').t;
50533
51738
  var handleReactionButtonClick = function (reactionType) {
50534
51739
  if (totalReactionCount > MAX_MESSAGE_REACTIONS_TO_FETCH) {
50535
51740
  return;
@@ -50539,7 +51744,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50539
51744
  if (!hasReactions)
50540
51745
  return null;
50541
51746
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
50542
- React__default["default"].createElement("div", { "aria-label": 'Reaction list', className: clsx('str-chat__reaction-list str-chat__message-reactions-container', {
51747
+ React__default["default"].createElement("div", { "aria-label": t('aria/Reaction list'), className: clsx('str-chat__reaction-list str-chat__message-reactions-container', {
50543
51748
  'str-chat__reaction-list--reverse': reverse,
50544
51749
  }), "data-testid": 'reaction-list', role: 'figure' },
50545
51750
  React__default["default"].createElement("ul", { className: 'str-chat__message-reactions' },
@@ -50605,30 +51810,15 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50605
51810
  var SimpleReactionsList = React__default["default"].memo(UnMemoizedSimpleReactionsList);
50606
51811
 
50607
51812
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var SpriteImage = function (_a) {
50608
- var columns = _a.columns, fallback = _a.fallback, height = _a.height, position = _a.position, rows = _a.rows, spriteUrl = _a.spriteUrl, width = _a.width;
51813
+ var columns = _a.columns, fallback = _a.fallback, height = _a.height, position = _a.position, rows = _a.rows, spriteUrl = _a.spriteUrl, style = _a.style, width = _a.width;
50609
51814
  var _b = React$2.useState([0, 0]), _c = _b[0], spriteWidth = _c[0], spriteHeight = _c[1], setSpriteDimensions = _b[1];
50610
51815
  React$2.useEffect(function () {
50611
51816
  getImageDimensions(spriteUrl).then(setSpriteDimensions).catch(console.error);
50612
51817
  }, [spriteUrl]);
50613
51818
  var x = position[0], y = position[1];
50614
- var spriteItemWidth = spriteWidth / columns;
50615
- var spriteItemHeight = spriteHeight / rows;
50616
- var resizeRatio = 1;
50617
- if (!width && height)
50618
- resizeRatio = height / spriteItemHeight;
50619
- if (width && !height)
50620
- resizeRatio = width / spriteItemWidth;
50621
- if (resizeRatio === Infinity)
50622
- resizeRatio = 1;
50623
51819
  if (!spriteHeight || !spriteWidth)
50624
51820
  return React__default["default"].createElement(React__default["default"].Fragment, null, fallback);
50625
- return (React__default["default"].createElement("div", { "data-testid": 'sprite-image', style: {
50626
- backgroundImage: "url('".concat(spriteUrl, "')"),
50627
- backgroundPosition: "".concat(x * (100 / (columns - 1)), "% ").concat(y * (100 / (rows - 1)), "%"),
50628
- backgroundSize: "".concat(columns * 100, "% ").concat(rows * 100, "%"),
50629
- height: height !== null && height !== void 0 ? height : spriteItemHeight * resizeRatio,
50630
- width: width !== null && width !== void 0 ? width : spriteItemWidth * resizeRatio,
50631
- } }));
51821
+ return (React__default["default"].createElement("div", { "data-testid": 'sprite-image', style: __assign(__assign(__assign(__assign(__assign({}, style), { '--str-chat__sprite-image-resize-ratio': 'var(--str-chat__sprite-image-resize-ratio-x, var(--str-chat__sprite-image-resize-ratio-y, 1))', '--str-chat__sprite-image-resize-ratio-x': 'calc(var(--str-chat__sprite-image-width) / var(--str-chat__sprite-item-width))', '--str-chat__sprite-image-resize-ratio-y': 'calc(var(--str-chat__sprite-image-height) / var(--str-chat__sprite-item-height))', '--str-chat__sprite-item-height': "".concat(spriteHeight / rows), '--str-chat__sprite-item-width': "".concat(spriteWidth / columns) }), (Number.isFinite(height) ? { '--str-chat__sprite-image-height': "".concat(height, "px") } : {})), (Number.isFinite(width) ? { '--str-chat__sprite-image-width': "".concat(width, "px") } : {})), { backgroundImage: "url('".concat(spriteUrl, "')"), backgroundPosition: "".concat(x * (100 / (columns - 1)), "% ").concat(y * (100 / (rows - 1)), "%"), backgroundSize: "".concat(columns * 100, "% ").concat(rows * 100, "%"), height: 'var(--str-chat__sprite-image-height, calc(var(--str-chat__sprite-item-height) * var(--str-chat__sprite-image-resize-ratio)))', width: 'var(--str-chat__sprite-image-width, calc(var(--str-chat__sprite-item-width) * var(--str-chat__sprite-image-resize-ratio)))' }) }));
50632
51822
  };
50633
51823
 
50634
51824
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var StreamSpriteEmojiPositions = {
@@ -50643,7 +51833,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50643
51833
  var StreamEmoji = function (_a) {
50644
51834
  var fallback = _a.fallback, type = _a.type;
50645
51835
  var position = StreamSpriteEmojiPositions[type];
50646
- return (React__default["default"].createElement(SpriteImage, { columns: 2, fallback: fallback, height: 18, position: position, rows: 3, spriteUrl: STREAM_SPRITE_URL }));
51836
+ return (React__default["default"].createElement(SpriteImage, { columns: 2, fallback: fallback, position: position, rows: 3, spriteUrl: STREAM_SPRITE_URL, style: {
51837
+ '--str-chat__sprite-image-height': 'var(--str-chat__stream-emoji-size, 18px)',
51838
+ } }));
50647
51839
  };
50648
51840
 
50649
51841
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/* eslint-disable sort-keys */
@@ -50660,7 +51852,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50660
51852
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageSimpleWithContext = function (props) {
50661
51853
  var _a;
50662
51854
  var additionalMessageInputProps = props.additionalMessageInputProps, clearEditingState = props.clearEditingState, editing = props.editing, endOfGroup = props.endOfGroup, firstOfGroup = props.firstOfGroup, groupedByUser = props.groupedByUser, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, highlighted = props.highlighted, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, renderText = props.renderText, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList;
50663
- var _b = useComponentContext('MessageSimple'), Attachment = _b.Attachment, _c = _b.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, _d = _b.EditMessageInput, EditMessageInput = _d === void 0 ? EditMessageForm : _d, _e = _b.MessageDeleted, MessageDeleted$1 = _e === void 0 ? MessageDeleted : _e, _f = _b.MessageOptions, MessageOptions$1 = _f === void 0 ? MessageOptions : _f, _g = _b.MessageRepliesCountButton, MessageRepliesCountButton$1 = _g === void 0 ? MessageRepliesCountButton : _g, _h = _b.MessageStatus, MessageStatus$1 = _h === void 0 ? MessageStatus : _h, _j = _b.MessageTimestamp, MessageTimestamp$1 = _j === void 0 ? MessageTimestamp : _j, _k = _b.ReactionSelector, ReactionSelector$1 = _k === void 0 ? ReactionSelector : _k, _l = _b.ReactionsList, ReactionsList$1 = _l === void 0 ? ReactionsList : _l;
51855
+ var _b = React$2.useState(false), isBounceDialogOpen = _b[0], setIsBounceDialogOpen = _b[1];
51856
+ var _c = useComponentContext('MessageSimple'), Attachment = _c.Attachment, _d = _c.Avatar, Avatar$1 = _d === void 0 ? Avatar : _d, _e = _c.EditMessageInput, EditMessageInput = _e === void 0 ? EditMessageForm : _e, _f = _c.MessageDeleted, MessageDeleted$1 = _f === void 0 ? MessageDeleted : _f, _g = _c.MessageBouncePrompt, MessageBouncePrompt$1 = _g === void 0 ? MessageBouncePrompt : _g, _h = _c.MessageOptions, MessageOptions$1 = _h === void 0 ? MessageOptions : _h, _j = _c.MessageRepliesCountButton, MessageRepliesCountButton$1 = _j === void 0 ? MessageRepliesCountButton : _j, _k = _c.MessageStatus, MessageStatus$1 = _k === void 0 ? MessageStatus : _k, _l = _c.MessageTimestamp, MessageTimestamp$1 = _l === void 0 ? MessageTimestamp : _l, _m = _c.ReactionSelector, ReactionSelector$1 = _m === void 0 ? ReactionSelector : _m, _o = _c.ReactionsList, ReactionsList$1 = _o === void 0 ? ReactionsList : _o;
50664
51857
  var themeVersion = useChatContext('MessageSimple').themeVersion;
50665
51858
  var hasAttachment = messageHasAttachments(message);
50666
51859
  var hasReactions = messageHasReactions(message);
@@ -50680,6 +51873,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50680
51873
  var showMetadata = !groupedByUser || endOfGroup;
50681
51874
  var showReplyCountButton = !threadList && !!message.reply_count;
50682
51875
  var allowRetry = message.status === 'failed' && message.errorStatusCode !== 403;
51876
+ var isBounced = isMessageBounced(message);
51877
+ var handleClick = undefined;
51878
+ if (allowRetry) {
51879
+ handleClick = function () { return handleRetry(message); };
51880
+ }
51881
+ else if (isBounced) {
51882
+ handleClick = function () { return setIsBounceDialogOpen(true); };
51883
+ }
50683
51884
  var rootClassName = clsx('str-chat__message str-chat__message-simple', "str-chat__message--".concat(message.type), "str-chat__message--".concat(message.status), isMyMessage()
50684
51885
  ? 'str-chat__message--me str-chat__message-simple--me'
50685
51886
  : 'str-chat__message--other', message.text ? 'str-chat__message--has-text' : 'has-no-text', {
@@ -50695,12 +51896,13 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
50695
51896
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
50696
51897
  editing && (React__default["default"].createElement(Modal, { onClose: clearEditingState, open: editing },
50697
51898
  React__default["default"].createElement(MessageInput, __assign({ clearEditingState: clearEditingState, grow: true, hideSendButton: true, Input: EditMessageInput, message: message }, additionalMessageInputProps)))),
51899
+ isBounceDialogOpen && (React__default["default"].createElement(MessageBounceModal, { MessageBouncePrompt: MessageBouncePrompt$1, onClose: function () { return setIsBounceDialogOpen(false); }, open: isBounceDialogOpen })),
50698
51900
  React__default["default"].createElement("div", { className: rootClassName, key: message.id },
50699
51901
  themeVersion === '1' && React__default["default"].createElement(MessageStatus$1, null),
50700
51902
  message.user && (React__default["default"].createElement(Avatar$1, { image: message.user.image, name: message.user.name || message.user.id, onClick: onUserClick, onMouseOver: onUserHover, user: message.user })),
50701
51903
  React__default["default"].createElement("div", { className: clsx('str-chat__message-inner', {
50702
- 'str-chat__simple-message--error-failed': allowRetry,
50703
- }), "data-testid": 'message-inner', onClick: allowRetry ? function () { return handleRetry(message); } : undefined, onKeyUp: allowRetry ? function () { return handleRetry(message); } : undefined },
51904
+ 'str-chat__simple-message--error-failed': allowRetry || isBounced,
51905
+ }), "data-testid": 'message-inner', onClick: handleClick, onKeyUp: handleClick },
50704
51906
  React__default["default"].createElement(MessageOptions$1, null),
50705
51907
  React__default["default"].createElement("div", { className: 'str-chat__message-reactions-host' },
50706
51908
  canShowReactions && React__default["default"].createElement(ReactionsList$1, { reverse: true }),
@@ -51154,7 +52356,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51154
52356
  };
51155
52357
 
51156
52358
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useMessageListElements = function (props) {
51157
- var enrichedMessages = props.enrichedMessages, internalMessageProps = props.internalMessageProps, messageGroupStyles = props.messageGroupStyles, read = props.read, renderMessages = props.renderMessages, returnAllReadData = props.returnAllReadData, threadList = props.threadList;
52359
+ var channelUnreadUiState = props.channelUnreadUiState, enrichedMessages = props.enrichedMessages, internalMessageProps = props.internalMessageProps, messageGroupStyles = props.messageGroupStyles, read = props.read, renderMessages = props.renderMessages, returnAllReadData = props.returnAllReadData, threadList = props.threadList;
51158
52360
  var _a = useChatContext('useMessageListElements'), client = _a.client, customClasses = _a.customClasses;
51159
52361
  var components = useComponentContext('useMessageListElements');
51160
52362
  // get the readData, but only for messages submitted by the user themselves
@@ -51167,15 +52369,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51167
52369
  var lastReceivedMessageId = React$2.useMemo(function () { return getLastReceived(enrichedMessages); }, [
51168
52370
  enrichedMessages,
51169
52371
  ]);
51170
- var ownReadState = client.user && (read === null || read === void 0 ? void 0 : read[client.user.id]) ? read[client.user.id] : undefined;
51171
52372
  var elements = React$2.useMemo(function () {
51172
52373
  return renderMessages({
52374
+ channelUnreadUiState: channelUnreadUiState,
51173
52375
  components: components,
51174
52376
  customClasses: customClasses,
51175
52377
  lastReceivedMessageId: lastReceivedMessageId,
51176
52378
  messageGroupStyles: messageGroupStyles,
51177
52379
  messages: enrichedMessages,
51178
- ownReadState: ownReadState,
51179
52380
  readData: readData,
51180
52381
  sharedMessageProps: __assign(__assign({}, internalMessageProps), { threadList: threadList }),
51181
52382
  });
@@ -51186,7 +52387,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51186
52387
  internalMessageProps,
51187
52388
  lastReceivedMessageId,
51188
52389
  messageGroupStyles,
51189
- ownReadState,
52390
+ channelUnreadUiState,
51190
52391
  readData,
51191
52392
  renderMessages,
51192
52393
  threadList,
@@ -51328,20 +52529,24 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51328
52529
 
51329
52530
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UNREAD_MESSAGE_SEPARATOR_CLASS = 'str-chat__unread-messages-separator';
51330
52531
  var UnreadMessagesSeparator = function (_a) {
51331
- var unreadCount = _a.unreadCount;
52532
+ var showCount = _a.showCount, unreadCount = _a.unreadCount;
51332
52533
  var t = useTranslationContext('UnreadMessagesSeparator').t;
51333
- return (React__default["default"].createElement("div", { className: UNREAD_MESSAGE_SEPARATOR_CLASS }, unreadCount
52534
+ return (React__default["default"].createElement("div", { className: UNREAD_MESSAGE_SEPARATOR_CLASS, "data-testid": 'unread-messages-separator' }, unreadCount && showCount
51334
52535
  ? t('unreadMessagesSeparatorText', { count: unreadCount })
51335
52536
  : t('Unread messages')));
51336
52537
  };
51337
52538
 
51338
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var targetIsVisibleInContainer = function (element, container) {
51339
- var msgListHeight = container.getBoundingClientRect().height;
51340
- var targetMessageY = element.getBoundingClientRect().y;
51341
- return 0 <= targetMessageY && targetMessageY <= msgListHeight;
52539
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var targetScrolledAboveVisibleContainerArea = function (element) {
52540
+ var targetBottom = element.getBoundingClientRect().bottom;
52541
+ return targetBottom < 0;
52542
+ };
52543
+ var targetScrolledBelowVisibleContainerArea = function (element, container) {
52544
+ var targetTop = element.getBoundingClientRect().top;
52545
+ var containerBottom = container.getBoundingClientRect().top;
52546
+ return targetTop > containerBottom;
51342
52547
  };
51343
52548
  var useUnreadMessagesNotification = function (_a) {
51344
- var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, unreadCount = _a.unreadCount;
52549
+ var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, showAlways = _a.showAlways, unreadCount = _a.unreadCount;
51345
52550
  var messages = useChannelStateContext('UnreadMessagesNotification').messages;
51346
52551
  var _b = React$2.useState(false), show = _b[0], setShow = _b[1];
51347
52552
  var isScrolledAboveTargetTop = React$2.useRef(false);
@@ -51359,22 +52564,32 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51359
52564
  setShow(true);
51360
52565
  return;
51361
52566
  }
51362
- setShow(!targetIsVisibleInContainer(observedTarget, msgListPanel));
52567
+ var scrolledBelowSeparator = targetScrolledAboveVisibleContainerArea(observedTarget);
52568
+ var scrolledAboveSeparator = targetScrolledBelowVisibleContainerArea(observedTarget, msgListPanel);
52569
+ setShow(showAlways ? scrolledBelowSeparator || scrolledAboveSeparator : scrolledBelowSeparator);
51363
52570
  var observer = new IntersectionObserver(function (elements) {
51364
52571
  if (!elements.length)
51365
52572
  return;
51366
- var _a = elements[0], boundingClientRect = _a.boundingClientRect, isIntersecting = _a.isIntersecting, rootBounds = _a.rootBounds;
51367
- var isScrolledAboveTargetTopCurrent = !!(rootBounds &&
51368
- boundingClientRect &&
51369
- rootBounds.bottom < boundingClientRect.top);
51370
- setShow(!isIntersecting && !isScrolledAboveTargetTopCurrent);
51371
- isScrolledAboveTargetTop.current = isScrolledAboveTargetTopCurrent;
52573
+ var _a = elements[0], boundingClientRect = _a.boundingClientRect, isIntersecting = _a.isIntersecting;
52574
+ if (isIntersecting) {
52575
+ setShow(false);
52576
+ return;
52577
+ }
52578
+ var separatorIsAboveContainerTop = boundingClientRect.bottom < 0;
52579
+ setShow(showAlways || separatorIsAboveContainerTop);
52580
+ isScrolledAboveTargetTop.current = separatorIsAboveContainerTop;
51372
52581
  }, { root: msgListPanel });
51373
52582
  observer.observe(observedTarget);
51374
52583
  return function () {
51375
52584
  observer.disconnect();
51376
52585
  };
51377
- }, [intersectionObserverIsSupported, messages, unreadCount]);
52586
+ }, [
52587
+ intersectionObserverIsSupported,
52588
+ isMessageListScrolledToBottom,
52589
+ messages,
52590
+ showAlways,
52591
+ unreadCount,
52592
+ ]);
51378
52593
  React$2.useEffect(function () {
51379
52594
  /**
51380
52595
  * Handle situation when scrollToBottom is called from another component when the msg list is scrolled above the observed target (unread separator).
@@ -51402,31 +52617,84 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51402
52617
  * @param wasChannelMarkedUnread
51403
52618
  */
51404
52619
  var useMarkRead = function (_a) {
51405
- var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, markReadOnScrolledToBottom = _a.markReadOnScrolledToBottom, messageListIsThread = _a.messageListIsThread, unreadCount = _a.unreadCount;
51406
- var markRead = useChannelActionContext('useMarkRead').markRead;
52620
+ var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, messageListIsThread = _a.messageListIsThread, unreadCount = _a.unreadCount, wasMarkedUnread = _a.wasMarkedUnread;
52621
+ var client = useChatContext('useMarkRead').client;
52622
+ var _b = useChannelActionContext('useMarkRead'), markRead = _b.markRead, setChannelUnreadUiState = _b.setChannelUnreadUiState;
52623
+ var channel = useChannelStateContext('useMarkRead').channel;
52624
+ var previousRenderMessageListScrolledToBottom = React$2.useRef(isMessageListScrolledToBottom);
51407
52625
  React$2.useEffect(function () {
51408
- var shouldMarkRead = !messageListIsThread &&
51409
- isMessageListScrolledToBottom &&
51410
- markReadOnScrolledToBottom &&
51411
- unreadCount > 0;
52626
+ var shouldMarkRead = function (unreadMessages) {
52627
+ return !document.hidden &&
52628
+ !wasMarkedUnread &&
52629
+ !messageListIsThread &&
52630
+ isMessageListScrolledToBottom &&
52631
+ unreadMessages > 0;
52632
+ };
51412
52633
  var onVisibilityChange = function () {
51413
- if (!document.hidden && shouldMarkRead)
52634
+ if (shouldMarkRead(unreadCount))
51414
52635
  markRead();
51415
52636
  };
52637
+ var handleMessageNew = function (event) {
52638
+ var _a, _b, _c, _d;
52639
+ var newMessageToCurrentChannel = event.cid === channel.cid;
52640
+ var isOwnMessage = ((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) && event.user.id === ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id);
52641
+ var mainChannelUpdated = !((_c = event.message) === null || _c === void 0 ? void 0 : _c.parent_id) || ((_d = event.message) === null || _d === void 0 ? void 0 : _d.show_in_channel);
52642
+ if (isOwnMessage)
52643
+ return;
52644
+ if (!isMessageListScrolledToBottom || wasMarkedUnread || document.hidden) {
52645
+ setChannelUnreadUiState(function (prev) {
52646
+ var _a, _b;
52647
+ var previousUnreadCount = (_a = prev === null || prev === void 0 ? void 0 : prev.unread_messages) !== null && _a !== void 0 ? _a : 0;
52648
+ var previousLastMessage = getPreviousLastMessage(channel.state.messages, event.message);
52649
+ return __assign(__assign({}, (prev || {})), { last_read: (_b = prev === null || prev === void 0 ? void 0 : prev.last_read) !== null && _b !== void 0 ? _b : (previousUnreadCount === 0 && (previousLastMessage === null || previousLastMessage === void 0 ? void 0 : previousLastMessage.created_at)
52650
+ ? new Date(previousLastMessage.created_at)
52651
+ : new Date(0)), unread_messages: previousUnreadCount + 1 });
52652
+ });
52653
+ }
52654
+ else if (newMessageToCurrentChannel &&
52655
+ mainChannelUpdated &&
52656
+ !isOwnMessage &&
52657
+ shouldMarkRead(channel.countUnread())) {
52658
+ markRead();
52659
+ }
52660
+ };
52661
+ client.on('message.new', handleMessageNew);
51416
52662
  document.addEventListener('visibilitychange', onVisibilityChange);
51417
- if (shouldMarkRead)
52663
+ var hasScrolledToBottom = previousRenderMessageListScrolledToBottom.current !== isMessageListScrolledToBottom &&
52664
+ isMessageListScrolledToBottom;
52665
+ if (shouldMarkRead(hasScrolledToBottom ? channel.countUnread() : unreadCount))
51418
52666
  markRead();
52667
+ previousRenderMessageListScrolledToBottom.current = isMessageListScrolledToBottom;
51419
52668
  return function () {
52669
+ client.off('message.new', handleMessageNew);
51420
52670
  document.removeEventListener('visibilitychange', onVisibilityChange);
51421
52671
  };
51422
52672
  }, [
52673
+ channel,
52674
+ client,
51423
52675
  isMessageListScrolledToBottom,
51424
52676
  markRead,
51425
52677
  messageListIsThread,
52678
+ setChannelUnreadUiState,
51426
52679
  unreadCount,
51427
- markReadOnScrolledToBottom,
52680
+ wasMarkedUnread,
51428
52681
  ]);
51429
52682
  };
52683
+ function getPreviousLastMessage(messages, newMessage) {
52684
+ if (!newMessage)
52685
+ return;
52686
+ var previousLastMessage;
52687
+ for (var i = messages.length - 1; i >= 0; i--) {
52688
+ var msg = messages[i];
52689
+ if (!(msg === null || msg === void 0 ? void 0 : msg.id))
52690
+ break;
52691
+ if (msg.id !== newMessage.id) {
52692
+ previousLastMessage = msg;
52693
+ break;
52694
+ }
52695
+ }
52696
+ return previousLastMessage;
52697
+ }
51430
52698
 
51431
52699
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedMessageNotification = function (props) {
51432
52700
  var children = props.children, onClick = props.onClick, _a = props.showNotification, showNotification = _a === void 0 ? true : _a;
@@ -51454,12 +52722,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51454
52722
  React__default["default"].createElement("path", { d: 'M1.32227 12.3408C0.944336 11.9629 0.953125 11.3213 1.32227 10.9521L5.60254 6.66309L1.32227 2.38281C0.953125 2.01367 0.944336 1.37207 1.32227 0.994141C1.7002 0.616211 2.3418 0.625 2.71094 0.985352L7 5.27441L11.2803 0.994141C11.6494 0.625 12.291 0.616211 12.6689 0.994141C13.0469 1.37207 13.0381 2.01367 12.6689 2.38281L8.38867 6.66309L12.6689 10.9521C13.0381 11.3213 13.0469 11.9629 12.6689 12.3408C12.291 12.7188 11.6494 12.71 11.2803 12.3408L7 8.06055L2.71094 12.3408C2.3418 12.71 1.7002 12.7188 1.32227 12.3408Z' }))); };
51455
52723
 
51456
52724
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnreadMessagesNotification = function (_a) {
51457
- var queryMessageLimit = _a.queryMessageLimit, unreadCount = _a.unreadCount;
52725
+ var queryMessageLimit = _a.queryMessageLimit, showCount = _a.showCount, unreadCount = _a.unreadCount;
51458
52726
  var _b = useChannelActionContext('UnreadMessagesNotification'), jumpToFirstUnreadMessage = _b.jumpToFirstUnreadMessage, markRead = _b.markRead;
51459
52727
  var t = useTranslationContext('UnreadMessagesNotification').t;
51460
- return (React__default["default"].createElement("div", { className: 'str-chat__unread-messages-notification' },
51461
- React__default["default"].createElement("button", { onClick: function () { return jumpToFirstUnreadMessage(queryMessageLimit); } }, t('{{count}} unread', { count: unreadCount !== null && unreadCount !== void 0 ? unreadCount : 0 })),
51462
- React__default["default"].createElement("button", { onClick: markRead },
52728
+ return (React__default["default"].createElement("div", { className: 'str-chat__unread-messages-notification', "data-testid": 'unread-messages-notification' },
52729
+ React__default["default"].createElement("button", { onClick: function () { return jumpToFirstUnreadMessage(queryMessageLimit); } }, unreadCount && showCount
52730
+ ? t('{{count}} unread', { count: unreadCount !== null && unreadCount !== void 0 ? unreadCount : 0 })
52731
+ : t('Unread messages')),
52732
+ React__default["default"].createElement("button", { onClick: function () { return markRead(); } },
51463
52733
  React__default["default"].createElement(CloseIcon$1, null))));
51464
52734
  };
51465
52735
 
@@ -51680,7 +52950,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51680
52950
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51681
52951
 
51682
52952
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function defaultRenderMessages(_a) {
51683
- var components = _a.components, customClasses = _a.customClasses, lastReceivedId = _a.lastReceivedMessageId, messageGroupStyles = _a.messageGroupStyles, messages = _a.messages, ownReadState = _a.ownReadState, readData = _a.readData, messageProps = _a.sharedMessageProps;
52953
+ var channelUnreadUiState = _a.channelUnreadUiState, components = _a.components, customClasses = _a.customClasses, lastReceivedId = _a.lastReceivedMessageId, messageGroupStyles = _a.messageGroupStyles, messages = _a.messages, readData = _a.readData, messageProps = _a.sharedMessageProps;
51684
52954
  var DateSeparator = components.DateSeparator, HeaderComponent = components.HeaderComponent, MessageSystem = components.MessageSystem, UnreadMessagesSeparator = components.UnreadMessagesSeparator;
51685
52955
  return messages.map(function (message, index) {
51686
52956
  if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
@@ -51698,48 +52968,48 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51698
52968
  var groupStyles = messageGroupStyles[message.id] || '';
51699
52969
  var messageClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.message) || "str-chat__li str-chat__li--".concat(groupStyles);
51700
52970
  var isNewestMessage = index === messages.length - 1;
51701
- var isLastReadMessage = (ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.last_read_message_id) === message.id;
52971
+ var isLastReadMessage = (channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.last_read_message_id) === message.id;
51702
52972
  var showUnreadSeparator = isLastReadMessage &&
51703
52973
  !isNewestMessage &&
51704
- ((ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.first_unread_message_id) || (ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.unread_messages) > 0); // unread count can be 0 if the user marks unread only own messages
52974
+ ((channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id) || (channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) > 0); // unread count can be 0 if the user marks unread only own messages
51705
52975
  return (React__default["default"].createElement(React$2.Fragment, { key: message.id || message.created_at },
51706
52976
  React__default["default"].createElement("li", { className: messageClass, "data-message-id": message.id, "data-testid": messageClass },
51707
52977
  React__default["default"].createElement(Message, __assign({ groupStyles: [groupStyles], lastReceivedId: lastReceivedId, message: message, readBy: readData[message.id] || [] }, messageProps))),
51708
52978
  showUnreadSeparator && UnreadMessagesSeparator && (React__default["default"].createElement("li", { className: 'str-chat__li str-chat__unread-messages-separator-wrapper' },
51709
- React__default["default"].createElement(UnreadMessagesSeparator, { unreadCount: ownReadState.unread_messages })))));
52979
+ React__default["default"].createElement(UnreadMessagesSeparator, { unreadCount: channelUnreadUiState.unread_messages })))));
51710
52980
  });
51711
52981
  }
51712
52982
 
51713
52983
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageListWithContext = function (props) {
51714
52984
  var _a;
51715
- var channel = props.channel, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, internalInfiniteScrollProps = props.internalInfiniteScrollProps, _e = props.messageActions, messageActions = _e === void 0 ? Object.keys(MESSAGE_ACTIONS) : _e, _f = props.messages, messages = _f === void 0 ? [] : _f, notifications = props.notifications, _g = props.noGroupByUser, noGroupByUser = _g === void 0 ? false : _g, _h = props.pinPermissions, pinPermissions = _h === void 0 ? defaultPinPermissions : _h, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
52985
+ var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, internalInfiniteScrollProps = props.internalInfiniteScrollProps, _e = props.messageActions, messageActions = _e === void 0 ? Object.keys(MESSAGE_ACTIONS) : _e, _f = props.messages, messages = _f === void 0 ? [] : _f, notifications = props.notifications, _g = props.noGroupByUser, noGroupByUser = _g === void 0 ? false : _g, _h = props.pinPermissions, pinPermissions = _h === void 0 ? defaultPinPermissions : _h, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
51716
52986
  _j = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
51717
- returnAllReadData = _j === void 0 ? false : _j, _k = props.threadList, threadList = _k === void 0 ? false : _k, _l = props.unsafeHTML, unsafeHTML = _l === void 0 ? false : _l, headerPosition = props.headerPosition, read = props.read, markReadOnScrolledToBottom = props.markReadOnScrolledToBottom, _m = props.renderMessages, renderMessages = _m === void 0 ? defaultRenderMessages : _m, _o = props.messageLimit, messageLimit = _o === void 0 ? 100 : _o, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _p = props.hasMoreNewer, hasMoreNewer = _p === void 0 ? false : _p, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _q = props.jumpToLatestMessage, jumpToLatestMessage = _q === void 0 ? function () { return Promise.resolve(); } : _q;
52987
+ returnAllReadData = _j === void 0 ? false : _j, _k = props.threadList, threadList = _k === void 0 ? false : _k, _l = props.unsafeHTML, unsafeHTML = _l === void 0 ? false : _l, headerPosition = props.headerPosition, read = props.read, _m = props.renderMessages, renderMessages = _m === void 0 ? defaultRenderMessages : _m, _o = props.messageLimit, messageLimit = _o === void 0 ? 100 : _o, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _p = props.hasMoreNewer, hasMoreNewer = _p === void 0 ? false : _p, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _q = props.jumpToLatestMessage, jumpToLatestMessage = _q === void 0 ? function () { return Promise.resolve(); } : _q;
51718
52988
  var _r = React__default["default"].useState(null), listElement = _r[0], setListElement = _r[1];
51719
52989
  var _s = React__default["default"].useState(null), ulElement = _s[0], setUlElement = _s[1];
51720
- var _t = useChatContext('MessageList'), client = _t.client, customClasses = _t.customClasses;
51721
- var _u = useComponentContext('MessageList'), _v = _u.EmptyStateIndicator, EmptyStateIndicator$1 = _v === void 0 ? EmptyStateIndicator : _v, _w = _u.LoadingIndicator, LoadingIndicator$1 = _w === void 0 ? LoadingIndicator : _w, _x = _u.MessageListNotifications, MessageListNotifications$1 = _x === void 0 ? MessageListNotifications : _x, _y = _u.MessageNotification, MessageNotification$1 = _y === void 0 ? MessageNotification : _y, _z = _u.TypingIndicator, TypingIndicator$1 = _z === void 0 ? TypingIndicator : _z, _0 = _u.UnreadMessagesNotification, UnreadMessagesNotification$1 = _0 === void 0 ? UnreadMessagesNotification : _0;
52990
+ var customClasses = useChatContext('MessageList').customClasses;
52991
+ var _t = useComponentContext('MessageList'), _u = _t.EmptyStateIndicator, EmptyStateIndicator$1 = _u === void 0 ? EmptyStateIndicator : _u, _v = _t.LoadingIndicator, LoadingIndicator$1 = _v === void 0 ? LoadingIndicator : _v, _w = _t.MessageListNotifications, MessageListNotifications$1 = _w === void 0 ? MessageListNotifications : _w, _x = _t.MessageNotification, MessageNotification$1 = _x === void 0 ? MessageNotification : _x, _y = _t.TypingIndicator, TypingIndicator$1 = _y === void 0 ? TypingIndicator : _y, _z = _t.UnreadMessagesNotification, UnreadMessagesNotification$1 = _z === void 0 ? UnreadMessagesNotification : _z;
51722
52992
  var loadMoreScrollThreshold = (internalInfiniteScrollProps === null || internalInfiniteScrollProps === void 0 ? void 0 : internalInfiniteScrollProps.threshold) || 250;
51723
- var currentUserChannelReadState = client.user && (read === null || read === void 0 ? void 0 : read[client.user.id]);
51724
- var _1 = useScrollLocationLogic({
52993
+ var _0 = useScrollLocationLogic({
51725
52994
  hasMoreNewer: hasMoreNewer,
51726
52995
  listElement: listElement,
51727
52996
  loadMoreScrollThreshold: loadMoreScrollThreshold,
51728
52997
  messages: messages,
51729
52998
  scrolledUpThreshold: props.scrolledUpThreshold,
51730
52999
  suppressAutoscroll: suppressAutoscroll,
51731
- }), hasNewMessages = _1.hasNewMessages, isMessageListScrolledToBottom = _1.isMessageListScrolledToBottom, onScroll = _1.onScroll, scrollToBottom = _1.scrollToBottom, wrapperRect = _1.wrapperRect;
53000
+ }), hasNewMessages = _0.hasNewMessages, isMessageListScrolledToBottom = _0.isMessageListScrolledToBottom, onScroll = _0.onScroll, scrollToBottom = _0.scrollToBottom, wrapperRect = _0.wrapperRect;
51732
53001
  var showUnreadMessagesNotification = useUnreadMessagesNotification({
51733
53002
  isMessageListScrolledToBottom: isMessageListScrolledToBottom,
51734
- unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages,
53003
+ showAlways: !!showUnreadNotificationAlways,
53004
+ unreadCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages,
51735
53005
  }).show;
51736
53006
  useMarkRead({
51737
53007
  isMessageListScrolledToBottom: isMessageListScrolledToBottom,
51738
- markReadOnScrolledToBottom: markReadOnScrolledToBottom,
51739
53008
  messageListIsThread: threadList,
51740
- unreadCount: (_a = currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages) !== null && _a !== void 0 ? _a : 0,
53009
+ unreadCount: (_a = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _a !== void 0 ? _a : 0,
53010
+ wasMarkedUnread: !!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id),
51741
53011
  });
51742
- var _2 = useEnrichedMessages({
53012
+ var _1 = useEnrichedMessages({
51743
53013
  channel: channel,
51744
53014
  disableDateSeparator: disableDateSeparator,
51745
53015
  groupStyles: groupStyles,
@@ -51748,8 +53018,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51748
53018
  hideNewMessageSeparator: hideNewMessageSeparator,
51749
53019
  messages: messages,
51750
53020
  noGroupByUser: noGroupByUser,
51751
- }), messageGroupStyles = _2.messageGroupStyles, enrichedMessages = _2.messages;
53021
+ }), messageGroupStyles = _1.messageGroupStyles, enrichedMessages = _1.messages;
51752
53022
  var elements = useMessageListElements({
53023
+ channelUnreadUiState: channelUnreadUiState,
51753
53024
  enrichedMessages: enrichedMessages,
51754
53025
  internalMessageProps: {
51755
53026
  additionalMessageInputProps: props.additionalMessageInputProps,
@@ -51825,12 +53096,12 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51825
53096
  var showEmptyStateIndicator = elements.length === 0 && !threadList;
51826
53097
  return (React__default["default"].createElement(MessageListContextProvider, { value: { listElement: listElement, scrollToBottom: scrollToBottom } },
51827
53098
  React__default["default"].createElement(MessageListMainPanel, null,
51828
- !threadList && showUnreadMessagesNotification && (React__default["default"].createElement(UnreadMessagesNotification$1, { unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages })),
53099
+ !threadList && showUnreadMessagesNotification && (React__default["default"].createElement(UnreadMessagesNotification$1, { unreadCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages })),
51829
53100
  React__default["default"].createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React__default["default"].createElement(EmptyStateIndicator$1, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React__default["default"].createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll str-chat__message-list-scroll', "data-testid": 'reverse-infinite-scroll', hasNextPage: props.hasMoreNewer, hasPreviousPage: props.hasMore, head: props.head, isLoading: props.loadingMore, loader: React__default["default"].createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React__default["default"].createElement(LoadingIndicator$1, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore }, props.internalInfiniteScrollProps, { threshold: loadMoreScrollThreshold }),
51830
53101
  React__default["default"].createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
51831
53102
  React__default["default"].createElement(TypingIndicator$1, { threadList: threadList }),
51832
53103
  React__default["default"].createElement("div", { key: 'bottom' }))))),
51833
- React__default["default"].createElement(MessageListNotifications$1, { hasNewMessages: hasNewMessages, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottomFromNotification, threadList: threadList, unreadCount: threadList ? undefined : currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages })));
53104
+ React__default["default"].createElement(MessageListNotifications$1, { hasNewMessages: hasNewMessages, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottomFromNotification, threadList: threadList, unreadCount: threadList ? undefined : channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages })));
51834
53105
  };
51835
53106
  /**
51836
53107
  * The MessageList component renders a list of Messages.
@@ -51850,13 +53121,53 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
51850
53121
  };
51851
53122
 
51852
53123
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedScrollToBottomButton = function (props) {
51853
- var isMessageListScrolledToBottom = props.isMessageListScrolledToBottom, onClick = props.onClick, _a = props.unreadCount, unreadCount = _a === void 0 ? 0 : _a;
53124
+ var isMessageListScrolledToBottom = props.isMessageListScrolledToBottom, onClick = props.onClick, threadList = props.threadList;
53125
+ var _a = useChatContext(), activeChannel = _a.channel, client = _a.client;
53126
+ var thread = useChannelStateContext().thread;
53127
+ var _b = React$2.useState((activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.countUnread()) || 0), countUnread = _b[0], setCountUnread = _b[1];
53128
+ var _c = React$2.useState((thread === null || thread === void 0 ? void 0 : thread.reply_count) || 0), replyCount = _c[0], setReplyCount = _c[1];
53129
+ var observedEvent = threadList ? 'message.updated' : 'message.new';
53130
+ React$2.useEffect(function () {
53131
+ var handleEvent = function (event) {
53132
+ var _a, _b, _c, _d, _e;
53133
+ var newMessageInAnotherChannel = event.cid !== (activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.cid);
53134
+ var newMessageIsMine = ((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) === ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id);
53135
+ var isThreadOpen = !!thread;
53136
+ var newMessageIsReply = !!((_c = event.message) === null || _c === void 0 ? void 0 : _c.parent_id);
53137
+ var dontIncreaseMainListCounterOnNewReply = isThreadOpen && !threadList && newMessageIsReply;
53138
+ if (isMessageListScrolledToBottom ||
53139
+ newMessageInAnotherChannel ||
53140
+ newMessageIsMine ||
53141
+ dontIncreaseMainListCounterOnNewReply) {
53142
+ return;
53143
+ }
53144
+ if (event.type === 'message.new') {
53145
+ // cannot rely on channel.countUnread because active channel is automatically marked read
53146
+ setCountUnread(function (prev) { return prev + 1; });
53147
+ }
53148
+ else if (((_d = event.message) === null || _d === void 0 ? void 0 : _d.id) === (thread === null || thread === void 0 ? void 0 : thread.id)) {
53149
+ var newReplyCount_1 = ((_e = event.message) === null || _e === void 0 ? void 0 : _e.reply_count) || 0;
53150
+ setCountUnread(function () { return newReplyCount_1 - replyCount; });
53151
+ }
53152
+ };
53153
+ client.on(observedEvent, handleEvent);
53154
+ return function () {
53155
+ client.off(observedEvent, handleEvent);
53156
+ };
53157
+ // eslint-disable-next-line react-hooks/exhaustive-deps
53158
+ }, [activeChannel, isMessageListScrolledToBottom, observedEvent, replyCount, thread]);
53159
+ React$2.useEffect(function () {
53160
+ if (isMessageListScrolledToBottom) {
53161
+ setCountUnread(0);
53162
+ setReplyCount((thread === null || thread === void 0 ? void 0 : thread.reply_count) || 0);
53163
+ }
53164
+ }, [isMessageListScrolledToBottom, thread]);
51854
53165
  if (isMessageListScrolledToBottom)
51855
53166
  return null;
51856
53167
  return (React__default["default"].createElement("div", { className: 'str-chat__jump-to-latest-message' },
51857
53168
  React__default["default"].createElement("button", { "aria-live": 'polite', className: "\n str-chat__message-notification-right\n str-chat__message-notification-scroll-to-latest\n str-chat__circle-fab\n ", "data-testid": 'message-notification', onClick: onClick },
51858
53169
  React__default["default"].createElement(ArrowDown, null),
51859
- unreadCount > 0 && (React__default["default"].createElement("div", { className: clsx('str-chat__message-notification', 'str-chat__message-notification-scroll-to-latest-unread-count', 'str-chat__jump-to-latest-unread-count'), "data-testid": 'unread-message-notification-counter' }, unreadCount)))));
53170
+ countUnread > 0 && (React__default["default"].createElement("div", { className: clsx('str-chat__message-notification', 'str-chat__message-notification-scroll-to-latest-unread-count', 'str-chat__jump-to-latest-unread-count'), "data-testid": 'unread-message-notification-counter' }, countUnread)))));
51860
53171
  };
51861
53172
  var ScrollToBottomButton = React__default["default"].memo(UnMemoizedScrollToBottomButton);
51862
53173
 
@@ -53131,7 +54442,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53131
54442
  // That in turn leads to incorrect index calculation in VirtualizedMessageList trying to access a message
53132
54443
  // at non-existent index. Therefore, we ignore messages of status "sending" / "failed" in order they are
53133
54444
  // not considered as prepended messages.
53134
- var firstMsgMovedAfterMessagesInExcludedStatus = (currentFirstMessage === null || currentFirstMessage === void 0 ? void 0 : currentFirstMessage.status) && STATUSES_EXCLUDED_FROM_PREPEND[currentFirstMessage.status];
54445
+ var firstMsgMovedAfterMessagesInExcludedStatus = !!((currentFirstMessage === null || currentFirstMessage === void 0 ? void 0 : currentFirstMessage.status) && STATUSES_EXCLUDED_FROM_PREPEND[currentFirstMessage.status]);
53135
54446
  if (noNewMessages || firstMsgMovedAfterMessagesInExcludedStatus) {
53136
54447
  return previousNumItemsPrepended.current;
53137
54448
  }
@@ -53144,8 +54455,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53144
54455
  for (var prependedMessageCount = previousNumItemsPrepended.current; prependedMessageCount < messages.length; prependedMessageCount += 1) {
53145
54456
  var messageIsFirstOnFirstLoadedPage = messages[prependedMessageCount].id === ((_b = firstMessageOnFirstLoadedPage.current) === null || _b === void 0 ? void 0 : _b.id);
53146
54457
  if (messageIsFirstOnFirstLoadedPage) {
53147
- previousNumItemsPrepended.current = prependedMessageCount;
53148
- return prependedMessageCount;
54458
+ previousNumItemsPrepended.current = prependedMessageCount - firstRealMessageIndex;
54459
+ return previousNumItemsPrepended.current;
53149
54460
  }
53150
54461
  }
53151
54462
  // if no match has found, we have jumped - reset the prepended item count.
@@ -53262,19 +54573,25 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53262
54573
  * `UnreadMessagesNotification` component is rendered. This is an approximate equivalent to being
53263
54574
  * scrolled below the `UnreadMessagesNotification` component.
53264
54575
  * @param lastRead
54576
+ * @param showAlways
53265
54577
  * @param unreadCount
53266
54578
  */
53267
54579
  var useUnreadMessagesNotificationVirtualized = function (_a) {
53268
- var lastRead = _a.lastRead, unreadCount = _a.unreadCount;
54580
+ var lastRead = _a.lastRead, showAlways = _a.showAlways, unreadCount = _a.unreadCount;
53269
54581
  var _b = React$2.useState(false), show = _b[0], setShow = _b[1];
53270
54582
  var toggleShowUnreadMessagesNotification = React$2.useCallback(function (renderedMessages) {
53271
- if (!renderedMessages.length)
54583
+ if (!unreadCount)
53272
54584
  return;
53273
- var firstRenderedMessageTimestamp = renderedMessages[0].created_at
53274
- ? new Date(renderedMessages[0].created_at).getTime()
53275
- : 0;
53276
- setShow(unreadCount > 0 && !!lastRead && firstRenderedMessageTimestamp > lastRead.getTime());
53277
- }, [unreadCount, lastRead]);
54585
+ var firstRenderedMessage = renderedMessages[0];
54586
+ var lastRenderedMessage = renderedMessages.slice(-1)[0];
54587
+ if (!(firstRenderedMessage && lastRenderedMessage))
54588
+ return;
54589
+ var scrolledBelowSeparator = !!lastRead &&
54590
+ new Date(firstRenderedMessage.created_at).getTime() > lastRead.getTime();
54591
+ var scrolledAboveSeparator = !!lastRead &&
54592
+ new Date(lastRenderedMessage.created_at).getTime() < lastRead.getTime();
54593
+ setShow(showAlways ? scrolledBelowSeparator || scrolledAboveSeparator : scrolledBelowSeparator);
54594
+ }, [lastRead, showAlways, unreadCount]);
53278
54595
  React$2.useEffect(function () {
53279
54596
  if (!unreadCount)
53280
54597
  setShow(false);
@@ -53464,11 +54781,11 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53464
54781
  }
53465
54782
  var VirtualizedMessageListWithContext = function (props) {
53466
54783
  var _a, _b;
53467
- var additionalMessageInputProps = props.additionalMessageInputProps, _c = props.additionalVirtuosoProps, additionalVirtuosoProps = _c === void 0 ? {} : _c, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _d = props.disableDateSeparator, disableDateSeparator = _d === void 0 ? true : _d, groupStyles = props.groupStyles, hasMoreNewer = props.hasMoreNewer, head = props.head, _e = props.hideDeletedMessages, hideDeletedMessages = _e === void 0 ? false : _e, _f = props.hideNewMessageSeparator, hideNewMessageSeparator = _f === void 0 ? false : _f, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, markReadOnScrolledToBottom = props.markReadOnScrolledToBottom, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _g = props.messageLimit, messageLimit = _g === void 0 ? 100 : _g, messages = props.messages, notifications = props.notifications,
54784
+ var additionalMessageInputProps = props.additionalMessageInputProps, _c = props.additionalVirtuosoProps, additionalVirtuosoProps = _c === void 0 ? {} : _c, channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _d = props.disableDateSeparator, disableDateSeparator = _d === void 0 ? true : _d, groupStyles = props.groupStyles, hasMoreNewer = props.hasMoreNewer, head = props.head, _e = props.hideDeletedMessages, hideDeletedMessages = _e === void 0 ? false : _e, _f = props.hideNewMessageSeparator, hideNewMessageSeparator = _f === void 0 ? false : _f, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _g = props.messageLimit, messageLimit = _g === void 0 ? 100 : _g, messages = props.messages, notifications = props.notifications,
53468
54785
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
53469
54786
  _h = props.overscan,
53470
54787
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
53471
- overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
54788
+ overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
53472
54789
  var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = __rest(additionalVirtuosoProps, ["components"]);
53473
54790
  // Stops errors generated from react-virtuoso to bubble up
53474
54791
  // to Sentry or other tracking tools.
@@ -53478,10 +54795,10 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53478
54795
  var _v = useChatContext('VirtualizedMessageList'), client = _v.client, customClasses = _v.customClasses;
53479
54796
  var virtuoso = React$2.useRef(null);
53480
54797
  var lastRead = React$2.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
53481
- var currentUserChannelReadState = client.user && (read === null || read === void 0 ? void 0 : read[client.user.id]);
53482
54798
  var _w = useUnreadMessagesNotificationVirtualized({
53483
- lastRead: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.last_read,
53484
- unreadCount: (_a = currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages) !== null && _a !== void 0 ? _a : 0,
54799
+ lastRead: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.last_read,
54800
+ showAlways: !!showUnreadNotificationAlways,
54801
+ unreadCount: (_a = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _a !== void 0 ? _a : 0,
53485
54802
  }), showUnreadMessagesNotification = _w.show, toggleShowUnreadMessagesNotification = _w.toggleShowUnreadMessagesNotification;
53486
54803
  var _x = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _x.giphyPreviewMessage, setGiphyPreviewMessage = _x.setGiphyPreviewMessage;
53487
54804
  var processedMessages = React$2.useMemo(function () {
@@ -53538,9 +54855,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53538
54855
  var _y = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _y.atBottom, isMessageListScrolledToBottom = _y.isMessageListScrolledToBottom, newMessagesNotification = _y.newMessagesNotification, setIsMessageListScrolledToBottom = _y.setIsMessageListScrolledToBottom, setNewMessagesNotification = _y.setNewMessagesNotification;
53539
54856
  useMarkRead({
53540
54857
  isMessageListScrolledToBottom: isMessageListScrolledToBottom,
53541
- markReadOnScrolledToBottom: markReadOnScrolledToBottom,
53542
54858
  messageListIsThread: !!threadList,
53543
- unreadCount: (_b = currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages) !== null && _b !== void 0 ? _b : 0,
54859
+ unreadCount: (_b = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _b !== void 0 ? _b : 0,
54860
+ wasMarkedUnread: !!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id),
53544
54861
  });
53545
54862
  var scrollToBottom = React$2.useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
53546
54863
  return __generator(this, function (_a) {
@@ -53618,7 +54935,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53618
54935
  return null;
53619
54936
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
53620
54937
  React__default["default"].createElement(MessageListMainPanel, null,
53621
- !threadList && showUnreadMessagesNotification && (React__default["default"].createElement(UnreadMessagesNotification$1, { unreadCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages })),
54938
+ !threadList && showUnreadMessagesNotification && (React__default["default"].createElement(UnreadMessagesNotification$1, { unreadCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages })),
53622
54939
  React__default["default"].createElement("div", { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list' },
53623
54940
  React__default["default"].createElement(on$1, __assign({ atBottomStateChange: atBottomStateChange, atBottomThreshold: 100, atTopStateChange: atTopStateChange, atTopThreshold: 100, className: 'str-chat__message-list-scroll', components: __assign({ EmptyPlaceholder: EmptyPlaceholder, Footer: Footer, Header: Header, Item: Item$1 }, virtuosoComponentsFromProps), computeItemKey: computeItemKey, context: {
53624
54941
  additionalMessageInputProps: additionalMessageInputProps,
@@ -53627,9 +54944,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53627
54944
  customMessageActions: customMessageActions,
53628
54945
  customMessageRenderer: customMessageRenderer,
53629
54946
  DateSeparator: DateSeparator,
53630
- firstUnreadMessageId: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.first_unread_message_id,
54947
+ firstUnreadMessageId: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id,
53631
54948
  head: head,
53632
- lastReadMessageId: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.last_read_message_id,
54949
+ lastReadMessageId: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.last_read_message_id,
53633
54950
  lastReceivedMessageId: lastReceivedMessageId,
53634
54951
  loadingMore: loadingMore,
53635
54952
  Message: MessageUIComponent,
@@ -53641,11 +54958,11 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53641
54958
  processedMessages: processedMessages,
53642
54959
  shouldGroupByUser: shouldGroupByUser,
53643
54960
  threadList: threadList,
53644
- unreadMessageCount: currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages,
54961
+ unreadMessageCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages,
53645
54962
  UnreadMessagesSeparator: UnreadMessagesSeparator,
53646
54963
  virtuosoRef: virtuoso,
53647
54964
  }, firstItemIndex: calculateFirstItemIndex(numItemsPrepended), followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: messageRenderer, itemSize: fractionalItemSize, itemsRendered: handleItemsRendered, key: messageSetKey, overscan: overscan, ref: virtuoso, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, overridingVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))))),
53648
- React__default["default"].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom, threadList: threadList, unreadCount: threadList ? undefined : currentUserChannelReadState === null || currentUserChannelReadState === void 0 ? void 0 : currentUserChannelReadState.unread_messages }),
54965
+ React__default["default"].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, isMessageListScrolledToBottom: isMessageListScrolledToBottom, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom, threadList: threadList, unreadCount: threadList ? undefined : channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages }),
53649
54966
  giphyPreviewMessage && React__default["default"].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
53650
54967
  };
53651
54968
  /**
@@ -53654,9 +54971,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53654
54971
  */
53655
54972
  function VirtualizedMessageList(props) {
53656
54973
  var _a = useChannelActionContext('VirtualizedMessageList'), jumpToLatestMessage = _a.jumpToLatestMessage, loadMore = _a.loadMore, loadMoreNewer = _a.loadMoreNewer;
53657
- var _b = useChannelStateContext('VirtualizedMessageList'), channel = _b.channel, hasMore = _b.hasMore, hasMoreNewer = _b.hasMoreNewer, highlightedMessageId = _b.highlightedMessageId, loadingMore = _b.loadingMore, loadingMoreNewer = _b.loadingMoreNewer, contextMessages = _b.messages, notifications = _b.notifications, read = _b.read, suppressAutoscroll = _b.suppressAutoscroll;
54974
+ var _b = useChannelStateContext('VirtualizedMessageList'), channel = _b.channel, channelUnreadUiState = _b.channelUnreadUiState, hasMore = _b.hasMore, hasMoreNewer = _b.hasMoreNewer, highlightedMessageId = _b.highlightedMessageId, loadingMore = _b.loadingMore, loadingMoreNewer = _b.loadingMoreNewer, contextMessages = _b.messages, notifications = _b.notifications, read = _b.read, suppressAutoscroll = _b.suppressAutoscroll;
53658
54975
  var messages = props.messages || contextMessages;
53659
- return (React__default["default"].createElement(VirtualizedMessageListWithContext, __assign({ channel: channel, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
54976
+ return (React__default["default"].createElement(VirtualizedMessageListWithContext, __assign({ channel: channel, channelUnreadUiState: channelUnreadUiState, hasMore: !!hasMore, hasMoreNewer: !!hasMoreNewer, highlightedMessageId: highlightedMessageId, jumpToLatestMessage: jumpToLatestMessage, loadingMore: !!loadingMore, loadingMoreNewer: !!loadingMoreNewer, loadMore: loadMore, loadMoreNewer: loadMoreNewer, messages: messages, notifications: notifications, read: read, suppressAutoscroll: suppressAutoscroll }, props)));
53660
54977
  }
53661
54978
 
53662
54979
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -53892,7 +55209,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53892
55209
 
53893
55210
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
53894
55211
 
53895
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=streamChat.logChatPromiseExecution;window.StreamChat.Channel=Channel$1;window.ICAL=window.ICAL||{};var isUserResponseArray = function (output) { var _a; return ((_a = output[0]) === null || _a === void 0 ? void 0 : _a.id) != null; };
55212
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel$1;window.ICAL=window.ICAL||{};var isUserResponseArray = function (output) { var _a; return ((_a = output[0]) === null || _a === void 0 ? void 0 : _a.id) != null; };
53896
55213
  var UnMemoizedChannel = function (props) {
53897
55214
  var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a, LoadingErrorIndicator = props.LoadingErrorIndicator, _b = props.LoadingIndicator, LoadingIndicator = _b === void 0 ? LoadingChannel : _b;
53898
55215
  var _c = useChatContext('Channel'), contextChannel = _c.channel, channelsQueryState = _c.channelsQueryState, customClasses = _c.customClasses, theme = _c.theme;
@@ -53916,43 +55233,76 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53916
55233
  };
53917
55234
  var ChannelInner = function (props) {
53918
55235
  var _a;
53919
- var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, channelQueryOptions = props.channelQueryOptions, children = props.children, doDeleteMessageRequest = props.doDeleteMessageRequest, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannel : _e, markReadOnMount = props.markReadOnMount, maxNumberOfFiles = props.maxNumberOfFiles, _f = props.multipleUploads, multipleUploads = _f === void 0 ? true : _f, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _g = props.optionalMessageInputProps, optionalMessageInputProps = _g === void 0 ? {} : _g, skipMessageDataMemoization = props.skipMessageDataMemoization;
53920
- var _h = useChatContext('Channel'), client = _h.client, customClasses = _h.customClasses, latestMessageDatesByChannels = _h.latestMessageDatesByChannels, mutes = _h.mutes, theme = _h.theme;
55236
+ var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, channelQueryOptions = props.channelQueryOptions, children = props.children, doDeleteMessageRequest = props.doDeleteMessageRequest, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannel : _e, _f = props.markReadOnMount, markReadOnMount = _f === void 0 ? true : _f, maxNumberOfFiles = props.maxNumberOfFiles, _g = props.multipleUploads, multipleUploads = _g === void 0 ? true : _g, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _h = props.optionalMessageInputProps, optionalMessageInputProps = _h === void 0 ? {} : _h, skipMessageDataMemoization = props.skipMessageDataMemoization;
55237
+ var _j = useChatContext('Channel'), client = _j.client, customClasses = _j.customClasses, latestMessageDatesByChannels = _j.latestMessageDatesByChannels, mutes = _j.mutes, theme = _j.theme;
53921
55238
  var t = useTranslationContext('Channel').t;
53922
- var _j = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _j.channelClass, chatClass = _j.chatClass, chatContainerClass = _j.chatContainerClass, windowsEmojiClass = _j.windowsEmojiClass;
53923
- var _k = React$2.useState(channel.getConfig()), channelConfig = _k[0], setChannelConfig = _k[1];
53924
- var _l = React$2.useState([]), notifications = _l[0], setNotifications = _l[1];
53925
- var _m = React$2.useState(), quotedMessage = _m[0], setQuotedMessage = _m[1];
55239
+ var _k = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _k.channelClass, chatClass = _k.chatClass, chatContainerClass = _k.chatContainerClass, windowsEmojiClass = _k.windowsEmojiClass;
55240
+ var _l = React$2.useState(channel.getConfig()), channelConfig = _l[0], setChannelConfig = _l[1];
55241
+ var _m = React$2.useState([]), notifications = _m[0], setNotifications = _m[1];
55242
+ var _o = React$2.useState(), quotedMessage = _o[0], setQuotedMessage = _o[1];
55243
+ var _p = React$2.useState(), channelUnreadUiState = _p[0], _setChannelUnreadUiState = _p[1];
53926
55244
  var notificationTimeouts = [];
53927
- var _o = React$2.useReducer(channelReducer, __assign(__assign({}, initialState), { loading: !channel.initialized })), state = _o[0], dispatch = _o[1];
55245
+ var _q = React$2.useReducer(channelReducer, __assign(__assign({}, initialState), { loading: !channel.initialized })), state = _q[0], dispatch = _q[1];
53928
55246
  var isMounted = useIsMounted();
53929
55247
  var originalTitle = React$2.useRef('');
53930
- var lastRead = React$2.useRef(new Date());
55248
+ var lastRead = React$2.useRef();
53931
55249
  var online = React$2.useRef(true);
53932
55250
  var channelCapabilitiesArray = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
53933
55251
  var throttledCopyStateFromChannel = lodash_throttle(function () { return dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' }); }, 500, {
53934
55252
  leading: true,
53935
55253
  trailing: true,
53936
55254
  });
53937
- // eslint-disable-next-line react-hooks/exhaustive-deps
53938
- var markRead = React$2.useCallback(lodash_throttle(function () {
53939
- if (channel.disconnected || !(channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events)) {
53940
- return;
53941
- }
53942
- lastRead.current = new Date();
53943
- if (doMarkReadRequest) {
53944
- doMarkReadRequest(channel);
53945
- }
53946
- else {
53947
- streamChat.logChatPromiseExecution(channel.markRead(), 'mark read');
53948
- }
53949
- if (activeUnreadHandler) {
53950
- activeUnreadHandler(0, originalTitle.current);
53951
- }
53952
- else if (originalTitle.current) {
53953
- document.title = originalTitle.current;
53954
- }
53955
- }, 500, { leading: true, trailing: false }), [activeUnreadHandler, channel, channelConfig, doMarkReadRequest]);
55255
+ var setChannelUnreadUiState = React$2.useMemo(function () {
55256
+ return lodash_throttle(_setChannelUnreadUiState, 200, {
55257
+ leading: true,
55258
+ trailing: false,
55259
+ });
55260
+ }, []);
55261
+ var markRead = React$2.useMemo(function () {
55262
+ return lodash_throttle(function (options) { return __awaiter(void 0, void 0, void 0, function () {
55263
+ var _a, updateChannelUiUnreadState, markReadResponse;
55264
+ return __generator(this, function (_b) {
55265
+ switch (_b.label) {
55266
+ case 0:
55267
+ _a = (options !== null && options !== void 0 ? options : {}).updateChannelUiUnreadState, updateChannelUiUnreadState = _a === void 0 ? true : _a;
55268
+ if (channel.disconnected || !(channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events)) {
55269
+ return [2 /*return*/];
55270
+ }
55271
+ lastRead.current = new Date();
55272
+ _b.label = 1;
55273
+ case 1:
55274
+ _b.trys.push([1, 5, , 6]);
55275
+ if (!doMarkReadRequest) return [3 /*break*/, 2];
55276
+ doMarkReadRequest(channel, updateChannelUiUnreadState ? setChannelUnreadUiState : undefined);
55277
+ return [3 /*break*/, 4];
55278
+ case 2: return [4 /*yield*/, channel.markRead()];
55279
+ case 3:
55280
+ markReadResponse = _b.sent();
55281
+ if (updateChannelUiUnreadState && markReadResponse) {
55282
+ _setChannelUnreadUiState({
55283
+ last_read: lastRead.current,
55284
+ last_read_message_id: markReadResponse.event.last_read_message_id,
55285
+ unread_messages: 0,
55286
+ });
55287
+ }
55288
+ _b.label = 4;
55289
+ case 4:
55290
+ if (activeUnreadHandler) {
55291
+ activeUnreadHandler(0, originalTitle.current);
55292
+ }
55293
+ else if (originalTitle.current) {
55294
+ document.title = originalTitle.current;
55295
+ }
55296
+ return [3 /*break*/, 6];
55297
+ case 5:
55298
+ _b.sent();
55299
+ console.error(t('Failed to mark channel as read'));
55300
+ return [3 /*break*/, 6];
55301
+ case 6: return [2 /*return*/];
55302
+ }
55303
+ });
55304
+ }); }, 500, { leading: true, trailing: false });
55305
+ }, [activeUnreadHandler, channel, channelConfig, doMarkReadRequest, setChannelUnreadUiState, t]);
53956
55306
  var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
53957
55307
  var mainChannelUpdated, unread, messageDate, cid, oldestID;
53958
55308
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
@@ -53975,10 +55325,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
53975
55325
  online.current = event.online;
53976
55326
  }
53977
55327
  if (event.type === 'message.new') {
53978
- mainChannelUpdated = true;
53979
- if (((_a = event.message) === null || _a === void 0 ? void 0 : _a.parent_id) && !((_b = event.message) === null || _b === void 0 ? void 0 : _b.show_in_channel)) {
53980
- mainChannelUpdated = false;
53981
- }
55328
+ mainChannelUpdated = !((_a = event.message) === null || _a === void 0 ? void 0 : _a.parent_id) || ((_b = event.message) === null || _b === void 0 ? void 0 : _b.show_in_channel);
53982
55329
  if (mainChannelUpdated) {
53983
55330
  if (document.hidden && (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events) && !channel.muteStatus().muted) {
53984
55331
  unread = channel.countUnread(lastRead.current);
@@ -54019,6 +55366,18 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54019
55366
  _k.sent();
54020
55367
  _k.label = 2;
54021
55368
  case 2:
55369
+ if (event.type === 'notification.mark_unread')
55370
+ _setChannelUnreadUiState(function (prev) {
55371
+ var _a;
55372
+ if (!(event.last_read_at && event.user))
55373
+ return prev;
55374
+ return {
55375
+ first_unread_message_id: event.first_unread_message_id,
55376
+ last_read: new Date(event.last_read_at),
55377
+ last_read_message_id: event.last_read_message_id,
55378
+ unread_messages: (_a = event.unread_messages) !== null && _a !== void 0 ? _a : 0,
55379
+ };
55380
+ });
54022
55381
  throttledCopyStateFromChannel();
54023
55382
  return [2 /*return*/];
54024
55383
  }
@@ -54029,17 +55388,17 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54029
55388
  var errored = false;
54030
55389
  var done = false;
54031
55390
  (function () { return __awaiter(void 0, void 0, void 0, function () {
54032
- var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
54033
- var _c, _d, _e;
54034
- return __generator(this, function (_f) {
54035
- switch (_f.label) {
55391
+ var members, _i, _a, member, userId, _b, user, user_id, config, e_2, _c, user, ownReadState;
55392
+ var _d, _e, _f, _g;
55393
+ return __generator(this, function (_h) {
55394
+ switch (_h.label) {
54036
55395
  case 0:
54037
55396
  if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
54038
- _f.label = 1;
55397
+ _h.label = 1;
54039
55398
  case 1:
54040
- _f.trys.push([1, 3, , 4]);
55399
+ _h.trys.push([1, 3, , 4]);
54041
55400
  members = [];
54042
- if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
55401
+ if (!channel.id && ((_d = channel.data) === null || _d === void 0 ? void 0 : _d.members)) {
54043
55402
  for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
54044
55403
  member = _a[_i];
54045
55404
  userId = void 0;
@@ -54057,13 +55416,13 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54057
55416
  }
54058
55417
  return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
54059
55418
  case 2:
54060
- _f.sent();
55419
+ _h.sent();
54061
55420
  config = channel.getConfig();
54062
55421
  setChannelConfig(config);
54063
55422
  return [3 /*break*/, 4];
54064
55423
  case 3:
54065
- e_1 = _f.sent();
54066
- dispatch({ error: e_1, type: 'setError' });
55424
+ e_2 = _h.sent();
55425
+ dispatch({ error: e_2, type: 'setError' });
54067
55426
  errored = true;
54068
55427
  return [3 /*break*/, 4];
54069
55428
  case 4:
@@ -54072,9 +55431,13 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54072
55431
  if (!errored) {
54073
55432
  dispatch({
54074
55433
  channel: channel,
54075
- hasMore: hasMoreMessagesProbably(channel.state.messages.length, (_e = (_d = channelQueryOptions === null || channelQueryOptions === void 0 ? void 0 : channelQueryOptions.messages) === null || _d === void 0 ? void 0 : _d.limit) !== null && _e !== void 0 ? _e : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE),
55434
+ hasMore: hasMoreMessagesProbably(channel.state.messages.length, (_f = (_e = channelQueryOptions === null || channelQueryOptions === void 0 ? void 0 : channelQueryOptions.messages) === null || _e === void 0 ? void 0 : _e.limit) !== null && _f !== void 0 ? _f : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE),
54076
55435
  type: 'initStateFromChannel',
54077
55436
  });
55437
+ if (((_g = client.user) === null || _g === void 0 ? void 0 : _g.id) && channel.state.read[client.user.id]) {
55438
+ _c = channel.state.read[client.user.id], user = _c.user, ownReadState = __rest(_c, ["user"]);
55439
+ _setChannelUnreadUiState(ownReadState);
55440
+ }
54078
55441
  /**
54079
55442
  * TODO: maybe pass last_read to the countUnread method to get proper value
54080
55443
  * combined with channel.countUnread adjustment (_countMessageAsUnread)
@@ -54083,7 +55446,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54083
55446
  * const lastRead = channel.state.read[client.userID as string].last_read;
54084
55447
  */
54085
55448
  if (channel.countUnread() > 0 && markReadOnMount)
54086
- markRead();
55449
+ markRead({ updateChannelUiUnreadState: false });
54087
55450
  // The more complex sync logic is done in Chat
54088
55451
  client.on('connection.changed', handleEvent);
54089
55452
  client.on('connection.recovered', handleEvent);
@@ -54133,7 +55496,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54133
55496
  var loadMore = function (limit) {
54134
55497
  if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
54135
55498
  return __awaiter(void 0, void 0, void 0, function () {
54136
- var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
55499
+ var oldestMessage, oldestID, perPage, queryResponse, e_3, hasMoreMessages;
54137
55500
  var _a;
54138
55501
  return __generator(this, function (_b) {
54139
55502
  switch (_b.label) {
@@ -54158,8 +55521,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54158
55521
  queryResponse = _b.sent();
54159
55522
  return [3 /*break*/, 4];
54160
55523
  case 3:
54161
- e_2 = _b.sent();
54162
- console.warn('message pagination request failed with error', e_2);
55524
+ e_3 = _b.sent();
55525
+ console.warn('message pagination request failed with error', e_3);
54163
55526
  dispatch({ loadingMore: false, type: 'setLoadingMore' });
54164
55527
  return [2 /*return*/, 0];
54165
55528
  case 4:
@@ -54173,7 +55536,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54173
55536
  var loadMoreNewer = function (limit) {
54174
55537
  if (limit === void 0) { limit = 100; }
54175
55538
  return __awaiter(void 0, void 0, void 0, function () {
54176
- var newestMessage, newestId, perPage, queryResponse, e_3, hasMoreNewerMessages;
55539
+ var newestMessage, newestId, perPage, queryResponse, e_4, hasMoreNewerMessages;
54177
55540
  var _a, _b;
54178
55541
  return __generator(this, function (_c) {
54179
55542
  switch (_c.label) {
@@ -54197,8 +55560,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54197
55560
  queryResponse = _c.sent();
54198
55561
  return [3 /*break*/, 4];
54199
55562
  case 3:
54200
- e_3 = _c.sent();
54201
- console.warn('message pagination request failed with error', e_3);
55563
+ e_4 = _c.sent();
55564
+ console.warn('message pagination request failed with error', e_4);
54202
55565
  dispatch({ loadingMoreNewer: false, type: 'setLoadingMoreNewer' });
54203
55566
  return [2 /*return*/, 0];
54204
55567
  case 4:
@@ -54264,22 +55627,21 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54264
55627
  var jumpToFirstUnreadMessage = React$2.useCallback(function (queryMessageLimit) {
54265
55628
  if (queryMessageLimit === void 0) { queryMessageLimit = 100; }
54266
55629
  return __awaiter(void 0, void 0, void 0, function () {
54267
- var readState, indexOfLastReadMessage, currentMessageSet, i, id, hasMoreMessages, firstUnreadMessage, jumpToMessageId;
55630
+ var indexOfLastReadMessage, currentMessageSet, i, id, hasMoreMessages, firstUnreadMessage, jumpToMessageId;
54268
55631
  var _a;
54269
55632
  return __generator(this, function (_b) {
54270
55633
  switch (_b.label) {
54271
55634
  case 0:
54272
- if (!client.user)
55635
+ if (!(client.user && (channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages)))
54273
55636
  return [2 /*return*/];
54274
- readState = channel.state.read[client.user.id];
54275
- if (!(readState === null || readState === void 0 ? void 0 : readState.last_read_message_id)) {
55637
+ if (!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.last_read_message_id)) {
54276
55638
  addNotification(t('Failed to jump to the first unread message'), 'error');
54277
55639
  return [2 /*return*/];
54278
55640
  }
54279
55641
  currentMessageSet = channel.state.messages;
54280
55642
  for (i = currentMessageSet.length - 1; i >= 0; i--) {
54281
55643
  id = currentMessageSet[i].id;
54282
- if (id === readState.last_read_message_id) {
55644
+ if (id === channelUnreadUiState.last_read_message_id) {
54283
55645
  indexOfLastReadMessage = i;
54284
55646
  break;
54285
55647
  }
@@ -54290,14 +55652,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54290
55652
  _b.label = 1;
54291
55653
  case 1:
54292
55654
  _b.trys.push([1, 3, , 4]);
54293
- return [4 /*yield*/, channel.state.loadMessageIntoState(readState.last_read_message_id, undefined, queryMessageLimit)];
55655
+ return [4 /*yield*/, channel.state.loadMessageIntoState(channelUnreadUiState.last_read_message_id, undefined, queryMessageLimit)];
54294
55656
  case 2:
54295
55657
  _b.sent();
54296
55658
  /**
54297
55659
  * if the index of the last read message on the page is beyond the half of the page,
54298
55660
  * we have arrived to the oldest page of the channel
54299
55661
  */
54300
- indexOfLastReadMessage = channel.state.messages.findIndex(function (message) { return message.id === readState.last_read_message_id; });
55662
+ indexOfLastReadMessage = channel.state.messages.findIndex(function (message) { return message.id === channelUnreadUiState.last_read_message_id; });
54301
55663
  hasMoreMessages = indexOfLastReadMessage >= Math.floor(queryMessageLimit / 2);
54302
55664
  return [3 /*break*/, 4];
54303
55665
  case 3:
@@ -54310,7 +55672,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54310
55672
  _b.label = 5;
54311
55673
  case 5:
54312
55674
  firstUnreadMessage = channel.state.messages[indexOfLastReadMessage + 1];
54313
- jumpToMessageId = (_a = firstUnreadMessage === null || firstUnreadMessage === void 0 ? void 0 : firstUnreadMessage.id) !== null && _a !== void 0 ? _a : readState.last_read_message_id;
55675
+ jumpToMessageId = (_a = firstUnreadMessage === null || firstUnreadMessage === void 0 ? void 0 : firstUnreadMessage.id) !== null && _a !== void 0 ? _a : channelUnreadUiState.last_read_message_id;
54314
55676
  dispatch({
54315
55677
  hasMoreNewer: channel.state.messages !== channel.state.latestMessages,
54316
55678
  highlightedMessageId: jumpToMessageId,
@@ -54327,7 +55689,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54327
55689
  }
54328
55690
  });
54329
55691
  });
54330
- }, [addNotification, channel, client, loadMoreFinished, t]);
55692
+ }, [addNotification, channel, client, loadMoreFinished, t, channelUnreadUiState]);
54331
55693
  var deleteMessage = React$2.useCallback(function (message) { return __awaiter(void 0, void 0, void 0, function () {
54332
55694
  var deletedMessage, result;
54333
55695
  return __generator(this, function (_a) {
@@ -54530,7 +55892,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54530
55892
  var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
54531
55893
  var editMessage = useEditMessageHandler(doUpdateMessageRequest);
54532
55894
  var typing = state.typing, restState = __rest(state, ["typing"]);
54533
- var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, debounceURLEnrichmentMs: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.debounceURLEnrichmentMs, dragAndDropWindow: dragAndDropWindow, enrichURLForPreview: props.enrichURLForPreview, findURLFn: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn, giphyVersion: props.giphyVersion || 'fixed_height', imageAttachmentSizeHandler: props.imageAttachmentSizeHandler || getImageAttachmentConfiguration, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, onLinkPreviewDismissed: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed, quotedMessage: quotedMessage, shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail || true, videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration, watcher_count: state.watcherCount }));
55895
+ var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, channelUnreadUiState: channelUnreadUiState, debounceURLEnrichmentMs: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.debounceURLEnrichmentMs, dragAndDropWindow: dragAndDropWindow, enrichURLForPreview: props.enrichURLForPreview, findURLFn: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn, giphyVersion: props.giphyVersion || 'fixed_height', imageAttachmentSizeHandler: props.imageAttachmentSizeHandler || getImageAttachmentConfiguration, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, onLinkPreviewDismissed: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed, quotedMessage: quotedMessage, shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail || true, videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration, watcher_count: state.watcherCount }));
54534
55896
  var channelActionContextValue = React$2.useMemo(function () { return ({
54535
55897
  addNotification: addNotification,
54536
55898
  closeThread: closeThread,
@@ -54550,6 +55912,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54550
55912
  removeMessage: removeMessage,
54551
55913
  retrySendMessage: retrySendMessage,
54552
55914
  sendMessage: sendMessage,
55915
+ setChannelUnreadUiState: setChannelUnreadUiState,
54553
55916
  setQuotedMessage: setQuotedMessage,
54554
55917
  skipMessageDataMemoization: skipMessageDataMemoization,
54555
55918
  updateMessage: updateMessage,
@@ -54567,6 +55930,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54567
55930
  jumpToFirstUnreadMessage,
54568
55931
  jumpToMessage,
54569
55932
  jumpToLatestMessage,
55933
+ setChannelUnreadUiState,
54570
55934
  ]);
54571
55935
  var componentContextValue = React$2.useMemo(function () {
54572
55936
  var _a;
@@ -54592,6 +55956,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54592
55956
  LinkPreviewList: props.LinkPreviewList,
54593
55957
  LoadingIndicator: props.LoadingIndicator,
54594
55958
  Message: props.Message || MessageSimple,
55959
+ MessageBouncePrompt: props.MessageBouncePrompt,
54595
55960
  MessageDeleted: props.MessageDeleted,
54596
55961
  MessageListNotifications: props.MessageListNotifications,
54597
55962
  MessageNotification: props.MessageNotification,
@@ -54755,7 +56120,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54755
56120
  }), displayImage = _d.displayImage, displayTitle = _d.displayTitle;
54756
56121
  var _e = (channel === null || channel === void 0 ? void 0 : channel.data) || {}, member_count = _e.member_count, subtitle = _e.subtitle;
54757
56122
  return (React__default["default"].createElement("div", { className: 'str-chat__header-livestream str-chat__channel-header' },
54758
- React__default["default"].createElement("button", { "aria-label": 'Menu', className: 'str-chat__header-hamburger', onClick: openMobileNav },
56123
+ React__default["default"].createElement("button", { "aria-label": t('aria/Menu'), className: 'str-chat__header-hamburger', onClick: openMobileNav },
54759
56124
  React__default["default"].createElement(MenuIcon, null)),
54760
56125
  React__default["default"].createElement(Avatar$1, { image: displayImage, name: displayTitle, shape: 'rounded', size: (channel === null || channel === void 0 ? void 0 : channel.type) === 'commerce' ? 60 : 40 }),
54761
56126
  React__default["default"].createElement("div", { className: 'str-chat__header-livestream-left str-chat__channel-header-end' },
@@ -54806,6 +56171,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54806
56171
  */
54807
56172
  var ChannelListMessenger = function (props) {
54808
56173
  var children = props.children, _a = props.error, error = _a === void 0 ? null : _a, loading = props.loading, _b = props.LoadingErrorIndicator, LoadingErrorIndicator = _b === void 0 ? ChatDown : _b, _c = props.LoadingIndicator, LoadingIndicator = _c === void 0 ? LoadingChannels : _c;
56174
+ var t = useTranslationContext('ChannelListMessenger').t;
54809
56175
  if (error) {
54810
56176
  return React__default["default"].createElement(LoadingErrorIndicator, { type: 'Connection Error' });
54811
56177
  }
@@ -54813,7 +56179,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
54813
56179
  return React__default["default"].createElement(LoadingIndicator, null);
54814
56180
  }
54815
56181
  return (React__default["default"].createElement("div", { className: 'str-chat__channel-list-messenger str-chat__channel-list-messenger-react' },
54816
- React__default["default"].createElement("div", { "aria-label": 'Channel list', className: 'str-chat__channel-list-messenger__main str-chat__channel-list-messenger-react__main', role: 'listbox' }, children)));
56182
+ React__default["default"].createElement("div", { "aria-label": t('aria/Channel list'), className: 'str-chat__channel-list-messenger__main str-chat__channel-list-messenger-react__main', role: 'listbox' }, children)));
54817
56183
  };
54818
56184
 
54819
56185
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChannelDeletedListener = function (setChannels, customHandler) {
@@ -55135,9 +56501,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
55135
56501
  var lastRecoveryTimestamp = React$2.useRef();
55136
56502
  var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
55137
56503
  ? MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
55138
- : recoveryThrottleIntervalMs
55139
- ? recoveryThrottleIntervalMs
55140
- : RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS;
56504
+ : recoveryThrottleIntervalMs !== null && recoveryThrottleIntervalMs !== void 0 ? recoveryThrottleIntervalMs : RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS;
55141
56505
  // memoize props
55142
56506
  var filterString = React$2.useMemo(function () { return JSON.stringify(filters); }, [filters]);
55143
56507
  var sortString = React$2.useMemo(function () { return JSON.stringify(sort); }, [sort]);
@@ -55257,81 +56621,22 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
55257
56621
  }, []);
55258
56622
  };
55259
56623
 
55260
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};exports.MarkChannelReadOn = void 0;
55261
- (function (MarkChannelReadOn) {
55262
- MarkChannelReadOn[MarkChannelReadOn["never"] = 0] = "never";
55263
- MarkChannelReadOn[MarkChannelReadOn["leave"] = 1] = "leave";
55264
- MarkChannelReadOn[MarkChannelReadOn["reenter"] = 2] = "reenter";
55265
- })(exports.MarkChannelReadOn || (exports.MarkChannelReadOn = {}));
55266
- var UnMemoizedChannelPreviewMessenger = function (props) {
56624
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedChannelPreviewMessenger = function (props) {
55267
56625
  var _a, _b;
55268
- var active = props.active, activeChannel = props.activeChannel, _c = props.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, channel = props.channel, _d = props.className, customClassName = _d === void 0 ? '' : _d, displayImage = props.displayImage, displayTitle = props.displayTitle, latestMessage = props.latestMessage, _e = props.markActiveChannelReadOn, markActiveChannelReadOn = _e === void 0 ? exports.MarkChannelReadOn.reenter : _e, customOnSelectChannel = props.onSelect, setActiveChannel = props.setActiveChannel, unread = props.unread, watchers = props.watchers;
55269
- var client = useChatContext('ChannelPreviewMessenger').client;
56626
+ var active = props.active, _c = props.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, channel = props.channel, _d = props.className, customClassName = _d === void 0 ? '' : _d, displayImage = props.displayImage, displayTitle = props.displayTitle, latestMessage = props.latestMessage, customOnSelectChannel = props.onSelect, setActiveChannel = props.setActiveChannel, unread = props.unread, watchers = props.watchers;
55270
56627
  var channelPreviewButton = React$2.useRef(null);
55271
56628
  var avatarName = displayTitle || ((_b = (_a = channel.state.messages[channel.state.messages.length - 1]) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.id);
55272
- var previouslyClicked = React$2.useRef(active);
55273
- var handleMarkReadOnReenter = function () {
55274
- if (!client.user)
55275
- return;
55276
- var ownReadState = channel.state.read[client.user.id];
55277
- if (!previouslyClicked.current) {
55278
- previouslyClicked.current = true;
55279
- }
55280
- else if (!active &&
55281
- ((ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.first_unread_message_id) || (ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.unread_messages) > 0) &&
55282
- previouslyClicked.current) {
55283
- channel.markRead();
55284
- }
55285
- };
55286
- var handleMarkReadOnLeave = function () {
55287
- if (!(client.user && activeChannel))
55288
- return;
55289
- var ownReadState = activeChannel.state.read[client.user.id];
55290
- if ((ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.first_unread_message_id) || (ownReadState === null || ownReadState === void 0 ? void 0 : ownReadState.unread_messages) > 0) {
55291
- activeChannel.markRead();
55292
- }
55293
- };
55294
56629
  var onSelectChannel = function (e) {
55295
56630
  if (customOnSelectChannel) {
55296
56631
  customOnSelectChannel(e);
55297
56632
  }
55298
56633
  else if (setActiveChannel) {
55299
- // eslint-disable-next-line default-case
55300
- switch (markActiveChannelReadOn) {
55301
- case exports.MarkChannelReadOn.never:
55302
- break;
55303
- case exports.MarkChannelReadOn.leave:
55304
- handleMarkReadOnLeave();
55305
- break;
55306
- case exports.MarkChannelReadOn.reenter:
55307
- handleMarkReadOnReenter();
55308
- }
55309
56634
  setActiveChannel(channel, watchers);
55310
56635
  }
55311
56636
  if (channelPreviewButton === null || channelPreviewButton === void 0 ? void 0 : channelPreviewButton.current) {
55312
56637
  channelPreviewButton.current.blur();
55313
56638
  }
55314
56639
  };
55315
- React$2.useEffect(function () {
55316
- if (markActiveChannelReadOn !== exports.MarkChannelReadOn.reenter)
55317
- return;
55318
- var handleEvent = function (event) {
55319
- var _a, _b;
55320
- if (active)
55321
- return;
55322
- if (channel.cid !== event.cid)
55323
- return;
55324
- if (event.type === 'notification.mark_unread' && ((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) !== ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id))
55325
- return;
55326
- previouslyClicked.current = false;
55327
- };
55328
- channel.on('notification.mark_unread', handleEvent);
55329
- channel.on('message.new', handleEvent);
55330
- return function () {
55331
- channel.off('notification.mark_unread', handleEvent);
55332
- channel.off('message.new', handleEvent);
55333
- };
55334
- }, [active, channel, client, markActiveChannelReadOn, previouslyClicked]);
55335
56640
  return (React__default["default"].createElement("button", { "aria-label": "Select Channel: ".concat(displayTitle || ''), "aria-selected": active, className: clsx("str-chat__channel-preview-messenger str-chat__channel-preview", active && 'str-chat__channel-preview-messenger--active', unread && unread >= 1 && 'str-chat__channel-preview-messenger--unread', customClassName), "data-testid": 'channel-preview-button', onClick: onSelectChannel, ref: channelPreviewButton, role: 'option' },
55336
56641
  React__default["default"].createElement("div", { className: 'str-chat__channel-preview-messenger--left' },
55337
56642
  React__default["default"].createElement(Avatar$1, { image: displayImage, name: avatarName, size: 40 })),
@@ -55455,13 +56760,15 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
55455
56760
  channel.off('notification.mark_unread', handleEvent);
55456
56761
  };
55457
56762
  }, [channel, client]);
55458
- var refreshUnreadCount = React$2.useCallback(function () {
55459
- if (muted) {
55460
- setUnread(0);
55461
- }
55462
- else {
55463
- setUnread(channel.countUnread());
55464
- }
56763
+ var refreshUnreadCount = React$2.useMemo(function () {
56764
+ return lodash_throttle(function () {
56765
+ if (muted) {
56766
+ setUnread(0);
56767
+ }
56768
+ else {
56769
+ setUnread(channel.countUnread());
56770
+ }
56771
+ }, 400);
55465
56772
  }, [channel, muted]);
55466
56773
  React$2.useEffect(function () {
55467
56774
  refreshUnreadCount();
@@ -55811,7 +57118,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
55811
57118
  };
55812
57119
  var ResultsContainer = function (_a) {
55813
57120
  var children = _a.children, popupResults = _a.popupResults;
55814
- return (React__default["default"].createElement("div", { "aria-label": 'Channel search results', className: clsx("str-chat__channel-search-container str-chat__channel-search-result-list", popupResults ? 'popup' : 'inline') }, children));
57121
+ var t = useTranslationContext('ResultsContainer').t;
57122
+ return (React__default["default"].createElement("div", { "aria-label": t('aria/Channel search results'), className: clsx("str-chat__channel-search-container str-chat__channel-search-result-list", popupResults ? 'popup' : 'inline') }, children));
55815
57123
  };
55816
57124
  var SearchResults = function (props) {
55817
57125
  var popupResults = props.popupResults, results = props.results, searching = props.searching, _a = props.SearchEmpty, SearchEmpty = _a === void 0 ? DefaultSearchEmpty : _a, _b = props.SearchResultsHeader, SearchResultsHeader = _b === void 0 ? DefaultSearchResultsHeader : _b, SearchLoading = props.SearchLoading, _c = props.SearchResultItem, SearchResultItem = _c === void 0 ? DefaultSearchResultItem : _c, _d = props.SearchResultsList, SearchResultsList = _d === void 0 ? DefaultSearchResultsList : _d, selectResult = props.selectResult;
@@ -55886,7 +57194,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
55886
57194
  // eslint-disable-next-line react-hooks/exhaustive-deps
55887
57195
  }, []);
55888
57196
  return (React__default["default"].createElement("div", { className: 'str-chat__load-more-button' },
55889
- React__default["default"].createElement("button", { "aria-label": 'Load More Channels', className: 'str-chat__load-more-button__button str-chat__cta-button', "data-testid": 'load-more-button', disabled: loading, onClick: onClick }, loading ? React__default["default"].createElement(LoadingIndicator, null) : childrenOrDefaultString)));
57197
+ React__default["default"].createElement("button", { "aria-label": t('aria/Load More Channels'), className: 'str-chat__load-more-button__button str-chat__cta-button', "data-testid": 'load-more-button', disabled: loading, onClick: onClick }, loading ? React__default["default"].createElement(LoadingIndicator, null) : childrenOrDefaultString)));
55890
57198
  };
55891
57199
  var LoadMoreButton = React__default["default"].memo(UnMemoizedLoadMoreButton);
55892
57200
 
@@ -56041,7 +57349,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
56041
57349
 
56042
57350
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
56043
57351
 
56044
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.7.0';
57352
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.9.0';
56045
57353
 
56046
57354
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
56047
57355
  var _b, _c;
@@ -56293,7 +57601,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
56293
57601
  React__default["default"].createElement("div", { className: 'str-chat__thread-header-details' },
56294
57602
  React__default["default"].createElement("div", { className: 'str-chat__thread-header-title' }, t('Thread')),
56295
57603
  React__default["default"].createElement("div", { className: 'str-chat__thread-header-subtitle' }, displayTitle)),
56296
- React__default["default"].createElement("button", { "aria-label": 'Close thread', className: 'str-chat__square-button str-chat__close-thread-button', "data-testid": 'close-button', onClick: closeThread },
57604
+ React__default["default"].createElement("button", { "aria-label": t('aria/Close thread'), className: 'str-chat__square-button str-chat__close-thread-button', "data-testid": 'close-button', onClick: closeThread },
56297
57605
  React__default["default"].createElement(CloseIcon, null))));
56298
57606
  };
56299
57607
 
@@ -56421,7 +57729,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
56421
57729
  (_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
56422
57730
  } }, props.pickerProps)))),
56423
57731
  themeVersion === '1' && (React__default["default"].createElement(Tooltip, null, displayPicker ? t('Close emoji picker') : t('Open emoji picker'))),
56424
- React__default["default"].createElement("button", { "aria-label": 'Emoji picker', className: (_c = props.buttonClassName) !== null && _c !== void 0 ? _c : buttonClassName, onClick: function () { return setDisplayPicker(function (cv) { return !cv; }); }, ref: setReferenceElement, type: 'button' }, ButtonIconComponent && React__default["default"].createElement(ButtonIconComponent, null))));
57732
+ React__default["default"].createElement("button", { "aria-expanded": displayPicker, "aria-label": t('aria/Emoji picker'), className: (_c = props.buttonClassName) !== null && _c !== void 0 ? _c : buttonClassName, onClick: function () { return setDisplayPicker(function (cv) { return !cv; }); }, ref: setReferenceElement, type: 'button' }, ButtonIconComponent && React__default["default"].createElement(ButtonIconComponent, null))));
56425
57733
  };
56426
57734
 
56427
57735
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -80564,6 +81872,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
80564
81872
  exports.Message = Message;
80565
81873
  exports.MessageActions = MessageActions;
80566
81874
  exports.MessageActionsBox = MessageActionsBox;
81875
+ exports.MessageBounceProvider = MessageBounceProvider;
80567
81876
  exports.MessageContext = MessageContext;
80568
81877
  exports.MessageDeleted = MessageDeleted;
80569
81878
  exports.MessageDeliveredIcon = MessageDeliveredIcon;
@@ -80680,6 +81989,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
80680
81989
  exports.isGalleryAttachmentType = isGalleryAttachmentType;
80681
81990
  exports.isLanguageSupported = isLanguageSupported;
80682
81991
  exports.isMediaAttachment = isMediaAttachment;
81992
+ exports.isMessageBounced = isMessageBounced;
80683
81993
  exports.isNumberOrString = isNumberOrString;
80684
81994
  exports.isOnlyEmojis = isOnlyEmojis;
80685
81995
  exports.isScrapedContent = isScrapedContent;
@@ -80743,6 +82053,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
80743
82053
  exports.useLastReadData = useLastReadData;
80744
82054
  exports.useMarkUnreadHandler = useMarkUnreadHandler;
80745
82055
  exports.useMentionsHandler = useMentionsHandler;
82056
+ exports.useMessageBounceContext = useMessageBounceContext;
80746
82057
  exports.useMessageContext = useMessageContext;
80747
82058
  exports.useMessageInputContext = useMessageInputContext;
80748
82059
  exports.useMessageInputState = useMessageInputState;
@@ -80784,5 +82095,5 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, streamChat, React
80784
82095
 
80785
82096
  return exports;
80786
82097
 
80787
- })({}, React, jsxRuntime, StreamChat, ReactDOM, Picker);
82098
+ })({}, React, jsxRuntime, ReactDOM, StreamChat, Picker);
80788
82099
  //# sourceMappingURL=browser.full-bundle.js.map