stream-chat-react-native-core 5.21.0 → 5.22.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/README.md +10 -5
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js +12 -12
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/FileAttachment.js +10 -7
  5. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  6. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +8 -6
  7. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  8. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
  9. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  10. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
  11. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  12. package/lib/commonjs/components/Channel/Channel.js +65 -46
  13. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  14. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
  15. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  16. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
  17. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  18. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
  19. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  20. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  21. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  22. package/lib/commonjs/components/ImageGallery/ImageGallery.js +30 -32
  23. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  24. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
  25. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  26. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
  27. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  28. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
  29. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  30. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
  31. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  32. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +10 -8
  33. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  34. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +17 -12
  35. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
  36. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +20 -17
  37. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  38. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +18 -17
  39. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  40. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
  41. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
  42. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
  43. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
  44. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +25 -17
  45. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  46. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +30 -20
  47. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  48. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +13 -13
  49. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  50. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  51. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  52. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  53. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +13 -11
  54. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  55. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +8 -14
  56. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
  57. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +11 -8
  58. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  59. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +32 -29
  60. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  61. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +17 -15
  62. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  63. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  64. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  65. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +66 -45
  66. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  67. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
  68. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  69. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  70. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  71. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -4
  72. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  73. package/lib/commonjs/hooks/index.js +11 -0
  74. package/lib/commonjs/hooks/index.js.map +1 -1
  75. package/lib/commonjs/hooks/useViewport.js +47 -0
  76. package/lib/commonjs/hooks/useViewport.js.map +1 -0
  77. package/lib/commonjs/i18n/en.json +6 -1
  78. package/lib/commonjs/i18n/es.json +77 -0
  79. package/lib/commonjs/i18n/fr.json +65 -60
  80. package/lib/commonjs/i18n/he.json +6 -1
  81. package/lib/commonjs/i18n/hi.json +65 -60
  82. package/lib/commonjs/i18n/it.json +65 -60
  83. package/lib/commonjs/i18n/ja.json +6 -1
  84. package/lib/commonjs/i18n/ko.json +6 -1
  85. package/lib/commonjs/i18n/nl.json +65 -60
  86. package/lib/commonjs/i18n/ru.json +65 -60
  87. package/lib/commonjs/i18n/tr.json +65 -60
  88. package/lib/commonjs/native.js.map +1 -1
  89. package/lib/commonjs/types/types.js.map +1 -1
  90. package/lib/commonjs/utils/Streami18n.js +4 -1
  91. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  92. package/lib/commonjs/utils/compressImage.js +37 -0
  93. package/lib/commonjs/utils/compressImage.js.map +1 -0
  94. package/lib/commonjs/utils/utils.js +1 -15
  95. package/lib/commonjs/utils/utils.js.map +1 -1
  96. package/lib/commonjs/version.json +1 -1
  97. package/lib/module/components/Attachment/AudioAttachment.js +12 -12
  98. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  99. package/lib/module/components/Attachment/FileAttachment.js +10 -7
  100. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  101. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +8 -6
  102. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  103. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
  104. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  105. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
  106. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  107. package/lib/module/components/Channel/Channel.js +65 -46
  108. package/lib/module/components/Channel/Channel.js.map +1 -1
  109. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
  110. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  111. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
  112. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  113. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
  114. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  115. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  116. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  117. package/lib/module/components/ImageGallery/ImageGallery.js +30 -32
  118. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  119. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
  120. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  121. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
  122. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  123. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
  124. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  125. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
  126. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  127. package/lib/module/components/ImageGallery/components/ImageGrid.js +10 -8
  128. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  129. package/lib/module/components/Indicators/EmptyStateIndicator.js +17 -12
  130. package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
  131. package/lib/module/components/Message/MessageSimple/MessageContent.js +20 -17
  132. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  133. package/lib/module/components/Message/MessageSimple/ReactionList.js +18 -17
  134. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  135. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
  136. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
  137. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
  138. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
  139. package/lib/module/components/Message/MessageSimple/utils/renderText.js +25 -17
  140. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  141. package/lib/module/components/MessageInput/FileUploadPreview.js +30 -20
  142. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  143. package/lib/module/components/MessageInput/ImageUploadPreview.js +13 -13
  144. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  145. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  146. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  147. package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  148. package/lib/module/components/MessageList/InlineUnreadIndicator.js +13 -11
  149. package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  150. package/lib/module/components/MessageOverlay/MessageActionList.js +8 -14
  151. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
  152. package/lib/module/components/MessageOverlay/MessageActionListItem.js +11 -8
  153. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  154. package/lib/module/components/MessageOverlay/MessageOverlay.js +32 -29
  155. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  156. package/lib/module/components/Thread/components/ThreadFooterComponent.js +17 -15
  157. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  158. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  159. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  160. package/lib/module/contexts/messageInputContext/MessageInputContext.js +66 -45
  161. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  162. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
  163. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  164. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  165. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  166. package/lib/module/contexts/themeContext/utils/theme.js +1 -4
  167. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  168. package/lib/module/hooks/index.js +11 -0
  169. package/lib/module/hooks/index.js.map +1 -1
  170. package/lib/module/hooks/useViewport.js +47 -0
  171. package/lib/module/hooks/useViewport.js.map +1 -0
  172. package/lib/module/i18n/en.json +6 -1
  173. package/lib/module/i18n/es.json +77 -0
  174. package/lib/module/i18n/fr.json +65 -60
  175. package/lib/module/i18n/he.json +6 -1
  176. package/lib/module/i18n/hi.json +65 -60
  177. package/lib/module/i18n/it.json +65 -60
  178. package/lib/module/i18n/ja.json +6 -1
  179. package/lib/module/i18n/ko.json +6 -1
  180. package/lib/module/i18n/nl.json +65 -60
  181. package/lib/module/i18n/ru.json +65 -60
  182. package/lib/module/i18n/tr.json +65 -60
  183. package/lib/module/native.js.map +1 -1
  184. package/lib/module/types/types.js.map +1 -1
  185. package/lib/module/utils/Streami18n.js +4 -1
  186. package/lib/module/utils/Streami18n.js.map +1 -1
  187. package/lib/module/utils/compressImage.js +37 -0
  188. package/lib/module/utils/compressImage.js.map +1 -0
  189. package/lib/module/utils/utils.js +1 -15
  190. package/lib/module/utils/utils.js.map +1 -1
  191. package/lib/module/version.json +1 -1
  192. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -1
  193. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  194. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +3 -0
  195. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -3
  196. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.test.d.ts +1 -0
  197. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  198. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  199. package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
  200. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +5 -0
  201. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  202. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -23
  203. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +2 -2
  204. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -2
  205. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -3
  206. package/lib/typescript/hooks/index.d.ts +1 -0
  207. package/lib/typescript/hooks/useViewport.d.ts +11 -0
  208. package/lib/typescript/i18n/en.json +6 -1
  209. package/lib/typescript/i18n/es.json +77 -0
  210. package/lib/typescript/i18n/fr.json +65 -60
  211. package/lib/typescript/i18n/he.json +6 -1
  212. package/lib/typescript/i18n/hi.json +65 -60
  213. package/lib/typescript/i18n/it.json +65 -60
  214. package/lib/typescript/i18n/ja.json +6 -1
  215. package/lib/typescript/i18n/ko.json +6 -1
  216. package/lib/typescript/i18n/nl.json +65 -60
  217. package/lib/typescript/i18n/ru.json +65 -60
  218. package/lib/typescript/i18n/tr.json +65 -60
  219. package/lib/typescript/native.d.ts +2 -0
  220. package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
  221. package/lib/typescript/types/types.d.ts +27 -10
  222. package/lib/typescript/utils/Streami18n.d.ts +7 -1
  223. package/lib/typescript/utils/compressImage.d.ts +8 -0
  224. package/lib/typescript/utils/utils.d.ts +0 -2
  225. package/package.json +2 -2
  226. package/src/components/Attachment/AudioAttachment.tsx +2 -1
  227. package/src/components/Attachment/FileAttachment.tsx +12 -3
  228. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
  229. package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +7 -5
  230. package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
  231. package/src/components/Channel/Channel.tsx +32 -8
  232. package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
  233. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -9
  234. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -3
  235. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -3
  236. package/src/components/ImageGallery/ImageGallery.tsx +10 -19
  237. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +5 -3
  238. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +5 -3
  239. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +6 -2
  240. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
  241. package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
  242. package/src/components/Indicators/EmptyStateIndicator.tsx +8 -7
  243. package/src/components/Message/MessageSimple/MessageContent.tsx +3 -1
  244. package/src/components/Message/MessageSimple/ReactionList.tsx +2 -1
  245. package/src/components/Message/MessageSimple/utils/generateMarkdownText.test.ts +23 -0
  246. package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +12 -13
  247. package/src/components/Message/MessageSimple/utils/renderText.tsx +12 -2
  248. package/src/components/MessageInput/FileUploadPreview.tsx +17 -3
  249. package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
  250. package/src/components/MessageInput/MessageInput.tsx +1 -1
  251. package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
  252. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +1 -1
  253. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +1 -1
  254. package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
  255. package/src/components/MessageList/InlineUnreadIndicator.tsx +2 -1
  256. package/src/components/MessageOverlay/MessageActionList.tsx +3 -11
  257. package/src/components/MessageOverlay/MessageActionListItem.tsx +5 -2
  258. package/src/components/MessageOverlay/MessageOverlay.tsx +5 -3
  259. package/src/components/Thread/components/ThreadFooterComponent.tsx +2 -1
  260. package/src/contexts/channelContext/ChannelContext.tsx +5 -0
  261. package/src/contexts/messageInputContext/MessageInputContext.tsx +81 -69
  262. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
  263. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
  264. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
  265. package/src/contexts/messagesContext/MessagesContext.tsx +2 -2
  266. package/src/contexts/themeContext/utils/theme.ts +2 -7
  267. package/src/hooks/index.ts +1 -0
  268. package/src/hooks/useViewport.ts +41 -0
  269. package/src/i18n/en.json +6 -1
  270. package/src/i18n/es.json +77 -0
  271. package/src/i18n/fr.json +65 -60
  272. package/src/i18n/he.json +6 -1
  273. package/src/i18n/hi.json +65 -60
  274. package/src/i18n/it.json +65 -60
  275. package/src/i18n/ja.json +6 -1
  276. package/src/i18n/ko.json +6 -1
  277. package/src/i18n/nl.json +65 -60
  278. package/src/i18n/ru.json +65 -60
  279. package/src/i18n/tr.json +65 -60
  280. package/src/native.ts +5 -1
  281. package/src/types/types.ts +29 -10
  282. package/src/utils/Streami18n.ts +13 -6
  283. package/src/utils/compressImage.ts +32 -0
  284. package/src/utils/utils.ts +0 -13
  285. package/src/version.json +1 -1
@@ -1,71 +1,76 @@
1
1
  {
2
- "1 Reply": "1 Ответ",
3
- "1 Thread Reply": "1 тема Ответить",
4
- "Allow access to your Gallery": "Разрешить доступ к вашей галерее",
2
+ "1 Reply": "",
3
+ "1 Thread Reply": "",
4
+ "Allow access to your Gallery": "",
5
+ "Allow camera access in device settings": "",
5
6
  "Also send to channel": "Также отправить на канал",
6
- "Are you sure you want to permanently delete this message?": "Вы действительно хотите удалить это сообщение без возможности восстановления?",
7
- "Block User": "Заблокировать пользователя",
8
- "Cancel": "Отмена",
9
- "Cannot Flag Message": "Невозможно пожаловаться на сообщение",
10
- "Copy Message": "Копировать сообщение",
11
- "Delete": "удалять",
12
- "Delete Message": "Удалить сообщение",
13
- "Do you want to send a copy of this message to a moderator for further investigation?": "Вы хотите отправить копию этого сообщения модератору для дальнейшего изучения?",
14
- "Edit Message": "Редактировать сообщение",
15
- "Editing Message": "Редактирование сообщения",
7
+ "Are you sure you want to permanently delete this message?": "",
8
+ "Block User": "",
9
+ "Cancel": "",
10
+ "Cannot Flag Message": "",
11
+ "Copy Message": "",
12
+ "Delete": "",
13
+ "Delete Message": "",
14
+ "Device camera is used to take photos or videos.": "",
15
+ "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
+ "Edit Message": "",
17
+ "Editing Message": "",
16
18
  "Emoji matching": "Соответствие эмодзи",
17
- "Empty message...": "Пустое сообщение...",
18
- "Error loading": "Ошибка при загрузке",
19
- "Error loading channel list...": "Ошибка загрузки списка каналов...",
20
- "Error loading messages for this channel...": "Ошибка загрузки сообщений для этого канала...",
21
- "Error while loading, please reload/refresh": "Ошибка загрузки, пожалуйста перезагрузите или обновите",
22
- "File type not supported": "Тип файла не поддерживается",
23
- "Flag": "Пометить",
24
- "Flag Message": "Пометить сообщение",
25
- "Flag action failed either due to a network issue or the message is already flagged": "Не удалось отправить жалобу. Возможные причины: проблема с подключением к интернету или ваша жалоба уже была принята.",
19
+ "Empty message...": "",
20
+ "Error loading": "",
21
+ "Error loading channel list...": "",
22
+ "Error loading messages for this channel...": "",
23
+ "Error while loading, please reload/refresh": "",
24
+ "File type not supported": "",
25
+ "Flag": "",
26
+ "Flag Message": "",
27
+ "Flag action failed either due to a network issue or the message is already flagged": "",
28
+ "How about sending your first message to a friend?": "",
26
29
  "Instant Commands": "Мгновенные Команды",
27
- "Links are disabled": "Ссылки отключены",
28
- "Loading channels...": "Загружаю каналы...",
29
- "Loading messages...": "Загружаю сообщения...",
30
- "Loading...": "Загружаю...",
31
- "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Достигнут предел максимального размера файла для загрузки. Загрузите файл размером менее {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} МБ.",
32
- "Message Reactions": "Сообщения Реакции",
33
- "Message deleted": "Сообщение удалено",
34
- "Message flagged": "Сообщение отмечено",
35
- "Mute User": "Отключить пользователя",
36
- "Not supported": "не поддерживается",
37
- "Nothing yet...": "Пока ничего нет...",
38
- "Ok": "",
30
+ "Let's start chatting!": "",
31
+ "Links are disabled": "",
32
+ "Loading channels...": "",
33
+ "Loading messages...": "",
34
+ "Loading...": "",
35
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
+ "Message Reactions": "",
37
+ "Message deleted": "",
38
+ "Message flagged": "",
39
+ "Mute User": "",
40
+ "Not supported": "",
41
+ "Nothing yet...": "",
42
+ "Ok": "",
39
43
  "Only visible to you": "Видно только вам",
44
+ "Open Settings": "",
40
45
  "Photo": "Фото",
41
- "Photos and Videos": "Фото и видео",
42
- "Pin to Conversation": "Закрепить к беседе",
43
- "Pinned by": "Закреплено пользователем",
44
- "Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
45
- "Please select a channel first": "Пожалуйста, сначала выберите канал",
46
- "Reconnecting...": "Переподключение...",
47
- "Reply": "Ответить",
48
- "Reply to Message": "Ответить на сообщение",
49
- "Resend": "Отправить",
50
- "Search GIFs": "Поиск GIF",
51
- "Select More Photos": "Выбрать больше фотографий",
52
- "Send a message": "Отправить сообщение",
53
- "Sending links is not allowed in this conversation": "Отправка ссылок недоступна в этом чате",
54
- "Slow mode ON": "Медленный режим включен",
55
- "The message has been reported to a moderator.": "Сообщение отправлено модератору.",
56
- "Thread Reply": "Тема Ответить",
57
- "Unblock User": "Разблокировать пользователя",
58
- "Unknown User": "Неизвестный пользователь",
59
- "Unmute User": "Включить микрофон",
60
- "Unpin from Conversation": "Открепить от беседы",
46
+ "Photos and Videos": "",
47
+ "Pin to Conversation": "",
48
+ "Pinned by": "",
49
+ "Please enable access to your photos and videos so you can share them.": "",
50
+ "Please select a channel first": "",
51
+ "Reconnecting...": "",
52
+ "Reply": "",
53
+ "Reply to Message": "",
54
+ "Resend": "",
55
+ "Search GIFs": "",
56
+ "Select More Photos": "",
57
+ "Send a message": "",
58
+ "Sending links is not allowed in this conversation": "",
59
+ "Slow mode ON": "",
60
+ "The message has been reported to a moderator.": "",
61
+ "Thread Reply": "",
62
+ "Unblock User": "",
63
+ "Unknown User": "",
64
+ "Unmute User": "",
65
+ "Unpin from Conversation": "",
61
66
  "Unread Messages": "Непрочитанные Сообщения",
62
67
  "Video": "видео",
63
- "You": "Вы",
64
- "You can't send messages in this channel": "Вы не можете отправлять сообщения в этот канал",
68
+ "You": "",
69
+ "You can't send messages in this channel": "",
65
70
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
66
- "{{ index }} of {{ photoLength }}": "{{ index }} из {{ photoLength }}",
67
- "{{ replyCount }} Replies": "{{ replyCount }} Ответов",
68
- "{{ replyCount }} Thread Replies": "{{replyCount}} Ответы в темах",
71
+ "{{ index }} of {{ photoLength }}": "",
72
+ "{{ replyCount }} Replies": "",
73
+ "{{ replyCount }} Thread Replies": "",
69
74
  "{{ user }} is typing": "{{ user }} пишет",
70
- "🏙 Attachment...": "🏙 Вложение..."
75
+ "🏙 Attachment...": ""
71
76
  }
@@ -1,71 +1,76 @@
1
1
  {
2
- "1 Reply": "1 Cevap",
3
- "1 Thread Reply": "1 Konu Yanıtı",
4
- "Allow access to your Gallery": "Galerinize erişime izin verin",
2
+ "1 Reply": "",
3
+ "1 Thread Reply": "",
4
+ "Allow access to your Gallery": "",
5
+ "Allow camera access in device settings": "",
5
6
  "Also send to channel": "Kanala da gönder",
6
- "Are you sure you want to permanently delete this message?": "Bu mesajı kalıcı olarak silmek istediğinizden emin misiniz?",
7
- "Block User": "Kullanıcıyı engelle",
8
- "Cancel": "İptal",
9
- "Cannot Flag Message": "Raporlama Başarısız",
10
- "Copy Message": "Mesajı Kopyala",
11
- "Delete": "Sil",
12
- "Delete Message": "Mesajı Sil",
13
- "Do you want to send a copy of this message to a moderator for further investigation?": "Detaylı inceleme için bu mesajın kopyasını moderatöre göndermek istiyor musunuz?",
14
- "Edit Message": "Mesajı Düzenle",
15
- "Editing Message": "Mesaj Düzenleniyor",
7
+ "Are you sure you want to permanently delete this message?": "",
8
+ "Block User": "",
9
+ "Cancel": "",
10
+ "Cannot Flag Message": "",
11
+ "Copy Message": "",
12
+ "Delete": "",
13
+ "Delete Message": "",
14
+ "Device camera is used to take photos or videos.": "",
15
+ "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
+ "Edit Message": "",
17
+ "Editing Message": "",
16
18
  "Emoji matching": "Emoji eşleştirme",
17
- "Empty message...": "Boş mesaj...",
18
- "Error loading": "Yükleme hatası",
19
- "Error loading channel list...": "Kanal listesi yüklenirken hata oluştu...",
20
- "Error loading messages for this channel...": "Bu kanal için mesajlar yüklenirken hata oluştu...",
21
- "Error while loading, please reload/refresh": "Yüklenirken hata oluştu, lütfen tekrar deneyiniz",
22
- "File type not supported": "Dosya türü desteklenmiyor",
23
- "Flag": "Raporla",
24
- "Flag Message": "Mesajı Raporla",
25
- "Flag action failed either due to a network issue or the message is already flagged": "Mesajın daha önce raporlanmış olması veya bir ağ bağlantısı sorunu nedeniyle raporlama işlemi başarısız oldu.",
19
+ "Empty message...": "",
20
+ "Error loading": "",
21
+ "Error loading channel list...": "",
22
+ "Error loading messages for this channel...": "",
23
+ "Error while loading, please reload/refresh": "",
24
+ "File type not supported": "",
25
+ "Flag": "",
26
+ "Flag Message": "",
27
+ "Flag action failed either due to a network issue or the message is already flagged": "",
28
+ "How about sending your first message to a friend?": "",
26
29
  "Instant Commands": "Anlık Komutlar",
27
- "Links are disabled": "Bağlantılar devre dışı",
28
- "Loading channels...": "Kanallar yükleniyor...",
29
- "Loading messages...": "Mesajlar yükleniyor...",
30
- "Loading...": "Yükleniyor...",
31
- "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Maksimum dosya boyutu yükleme sınırına ulaşıldı. Lütfen {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB'ın altında bir dosya yükleyin.",
32
- "Message Reactions": "Mesaj Tepkileri",
33
- "Message deleted": "Mesaj silindi",
34
- "Message flagged": "Mesaj işaretlendi",
35
- "Mute User": "Kullanıcıyı sessize al",
36
- "Not supported": "Desteklenmiyor",
37
- "Nothing yet...": "Henüz değil...",
38
- "Ok": "Tamam",
30
+ "Let's start chatting!": "",
31
+ "Links are disabled": "",
32
+ "Loading channels...": "",
33
+ "Loading messages...": "",
34
+ "Loading...": "",
35
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
+ "Message Reactions": "",
37
+ "Message deleted": "",
38
+ "Message flagged": "",
39
+ "Mute User": "",
40
+ "Not supported": "",
41
+ "Nothing yet...": "",
42
+ "Ok": "",
39
43
  "Only visible to you": "Sadece siz görebilirsiniz",
44
+ "Open Settings": "",
40
45
  "Photo": "Fotoğraf",
41
- "Photos and Videos": "Fotoğraflar ve Videolar",
42
- "Pin to Conversation": "Konuşmaya sabitle",
43
- "Pinned by": "Tarafından sabitlendi",
44
- "Please enable access to your photos and videos so you can share them.": "Paylaşım yapabilmek için lutfen fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
45
- "Please select a channel first": "Lütfen önce bir kanal seçiniz",
46
- "Reconnecting...": "Yeniden Bağlanılıyor...",
47
- "Reply": "Yanıtla",
48
- "Reply to Message": "Mesajı Yanıtla",
49
- "Resend": "Yeniden gönder",
50
- "Search GIFs": "GIF Ara",
51
- "Select More Photos": "Daha Fazla Fotoğraf Seçin",
52
- "Send a message": "Mesaj gönder",
53
- "Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
54
- "Slow mode ON": "Yavaş Mod Açık",
55
- "The message has been reported to a moderator.": "Mesaj moderatöre bildirildi.",
56
- "Thread Reply": "Konu Yanıtı",
57
- "Unblock User": "Kullanıcının engelini kaldır",
58
- "Unknown User": "Bilinmeyen kullanıcı",
59
- "Unmute User": "Kullanıcının sesini aç",
60
- "Unpin from Conversation": "Sabitlemeyi kaldır",
46
+ "Photos and Videos": "",
47
+ "Pin to Conversation": "",
48
+ "Pinned by": "",
49
+ "Please enable access to your photos and videos so you can share them.": "",
50
+ "Please select a channel first": "",
51
+ "Reconnecting...": "",
52
+ "Reply": "",
53
+ "Reply to Message": "",
54
+ "Resend": "",
55
+ "Search GIFs": "",
56
+ "Select More Photos": "",
57
+ "Send a message": "",
58
+ "Sending links is not allowed in this conversation": "",
59
+ "Slow mode ON": "",
60
+ "The message has been reported to a moderator.": "",
61
+ "Thread Reply": "",
62
+ "Unblock User": "",
63
+ "Unknown User": "",
64
+ "Unmute User": "",
65
+ "Unpin from Conversation": "",
61
66
  "Unread Messages": "Okunmamış Mesajlar",
62
67
  "Video": "Video",
63
- "You": "Sen",
64
- "You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
68
+ "You": "",
69
+ "You can't send messages in this channel": "",
65
70
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
66
- "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
67
- "{{ replyCount }} Replies": "{{ replyCount }} Cevap",
68
- "{{ replyCount }} Thread Replies": "{{responseCount}} Konu Cevapı",
71
+ "{{ index }} of {{ photoLength }}": "",
72
+ "{{ replyCount }} Replies": "",
73
+ "{{ replyCount }} Thread Replies": "",
69
74
  "{{ user }} is typing": "{{ user }} yazıyor",
70
- "🏙 Attachment...": "🏙 Ek..."
75
+ "🏙 Attachment...": ""
71
76
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","fail","Error","compressImage","exports","deleteFile","getLocalAssetUri","oniOS14GalleryLibrarySelectionChange","iOS14RefreshGallerySelection","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"sources":["native.ts"],"sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string | undefined> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype OniOS14LibrarySelectionChange = (callback: () => void) => { unsubscribe: () => void };\nexport let oniOS14GalleryLibrarySelectionChange: OniOS14LibrarySelectionChange = fail;\n\ntype iOS14RefreshGallerySelection = () => Promise<void>;\nexport let iOS14RefreshGallerySelection: iOS14RefreshGallerySelection = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n iOSLimited: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n assets?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n })\n | { cancelled: true };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n iOS14RefreshGallerySelection: iOS14RefreshGallerySelection;\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n oniOS14GalleryLibrarySelectionChange?: OniOS14LibrarySelectionChange;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.iOS14RefreshGallerySelection) {\n iOS14RefreshGallerySelection = handlers.iOS14RefreshGallerySelection;\n }\n\n if (handlers.oniOS14GalleryLibrarySelectionChange) {\n oniOS14GalleryLibrarySelectionChange = handlers.oniOS14GalleryLibrarySelectionChange;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","fail","Error","compressImage","exports","deleteFile","getLocalAssetUri","oniOS14GalleryLibrarySelectionChange","iOS14RefreshGallerySelection","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"sources":["native.ts"],"sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string | undefined> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype OniOS14LibrarySelectionChange = (callback: () => void) => { unsubscribe: () => void };\nexport let oniOS14GalleryLibrarySelectionChange: OniOS14LibrarySelectionChange = fail;\n\ntype iOS14RefreshGallerySelection = () => Promise<void>;\nexport let iOS14RefreshGallerySelection: iOS14RefreshGallerySelection = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n iOSLimited: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n assets?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n askToOpenSettings?: boolean;\n })\n | {\n cancelled: true;\n askToOpenSettings?: boolean;\n };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n iOS14RefreshGallerySelection: iOS14RefreshGallerySelection;\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n oniOS14GalleryLibrarySelectionChange?: OniOS14LibrarySelectionChange;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.iOS14RefreshGallerySelection) {\n iOS14RefreshGallerySelection = handlers.iOS14RefreshGallerySelection;\n }\n\n if (handlers.oniOS14GalleryLibrarySelectionChange) {\n oniOS14GalleryLibrarySelectionChange = handlers.oniOS14GalleryLibrarySelectionChange;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ExtendableGenerics, LiteralStringForUnion } from 'stream-chat';\n\nexport type Asset = {\n duration: number | null;\n filename: string;\n height: number;\n source: 'camera' | 'picker';\n type: string;\n uri: string;\n width: number;\n fileSize?: number;\n id?: string;\n size?: number | string;\n};\n\nexport type FileAssetType = {\n name: string;\n mimeType?: string;\n size?: number | string;\n // The uri should be of type `string`. But is `string|undefined` because the same type is used for the response from Stream's Attachment. This shall be fixed.\n uri?: string;\n};\n\nexport type File = FileAssetType & {\n duration?: string | null;\n id?: string;\n};\n\nexport type DefaultAttachmentType = UnknownType & {\n file_size?: number | string;\n mime_type?: string;\n originalFile?: File;\n};\n\ninterface DefaultUserType extends UnknownType {\n image?: string;\n}\n\ninterface DefaultChannelType extends UnknownType {\n [key: string]: unknown;\n\n image?: string;\n}\n\nexport interface DefaultStreamChatGenerics extends ExtendableGenerics {\n attachmentType: DefaultAttachmentType;\n channelType: DefaultChannelType;\n commandType: LiteralStringForUnion;\n eventType: UnknownType;\n messageType: UnknownType;\n reactionType: UnknownType;\n userType: DefaultUserType;\n}\n\nexport type UnknownType = Record<string, unknown>;\n\nexport type ValueOf<T> = T[keyof T];\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ExtendableGenerics, LiteralStringForUnion } from 'stream-chat';\n\nimport type { FileStateValue } from '../utils/utils';\n\nexport type Asset = {\n duration: number;\n height: number;\n name: string;\n source: 'camera' | 'picker';\n type: string;\n uri: string;\n width: number;\n id?: string;\n size?: number;\n};\n\nexport type File = {\n name: string;\n duration?: number;\n id?: string;\n mimeType?: string;\n size?: number;\n // The uri should be of type `string`. But is `string|undefined` because the same type is used for the response from Stream's Attachment. This shall be fixed.\n uri?: string;\n};\n\nexport type FileUpload = {\n file: File;\n id: string;\n state: FileStateValue;\n duration?: number;\n paused?: boolean;\n progress?: number;\n thumb_url?: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset>;\n id: string;\n state: FileStateValue;\n height?: number;\n url?: string;\n width?: number;\n};\n\nexport type DefaultAttachmentType = UnknownType & {\n file_size?: number;\n mime_type?: string;\n originalFile?: File;\n originalImage?: Partial<Asset>;\n};\n\ninterface DefaultUserType extends UnknownType {\n image?: string;\n}\n\ninterface DefaultChannelType extends UnknownType {\n [key: string]: unknown;\n\n image?: string;\n}\n\nexport interface DefaultStreamChatGenerics extends ExtendableGenerics {\n attachmentType: DefaultAttachmentType;\n channelType: DefaultChannelType;\n commandType: LiteralStringForUnion;\n eventType: UnknownType;\n messageType: UnknownType;\n reactionType: UnknownType;\n userType: DefaultUserType;\n}\n\nexport type UnknownType = Record<string, unknown>;\n\nexport type ValueOf<T> = T[keyof T];\n"],"mappings":""}
@@ -17,6 +17,7 @@ var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime"))
17
17
  var _updateLocale = _interopRequireDefault(require("dayjs/plugin/updateLocale"));
18
18
  var _i18next = _interopRequireDefault(require("i18next"));
19
19
  var _en2 = _interopRequireDefault(require("../i18n/en.json"));
20
+ var _es2 = _interopRequireDefault(require("../i18n/es.json"));
20
21
  var _fr2 = _interopRequireDefault(require("../i18n/fr.json"));
21
22
  var _he2 = _interopRequireDefault(require("../i18n/he.json"));
22
23
  var _hi2 = _interopRequireDefault(require("../i18n/hi.json"));
@@ -26,7 +27,9 @@ var _ko2 = _interopRequireDefault(require("../i18n/ko.json"));
26
27
  var _nl2 = _interopRequireDefault(require("../i18n/nl.json"));
27
28
  var _ru2 = _interopRequireDefault(require("../i18n/ru.json"));
28
29
  var _tr2 = _interopRequireDefault(require("../i18n/tr.json"));
30
+ require("dayjs/locale/es");
29
31
  require("dayjs/locale/fr");
32
+ require("dayjs/locale/he");
30
33
  require("dayjs/locale/hi");
31
34
  require("dayjs/locale/it");
32
35
  require("dayjs/locale/ja");
@@ -34,7 +37,6 @@ require("dayjs/locale/ko");
34
37
  require("dayjs/locale/nl");
35
38
  require("dayjs/locale/ru");
36
39
  require("dayjs/locale/tr");
37
- require("dayjs/locale/he");
38
40
  require("dayjs/locale/en");
39
41
  var defaultNS = 'translation';
40
42
  var defaultLng = 'en';
@@ -159,6 +161,7 @@ var Streami18n = function () {
159
161
  };
160
162
  this.translations = {
161
163
  en: (0, _defineProperty2["default"])({}, defaultNS, _en2["default"]),
164
+ es: (0, _defineProperty2["default"])({}, defaultNS, _es2["default"]),
162
165
  fr: (0, _defineProperty2["default"])({}, defaultNS, _fr2["default"]),
163
166
  he: (0, _defineProperty2["default"])({}, defaultNS, _he2["default"]),
164
167
  hi: (0, _defineProperty2["default"])({}, defaultNS, _hi2["default"]),
@@ -1 +1 @@
1
- {"version":3,"names":["_dayjs","_interopRequireDefault","require","_calendar","_localeData","_localizedFormat","_relativeTime","_updateLocale","_i18next","_en2","_fr2","_he2","_hi2","_it2","_ja2","_ko2","_nl2","_ru2","_tr2","defaultNS","defaultLng","Dayjs","extend","updateLocale","format","L","LL","LLL","LLLL","LT","LTS","calendar","lastDay","lastWeek","nextDay","nextWeek","sameDay","sameElse","meridiem","hour","meridiemHour","meridiemParse","en_locale","formats","months","relativeTime","weekdays","isDayJs","dateTimeParser","undefined","defaultStreami18nOptions","DateTimeParser","dayjsLocaleConfigForLanguage","debug","disableDateTimeTranslations","language","logger","msg","console","warn","Streami18n","_this","options","arguments","length","i18nextConfig","_classCallCheck2","i18nInstance","i18n","createInstance","initialized","onLanguageChangeListeners","onTFunctionOverrideListeners","t","key","translations","en","_defineProperty2","enTranslations","fr","frTranslations","he","heTranslations","hi","hiTranslations","it","itTranslations","ja","jaTranslations","ko","koTranslations","nl","nlTranslations","ru","ruTranslations","tr","trTranslations","dayjsLocales","localeExists","isCustomDateTimeParser","Object","keys","Ls","indexOf","validateCurrentLanguage","availableLanguages","currentLanguage","getAvailableLanguages","geti18Instance","getTranslations","finalOptions","_extends2","LocalizedFormat","localeData","error","Error","JSON","stringify","translationsForLanguage","fallbackLng","interpolation","escapeValue","keySeparator","lng","nsSeparator","parseMissingKeyHandler","addOrUpdateLocale","tDateTimeParser","timestamp","locale","_createClass2","value","_init","_asyncToGenerator2","_regenerator","mark","_callee","_this2","wrap","_callee$","_context","prev","next","init","resources","sent","queuedTFunctionOverride","forEach","listener","t0","waitForInitializing","stop","apply","_getTranslators","_callee2","initPromise","_callee2$","_context2","abrupt","getTranslators","registerTranslation","translation","customDayjsLocale","addResources","config","name","_setLanguage","_callee3","_t","_callee3$","_context3","changeLanguage","setLanguage","_x","addOnLanguageChangeListener","callback","_this3","push","unsubscribe","filter","addOnTFunctionOverrideListener","_this4","overrideTFunction","tFunction","exports"],"sources":["Streami18n.ts"],"sourcesContent":["import Dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport i18n, { FallbackLng, TFunction } from 'i18next';\n\nimport type moment from 'moment';\n\nimport type { TDateTimeParser } from '../contexts/translationContext/TranslationContext';\nimport enTranslations from '../i18n/en.json';\nimport frTranslations from '../i18n/fr.json';\nimport heTranslations from '../i18n/he.json';\nimport hiTranslations from '../i18n/hi.json';\nimport itTranslations from '../i18n/it.json';\nimport jaTranslations from '../i18n/ja.json';\nimport koTranslations from '../i18n/ko.json';\nimport nlTranslations from '../i18n/nl.json';\nimport ruTranslations from '../i18n/ru.json';\nimport trTranslations from '../i18n/tr.json';\n\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/hi';\nimport 'dayjs/locale/it';\nimport 'dayjs/locale/ja';\nimport 'dayjs/locale/ko';\nimport 'dayjs/locale/nl';\nimport 'dayjs/locale/ru';\nimport 'dayjs/locale/tr';\nimport 'dayjs/locale/he';\n\n/**\n * These locale imports also set these locales globally.\n * So as a last step we import the english locale to make\n * sure we don't mess up languages in other places in the app.\n */\nimport 'dayjs/locale/en';\n\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\nconst defaultNS = 'translation';\nconst defaultLng = 'en';\n\nDayjs.extend(updateLocale);\n\nDayjs.updateLocale('en', {\n format: {\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n LT: 'hh:mmA',\n LTS: 'HH:mm:ss',\n },\n});\n\nDayjs.updateLocale('nl', {\n calendar: {\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n sameDay: '[vandaag om] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('it', {\n calendar: {\n lastDay: '[Ieri alle] LT',\n lastWeek: '[lo scorso] dddd [alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n sameDay: '[Oggi alle] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('hi', {\n calendar: {\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n sameDay: '[आज] LT',\n sameElse: 'L',\n },\n\n /**\n * Hindi notation for meridiems are quite fuzzy in practice. While there exists\n * a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n */\n meridiem(hour: number) {\n if (hour < 4) return 'रात';\n if (hour < 10) return 'सुबह';\n if (hour < 17) return 'दोपहर';\n if (hour < 20) return 'शाम';\n return 'रात';\n },\n\n meridiemHour(hour: number, meridiem: string) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') return hour < 4 ? hour : hour + 12;\n if (meridiem === 'सुबह') return hour;\n if (meridiem === 'दोपहर') return hour >= 10 ? hour : hour + 12;\n if (meridiem === 'शाम') return hour + 12;\n return hour;\n },\n\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n});\n\nDayjs.updateLocale('fr', {\n calendar: {\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n sameDay: '[Aujourd’hui à] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('tr', {\n calendar: {\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n sameDay: '[bugün saat] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('ru', {\n calendar: {\n lastDay: '[Вчера, в] LT',\n nextDay: '[Завтра, в] LT',\n sameDay: '[Сегодня, в] LT',\n },\n});\n\nconst en_locale = {\n formats: {},\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n relativeTime: {},\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n};\n\n// Type guards to check DayJs\nconst isDayJs = (dateTimeParser: typeof Dayjs | typeof moment): dateTimeParser is typeof Dayjs =>\n (dateTimeParser as typeof Dayjs).extend !== undefined;\n\ntype Options = {\n DateTimeParser?: typeof Dayjs | typeof moment;\n dayjsLocaleConfigForLanguage?: Partial<ILocale>;\n debug?: boolean;\n disableDateTimeTranslations?: boolean;\n language?: string;\n logger?: (msg?: string) => void;\n translationsForLanguage?: Partial<typeof enTranslations>;\n};\n\ntype I18NextConfig = {\n debug: boolean;\n fallbackLng: false | FallbackLng;\n interpolation: { escapeValue: boolean };\n keySeparator: false | string;\n lng: string;\n nsSeparator: false | string;\n parseMissingKeyHandler: (key: string) => string;\n};\n\n/**\n * Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.\n * Instance of this class should be provided to Chat component to handle translations.\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. Russian (ru)\n * 4. Turkish (tr)\n * 5. French (fr)\n * 6. Italian (it)\n * 7. Hindi (hi)\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n({ language 'nl' });\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * translationsForLanguage: {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * }\n * });\n *\n * If you would like to register additional languages, use registerTranslation. You can add as many languages as you want:\n *\n * i18n.registerTranslation('zh', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language as well.\n *\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation('mr', {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * ## Datetime translations\n *\n * Stream react chat components uses [dayjs](https://day.js.org/en/) internally by default to format datetime stamp.\n * e.g., in ChannelPreview, MessageContent components.\n * Dayjs has locale support as well - https://day.js.org/docs/en/i18n/i18n\n * Dayjs is a lightweight alternative to Momentjs with the same modern API.\n *\n * Dayjs provides locale config for plenty of languages, you can check the whole list of locale configs at following url\n * https://github.com/iamkun/dayjs/tree/dev/src/locale\n *\n * You can either provide the dayjs locale config while registering\n * language with Streami18n (either via constructor or registerTranslation()) or you can provide your own Dayjs or Moment instance\n * to Streami18n constructor, which will be then used internally (using the language locale) in components.\n *\n * 1. Via language registration\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * dayjsLocaleConfigForLanguage: {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * });\n * ```\n *\n * Similarly, you can add locale config for moment while registering translation via `registerTranslation` function.\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation(\n * 'mr',\n * {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * },\n * {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * );\n *```\n * 2. Provide your own Moment object\n *\n * ```js\n * import 'moment/locale/nl';\n * import 'moment/locale/it';\n * // or if you want to include all locales\n * import 'moment/min/locales';\n *\n * import Moment from moment\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Moment\n * })\n * ```\n *\n * 3. Provide your own Dayjs object\n *\n * ```js\n * import Dayjs from 'dayjs'\n *\n * import 'dayjs/locale/nl';\n * import 'dayjs/locale/it';\n * // or if you want to include all locales\n * import 'dayjs/min/locales';\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Dayjs\n * })\n * ```\n * If you would like to stick with english language for date-times in Stream components, you can set `disableDateTimeTranslations` to true.\n *\n */\nconst defaultStreami18nOptions = {\n DateTimeParser: Dayjs,\n dayjsLocaleConfigForLanguage: null,\n debug: false,\n disableDateTimeTranslations: false,\n language: 'en',\n logger: (msg?: string) => console.warn(msg),\n};\n\nexport class Streami18n {\n i18nInstance = i18n.createInstance();\n Dayjs = null;\n initialized = false;\n /* this promise is used to prevent simultaneous calls to init (happens in Overlay and Chat) */\n private waitForInitializing: Promise<void> | undefined;\n /* This is the callback to be fired when the language is changed */\n private onLanguageChangeListeners: ((t: TFunction) => void)[] = [];\n /* This is the callback to be fired when the tFunc is overridden\n * This is useful when a different i18n library needs to be used\n * The SDK uses this in useStreami18n hook to set the tFunc in the context\n */\n private onTFunctionOverrideListeners: ((t: TFunction) => void)[] = [];\n /* We need to queue the overridden tFunction\n * if the tFunction is overridden before the SDK has initialized the translations\n */\n private queuedTFunctionOverride: TFunction | undefined;\n\n t: TFunction = (key: string) => key;\n tDateTimeParser: TDateTimeParser;\n\n translations: {\n [key: string]: {\n [key: string]: Partial<typeof enTranslations> | DefaultStreamChatGenerics;\n };\n } = {\n en: { [defaultNS]: enTranslations },\n fr: { [defaultNS]: frTranslations },\n he: { [defaultNS]: heTranslations },\n hi: { [defaultNS]: hiTranslations },\n it: { [defaultNS]: itTranslations },\n ja: { [defaultNS]: jaTranslations },\n ko: { [defaultNS]: koTranslations },\n nl: { [defaultNS]: nlTranslations },\n ru: { [defaultNS]: ruTranslations },\n tr: { [defaultNS]: trTranslations },\n };\n\n /**\n * dayjs.defineLanguage('nl') also changes the global locale. We don't want to do that\n * when a user calls the registerTranslation() function. So instead we will store the\n * locale configs given to the registerTranslation() function in `dayjsLocales` object,\n * and register the required locale with moment when setLanguage is called.\n */\n dayjsLocales: { [key: string]: Partial<ILocale> } = {};\n\n /**\n * Initialize properties used in constructor\n */\n logger: (msg?: string) => void;\n currentLanguage: string;\n DateTimeParser: typeof Dayjs | typeof moment;\n isCustomDateTimeParser: boolean;\n i18nextConfig: I18NextConfig;\n\n /**\n * Constructor accepts following options:\n * - language (String) default: 'en'\n * Language code e.g., en, tr\n *\n * - translationsForLanguage (object)\n * Translations object. Please check src/i18n/en.json for example.\n *\n * - disableDateTimeTranslations (boolean) default: false\n * Disable translations for date-times\n *\n * - debug (boolean) default: false\n * Enable debug mode in internal i18n class\n *\n * - logger (function) default: () => {}\n * Logger function to log warnings/errors from this class\n *\n * - dayjsLocaleConfigForLanguage (object) default: 'enConfig'\n * [Config object](https://momentjs.com/docs/#/i18n/changing-locale/) for internal moment object,\n * corresponding to language (param)\n *\n * - DateTimeParser (function) Moment or Dayjs instance/function.\n * Make sure to load all the required locales in this Moment or Dayjs instance that you will be provide to Streami18n\n *\n * @param {*} options\n */\n constructor(options: Options = {}, i18nextConfig: Partial<I18NextConfig> = {}) {\n const finalOptions = {\n ...defaultStreami18nOptions,\n ...options,\n };\n\n // Prepare the i18next configuration.\n this.logger = finalOptions.logger;\n\n this.currentLanguage = finalOptions.language;\n this.DateTimeParser = finalOptions.DateTimeParser;\n\n try {\n /**\n * This is a shallow check to see if the given parser is an instance of Dayjs.\n * For some reason Dayjs.isDayjs(this.DateTimeParser()) doesn't work.\n */\n if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {\n this.DateTimeParser.extend(LocalizedFormat);\n this.DateTimeParser.extend(calendar);\n this.DateTimeParser.extend(localeData);\n this.DateTimeParser.extend(relativeTime);\n }\n } catch (error) {\n throw new Error(\n `Streami18n: Looks like you wanted to provide a Dayjs instance but something went wrong while adding plugins ${JSON.stringify(\n error,\n )}`,\n );\n }\n\n this.isCustomDateTimeParser = !!options.DateTimeParser;\n const translationsForLanguage = finalOptions.translationsForLanguage;\n\n if (translationsForLanguage) {\n this.translations[this.currentLanguage] = {\n [defaultNS]:\n this.translations[this.currentLanguage] &&\n this.translations[this.currentLanguage][defaultNS]\n ? {\n ...this.translations[this.currentLanguage][defaultNS],\n ...translationsForLanguage,\n }\n : translationsForLanguage,\n };\n }\n\n // If translations don't exist for given language, then set it as empty object.\n if (!this.translations[this.currentLanguage]) {\n this.translations[this.currentLanguage] = {\n [defaultNS]: {},\n };\n }\n\n this.i18nextConfig = {\n debug: finalOptions.debug,\n fallbackLng: false,\n interpolation: { escapeValue: false },\n keySeparator: false,\n lng: this.currentLanguage,\n nsSeparator: false,\n\n parseMissingKeyHandler: (key: string) => {\n this.logger(`Streami18n: Missing translation for key: ${key}`);\n\n return key;\n },\n ...i18nextConfig,\n };\n\n this.validateCurrentLanguage();\n\n const dayjsLocaleConfigForLanguage = finalOptions.dayjsLocaleConfigForLanguage;\n\n if (dayjsLocaleConfigForLanguage) {\n this.addOrUpdateLocale(this.currentLanguage, {\n ...dayjsLocaleConfigForLanguage,\n });\n } else if (!this.localeExists(this.currentLanguage)) {\n this.logger(\n `Streami18n: Streami18n(...) - Locale config for ${this.currentLanguage} does not exist in momentjs.` +\n `Please import the locale file using \"import 'moment/locale/${this.currentLanguage}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n this.tDateTimeParser = (timestamp) => {\n if (finalOptions.disableDateTimeTranslations || !this.localeExists(this.currentLanguage)) {\n /**\n * TS needs to know which is being called to accept the chain call\n */\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n }\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n };\n }\n\n /**\n * Initializes the i18next instance with configuration (which enables natural language as default keys)\n */\n private async init() {\n this.validateCurrentLanguage();\n\n try {\n this.t = await this.i18nInstance.init({\n ...this.i18nextConfig,\n lng: this.currentLanguage,\n resources: this.translations,\n });\n if (this.queuedTFunctionOverride) {\n // special case where we have a override for tFunc before initialization\n this.t = this.queuedTFunctionOverride;\n this.queuedTFunctionOverride = undefined;\n this.onTFunctionOverrideListeners.forEach((listener) => listener(this.t));\n }\n this.initialized = true;\n } catch (error) {\n this.logger(`Something went wrong with init: ${JSON.stringify(error)}`);\n }\n this.waitForInitializing = undefined;\n }\n\n localeExists = (language: string) => {\n if (this.isCustomDateTimeParser) return true;\n\n return Object.keys(Dayjs.Ls).indexOf(language) > -1;\n };\n\n validateCurrentLanguage = () => {\n const availableLanguages = Object.keys(this.translations);\n if (availableLanguages.indexOf(this.currentLanguage) === -1) {\n this.logger(\n `Streami18n: '${this.currentLanguage}' language is not registered.` +\n ` Please make sure to call streami18n.registerTranslation('${this.currentLanguage}', {...}) or ` +\n `use one the built-in supported languages - ${this.getAvailableLanguages()}`,\n );\n\n this.currentLanguage = defaultLng;\n }\n };\n\n /** Returns an instance of i18next used within this class instance */\n geti18Instance = () => this.i18nInstance;\n\n /** Returns list of available languages. */\n getAvailableLanguages = () => Object.keys(this.translations);\n\n /** Returns all the translation dictionary for all inbuilt-languages */\n getTranslations = () => this.translations;\n\n /**\n * Returns current version translator function.\n */\n async getTranslators() {\n if (!this.initialized) {\n if (this.waitForInitializing) {\n await this.waitForInitializing;\n } else {\n if (this.dayjsLocales[this.currentLanguage]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n const initPromise = this.init();\n this.waitForInitializing = initPromise;\n await initPromise;\n }\n }\n return {\n t: this.t,\n tDateTimeParser: this.tDateTimeParser,\n };\n }\n\n /**\n * Register translation\n */\n registerTranslation(\n language: string,\n translation: Partial<typeof enTranslations> | DefaultStreamChatGenerics,\n customDayjsLocale?: Partial<ILocale>,\n ) {\n if (!translation) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) called without translation`,\n );\n return;\n }\n\n if (!this.translations[language]) {\n this.translations[language] = { [defaultNS]: translation };\n } else {\n this.translations[language][defaultNS] = translation;\n }\n\n if (customDayjsLocale) {\n this.dayjsLocales[language] = { ...customDayjsLocale };\n } else if (!this.localeExists(language)) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) - ` +\n `Locale config for ${language} does not exist in Dayjs.` +\n `Please import the locale file using \"import 'dayjs/locale/${language}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n if (this.initialized) {\n this.i18nInstance.addResources(language, defaultNS, translation);\n }\n }\n\n addOrUpdateLocale(key: string, config: Partial<ILocale>) {\n if (this.localeExists(key)) {\n Dayjs.updateLocale(key, { ...config });\n } else {\n // Merging the custom locale config with en config, so missing keys can default to english.\n Dayjs.locale({ name: key, ...en_locale, ...config }, undefined, true);\n }\n }\n\n /**\n * Changes the language.\n * Note: if you are using overrideTFunction, you will need to call the override again after changing the language.\n */\n async setLanguage(language: string) {\n this.currentLanguage = language;\n\n if (!this.initialized) return;\n\n try {\n const t = await this.i18nInstance.changeLanguage(language);\n if (this.dayjsLocales[language]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n this.t = t;\n this.onLanguageChangeListeners.forEach((listener) => listener(t));\n\n return t;\n } catch (error) {\n this.logger(`Failed to set language: ${JSON.stringify(error)}`);\n return this.t;\n }\n }\n\n addOnLanguageChangeListener(callback: (t: TFunction) => void) {\n this.onLanguageChangeListeners.push(callback);\n return {\n unsubscribe: () => {\n this.onLanguageChangeListeners = this.onLanguageChangeListeners.filter(\n (listener) => listener !== callback,\n );\n },\n };\n }\n\n addOnTFunctionOverrideListener(callback: (t: TFunction) => void) {\n this.onTFunctionOverrideListeners.push(callback);\n return {\n unsubscribe: () => {\n this.onTFunctionOverrideListeners = this.onTFunctionOverrideListeners.filter(\n (listener) => listener !== callback,\n );\n },\n };\n }\n\n overrideTFunction(tFunction: TFunction) {\n if (!this.initialized) {\n this.queuedTFunctionOverride = tFunction;\n } else {\n this.t = tFunction;\n this.onTFunctionOverrideListeners.forEach((listener) => listener(tFunction));\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dayjs","_interopRequireDefault","require","_calendar","_localeData","_localizedFormat","_relativeTime","_updateLocale","_i18next","_en2","_es2","_fr2","_he2","_hi2","_it2","_ja2","_ko2","_nl2","_ru2","_tr2","defaultNS","defaultLng","Dayjs","extend","updateLocale","format","L","LL","LLL","LLLL","LT","LTS","calendar","lastDay","lastWeek","nextDay","nextWeek","sameDay","sameElse","meridiem","hour","meridiemHour","meridiemParse","en_locale","formats","months","relativeTime","weekdays","isDayJs","dateTimeParser","undefined","defaultStreami18nOptions","DateTimeParser","dayjsLocaleConfigForLanguage","debug","disableDateTimeTranslations","language","logger","msg","console","warn","Streami18n","_this","options","arguments","length","i18nextConfig","_classCallCheck2","i18nInstance","i18n","createInstance","initialized","onLanguageChangeListeners","onTFunctionOverrideListeners","t","key","translations","en","_defineProperty2","enTranslations","es","esTranslations","fr","frTranslations","he","heTranslations","hi","hiTranslations","it","itTranslations","ja","jaTranslations","ko","koTranslations","nl","nlTranslations","ru","ruTranslations","tr","trTranslations","dayjsLocales","localeExists","isCustomDateTimeParser","Object","keys","Ls","indexOf","validateCurrentLanguage","availableLanguages","currentLanguage","getAvailableLanguages","geti18Instance","getTranslations","finalOptions","_extends2","LocalizedFormat","localeData","error","Error","JSON","stringify","translationsForLanguage","fallbackLng","interpolation","escapeValue","keySeparator","lng","nsSeparator","parseMissingKeyHandler","addOrUpdateLocale","tDateTimeParser","timestamp","locale","_createClass2","value","_init","_asyncToGenerator2","_regenerator","mark","_callee","_this2","wrap","_callee$","_context","prev","next","init","resources","sent","queuedTFunctionOverride","forEach","listener","t0","waitForInitializing","stop","apply","_getTranslators","_callee2","initPromise","_callee2$","_context2","abrupt","getTranslators","registerTranslation","translation","customDayjsLocale","addResources","config","name","_setLanguage","_callee3","_t","_callee3$","_context3","changeLanguage","setLanguage","_x","addOnLanguageChangeListener","callback","_this3","push","unsubscribe","filter","addOnTFunctionOverrideListener","_this4","overrideTFunction","tFunction","exports"],"sources":["Streami18n.ts"],"sourcesContent":["import Dayjs from 'dayjs';\nimport calendar from 'dayjs/plugin/calendar';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport i18n, { FallbackLng, TFunction } from 'i18next';\n\nimport type moment from 'moment';\n\nimport type { TDateTimeParser } from '../contexts/translationContext/TranslationContext';\nimport enTranslations from '../i18n/en.json';\nimport esTranslations from '../i18n/es.json';\nimport frTranslations from '../i18n/fr.json';\nimport heTranslations from '../i18n/he.json';\nimport hiTranslations from '../i18n/hi.json';\nimport itTranslations from '../i18n/it.json';\nimport jaTranslations from '../i18n/ja.json';\nimport koTranslations from '../i18n/ko.json';\nimport nlTranslations from '../i18n/nl.json';\nimport ruTranslations from '../i18n/ru.json';\nimport trTranslations from '../i18n/tr.json';\n\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/he';\nimport 'dayjs/locale/hi';\nimport 'dayjs/locale/it';\nimport 'dayjs/locale/ja';\nimport 'dayjs/locale/ko';\nimport 'dayjs/locale/nl';\nimport 'dayjs/locale/ru';\nimport 'dayjs/locale/tr';\n\n/**\n * These locale imports also set these locales globally.\n * So as a last step we import the english locale to make\n * sure we don't mess up languages in other places in the app.\n */\nimport 'dayjs/locale/en';\n\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\nconst defaultNS = 'translation';\nconst defaultLng = 'en';\n\nDayjs.extend(updateLocale);\n\nDayjs.updateLocale('en', {\n format: {\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n LT: 'hh:mmA',\n LTS: 'HH:mm:ss',\n },\n});\n\nDayjs.updateLocale('nl', {\n calendar: {\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n sameDay: '[vandaag om] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('it', {\n calendar: {\n lastDay: '[Ieri alle] LT',\n lastWeek: '[lo scorso] dddd [alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n sameDay: '[Oggi alle] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('hi', {\n calendar: {\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n sameDay: '[आज] LT',\n sameElse: 'L',\n },\n\n /**\n * Hindi notation for meridiems are quite fuzzy in practice. While there exists\n * a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n */\n meridiem(hour: number) {\n if (hour < 4) return 'रात';\n if (hour < 10) return 'सुबह';\n if (hour < 17) return 'दोपहर';\n if (hour < 20) return 'शाम';\n return 'रात';\n },\n\n meridiemHour(hour: number, meridiem: string) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') return hour < 4 ? hour : hour + 12;\n if (meridiem === 'सुबह') return hour;\n if (meridiem === 'दोपहर') return hour >= 10 ? hour : hour + 12;\n if (meridiem === 'शाम') return hour + 12;\n return hour;\n },\n\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n});\n\nDayjs.updateLocale('fr', {\n calendar: {\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n sameDay: '[Aujourd’hui à] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('tr', {\n calendar: {\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n sameDay: '[bugün saat] LT',\n sameElse: 'L',\n },\n});\n\nDayjs.updateLocale('ru', {\n calendar: {\n lastDay: '[Вчера, в] LT',\n nextDay: '[Завтра, в] LT',\n sameDay: '[Сегодня, в] LT',\n },\n});\n\nconst en_locale = {\n formats: {},\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n relativeTime: {},\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n};\n\n// Type guards to check DayJs\nconst isDayJs = (dateTimeParser: typeof Dayjs | typeof moment): dateTimeParser is typeof Dayjs =>\n (dateTimeParser as typeof Dayjs).extend !== undefined;\n\ntype Options = {\n DateTimeParser?: typeof Dayjs | typeof moment;\n dayjsLocaleConfigForLanguage?: Partial<ILocale>;\n debug?: boolean;\n disableDateTimeTranslations?: boolean;\n language?: string;\n logger?: (msg?: string) => void;\n translationsForLanguage?: Partial<typeof enTranslations>;\n};\n\ntype I18NextConfig = {\n debug: boolean;\n fallbackLng: false | FallbackLng;\n interpolation: { escapeValue: boolean };\n keySeparator: false | string;\n lng: string;\n nsSeparator: false | string;\n parseMissingKeyHandler: (key: string) => string;\n};\n\n/**\n * Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.\n * Instance of this class should be provided to Chat component to handle translations.\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Spanish (es)\n * 3. French (fr)\n * 4. Hebrew (he)\n * 5. Hindi (hi)\n * 6. Italian (it)\n * 7. Japanese (ja)\n * 8. Korean (ko)\n * 9. Dutch (nl)\n * 10. Russian (ru)\n * 11. Turkish (tr)\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n({ language 'nl' });\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * translationsForLanguage: {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * }\n * });\n *\n * If you would like to register additional languages, use registerTranslation. You can add as many languages as you want:\n *\n * i18n.registerTranslation('zh', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language as well.\n *\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation('mr', {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * ## Datetime translations\n *\n * Stream react chat components uses [dayjs](https://day.js.org/en/) internally by default to format datetime stamp.\n * e.g., in ChannelPreview, MessageContent components.\n * Dayjs has locale support as well - https://day.js.org/docs/en/i18n/i18n\n * Dayjs is a lightweight alternative to Momentjs with the same modern API.\n *\n * Dayjs provides locale config for plenty of languages, you can check the whole list of locale configs at following url\n * https://github.com/iamkun/dayjs/tree/dev/src/locale\n *\n * You can either provide the dayjs locale config while registering\n * language with Streami18n (either via constructor or registerTranslation()) or you can provide your own Dayjs or Moment instance\n * to Streami18n constructor, which will be then used internally (using the language locale) in components.\n *\n * 1. Via language registration\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n({\n * language: 'nl',\n * dayjsLocaleConfigForLanguage: {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * });\n * ```\n *\n * Similarly, you can add locale config for moment while registering translation via `registerTranslation` function.\n *\n * e.g.,\n * ```\n * const i18n = new Streami18n();\n *\n * i18n.registerTranslation(\n * 'mr',\n * {\n * 'Nothing yet...': 'काहीही नाही ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} आणि {{ secondUser }} टीपी करत आहेत ',\n * },\n * {\n * months: [...],\n * monthsShort: [...],\n * calendar: {\n * sameDay: ...'\n * }\n * }\n * );\n *```\n * 2. Provide your own Moment object\n *\n * ```js\n * import 'moment/locale/nl';\n * import 'moment/locale/it';\n * // or if you want to include all locales\n * import 'moment/min/locales';\n *\n * import Moment from moment\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Moment\n * })\n * ```\n *\n * 3. Provide your own Dayjs object\n *\n * ```js\n * import Dayjs from 'dayjs'\n *\n * import 'dayjs/locale/nl';\n * import 'dayjs/locale/it';\n * // or if you want to include all locales\n * import 'dayjs/min/locales';\n *\n * const i18n = new Streami18n({\n * language: 'nl',\n * DateTimeParser: Dayjs\n * })\n * ```\n * If you would like to stick with english language for date-times in Stream components, you can set `disableDateTimeTranslations` to true.\n *\n */\nconst defaultStreami18nOptions = {\n DateTimeParser: Dayjs,\n dayjsLocaleConfigForLanguage: null,\n debug: false,\n disableDateTimeTranslations: false,\n language: 'en',\n logger: (msg?: string) => console.warn(msg),\n};\n\nexport class Streami18n {\n i18nInstance = i18n.createInstance();\n Dayjs = null;\n initialized = false;\n /* this promise is used to prevent simultaneous calls to init (happens in Overlay and Chat) */\n private waitForInitializing: Promise<void> | undefined;\n /* This is the callback to be fired when the language is changed */\n private onLanguageChangeListeners: ((t: TFunction) => void)[] = [];\n /* This is the callback to be fired when the tFunc is overridden\n * This is useful when a different i18n library needs to be used\n * The SDK uses this in useStreami18n hook to set the tFunc in the context\n */\n private onTFunctionOverrideListeners: ((t: TFunction) => void)[] = [];\n /* We need to queue the overridden tFunction\n * if the tFunction is overridden before the SDK has initialized the translations\n */\n private queuedTFunctionOverride: TFunction | undefined;\n\n t: TFunction = (key: string) => key;\n tDateTimeParser: TDateTimeParser;\n\n translations: {\n [key: string]: {\n [key: string]: Partial<typeof enTranslations> | DefaultStreamChatGenerics;\n };\n } = {\n en: { [defaultNS]: enTranslations },\n es: { [defaultNS]: esTranslations },\n fr: { [defaultNS]: frTranslations },\n he: { [defaultNS]: heTranslations },\n hi: { [defaultNS]: hiTranslations },\n it: { [defaultNS]: itTranslations },\n ja: { [defaultNS]: jaTranslations },\n ko: { [defaultNS]: koTranslations },\n nl: { [defaultNS]: nlTranslations },\n ru: { [defaultNS]: ruTranslations },\n tr: { [defaultNS]: trTranslations },\n };\n\n /**\n * dayjs.defineLanguage('nl') also changes the global locale. We don't want to do that\n * when a user calls the registerTranslation() function. So instead we will store the\n * locale configs given to the registerTranslation() function in `dayjsLocales` object,\n * and register the required locale with moment when setLanguage is called.\n */\n dayjsLocales: { [key: string]: Partial<ILocale> } = {};\n\n /**\n * Initialize properties used in constructor\n */\n logger: (msg?: string) => void;\n currentLanguage: string;\n DateTimeParser: typeof Dayjs | typeof moment;\n isCustomDateTimeParser: boolean;\n i18nextConfig: I18NextConfig;\n\n /**\n * Constructor accepts following options:\n * - language (String) default: 'en'\n * Language code e.g., en, tr\n *\n * - translationsForLanguage (object)\n * Translations object. Please check src/i18n/en.json for example.\n *\n * - disableDateTimeTranslations (boolean) default: false\n * Disable translations for date-times\n *\n * - debug (boolean) default: false\n * Enable debug mode in internal i18n class\n *\n * - logger (function) default: () => {}\n * Logger function to log warnings/errors from this class\n *\n * - dayjsLocaleConfigForLanguage (object) default: 'enConfig'\n * [Config object](https://momentjs.com/docs/#/i18n/changing-locale/) for internal moment object,\n * corresponding to language (param)\n *\n * - DateTimeParser (function) Moment or Dayjs instance/function.\n * Make sure to load all the required locales in this Moment or Dayjs instance that you will be provide to Streami18n\n *\n * @param {*} options\n */\n constructor(options: Options = {}, i18nextConfig: Partial<I18NextConfig> = {}) {\n const finalOptions = {\n ...defaultStreami18nOptions,\n ...options,\n };\n\n // Prepare the i18next configuration.\n this.logger = finalOptions.logger;\n\n this.currentLanguage = finalOptions.language;\n this.DateTimeParser = finalOptions.DateTimeParser;\n\n try {\n /**\n * This is a shallow check to see if the given parser is an instance of Dayjs.\n * For some reason Dayjs.isDayjs(this.DateTimeParser()) doesn't work.\n */\n if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {\n this.DateTimeParser.extend(LocalizedFormat);\n this.DateTimeParser.extend(calendar);\n this.DateTimeParser.extend(localeData);\n this.DateTimeParser.extend(relativeTime);\n }\n } catch (error) {\n throw new Error(\n `Streami18n: Looks like you wanted to provide a Dayjs instance but something went wrong while adding plugins ${JSON.stringify(\n error,\n )}`,\n );\n }\n\n this.isCustomDateTimeParser = !!options.DateTimeParser;\n const translationsForLanguage = finalOptions.translationsForLanguage;\n\n if (translationsForLanguage) {\n this.translations[this.currentLanguage] = {\n [defaultNS]:\n this.translations[this.currentLanguage] &&\n this.translations[this.currentLanguage][defaultNS]\n ? {\n ...this.translations[this.currentLanguage][defaultNS],\n ...translationsForLanguage,\n }\n : translationsForLanguage,\n };\n }\n\n // If translations don't exist for given language, then set it as empty object.\n if (!this.translations[this.currentLanguage]) {\n this.translations[this.currentLanguage] = {\n [defaultNS]: {},\n };\n }\n\n this.i18nextConfig = {\n debug: finalOptions.debug,\n fallbackLng: false,\n interpolation: { escapeValue: false },\n keySeparator: false,\n lng: this.currentLanguage,\n nsSeparator: false,\n\n parseMissingKeyHandler: (key: string) => {\n this.logger(`Streami18n: Missing translation for key: ${key}`);\n\n return key;\n },\n ...i18nextConfig,\n };\n\n this.validateCurrentLanguage();\n\n const dayjsLocaleConfigForLanguage = finalOptions.dayjsLocaleConfigForLanguage;\n\n if (dayjsLocaleConfigForLanguage) {\n this.addOrUpdateLocale(this.currentLanguage, {\n ...dayjsLocaleConfigForLanguage,\n });\n } else if (!this.localeExists(this.currentLanguage)) {\n this.logger(\n `Streami18n: Streami18n(...) - Locale config for ${this.currentLanguage} does not exist in momentjs.` +\n `Please import the locale file using \"import 'moment/locale/${this.currentLanguage}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n this.tDateTimeParser = (timestamp) => {\n if (finalOptions.disableDateTimeTranslations || !this.localeExists(this.currentLanguage)) {\n /**\n * TS needs to know which is being called to accept the chain call\n */\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n return this.DateTimeParser(timestamp).locale(defaultLng);\n }\n if (isDayJs(this.DateTimeParser)) {\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n }\n return this.DateTimeParser(timestamp).locale(this.currentLanguage);\n };\n }\n\n /**\n * Initializes the i18next instance with configuration (which enables natural language as default keys)\n */\n private async init() {\n this.validateCurrentLanguage();\n\n try {\n this.t = await this.i18nInstance.init({\n ...this.i18nextConfig,\n lng: this.currentLanguage,\n resources: this.translations,\n });\n if (this.queuedTFunctionOverride) {\n // special case where we have a override for tFunc before initialization\n this.t = this.queuedTFunctionOverride;\n this.queuedTFunctionOverride = undefined;\n this.onTFunctionOverrideListeners.forEach((listener) => listener(this.t));\n }\n this.initialized = true;\n } catch (error) {\n this.logger(`Something went wrong with init: ${JSON.stringify(error)}`);\n }\n this.waitForInitializing = undefined;\n }\n\n localeExists = (language: string) => {\n if (this.isCustomDateTimeParser) return true;\n\n return Object.keys(Dayjs.Ls).indexOf(language) > -1;\n };\n\n validateCurrentLanguage = () => {\n const availableLanguages = Object.keys(this.translations);\n if (availableLanguages.indexOf(this.currentLanguage) === -1) {\n this.logger(\n `Streami18n: '${this.currentLanguage}' language is not registered.` +\n ` Please make sure to call streami18n.registerTranslation('${this.currentLanguage}', {...}) or ` +\n `use one the built-in supported languages - ${this.getAvailableLanguages()}`,\n );\n\n this.currentLanguage = defaultLng;\n }\n };\n\n /** Returns an instance of i18next used within this class instance */\n geti18Instance = () => this.i18nInstance;\n\n /** Returns list of available languages. */\n getAvailableLanguages = () => Object.keys(this.translations);\n\n /** Returns all the translation dictionary for all inbuilt-languages */\n getTranslations = () => this.translations;\n\n /**\n * Returns current version translator function.\n */\n async getTranslators() {\n if (!this.initialized) {\n if (this.waitForInitializing) {\n await this.waitForInitializing;\n } else {\n if (this.dayjsLocales[this.currentLanguage]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n const initPromise = this.init();\n this.waitForInitializing = initPromise;\n await initPromise;\n }\n }\n return {\n t: this.t,\n tDateTimeParser: this.tDateTimeParser,\n };\n }\n\n /**\n * Register translation\n */\n registerTranslation(\n language: string,\n translation: Partial<typeof enTranslations> | DefaultStreamChatGenerics,\n customDayjsLocale?: Partial<ILocale>,\n ) {\n if (!translation) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) called without translation`,\n );\n return;\n }\n\n if (!this.translations[language]) {\n this.translations[language] = { [defaultNS]: translation };\n } else {\n this.translations[language][defaultNS] = translation;\n }\n\n if (customDayjsLocale) {\n this.dayjsLocales[language] = { ...customDayjsLocale };\n } else if (!this.localeExists(language)) {\n this.logger(\n `Streami18n: registerTranslation(language, translation, customDayjsLocale) - ` +\n `Locale config for ${language} does not exist in Dayjs.` +\n `Please import the locale file using \"import 'dayjs/locale/${language}';\" in your app or ` +\n `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`,\n );\n }\n\n if (this.initialized) {\n this.i18nInstance.addResources(language, defaultNS, translation);\n }\n }\n\n addOrUpdateLocale(key: string, config: Partial<ILocale>) {\n if (this.localeExists(key)) {\n Dayjs.updateLocale(key, { ...config });\n } else {\n // Merging the custom locale config with en config, so missing keys can default to english.\n Dayjs.locale({ name: key, ...en_locale, ...config }, undefined, true);\n }\n }\n\n /**\n * Changes the language.\n * Note: if you are using overrideTFunction, you will need to call the override again after changing the language.\n */\n async setLanguage(language: string) {\n this.currentLanguage = language;\n\n if (!this.initialized) return;\n\n try {\n const t = await this.i18nInstance.changeLanguage(language);\n if (this.dayjsLocales[language]) {\n this.addOrUpdateLocale(this.currentLanguage, this.dayjsLocales[this.currentLanguage]);\n }\n this.t = t;\n this.onLanguageChangeListeners.forEach((listener) => listener(t));\n\n return t;\n } catch (error) {\n this.logger(`Failed to set language: ${JSON.stringify(error)}`);\n return this.t;\n }\n }\n\n addOnLanguageChangeListener(callback: (t: TFunction) => void) {\n this.onLanguageChangeListeners.push(callback);\n return {\n unsubscribe: () => {\n this.onLanguageChangeListeners = this.onLanguageChangeListeners.filter(\n (listener) => listener !== callback,\n );\n },\n };\n }\n\n addOnTFunctionOverrideListener(callback: (t: TFunction) => void) {\n this.onTFunctionOverrideListeners.push(callback);\n return {\n unsubscribe: () => {\n this.onTFunctionOverrideListeners = this.onTFunctionOverrideListeners.filter(\n (listener) => listener !== callback,\n );\n },\n };\n }\n\n overrideTFunction(tFunction: TFunction) {\n if (!this.initialized) {\n this.queuedTFunctionOverride = tFunction;\n } else {\n this.t = tFunction;\n this.onTFunctionOverrideListeners.forEach((listener) => listener(tFunction));\n }\n }\n}\n"],"mappings":"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"}