stream-chat-react-native-core 5.24.1-beta.1 → 5.25.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  2. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  3. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  4. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  5. package/lib/commonjs/components/Channel/Channel.js +16 -13
  6. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  7. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
  8. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  9. package/lib/commonjs/components/MessageInput/SendButton.js +3 -1
  10. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  11. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +13 -11
  12. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  13. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -0
  14. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  15. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  16. package/lib/commonjs/emoji-data/compile.js +63 -11
  17. package/lib/commonjs/emoji-data/compile.js.map +1 -1
  18. package/lib/commonjs/emoji-data/index.js +9843 -37
  19. package/lib/commonjs/emoji-data/index.js.map +1 -1
  20. package/lib/commonjs/i18n/en.json +1 -1
  21. package/lib/commonjs/i18n/es.json +34 -34
  22. package/lib/commonjs/i18n/fr.json +36 -36
  23. package/lib/commonjs/i18n/he.json +36 -36
  24. package/lib/commonjs/i18n/hi.json +36 -36
  25. package/lib/commonjs/i18n/it.json +36 -36
  26. package/lib/commonjs/i18n/ja.json +36 -36
  27. package/lib/commonjs/i18n/ko.json +36 -36
  28. package/lib/commonjs/i18n/nl.json +36 -36
  29. package/lib/commonjs/i18n/ru.json +35 -35
  30. package/lib/commonjs/i18n/tr.json +36 -36
  31. package/lib/commonjs/index.js +4 -4
  32. package/lib/commonjs/index.js.map +1 -1
  33. package/lib/commonjs/utils/utils.js +84 -31
  34. package/lib/commonjs/utils/utils.js.map +1 -1
  35. package/lib/commonjs/version.json +1 -1
  36. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  37. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  38. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  39. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  40. package/lib/module/components/Channel/Channel.js +16 -13
  41. package/lib/module/components/Channel/Channel.js.map +1 -1
  42. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
  43. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  44. package/lib/module/components/MessageInput/SendButton.js +3 -1
  45. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  46. package/lib/module/contexts/messageInputContext/MessageInputContext.js +13 -11
  47. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  48. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -0
  49. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  50. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  51. package/lib/module/emoji-data/compile.js +63 -11
  52. package/lib/module/emoji-data/compile.js.map +1 -1
  53. package/lib/module/emoji-data/index.js +9843 -37
  54. package/lib/module/emoji-data/index.js.map +1 -1
  55. package/lib/module/i18n/en.json +1 -1
  56. package/lib/module/i18n/es.json +34 -34
  57. package/lib/module/i18n/fr.json +36 -36
  58. package/lib/module/i18n/he.json +36 -36
  59. package/lib/module/i18n/hi.json +36 -36
  60. package/lib/module/i18n/it.json +36 -36
  61. package/lib/module/i18n/ja.json +36 -36
  62. package/lib/module/i18n/ko.json +36 -36
  63. package/lib/module/i18n/nl.json +36 -36
  64. package/lib/module/i18n/ru.json +35 -35
  65. package/lib/module/i18n/tr.json +36 -36
  66. package/lib/module/index.js +4 -4
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/module/utils/utils.js +84 -31
  69. package/lib/module/utils/utils.js.map +1 -1
  70. package/lib/module/version.json +1 -1
  71. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
  72. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +11 -3
  73. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  74. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +1 -1
  75. package/lib/typescript/emoji-data/index.d.ts +9 -0
  76. package/lib/typescript/i18n/en.json +1 -1
  77. package/lib/typescript/i18n/es.json +34 -34
  78. package/lib/typescript/i18n/fr.json +36 -36
  79. package/lib/typescript/i18n/he.json +36 -36
  80. package/lib/typescript/i18n/hi.json +36 -36
  81. package/lib/typescript/i18n/it.json +36 -36
  82. package/lib/typescript/i18n/ja.json +36 -36
  83. package/lib/typescript/i18n/ko.json +36 -36
  84. package/lib/typescript/i18n/nl.json +36 -36
  85. package/lib/typescript/i18n/ru.json +35 -35
  86. package/lib/typescript/i18n/tr.json +36 -36
  87. package/lib/typescript/index.d.ts +1 -1
  88. package/lib/typescript/utils/utils.d.ts +9 -4
  89. package/package.json +3 -2
  90. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +1 -1
  91. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +1 -1
  92. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +1 -1
  93. package/src/components/Channel/Channel.tsx +3 -0
  94. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -0
  95. package/src/components/MessageInput/SendButton.tsx +1 -1
  96. package/src/contexts/messageInputContext/MessageInputContext.tsx +17 -2
  97. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -0
  98. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +1 -1
  99. package/src/emoji-data/compile.js +56 -36
  100. package/src/emoji-data/index.ts +5178 -0
  101. package/src/i18n/en.json +1 -1
  102. package/src/i18n/es.json +34 -34
  103. package/src/i18n/fr.json +36 -36
  104. package/src/i18n/he.json +36 -36
  105. package/src/i18n/hi.json +36 -36
  106. package/src/i18n/it.json +36 -36
  107. package/src/i18n/ja.json +36 -36
  108. package/src/i18n/ko.json +36 -36
  109. package/src/i18n/nl.json +36 -36
  110. package/src/i18n/ru.json +35 -35
  111. package/src/i18n/tr.json +36 -36
  112. package/src/index.ts +1 -1
  113. package/src/utils/utils.ts +47 -33
  114. package/src/version.json +1 -1
  115. package/lib/commonjs/emoji-data/compiled.js +0 -15587
  116. package/lib/commonjs/emoji-data/compiled.js.map +0 -1
  117. package/lib/commonjs/emoji-data/emojiNames.js +0 -4913
  118. package/lib/commonjs/emoji-data/emojiNames.js.map +0 -1
  119. package/lib/commonjs/emoji-data/emojis.js +0 -13155
  120. package/lib/commonjs/emoji-data/emojis.js.map +0 -1
  121. package/lib/module/emoji-data/compiled.js +0 -15587
  122. package/lib/module/emoji-data/compiled.js.map +0 -1
  123. package/lib/module/emoji-data/emojiNames.js +0 -4913
  124. package/lib/module/emoji-data/emojiNames.js.map +0 -1
  125. package/lib/module/emoji-data/emojis.js +0 -13155
  126. package/lib/module/emoji-data/emojis.js.map +0 -1
  127. package/lib/typescript/emoji-data/compiled.d.ts +0 -20
  128. package/lib/typescript/emoji-data/emojiNames.d.ts +0 -0
  129. package/lib/typescript/emoji-data/emojis.d.ts +0 -0
  130. package/src/emoji-data/compiled.ts +0 -8930
  131. package/src/emoji-data/emojiNames.ts +0 -6960
  132. package/src/emoji-data/emojis.ts +0 -14893
  133. package/src/emoji-data/index.js +0 -38
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_native","_contexts","_compiled","_icons","_types","_patchMessageTextCommand","_Streami18n","_utils","_StreamChatRN","_en","_interopRequireDefault","_fr","_hi","_it","_nl","_ru","_tr","_he","_QuickSqliteClient","_version","OfflineStoreApis","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["index.ts"],"sourcesContent":["export * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/patchMessageTextCommand';\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\nexport * from './utils/StreamChatRN';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n\nimport * as OfflineStoreApis from './store/apis';\nexport { OfflineStoreApis };\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_native","_contexts","_emojiData","_icons","_types","_patchMessageTextCommand","_Streami18n","_utils","_StreamChatRN","_en","_interopRequireDefault","_fr","_hi","_it","_nl","_ru","_tr","_he","_QuickSqliteClient","_version","OfflineStoreApis","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["index.ts"],"sourcesContent":["export * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/patchMessageTextCommand';\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\nexport * from './utils/StreamChatRN';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n\nimport * as OfflineStoreApis from './store/apis';\nexport { OfflineStoreApis };\n"],"mappings":"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"}
@@ -2,15 +2,19 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.reduceMessagesToString = exports.queryUsersDebounced = exports.queryMembersDebounced = exports.makeImageCompatibleUrl = exports.isMentionTrigger = exports.isLocalUrl = exports.isEmojiTrigger = exports.isCommandTrigger = exports.isBouncedMessage = exports.isBlockedMessage = exports.hasOnlyEmojis = exports.getUrlWithoutParams = exports.getIndicatorTypeForFileState = exports.generateRandomId = exports.ProgressIndicatorTypes = exports.MessageStatusTypes = exports.FileState = exports.ACITriggerSettings = void 0;
5
+ exports.reduceMessagesToString = exports.queryUsersDebounced = exports.queryMembersDebounced = exports.makeImageCompatibleUrl = exports.isMentionTrigger = exports.isLocalUrl = exports.isEmojiTrigger = exports.isCommandTrigger = exports.isBouncedMessage = exports.isBlockedMessage = exports.hasOnlyEmojis = exports.getUrlWithoutParams = exports.getIndicatorTypeForFileState = exports.generateRandomId = exports.defaultEmojiSearchIndex = exports.ProgressIndicatorTypes = exports.MessageStatusTypes = exports.FileState = exports.ACITriggerSettings = void 0;
6
6
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
7
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
7
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _emojiRegex = _interopRequireDefault(require("emoji-regex"));
12
13
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
13
- var _compiled = require("../emoji-data/compiled");
14
+ var _emojiData = require("../emoji-data");
15
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
18
  var FileState = Object.freeze({
15
19
  FINISHED: 'finished',
16
20
  NOT_SUPPORTED: 'not_supported',
@@ -208,9 +212,46 @@ var isMentionTrigger = function isMentionTrigger(trigger) {
208
212
  return trigger === '@';
209
213
  };
210
214
  exports.isMentionTrigger = isMentionTrigger;
215
+ var defaultEmojiSearchIndex = {
216
+ search: function search(query) {
217
+ var results = [];
218
+ var _loop = function _loop(emoji) {
219
+ if (results.length >= 10) return {
220
+ v: results
221
+ };
222
+ if (emoji.names.some(function (name) {
223
+ return name.includes(query);
224
+ })) {
225
+ if (emoji.skins) {
226
+ results.push((0, _extends2["default"])({}, emoji, {
227
+ name: emoji.name + "-tone-1",
228
+ skins: undefined
229
+ }));
230
+ emoji.skins.forEach(function (tone, index) {
231
+ return results.push((0, _extends2["default"])({}, emoji, {
232
+ name: emoji.name + "-tone-" + (index + 2),
233
+ skins: undefined,
234
+ unicode: tone
235
+ }));
236
+ });
237
+ } else {
238
+ results.push(emoji);
239
+ }
240
+ }
241
+ };
242
+ for (var _iterator = _createForOfIteratorHelperLoose(_emojiData.compiledEmojis), _step; !(_step = _iterator()).done;) {
243
+ var emoji = _step.value;
244
+ var _ret = _loop(emoji);
245
+ if ((0, _typeof2["default"])(_ret) === "object") return _ret.v;
246
+ }
247
+ return results;
248
+ }
249
+ };
250
+ exports.defaultEmojiSearchIndex = defaultEmojiSearchIndex;
211
251
  var ACITriggerSettings = function ACITriggerSettings(_ref3) {
212
252
  var channel = _ref3.channel,
213
253
  client = _ref3.client,
254
+ emojiSearchIndex = _ref3.emojiSearchIndex,
214
255
  onMentionSelectItem = _ref3.onMentionSelectItem;
215
256
  return {
216
257
  '/': {
@@ -253,37 +294,49 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
253
294
  type: 'command'
254
295
  },
255
296
  ':': {
256
- dataProvider: function dataProvider(query, _, onReady) {
257
- if (!query) return [];
258
- var result = _compiled.compiledEmojis.emojiArray.reduce(function (acc, cur) {
259
- if (acc.length >= 10) return acc;
260
- if (cur.names.some(function (name) {
261
- return name.includes(query);
262
- })) {
263
- var emoji = _compiled.compiledEmojis.emojiLib[cur.name];
264
- if (emoji != null && emoji.skin_variations) {
265
- acc.push((0, _extends2["default"])({}, emoji, {
266
- name: emoji.name + "-tone-1",
267
- skin_variations: undefined
268
- }));
269
- emoji.skin_variations.forEach(function (tone, index) {
270
- return acc.push((0, _extends2["default"])({}, emoji, {
271
- name: emoji.name + "-tone-" + (index + 2),
272
- skin_variations: undefined,
273
- unicode: tone
274
- }));
275
- });
276
- } else if (emoji) {
277
- acc.push(emoji);
297
+ dataProvider: function () {
298
+ var _dataProvider = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(query, _, onReady) {
299
+ var _yield$emojiSearchInd;
300
+ var emojis;
301
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
302
+ while (1) switch (_context3.prev = _context3.next) {
303
+ case 0:
304
+ if (query) {
305
+ _context3.next = 2;
306
+ break;
307
+ }
308
+ return _context3.abrupt("return", []);
309
+ case 2:
310
+ _context3.next = 4;
311
+ return emojiSearchIndex == null ? void 0 : emojiSearchIndex.search(query);
312
+ case 4:
313
+ _context3.t0 = _yield$emojiSearchInd = _context3.sent;
314
+ if (!(_context3.t0 != null)) {
315
+ _context3.next = 9;
316
+ break;
317
+ }
318
+ _context3.t1 = _yield$emojiSearchInd;
319
+ _context3.next = 10;
320
+ break;
321
+ case 9:
322
+ _context3.t1 = [];
323
+ case 10:
324
+ emojis = _context3.t1;
325
+ if (onReady) {
326
+ onReady(emojis, query);
327
+ }
328
+ return _context3.abrupt("return", emojis);
329
+ case 13:
330
+ case "end":
331
+ return _context3.stop();
278
332
  }
279
- }
280
- return acc;
281
- }, []);
282
- if (onReady) {
283
- onReady(result, query);
333
+ }, _callee3);
334
+ }));
335
+ function dataProvider(_x7, _x8, _x9) {
336
+ return _dataProvider.apply(this, arguments);
284
337
  }
285
- return result;
286
- },
338
+ return dataProvider;
339
+ }(),
287
340
  output: function output(entity) {
288
341
  return {
289
342
  caretPosition: 'next',
@@ -1 +1 @@
1
- {"version":3,"names":["_emojiRegex","_interopRequireDefault","require","_debounce","_compiled","FileState","Object","freeze","FINISHED","NOT_SUPPORTED","UPLOAD_FAILED","UPLOADED","UPLOADING","exports","ProgressIndicatorTypes","IN_PROGRESS","INACTIVE","RETRY","MessageStatusTypes","FAILED","RECEIVED","SENDING","getIndicatorTypeForFileState","fileState","enableOfflineSupport","_indicatorMap","indicatorMap","_defineProperty2","isBlockedMessage","message","pattern","type","text","test","isBouncedMessage","moderation_details","undefined","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","getCommands","channel","_channel$getConfig","getConfig","commands","getMembers","members","state","values","length","filter","member","map","getWatchers","watchers","_toConsumableArray2","getMembersAndWatchers","users","concat","reduce","acc","cur","id","queryMembers","_ref","_asyncToGenerator2","_regenerator","mark","_callee","query","onReady","_options$limit","limit","response","_users","_args","arguments","wrap","_callee$","_context","prev","next","name","$autocomplete","sent","forEach","push","stop","_x","_x2","_x3","apply","queryMembersDebounced","debounce","leading","trailing","queryUsers","_ref2","_callee2","client","_options$limit2","_options$mentionAllAp","mentionAllAppUsersQuery","_users2","_args2","_callee2$","_context2","_extends2","$ne","userID","$or","_x4","_x5","_x6","queryUsersDebounced","isCommandTrigger","trigger","isEmojiTrigger","isMentionTrigger","ACITriggerSettings","_ref3","onMentionSelectItem","dataProvider","indexOf","_options$limit3","selectedCommands","command","_command$name","a","b","_a$name","_b$name","nameA","toLowerCase","nameB","result","slice","output","entity","caretPosition","key","_","compiledEmojis","emojiArray","names","some","includes","emoji","emojiLib","skin_variations","tone","index","unicode","callback","item","mentionAllAppUsersEnabled","data","matchingUsers","_user$name","makeImageCompatibleUrl","url","trim","getUrlWithoutParams","indexOfQuestion","substring","isLocalUrl","generateRandomId","Number","Math","random","toString","replace","hasOnlyEmojis","emojiOnlyString","matchAll","EmojiRegex","join","originalTextWithNoSpaces","replaceAll","e","stringifyMessage","_ref4","deleted_at","latest_reactions","reply_count","status","updated_at","_ref5","toISOString","reduceMessagesToString","messages"],"sources":["utils.ts"],"sourcesContent":["import type React from 'react';\n\nimport EmojiRegex from 'emoji-regex';\nimport type { DebouncedFunc } from 'lodash';\nimport debounce from 'lodash/debounce';\nimport type {\n Channel,\n ChannelMemberAPIResponse,\n ChannelMemberResponse,\n CommandResponse,\n FormatMessageResponse,\n StreamChat,\n UserResponse,\n} from 'stream-chat';\n\nimport type { MessageType } from '../components/MessageList/hooks/useMessageList';\nimport type { MentionAllAppUsersQuery } from '../contexts/messageInputContext/MessageInputContext';\nimport type {\n SuggestionCommand,\n SuggestionComponentType,\n SuggestionUser,\n} from '../contexts/suggestionsContext/SuggestionsContext';\nimport { compiledEmojis, Emoji } from '../emoji-data/compiled';\nimport type { IconProps } from '../icons/utils/base';\nimport type { TableRowJoinedUser } from '../store/types';\nimport type { DefaultStreamChatGenerics, ValueOf } from '../types/types';\n\nexport type ReactionData = {\n Icon: React.FC<IconProps>;\n type: string;\n};\n\nexport const FileState = Object.freeze({\n // finished and uploaded state are the same thing. First is set on frontend,\n // while later is set on backend side\n // TODO: Unify both of them\n FINISHED: 'finished',\n NOT_SUPPORTED: 'not_supported',\n UPLOAD_FAILED: 'upload_failed',\n UPLOADED: 'uploaded',\n UPLOADING: 'uploading',\n});\n\nexport const ProgressIndicatorTypes: {\n IN_PROGRESS: 'in_progress';\n INACTIVE: 'inactive';\n NOT_SUPPORTED: 'not_supported';\n RETRY: 'retry';\n} = Object.freeze({\n IN_PROGRESS: 'in_progress',\n INACTIVE: 'inactive',\n NOT_SUPPORTED: 'not_supported',\n RETRY: 'retry',\n});\n\nexport const MessageStatusTypes = {\n FAILED: 'failed',\n RECEIVED: 'received',\n SENDING: 'sending',\n};\n\nexport type FileStateValue = typeof FileState[keyof typeof FileState];\n\ntype Progress = ValueOf<typeof ProgressIndicatorTypes>;\ntype IndicatorStatesMap = Record<ValueOf<typeof FileState>, Progress | null>;\n\nexport const getIndicatorTypeForFileState = (\n fileState: FileStateValue,\n enableOfflineSupport: boolean,\n): Progress | null => {\n const indicatorMap: IndicatorStatesMap = {\n [FileState.UPLOADING]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.IN_PROGRESS,\n // If offline support is disabled, then there is no need\n [FileState.UPLOAD_FAILED]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.RETRY,\n [FileState.NOT_SUPPORTED]: ProgressIndicatorTypes.NOT_SUPPORTED,\n [FileState.UPLOADED]: ProgressIndicatorTypes.INACTIVE,\n [FileState.FINISHED]: ProgressIndicatorTypes.INACTIVE,\n };\n\n return indicatorMap[fileState];\n};\n\n/**\n * Utility to check if the message is a Blocked message.\n * @param message\n * @returns boolean\n */\nexport const isBlockedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics> | TableRowJoinedUser<'messages'>,\n) => {\n // The only indicator for the blocked message is its message type is error and that the message text contains \"Message was blocked by moderation policies\".\n const pattern = /\\bMessage was blocked by moderation policies\\b/;\n return message.type === 'error' && message.text && pattern.test(message.text);\n};\n\n/**\n * Utility to check if the message is a Bounced message.\n * @param message\n * @returns boolean\n */\nexport const isBouncedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => message.type === 'error' && message.moderation_details !== undefined;\n\nconst defaultAutoCompleteSuggestionsLimit = 10;\nconst defaultMentionAllAppUsersQuery = {\n filters: {},\n options: {},\n sort: {},\n};\n\nconst isUserResponse = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n user: SuggestionUser<StreamChatGenerics> | undefined,\n): user is SuggestionUser<StreamChatGenerics> =>\n (user as SuggestionUser<StreamChatGenerics>) !== undefined;\n\nconst getCommands = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => channel.getConfig()?.commands || [];\n\nconst getMembers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const members = channel.state.members;\n\n return Object.values(members).length\n ? (\n Object.values(members).filter((member) => member.user) as Array<\n ChannelMemberResponse<StreamChatGenerics> & { user: UserResponse<StreamChatGenerics> }\n >\n ).map((member) => member.user)\n : [];\n};\n\nconst getWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const watchers = channel.state.watchers;\n return Object.values(watchers).length ? [...Object.values(watchers)] : [];\n};\n\nconst getMembersAndWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const users = [...getMembers(channel), ...getWatchers(channel)];\n\n return Object.values(\n users.reduce((acc, cur) => {\n if (!acc[cur.id]) {\n acc[cur.id] = cur;\n }\n\n return acc;\n }, {} as { [key: string]: SuggestionUser<StreamChatGenerics> }),\n );\n};\n\nconst queryMembers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n } = {},\n): Promise<void> => {\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n\n if (typeof query === 'string') {\n const response = (await (channel as unknown as Channel).queryMembers(\n {\n name: { $autocomplete: query },\n },\n {},\n { limit },\n )) as ChannelMemberAPIResponse<StreamChatGenerics>;\n\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.members.forEach((member) => isUserResponse(member.user) && users.push(member.user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryMembersDebounced = debounce(queryMembers, 200, {\n leading: false,\n trailing: true,\n});\n\nconst queryUsers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n } = {},\n): Promise<void> => {\n if (typeof query === 'string') {\n const {\n limit = defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersQuery = defaultMentionAllAppUsersQuery,\n } = options;\n const filters = {\n id: { $ne: client.userID },\n ...mentionAllAppUsersQuery?.filters,\n };\n\n if (query) {\n // @ts-ignore\n filters.$or = [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }];\n }\n\n const response = await client.queryUsers(\n // @ts-ignore\n filters,\n { id: 1, ...mentionAllAppUsersQuery?.sort },\n { limit, ...mentionAllAppUsersQuery?.options },\n );\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.users.forEach((user) => isUserResponse(user) && users.push(user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryUsersDebounced = debounce(queryUsers, 200, {\n leading: false,\n trailing: true,\n});\n\nexport const isCommandTrigger = (trigger: Trigger): trigger is '/' => trigger === '/';\n\nexport const isEmojiTrigger = (trigger: Trigger): trigger is ':' => trigger === ':';\n\nexport const isMentionTrigger = (trigger: Trigger): trigger is '@' => trigger === '@';\n\nexport type Trigger = '/' | '@' | ':';\n\nexport type TriggerSettings<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n '/'?: {\n dataProvider: (\n query: CommandResponse<StreamChatGenerics>['name'],\n text: string,\n onReady?: (\n data: CommandResponse<StreamChatGenerics>[],\n q: CommandResponse<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n },\n ) => SuggestionCommand<StreamChatGenerics>[];\n output: (entity: CommandResponse<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n ':'?: {\n dataProvider: (\n query: Emoji['name'],\n _: string,\n onReady?: (data: Emoji[], q: Emoji['name']) => void,\n ) => Emoji[];\n output: (entity: Emoji) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n '@'?: {\n callback: (item: SuggestionUser<StreamChatGenerics>) => void;\n dataProvider: (\n query: SuggestionUser<StreamChatGenerics>['name'],\n _: string,\n onReady?: (\n data: SuggestionUser<StreamChatGenerics>[],\n q: SuggestionUser<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersEnabled?: boolean;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n ) => SuggestionUser<StreamChatGenerics>[] | Promise<void> | void;\n output: (entity: SuggestionUser<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n};\n\nexport type ACITriggerSettingsParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n channel: Channel<StreamChatGenerics>;\n client: StreamChat<StreamChatGenerics>;\n onMentionSelectItem: (item: SuggestionUser<StreamChatGenerics>) => void;\n};\n\nexport type QueryUsersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n) => Promise<void>;\n\nexport type QueryMembersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n },\n) => Promise<void>;\n\n/**\n * ACI = AutoCompleteInput\n *\n * DataProvider accepts `onReady` function, which will execute once the data is ready.\n * Another approach would have been to simply return the data from dataProvider and let the\n * component await for it and then execute the required logic. We are going for callback instead\n * of async-await since we have debounce function in dataProvider. Which will delay the execution\n * of api call on trailing end of debounce (lets call it a1) but will return with result of\n * previous call without waiting for a1. So in this case, we want to execute onReady, when trailing\n * end of debounce executes.\n */\nexport const ACITriggerSettings = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n onMentionSelectItem,\n}: ACITriggerSettingsParams<StreamChatGenerics>): TriggerSettings<StreamChatGenerics> => ({\n '/': {\n dataProvider: (query, text, onReady, options = {}) => {\n if (text.indexOf('/') !== 0) return [];\n\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n const selectedCommands = !query\n ? getCommands(channel)\n : getCommands(channel).filter((command) => query && command.name?.indexOf(query) !== -1);\n\n // sort alphabetically unless the you're matching the first char\n selectedCommands.sort((a, b) => {\n let nameA = a.name?.toLowerCase() || '';\n let nameB = b.name?.toLowerCase() || '';\n if (query && nameA.indexOf(query) === 0) {\n nameA = `0${nameA}`;\n }\n if (query && nameB.indexOf(query) === 0) {\n nameB = `0${nameB}`;\n }\n if (nameA < nameB) return -1;\n if (nameA > nameB) return 1;\n\n return 0;\n });\n\n const result = selectedCommands.slice(0, limit);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: `${entity.name}`,\n text: `/${entity.name}`,\n }),\n type: 'command',\n },\n ':': {\n dataProvider: (query, _, onReady) => {\n if (!query) return [];\n\n const result = compiledEmojis.emojiArray.reduce((acc, cur) => {\n if (acc.length >= 10) return acc;\n\n if (cur.names.some((name) => name.includes(query))) {\n const emoji = compiledEmojis.emojiLib[cur.name];\n // Since there can be no emojiLib for the current name we need to check for it being undefined\n if (emoji?.skin_variations) {\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-1`,\n skin_variations: undefined,\n });\n emoji.skin_variations.forEach((tone, index) =>\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-${index + 2}`,\n skin_variations: undefined,\n unicode: tone,\n }),\n );\n } else if (emoji) {\n acc.push(emoji);\n }\n }\n\n return acc;\n }, [] as Emoji[]);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.name,\n text: entity.unicode,\n }),\n type: 'emoji',\n },\n '@': {\n callback: (item) => {\n onMentionSelectItem(item);\n },\n dataProvider: (\n query,\n _,\n onReady,\n options = {\n limit: defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled: false,\n mentionAllAppUsersQuery: defaultMentionAllAppUsersQuery,\n },\n ) => {\n if (options?.mentionAllAppUsersEnabled) {\n return (queryUsersDebounced as DebouncedFunc<QueryUsersFunction<StreamChatGenerics>>)(\n client,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n mentionAllAppUsersQuery: options.mentionAllAppUsersQuery,\n },\n );\n }\n\n /**\n * By default, we return maximum 100 members via queryChannels api call.\n * Thus it is safe to assume, that if number of members in channel.state is < 100,\n * then all the members are already available on client side and we don't need to\n * make any api call to queryMembers endpoint.\n */\n if (!query || Object.values(channel.state.members).length < 100) {\n const users = getMembersAndWatchers(channel);\n\n const matchingUsers = users.filter((user) => {\n if (!query) return true;\n if (user.name?.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n if (user.id.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n return false;\n });\n\n const data = matchingUsers.slice(0, options?.limit);\n\n if (onReady) {\n onReady(data, query);\n }\n\n return data;\n }\n\n return (queryMembersDebounced as DebouncedFunc<QueryMembersFunction<StreamChatGenerics>>)(\n channel,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n },\n );\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.id,\n text: `@${entity.name || entity.id}`,\n }),\n type: 'mention',\n },\n});\n\nexport const makeImageCompatibleUrl = (url: string) =>\n (url.indexOf('//') === 0 ? `https:${url}` : url).trim();\n\nexport const getUrlWithoutParams = (url?: string) => {\n if (!url) return url;\n\n const indexOfQuestion = url.indexOf('?');\n if (indexOfQuestion === -1) return url;\n\n return url.substring(0, url.indexOf('?'));\n};\n\nexport const isLocalUrl = (url: string) => url.indexOf('http') !== 0;\n\nexport const generateRandomId = (a = ''): string =>\n a\n ? /* eslint-disable no-bitwise */\n ((Number(a) ^ (Math.random() * 16)) >> (Number(a) / 4)).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateRandomId);\n\n/*\n * Returns true if the message text only contains emojis\n */\nexport const hasOnlyEmojis = (text: string) => {\n try {\n // get all emojis in the string\n const emojiOnlyString = [...text.matchAll(EmojiRegex())].join('');\n // remove all spaces from original text\n const originalTextWithNoSpaces = text.replaceAll(/\\s/g, '');\n // check if both are the same\n return (\n emojiOnlyString.length !== 0 && emojiOnlyString.length === originalTextWithNoSpaces.length\n );\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Stringifies a message object\n * @param {FormatMessageResponse<StreamChatGenerics>} message - the message object to be stringified\n * @returns {string} The stringified message\n */\nconst stringifyMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n deleted_at,\n latest_reactions,\n reply_count,\n status,\n type,\n updated_at,\n}: FormatMessageResponse<StreamChatGenerics>): string =>\n `${type}${deleted_at}${\n latest_reactions ? latest_reactions.map(({ type }) => type).join() : ''\n }${reply_count}${status}${updated_at?.toISOString?.() || updated_at}`;\n\n/**\n * Reduces a list of messages to strings that are used in useEffect & useMemo\n * @param {messages} messages - the array of messages to be compared\n * @returns {string} The mapped message string\n */\nexport const reduceMessagesToString = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n messages: FormatMessageResponse<StreamChatGenerics>[],\n): string => messages.map(stringifyMessage).join();\n"],"mappings":";;;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AAkBA,IAAAE,SAAA,GAAAF,OAAA;AAUO,IAAMG,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC;EAIrCC,QAAQ,EAAE,UAAU;EACpBC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE;AACb,CAAC,CAAC;AAACC,OAAA,CAAAR,SAAA,GAAAA,SAAA;AAEI,IAAMS,sBAKZ,GAAGR,MAAM,CAACC,MAAM,CAAC;EAChBQ,WAAW,EAAE,aAAa;EAC1BC,QAAQ,EAAE,UAAU;EACpBP,aAAa,EAAE,eAAe;EAC9BQ,KAAK,EAAE;AACT,CAAC,CAAC;AAACJ,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AAEI,IAAMI,kBAAkB,GAAG;EAChCC,MAAM,EAAE,QAAQ;EAChBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE;AACX,CAAC;AAACR,OAAA,CAAAK,kBAAA,GAAAA,kBAAA;AAOK,IAAMI,4BAA4B,GAAG,SAA/BA,4BAA4BA,CACvCC,SAAyB,EACzBC,oBAA6B,EACT;EAAA,IAAAC,aAAA;EACpB,IAAMC,YAAgC,IAAAD,aAAA,WAAAE,gBAAA,aAAAF,aAAA,EACnCpB,SAAS,CAACO,SAAS,EAAGY,oBAAoB,GACvCV,sBAAsB,CAACE,QAAQ,GAC/BF,sBAAsB,CAACC,WAAW,OAAAY,gBAAA,aAAAF,aAAA,EAErCpB,SAAS,CAACK,aAAa,EAAGc,oBAAoB,GAC3CV,sBAAsB,CAACE,QAAQ,GAC/BF,sBAAsB,CAACG,KAAK,OAAAU,gBAAA,aAAAF,aAAA,EAC/BpB,SAAS,CAACI,aAAa,EAAGK,sBAAsB,CAACL,aAAa,OAAAkB,gBAAA,aAAAF,aAAA,EAC9DpB,SAAS,CAACM,QAAQ,EAAGG,sBAAsB,CAACE,QAAQ,OAAAW,gBAAA,aAAAF,aAAA,EACpDpB,SAAS,CAACG,QAAQ,EAAGM,sBAAsB,CAACE,QAAQ,GAAAS,aAAA,CACtD;EAED,OAAOC,YAAY,CAACH,SAAS,CAAC;AAChC,CAAC;AAACV,OAAA,CAAAS,4BAAA,GAAAA,4BAAA;AAOK,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAG3BC,OAAyE,EACtE;EAEH,IAAMC,OAAO,GAAG,gDAAgD;EAChE,OAAOD,OAAO,CAACE,IAAI,KAAK,OAAO,IAAIF,OAAO,CAACG,IAAI,IAAIF,OAAO,CAACG,IAAI,CAACJ,OAAO,CAACG,IAAI,CAAC;AAC/E,CAAC;AAACnB,OAAA,CAAAe,gBAAA,GAAAA,gBAAA;AAOK,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAG3BL,OAAwC;EAAA,OACrCA,OAAO,CAACE,IAAI,KAAK,OAAO,IAAIF,OAAO,CAACM,kBAAkB,KAAKC,SAAS;AAAA;AAACvB,OAAA,CAAAqB,gBAAA,GAAAA,gBAAA;AAE1E,IAAMG,mCAAmC,GAAG,EAAE;AAC9C,IAAMC,8BAA8B,GAAG;EACrCC,OAAO,EAAE,CAAC,CAAC;EACXC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAGlBC,IAAoD;EAAA,OAEnDA,IAAI,KAA4CP,SAAS;AAAA;AAE5D,IAAMQ,WAAW,GAAG,SAAdA,WAAWA,CAGfC,OAAoC;EAAA,IAAAC,kBAAA;EAAA,OACjC,EAAAA,kBAAA,GAAAD,OAAO,CAACE,SAAS,CAAC,CAAC,qBAAnBD,kBAAA,CAAqBE,QAAQ,KAAI,EAAE;AAAA;AAExC,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAGdJ,OAAoC,EACjC;EACH,IAAMK,OAAO,GAAGL,OAAO,CAACM,KAAK,CAACD,OAAO;EAErC,OAAO5C,MAAM,CAAC8C,MAAM,CAACF,OAAO,CAAC,CAACG,MAAM,GAE9B/C,MAAM,CAAC8C,MAAM,CAACF,OAAO,CAAC,CAACI,MAAM,CAAC,UAACC,MAAM;IAAA,OAAKA,MAAM,CAACZ,IAAI;EAAA,EAAC,CAGtDa,GAAG,CAAC,UAACD,MAAM;IAAA,OAAKA,MAAM,CAACZ,IAAI;EAAA,EAAC,GAC9B,EAAE;AACR,CAAC;AAED,IAAMc,WAAW,GAAG,SAAdA,WAAWA,CAGfZ,OAAoC,EACjC;EACH,IAAMa,QAAQ,GAAGb,OAAO,CAACM,KAAK,CAACO,QAAQ;EACvC,OAAOpD,MAAM,CAAC8C,MAAM,CAACM,QAAQ,CAAC,CAACL,MAAM,OAAAM,mBAAA,aAAOrD,MAAM,CAAC8C,MAAM,CAACM,QAAQ,CAAC,IAAI,EAAE;AAC3E,CAAC;AAED,IAAME,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAGzBf,OAAoC,EACjC;EACH,IAAMgB,KAAK,MAAAC,MAAA,KAAAH,mBAAA,aAAOV,UAAU,CAACJ,OAAO,CAAC,OAAAc,mBAAA,aAAKF,WAAW,CAACZ,OAAO,CAAC,EAAC;EAE/D,OAAOvC,MAAM,CAAC8C,MAAM,CAClBS,KAAK,CAACE,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;IACzB,IAAI,CAACD,GAAG,CAACC,GAAG,CAACC,EAAE,CAAC,EAAE;MAChBF,GAAG,CAACC,GAAG,CAACC,EAAE,CAAC,GAAGD,GAAG;IACnB;IAEA,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAA0D,CAChE,CAAC;AACH,CAAC;AAED,IAAMG,YAAY;EAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAGnB3B,OAAoC,EACpC4B,KAAiD,EACjDC,OAA+D;IAAA,IAAAlC,OAAA;MAAAmC,cAAA;MAAAC,KAAA;MAAAC,QAAA;MAAAC,MAAA;MAAAC,KAAA,GAAAC,SAAA;IAAA,OAAAV,YAAA,YAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC/D7C,OAEC,GAAAuC,KAAA,CAAA1B,MAAA,QAAA0B,KAAA,QAAA3C,SAAA,GAAA2C,KAAA,MAAG,CAAC,CAAC;UAAAJ,cAAA,GAEkDnC,OAAO,CAAvDoC,KAAK,EAALA,KAAK,GAAAD,cAAA,cAAGtC,mCAAmC,GAAAsC,cAAA;UAAA,MAE/C,OAAOF,KAAK,KAAK,QAAQ;YAAAU,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACFxC,OAAO,CAAwBsB,YAAY,CAClE;YACEmB,IAAI,EAAE;cAAEC,aAAa,EAAEd;YAAM;UAC/B,CAAC,EACD,CAAC,CAAC,EACF;YAAEG,KAAK,EAALA;UAAM,CACV,CAAC;QAAA;UANKC,QAAQ,GAAAM,QAAA,CAAAK,IAAA;UAQR3B,MAA2C,GAAG,EAAE;UACtDgB,QAAQ,CAAC3B,OAAO,CAACuC,OAAO,CAAC,UAAClC,MAAM;YAAA,OAAKb,cAAc,CAACa,MAAM,CAACZ,IAAI,CAAC,IAAIkB,MAAK,CAAC6B,IAAI,CAACnC,MAAM,CAACZ,IAAI,CAAC;UAAA,EAAC;UAC5F,IAAI+B,OAAO,IAAIb,MAAK,EAAE;YACpBa,OAAO,CAACb,MAAK,CAAC;UAChB;QAAC;QAAA;UAAA,OAAAsB,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAnB,OAAA;EAAA,CAEJ;EAAA,gBA3BKL,YAAYA,CAAAyB,EAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAA1B,IAAA,CAAA2B,KAAA,OAAAf,SAAA;EAAA;AAAA,GA2BjB;AAEM,IAAMgB,qBAAqB,GAAG,IAAAC,oBAAQ,EAAC9B,YAAY,EAAE,GAAG,EAAE;EAC/D+B,OAAO,EAAE,KAAK;EACdC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAACtF,OAAA,CAAAmF,qBAAA,GAAAA,qBAAA;AAEH,IAAMI,UAAU;EAAA,IAAAC,KAAA,OAAAhC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA+B,SAGjBC,MAAsC,EACtC9B,KAAiD,EACjDC,OAA+D;IAAA,IAAAlC,OAAA;MAAAgE,eAAA;MAAA5B,KAAA;MAAA6B,qBAAA;MAAAC,uBAAA;MAAAnE,OAAA;MAAAsC,QAAA;MAAA8B,OAAA;MAAAC,MAAA,GAAA5B,SAAA;IAAA,OAAAV,YAAA,YAAAW,IAAA,UAAA4B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA1B,IAAA,GAAA0B,SAAA,CAAAzB,IAAA;QAAA;UAC/D7C,OAGC,GAAAoE,MAAA,CAAAvD,MAAA,QAAAuD,MAAA,QAAAxE,SAAA,GAAAwE,MAAA,MAAG,CAAC,CAAC;UAAA,MAEF,OAAOnC,KAAK,KAAK,QAAQ;YAAAqC,SAAA,CAAAzB,IAAA;YAAA;UAAA;UAAAmB,eAAA,GAIvBhE,OAAO,CAFToC,KAAK,EAALA,KAAK,GAAA4B,eAAA,cAAGnE,mCAAmC,GAAAmE,eAAA,EAAAC,qBAAA,GAEzCjE,OAAO,CADTkE,uBAAuB,EAAvBA,uBAAuB,GAAAD,qBAAA,cAAGnE,8BAA8B,GAAAmE,qBAAA;UAEpDlE,OAAO,OAAAwE,SAAA;YACX7C,EAAE,EAAE;cAAE8C,GAAG,EAAET,MAAM,CAACU;YAAO;UAAC,GACvBP,uBAAuB,oBAAvBA,uBAAuB,CAAEnE,OAAO;UAGrC,IAAIkC,KAAK,EAAE;YAETlC,OAAO,CAAC2E,GAAG,GAAG,CAAC;cAAEhD,EAAE,EAAE;gBAAEqB,aAAa,EAAEd;cAAM;YAAE,CAAC,EAAE;cAAEa,IAAI,EAAE;gBAAEC,aAAa,EAAEd;cAAM;YAAE,CAAC,CAAC;UACtF;UAACqC,SAAA,CAAAzB,IAAA;UAAA,OAEsBkB,MAAM,CAACH,UAAU,CAEtC7D,OAAO,MAAAwE,SAAA;YACL7C,EAAE,EAAE;UAAC,GAAKwC,uBAAuB,oBAAvBA,uBAAuB,CAAEjE,IAAI,OAAAsE,SAAA;YACvCnC,KAAK,EAALA;UAAK,GAAK8B,uBAAuB,oBAAvBA,uBAAuB,CAAElE,OAAO,CAC9C,CAAC;QAAA;UALKqC,QAAQ,GAAAiC,SAAA,CAAAtB,IAAA;UAMR3B,OAA2C,GAAG,EAAE;UACtDgB,QAAQ,CAAChB,KAAK,CAAC4B,OAAO,CAAC,UAAC9C,IAAI;YAAA,OAAKD,cAAc,CAACC,IAAI,CAAC,IAAIkB,OAAK,CAAC6B,IAAI,CAAC/C,IAAI,CAAC;UAAA,EAAC;UAC1E,IAAI+B,OAAO,IAAIb,OAAK,EAAE;YACpBa,OAAO,CAACb,OAAK,CAAC;UAChB;QAAC;QAAA;UAAA,OAAAiD,SAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAW,QAAA;EAAA,CAEJ;EAAA,gBAtCKF,UAAUA,CAAAe,GAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAhB,KAAA,CAAAN,KAAA,OAAAf,SAAA;EAAA;AAAA,GAsCf;AAEM,IAAMsC,mBAAmB,GAAG,IAAArB,oBAAQ,EAACG,UAAU,EAAE,GAAG,EAAE;EAC3DF,OAAO,EAAE,KAAK;EACdC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAACtF,OAAA,CAAAyG,mBAAA,GAAAA,mBAAA;AAEI,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAgB;EAAA,OAAqBA,OAAO,KAAK,GAAG;AAAA;AAAC3G,OAAA,CAAA0G,gBAAA,GAAAA,gBAAA;AAE/E,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAID,OAAgB;EAAA,OAAqBA,OAAO,KAAK,GAAG;AAAA;AAAC3G,OAAA,CAAA4G,cAAA,GAAAA,cAAA;AAE7E,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIF,OAAgB;EAAA,OAAqBA,OAAO,KAAK,GAAG;AAAA;AAAC3G,OAAA,CAAA6G,gBAAA,GAAAA,gBAAA;AAyG/E,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,KAAA;EAAA,IAG7B/E,OAAO,GAAA+E,KAAA,CAAP/E,OAAO;IACP0D,MAAM,GAAAqB,KAAA,CAANrB,MAAM;IACNsB,mBAAmB,GAAAD,KAAA,CAAnBC,mBAAmB;EAAA,OACqE;IACxF,GAAG,EAAE;MACHC,YAAY,EAAE,SAAAA,aAACrD,KAAK,EAAEzC,IAAI,EAAE0C,OAAO,EAAmB;QAAA,IAAjBlC,OAAO,GAAAwC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAA5C,SAAA,GAAA4C,SAAA,MAAG,CAAC,CAAC;QAC/C,IAAIhD,IAAI,CAAC+F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;QAEtC,IAAAC,eAAA,GAAwDxF,OAAO,CAAvDoC,KAAK;UAALA,KAAK,GAAAoD,eAAA,cAAG3F,mCAAmC,GAAA2F,eAAA;QACnD,IAAMC,gBAAgB,GAAG,CAACxD,KAAK,GAC3B7B,WAAW,CAACC,OAAO,CAAC,GACpBD,WAAW,CAACC,OAAO,CAAC,CAACS,MAAM,CAAC,UAAC4E,OAAO;UAAA,IAAAC,aAAA;UAAA,OAAK1D,KAAK,IAAI,EAAA0D,aAAA,GAAAD,OAAO,CAAC5C,IAAI,qBAAZ6C,aAAA,CAAcJ,OAAO,CAACtD,KAAK,CAAC,MAAK,CAAC,CAAC;QAAA,EAAC;QAG1FwD,gBAAgB,CAACxF,IAAI,CAAC,UAAC2F,CAAC,EAAEC,CAAC,EAAK;UAAA,IAAAC,OAAA,EAAAC,OAAA;UAC9B,IAAIC,KAAK,GAAG,EAAAF,OAAA,GAAAF,CAAC,CAAC9C,IAAI,qBAANgD,OAAA,CAAQG,WAAW,CAAC,CAAC,KAAI,EAAE;UACvC,IAAIC,KAAK,GAAG,EAAAH,OAAA,GAAAF,CAAC,CAAC/C,IAAI,qBAANiD,OAAA,CAAQE,WAAW,CAAC,CAAC,KAAI,EAAE;UACvC,IAAIhE,KAAK,IAAI+D,KAAK,CAACT,OAAO,CAACtD,KAAK,CAAC,KAAK,CAAC,EAAE;YACvC+D,KAAK,SAAOA,KAAO;UACrB;UACA,IAAI/D,KAAK,IAAIiE,KAAK,CAACX,OAAO,CAACtD,KAAK,CAAC,KAAK,CAAC,EAAE;YACvCiE,KAAK,SAAOA,KAAO;UACrB;UACA,IAAIF,KAAK,GAAGE,KAAK,EAAE,OAAO,CAAC,CAAC;UAC5B,IAAIF,KAAK,GAAGE,KAAK,EAAE,OAAO,CAAC;UAE3B,OAAO,CAAC;QACV,CAAC,CAAC;QAEF,IAAMC,MAAM,GAAGV,gBAAgB,CAACW,KAAK,CAAC,CAAC,EAAEhE,KAAK,CAAC;QAE/C,IAAIF,OAAO,EAAE;UACXA,OAAO,CAACiE,MAAM,EAAElE,KAAK,CAAC;QACxB;QAEA,OAAOkE,MAAM;MACf,CAAC;MACDE,MAAM,EAAE,SAAAA,OAACC,MAAM;QAAA,OAAM;UACnBC,aAAa,EAAE,MAAM;UACrBC,GAAG,OAAKF,MAAM,CAACxD,IAAM;UACrBtD,IAAI,QAAM8G,MAAM,CAACxD;QACnB,CAAC;MAAA,CAAC;MACFvD,IAAI,EAAE;IACR,CAAC;IACD,GAAG,EAAE;MACH+F,YAAY,EAAE,SAAAA,aAACrD,KAAK,EAAEwE,CAAC,EAAEvE,OAAO,EAAK;QACnC,IAAI,CAACD,KAAK,EAAE,OAAO,EAAE;QAErB,IAAMkE,MAAM,GAAGO,wBAAc,CAACC,UAAU,CAACpF,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;UAC5D,IAAID,GAAG,CAACX,MAAM,IAAI,EAAE,EAAE,OAAOW,GAAG;UAEhC,IAAIC,GAAG,CAACmF,KAAK,CAACC,IAAI,CAAC,UAAC/D,IAAI;YAAA,OAAKA,IAAI,CAACgE,QAAQ,CAAC7E,KAAK,CAAC;UAAA,EAAC,EAAE;YAClD,IAAM8E,KAAK,GAAGL,wBAAc,CAACM,QAAQ,CAACvF,GAAG,CAACqB,IAAI,CAAC;YAE/C,IAAIiE,KAAK,YAALA,KAAK,CAAEE,eAAe,EAAE;cAC1BzF,GAAG,CAAC0B,IAAI,KAAAqB,SAAA,iBACHwC,KAAK;gBACRjE,IAAI,EAAKiE,KAAK,CAACjE,IAAI,YAAS;gBAC5BmE,eAAe,EAAErH;cAAS,EAC3B,CAAC;cACFmH,KAAK,CAACE,eAAe,CAAChE,OAAO,CAAC,UAACiE,IAAI,EAAEC,KAAK;gBAAA,OACxC3F,GAAG,CAAC0B,IAAI,KAAAqB,SAAA,iBACHwC,KAAK;kBACRjE,IAAI,EAAKiE,KAAK,CAACjE,IAAI,eAASqE,KAAK,GAAG,CAAC,CAAE;kBACvCF,eAAe,EAAErH,SAAS;kBAC1BwH,OAAO,EAAEF;gBAAI,EACd,CAAC;cAAA,CACJ,CAAC;YACH,CAAC,MAAM,IAAIH,KAAK,EAAE;cAChBvF,GAAG,CAAC0B,IAAI,CAAC6D,KAAK,CAAC;YACjB;UACF;UAEA,OAAOvF,GAAG;QACZ,CAAC,EAAE,EAAa,CAAC;QAEjB,IAAIU,OAAO,EAAE;UACXA,OAAO,CAACiE,MAAM,EAAElE,KAAK,CAAC;QACxB;QAEA,OAAOkE,MAAM;MACf,CAAC;MACDE,MAAM,EAAE,SAAAA,OAACC,MAAM;QAAA,OAAM;UACnBC,aAAa,EAAE,MAAM;UACrBC,GAAG,EAAEF,MAAM,CAACxD,IAAI;UAChBtD,IAAI,EAAE8G,MAAM,CAACc;QACf,CAAC;MAAA,CAAC;MACF7H,IAAI,EAAE;IACR,CAAC;IACD,GAAG,EAAE;MACH8H,QAAQ,EAAE,SAAAA,SAACC,IAAI,EAAK;QAClBjC,mBAAmB,CAACiC,IAAI,CAAC;MAC3B,CAAC;MACDhC,YAAY,EAAE,SAAAA,aACZrD,KAAK,EACLwE,CAAC,EACDvE,OAAO,EAMJ;QAAA,IALHlC,OAAO,GAAAwC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAA5C,SAAA,GAAA4C,SAAA,MAAG;UACRJ,KAAK,EAAEvC,mCAAmC;UAC1C0H,yBAAyB,EAAE,KAAK;UAChCrD,uBAAuB,EAAEpE;QAC3B,CAAC;QAED,IAAIE,OAAO,YAAPA,OAAO,CAAEuH,yBAAyB,EAAE;UACtC,OAAQzC,mBAAmB,CACzBf,MAAM,EACN9B,KAAK,EACL,UAACuF,IAAI,EAAK;YACR,IAAItF,OAAO,EAAE;cACXA,OAAO,CAACsF,IAAI,EAAEvF,KAAK,CAAC;YACtB;UACF,CAAC,EACD;YACEG,KAAK,EAAEpC,OAAO,CAACoC,KAAK;YACpB8B,uBAAuB,EAAElE,OAAO,CAACkE;UACnC,CACF,CAAC;QACH;QAQA,IAAI,CAACjC,KAAK,IAAInE,MAAM,CAAC8C,MAAM,CAACP,OAAO,CAACM,KAAK,CAACD,OAAO,CAAC,CAACG,MAAM,GAAG,GAAG,EAAE;UAC/D,IAAMQ,OAAK,GAAGD,qBAAqB,CAACf,OAAO,CAAC;UAE5C,IAAMoH,aAAa,GAAGpG,OAAK,CAACP,MAAM,CAAC,UAACX,IAAI,EAAK;YAAA,IAAAuH,UAAA;YAC3C,IAAI,CAACzF,KAAK,EAAE,OAAO,IAAI;YACvB,IAAI,EAAAyF,UAAA,GAAAvH,IAAI,CAAC2C,IAAI,qBAAT4E,UAAA,CAAWzB,WAAW,CAAC,CAAC,CAACV,OAAO,CAACtD,KAAK,CAACgE,WAAW,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,EAAE;cAChE,OAAO,IAAI;YACb;YACA,IAAI9F,IAAI,CAACuB,EAAE,CAACuE,WAAW,CAAC,CAAC,CAACV,OAAO,CAACtD,KAAK,CAACgE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;cAC7D,OAAO,IAAI;YACb;YACA,OAAO,KAAK;UACd,CAAC,CAAC;UAEF,IAAMuB,KAAI,GAAGC,aAAa,CAACrB,KAAK,CAAC,CAAC,EAAEpG,OAAO,oBAAPA,OAAO,CAAEoC,KAAK,CAAC;UAEnD,IAAIF,OAAO,EAAE;YACXA,OAAO,CAACsF,KAAI,EAAEvF,KAAK,CAAC;UACtB;UAEA,OAAOuF,KAAI;QACb;QAEA,OAAQhE,qBAAqB,CAC3BnD,OAAO,EACP4B,KAAK,EACL,UAACuF,IAAI,EAAK;UACR,IAAItF,OAAO,EAAE;YACXA,OAAO,CAACsF,IAAI,EAAEvF,KAAK,CAAC;UACtB;QACF,CAAC,EACD;UACEG,KAAK,EAAEpC,OAAO,CAACoC;QACjB,CACF,CAAC;MACH,CAAC;MACDiE,MAAM,EAAE,SAAAA,OAACC,MAAM;QAAA,OAAM;UACnBC,aAAa,EAAE,MAAM;UACrBC,GAAG,EAAEF,MAAM,CAAC5E,EAAE;UACdlC,IAAI,SAAM8G,MAAM,CAACxD,IAAI,IAAIwD,MAAM,CAAC5E,EAAE;QACpC,CAAC;MAAA,CAAC;MACFnC,IAAI,EAAE;IACR;EACF,CAAC;AAAA,CAAC;AAAClB,OAAA,CAAA8G,kBAAA,GAAAA,kBAAA;AAEI,IAAMwC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,GAAW;EAAA,OAChD,CAACA,GAAG,CAACrC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAYqC,GAAG,GAAKA,GAAG,EAAEC,IAAI,CAAC,CAAC;AAAA;AAACxJ,OAAA,CAAAsJ,sBAAA,GAAAA,sBAAA;AAEnD,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIF,GAAY,EAAK;EACnD,IAAI,CAACA,GAAG,EAAE,OAAOA,GAAG;EAEpB,IAAMG,eAAe,GAAGH,GAAG,CAACrC,OAAO,CAAC,GAAG,CAAC;EACxC,IAAIwC,eAAe,KAAK,CAAC,CAAC,EAAE,OAAOH,GAAG;EAEtC,OAAOA,GAAG,CAACI,SAAS,CAAC,CAAC,EAAEJ,GAAG,CAACrC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAAClH,OAAA,CAAAyJ,mBAAA,GAAAA,mBAAA;AAEK,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAAIL,GAAW;EAAA,OAAKA,GAAG,CAACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAAA;AAAClH,OAAA,CAAA4J,UAAA,GAAAA,UAAA;AAE9D,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA;EAAA,IAAItC,CAAC,GAAApD,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAA5C,SAAA,GAAA4C,SAAA,MAAG,EAAE;EAAA,OACrCoD,CAAC,GAEG,CAAC,CAACuC,MAAM,CAACvC,CAAC,CAAC,GAAIwC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAG,KAAMF,MAAM,CAACvC,CAAC,CAAC,GAAG,CAAE,EAAE0C,QAAQ,CAAC,EAAE,CAAC,GACpE,CAAG,GAAG,SAAI,GAAG,SAAI,GAAG,SAAI,GAAG,SAAI,IAAI,EAAGC,OAAO,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;AAAA;AAAC7J,OAAA,CAAA6J,gBAAA,GAAAA,gBAAA;AAKzE,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,CAAIhJ,IAAY,EAAK;EAC7C,IAAI;IAEF,IAAMiJ,eAAe,GAAG,IAAAtH,mBAAA,aAAI3B,IAAI,CAACkJ,QAAQ,CAAC,IAAAC,sBAAU,EAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,EAAE,CAAC;IAEjE,IAAMC,wBAAwB,GAAGrJ,IAAI,CAACsJ,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAE3D,OACEL,eAAe,CAAC5H,MAAM,KAAK,CAAC,IAAI4H,eAAe,CAAC5H,MAAM,KAAKgI,wBAAwB,CAAChI,MAAM;EAE9F,CAAC,CAAC,OAAOkI,CAAC,EAAE;IACV,OAAO,KAAK;EACd;AACF,CAAC;AAAC1K,OAAA,CAAAmK,aAAA,GAAAA,aAAA;AAOF,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,KAAA;EAAA,IAGpBC,UAAU,GAAAD,KAAA,CAAVC,UAAU;IACVC,gBAAgB,GAAAF,KAAA,CAAhBE,gBAAgB;IAChBC,WAAW,GAAAH,KAAA,CAAXG,WAAW;IACXC,MAAM,GAAAJ,KAAA,CAANI,MAAM;IACN9J,IAAI,GAAA0J,KAAA,CAAJ1J,IAAI;IACJ+J,UAAU,GAAAL,KAAA,CAAVK,UAAU;EAAA,YAEP/J,IAAI,GAAG2J,UAAU,IAClBC,gBAAgB,GAAGA,gBAAgB,CAACnI,GAAG,CAAC,UAAAuI,KAAA;IAAA,IAAGhK,IAAI,GAAAgK,KAAA,CAAJhK,IAAI;IAAA,OAAOA,IAAI;EAAA,EAAC,CAACqJ,IAAI,CAAC,CAAC,GAAG,EAAE,IACtEQ,WAAW,GAAGC,MAAM,IAAG,CAAAC,UAAU,oBAAVA,UAAU,CAAEE,WAAW,oBAAvBF,UAAU,CAAEE,WAAW,CAAG,CAAC,KAAIF,UAAU;AAAA,CAAE;AAOhE,IAAMG,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAGjCC,QAAqD;EAAA,OAC1CA,QAAQ,CAAC1I,GAAG,CAACgI,gBAAgB,CAAC,CAACJ,IAAI,CAAC,CAAC;AAAA;AAACvK,OAAA,CAAAoL,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_emojiRegex","_interopRequireDefault","require","_debounce","_emojiData","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","FileState","freeze","FINISHED","NOT_SUPPORTED","UPLOAD_FAILED","UPLOADED","UPLOADING","exports","ProgressIndicatorTypes","IN_PROGRESS","INACTIVE","RETRY","MessageStatusTypes","FAILED","RECEIVED","SENDING","getIndicatorTypeForFileState","fileState","enableOfflineSupport","_indicatorMap","indicatorMap","_defineProperty2","isBlockedMessage","message","pattern","type","text","isBouncedMessage","moderation_details","undefined","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","getCommands","channel","_channel$getConfig","getConfig","commands","getMembers","members","state","values","filter","member","map","getWatchers","watchers","_toConsumableArray2","getMembersAndWatchers","users","concat","reduce","acc","cur","id","queryMembers","_ref","_asyncToGenerator2","_regenerator","mark","_callee","query","onReady","_options$limit","limit","response","_users","_args","arguments","wrap","_callee$","_context","prev","$autocomplete","sent","forEach","push","stop","_x","_x2","_x3","apply","queryMembersDebounced","debounce","leading","trailing","queryUsers","_ref2","_callee2","client","_options$limit2","_options$mentionAllAp","mentionAllAppUsersQuery","_users2","_args2","_callee2$","_context2","_extends2","$ne","userID","$or","_x4","_x5","_x6","queryUsersDebounced","isCommandTrigger","trigger","isEmojiTrigger","isMentionTrigger","defaultEmojiSearchIndex","search","results","_loop","emoji","v","names","some","includes","skins","tone","index","unicode","_iterator","compiledEmojis","_step","_ret","_typeof2","ACITriggerSettings","_ref3","emojiSearchIndex","onMentionSelectItem","dataProvider","indexOf","_options$limit3","selectedCommands","command","_command$name","a","b","_a$name","_b$name","nameA","toLowerCase","nameB","result","output","entity","caretPosition","key","_dataProvider","_callee3","_","_yield$emojiSearchInd","emojis","_callee3$","_context3","abrupt","t0","t1","_x7","_x8","_x9","callback","item","mentionAllAppUsersEnabled","data","matchingUsers","_user$name","makeImageCompatibleUrl","url","trim","getUrlWithoutParams","indexOfQuestion","substring","isLocalUrl","generateRandomId","Number","Math","random","replace","hasOnlyEmojis","emojiOnlyString","matchAll","EmojiRegex","join","originalTextWithNoSpaces","replaceAll","e","stringifyMessage","_ref4","deleted_at","latest_reactions","reply_count","status","updated_at","_ref5","toISOString","reduceMessagesToString","messages"],"sources":["utils.ts"],"sourcesContent":["import type React from 'react';\n\nimport EmojiRegex from 'emoji-regex';\nimport type { DebouncedFunc } from 'lodash';\nimport debounce from 'lodash/debounce';\nimport type {\n Channel,\n ChannelMemberAPIResponse,\n ChannelMemberResponse,\n CommandResponse,\n FormatMessageResponse,\n StreamChat,\n UserResponse,\n} from 'stream-chat';\n\nimport type { MessageType } from '../components/MessageList/hooks/useMessageList';\nimport type {\n EmojiSearchIndex,\n MentionAllAppUsersQuery,\n} from '../contexts/messageInputContext/MessageInputContext';\nimport type {\n SuggestionCommand,\n SuggestionComponentType,\n SuggestionUser,\n} from '../contexts/suggestionsContext/SuggestionsContext';\nimport { compiledEmojis, Emoji } from '../emoji-data';\nimport type { IconProps } from '../icons/utils/base';\nimport type { TableRowJoinedUser } from '../store/types';\nimport type { DefaultStreamChatGenerics, ValueOf } from '../types/types';\n\nexport type ReactionData = {\n Icon: React.FC<IconProps>;\n type: string;\n};\n\nexport const FileState = Object.freeze({\n // finished and uploaded state are the same thing. First is set on frontend,\n // while later is set on backend side\n // TODO: Unify both of them\n FINISHED: 'finished',\n NOT_SUPPORTED: 'not_supported',\n UPLOAD_FAILED: 'upload_failed',\n UPLOADED: 'uploaded',\n UPLOADING: 'uploading',\n});\n\nexport const ProgressIndicatorTypes: {\n IN_PROGRESS: 'in_progress';\n INACTIVE: 'inactive';\n NOT_SUPPORTED: 'not_supported';\n RETRY: 'retry';\n} = Object.freeze({\n IN_PROGRESS: 'in_progress',\n INACTIVE: 'inactive',\n NOT_SUPPORTED: 'not_supported',\n RETRY: 'retry',\n});\n\nexport const MessageStatusTypes = {\n FAILED: 'failed',\n RECEIVED: 'received',\n SENDING: 'sending',\n};\n\nexport type FileStateValue = typeof FileState[keyof typeof FileState];\n\ntype Progress = ValueOf<typeof ProgressIndicatorTypes>;\ntype IndicatorStatesMap = Record<ValueOf<typeof FileState>, Progress | null>;\n\nexport const getIndicatorTypeForFileState = (\n fileState: FileStateValue,\n enableOfflineSupport: boolean,\n): Progress | null => {\n const indicatorMap: IndicatorStatesMap = {\n [FileState.UPLOADING]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.IN_PROGRESS,\n // If offline support is disabled, then there is no need\n [FileState.UPLOAD_FAILED]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.RETRY,\n [FileState.NOT_SUPPORTED]: ProgressIndicatorTypes.NOT_SUPPORTED,\n [FileState.UPLOADED]: ProgressIndicatorTypes.INACTIVE,\n [FileState.FINISHED]: ProgressIndicatorTypes.INACTIVE,\n };\n\n return indicatorMap[fileState];\n};\n\n/**\n * Utility to check if the message is a Blocked message.\n * @param message\n * @returns boolean\n */\nexport const isBlockedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics> | TableRowJoinedUser<'messages'>,\n) => {\n // The only indicator for the blocked message is its message type is error and that the message text contains \"Message was blocked by moderation policies\".\n const pattern = /\\bMessage was blocked by moderation policies\\b/;\n return message.type === 'error' && message.text && pattern.test(message.text);\n};\n\n/**\n * Utility to check if the message is a Bounced message.\n * @param message\n * @returns boolean\n */\nexport const isBouncedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => message.type === 'error' && message.moderation_details !== undefined;\n\nconst defaultAutoCompleteSuggestionsLimit = 10;\nconst defaultMentionAllAppUsersQuery = {\n filters: {},\n options: {},\n sort: {},\n};\n\nconst isUserResponse = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n user: SuggestionUser<StreamChatGenerics> | undefined,\n): user is SuggestionUser<StreamChatGenerics> =>\n (user as SuggestionUser<StreamChatGenerics>) !== undefined;\n\nconst getCommands = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => channel.getConfig()?.commands || [];\n\nconst getMembers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const members = channel.state.members;\n\n return Object.values(members).length\n ? (\n Object.values(members).filter((member) => member.user) as Array<\n ChannelMemberResponse<StreamChatGenerics> & { user: UserResponse<StreamChatGenerics> }\n >\n ).map((member) => member.user)\n : [];\n};\n\nconst getWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const watchers = channel.state.watchers;\n return Object.values(watchers).length ? [...Object.values(watchers)] : [];\n};\n\nconst getMembersAndWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const users = [...getMembers(channel), ...getWatchers(channel)];\n\n return Object.values(\n users.reduce((acc, cur) => {\n if (!acc[cur.id]) {\n acc[cur.id] = cur;\n }\n\n return acc;\n }, {} as { [key: string]: SuggestionUser<StreamChatGenerics> }),\n );\n};\n\nconst queryMembers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n } = {},\n): Promise<void> => {\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n\n if (typeof query === 'string') {\n const response = (await (channel as unknown as Channel).queryMembers(\n {\n name: { $autocomplete: query },\n },\n {},\n { limit },\n )) as ChannelMemberAPIResponse<StreamChatGenerics>;\n\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.members.forEach((member) => isUserResponse(member.user) && users.push(member.user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryMembersDebounced = debounce(queryMembers, 200, {\n leading: false,\n trailing: true,\n});\n\nconst queryUsers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n } = {},\n): Promise<void> => {\n if (typeof query === 'string') {\n const {\n limit = defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersQuery = defaultMentionAllAppUsersQuery,\n } = options;\n const filters = {\n id: { $ne: client.userID },\n ...mentionAllAppUsersQuery?.filters,\n };\n\n if (query) {\n // @ts-ignore\n filters.$or = [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }];\n }\n\n const response = await client.queryUsers(\n // @ts-ignore\n filters,\n { id: 1, ...mentionAllAppUsersQuery?.sort },\n { limit, ...mentionAllAppUsersQuery?.options },\n );\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.users.forEach((user) => isUserResponse(user) && users.push(user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryUsersDebounced = debounce(queryUsers, 200, {\n leading: false,\n trailing: true,\n});\n\nexport const isCommandTrigger = (trigger: Trigger): trigger is '/' => trigger === '/';\n\nexport const isEmojiTrigger = (trigger: Trigger): trigger is ':' => trigger === ':';\n\nexport const isMentionTrigger = (trigger: Trigger): trigger is '@' => trigger === '@';\n\nexport type Trigger = '/' | '@' | ':';\n\nexport type TriggerSettings<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n '/'?: {\n dataProvider: (\n query: CommandResponse<StreamChatGenerics>['name'],\n text: string,\n onReady?: (\n data: CommandResponse<StreamChatGenerics>[],\n q: CommandResponse<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n },\n ) => SuggestionCommand<StreamChatGenerics>[];\n output: (entity: CommandResponse<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n ':'?: {\n dataProvider: (\n query: Emoji['name'],\n _: string,\n onReady?: (data: Emoji[], q: Emoji['name']) => void,\n ) => Emoji[] | Promise<Emoji[]>;\n output: (entity: Emoji) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n '@'?: {\n callback: (item: SuggestionUser<StreamChatGenerics>) => void;\n dataProvider: (\n query: SuggestionUser<StreamChatGenerics>['name'],\n _: string,\n onReady?: (\n data: SuggestionUser<StreamChatGenerics>[],\n q: SuggestionUser<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersEnabled?: boolean;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n ) => SuggestionUser<StreamChatGenerics>[] | Promise<void> | void;\n output: (entity: SuggestionUser<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n};\n\nexport type ACITriggerSettingsParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n channel: Channel<StreamChatGenerics>;\n client: StreamChat<StreamChatGenerics>;\n onMentionSelectItem: (item: SuggestionUser<StreamChatGenerics>) => void;\n emojiSearchIndex?: EmojiSearchIndex;\n};\n\nexport type QueryUsersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n) => Promise<void>;\n\nexport type QueryMembersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n },\n) => Promise<void>;\n\n/**\n * Default emoji search index for auto complete text input\n */\nexport const defaultEmojiSearchIndex: EmojiSearchIndex = {\n search: (query) => {\n const results = [];\n\n for (const emoji of compiledEmojis) {\n if (results.length >= 10) return results;\n if (emoji.names.some((name) => name.includes(query))) {\n // Aggregate skins as different toned emojis - if skins are present\n if (emoji.skins) {\n results.push({\n ...emoji,\n name: `${emoji.name}-tone-1`,\n skins: undefined,\n });\n emoji.skins.forEach((tone, index) =>\n results.push({\n ...emoji,\n name: `${emoji.name}-tone-${index + 2}`,\n skins: undefined,\n unicode: tone,\n }),\n );\n } else {\n results.push(emoji);\n }\n }\n }\n\n return results;\n },\n};\n\n/**\n * ACI = AutoCompleteInput\n *\n * DataProvider accepts `onReady` function, which will execute once the data is ready.\n * Another approach would have been to simply return the data from dataProvider and let the\n * component await for it and then execute the required logic. We are going for callback instead\n * of async-await since we have debounce function in dataProvider. Which will delay the execution\n * of api call on trailing end of debounce (lets call it a1) but will return with result of\n * previous call without waiting for a1. So in this case, we want to execute onReady, when trailing\n * end of debounce executes.\n */\nexport const ACITriggerSettings = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n emojiSearchIndex,\n onMentionSelectItem,\n}: ACITriggerSettingsParams<StreamChatGenerics>): TriggerSettings<StreamChatGenerics> => ({\n '/': {\n dataProvider: (query, text, onReady, options = {}) => {\n if (text.indexOf('/') !== 0) return [];\n\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n const selectedCommands = !query\n ? getCommands(channel)\n : getCommands(channel).filter((command) => query && command.name?.indexOf(query) !== -1);\n\n // sort alphabetically unless the you're matching the first char\n selectedCommands.sort((a, b) => {\n let nameA = a.name?.toLowerCase() || '';\n let nameB = b.name?.toLowerCase() || '';\n if (query && nameA.indexOf(query) === 0) {\n nameA = `0${nameA}`;\n }\n if (query && nameB.indexOf(query) === 0) {\n nameB = `0${nameB}`;\n }\n if (nameA < nameB) return -1;\n if (nameA > nameB) return 1;\n\n return 0;\n });\n\n const result = selectedCommands.slice(0, limit);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: `${entity.name}`,\n text: `/${entity.name}`,\n }),\n type: 'command',\n },\n ':': {\n dataProvider: async (query, _, onReady) => {\n if (!query) return [];\n\n const emojis = (await emojiSearchIndex?.search(query)) ?? [];\n\n if (onReady) {\n onReady(emojis, query);\n }\n\n return emojis;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.name,\n text: entity.unicode,\n }),\n type: 'emoji',\n },\n '@': {\n callback: (item) => {\n onMentionSelectItem(item);\n },\n dataProvider: (\n query,\n _,\n onReady,\n options = {\n limit: defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled: false,\n mentionAllAppUsersQuery: defaultMentionAllAppUsersQuery,\n },\n ) => {\n if (options?.mentionAllAppUsersEnabled) {\n return (queryUsersDebounced as DebouncedFunc<QueryUsersFunction<StreamChatGenerics>>)(\n client,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n mentionAllAppUsersQuery: options.mentionAllAppUsersQuery,\n },\n );\n }\n\n /**\n * By default, we return maximum 100 members via queryChannels api call.\n * Thus it is safe to assume, that if number of members in channel.state is < 100,\n * then all the members are already available on client side and we don't need to\n * make any api call to queryMembers endpoint.\n */\n if (!query || Object.values(channel.state.members).length < 100) {\n const users = getMembersAndWatchers(channel);\n\n const matchingUsers = users.filter((user) => {\n if (!query) return true;\n if (user.name?.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n if (user.id.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n return false;\n });\n\n const data = matchingUsers.slice(0, options?.limit);\n\n if (onReady) {\n onReady(data, query);\n }\n\n return data;\n }\n\n return (queryMembersDebounced as DebouncedFunc<QueryMembersFunction<StreamChatGenerics>>)(\n channel,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n },\n );\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.id,\n text: `@${entity.name || entity.id}`,\n }),\n type: 'mention',\n },\n});\n\nexport const makeImageCompatibleUrl = (url: string) =>\n (url.indexOf('//') === 0 ? `https:${url}` : url).trim();\n\nexport const getUrlWithoutParams = (url?: string) => {\n if (!url) return url;\n\n const indexOfQuestion = url.indexOf('?');\n if (indexOfQuestion === -1) return url;\n\n return url.substring(0, url.indexOf('?'));\n};\n\nexport const isLocalUrl = (url: string) => url.indexOf('http') !== 0;\n\nexport const generateRandomId = (a = ''): string =>\n a\n ? /* eslint-disable no-bitwise */\n ((Number(a) ^ (Math.random() * 16)) >> (Number(a) / 4)).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateRandomId);\n\n/*\n * Returns true if the message text only contains emojis\n */\nexport const hasOnlyEmojis = (text: string) => {\n try {\n // get all emojis in the string\n const emojiOnlyString = [...text.matchAll(EmojiRegex())].join('');\n // remove all spaces from original text\n const originalTextWithNoSpaces = text.replaceAll(/\\s/g, '');\n // check if both are the same\n return (\n emojiOnlyString.length !== 0 && emojiOnlyString.length === originalTextWithNoSpaces.length\n );\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Stringifies a message object\n * @param {FormatMessageResponse<StreamChatGenerics>} message - the message object to be stringified\n * @returns {string} The stringified message\n */\nconst stringifyMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n deleted_at,\n latest_reactions,\n reply_count,\n status,\n type,\n updated_at,\n}: FormatMessageResponse<StreamChatGenerics>): string =>\n `${type}${deleted_at}${\n latest_reactions ? latest_reactions.map(({ type }) => type).join() : ''\n }${reply_count}${status}${updated_at?.toISOString?.() || updated_at}`;\n\n/**\n * Reduces a list of messages to strings that are used in useEffect & useMemo\n * @param {messages} messages - the array of messages to be compared\n * @returns {string} The mapped message string\n */\nexport const reduceMessagesToString = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n messages: FormatMessageResponse<StreamChatGenerics>[],\n): string => messages.map(stringifyMessage).join();\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.24.1-beta.1"
2
+ "version": "5.25.0-beta.2"
3
3
  }
@@ -1,6 +1,6 @@
1
1
  import type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';
2
2
  import type { DefaultStreamChatGenerics } from '../../../types/types';
3
- export declare const useCreateInputMessageInputContext: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ additionalTextInputProps, AttachButton, autoCompleteSuggestionsLimit, autoCompleteTriggerSettings, channelId, clearEditingState, clearQuotedMessageState, CommandsButton, compressImageQuality, CooldownTimer, doDocUploadRequest, doImageUploadRequest, editing, editMessage, FileUploadPreview, hasCommands, hasFilePicker, hasImagePicker, ImageUploadPreview, initialValue, Input, InputButtons, InputEditingStateHeader, InputGiphySearch, InputReplyStateHeader, maxMessageLength, maxNumberOfFiles, mentionAllAppUsersEnabled, mentionAllAppUsersQuery, MoreOptionsButton, numberOfLines, onChangeText, quotedMessage, SendButton, sendImageAsync, sendMessage, SendMessageDisallowedIndicator, setInputRef, setQuotedMessageState, ShowThreadMessageInChannelButton, UploadProgressIndicator, }: InputMessageInputContextValue<StreamChatGenerics> & {
3
+ export declare const useCreateInputMessageInputContext: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ additionalTextInputProps, AttachButton, autoCompleteSuggestionsLimit, autoCompleteTriggerSettings, channelId, clearEditingState, clearQuotedMessageState, CommandsButton, compressImageQuality, CooldownTimer, doDocUploadRequest, doImageUploadRequest, editing, editMessage, emojiSearchIndex, FileUploadPreview, hasCommands, hasFilePicker, hasImagePicker, ImageUploadPreview, initialValue, Input, InputButtons, InputEditingStateHeader, InputGiphySearch, InputReplyStateHeader, maxMessageLength, maxNumberOfFiles, mentionAllAppUsersEnabled, mentionAllAppUsersQuery, MoreOptionsButton, numberOfLines, onChangeText, quotedMessage, SendButton, sendImageAsync, sendMessage, SendMessageDisallowedIndicator, setInputRef, setQuotedMessageState, ShowThreadMessageInChannelButton, UploadProgressIndicator, }: InputMessageInputContextValue<StreamChatGenerics> & {
4
4
  /**
5
5
  * To ensure we allow re-render, when channel is changed
6
6
  */
@@ -1,7 +1,7 @@
1
1
  import type { LegacyRef } from 'react';
2
2
  import React, { PropsWithChildren } from 'react';
3
3
  import type { TextInput, TextInputProps } from 'react-native';
4
- import { Attachment, SendFileAPIResponse, StreamChat, Message as StreamMessage, UserFilters, UserOptions, UserResponse, UserSort } from 'stream-chat';
4
+ import { Attachment, Message, SendFileAPIResponse, StreamChat, Message as StreamMessage, UserFilters, UserOptions, UserResponse, UserSort } from 'stream-chat';
5
5
  import type { AttachButtonProps } from '../../components/MessageInput/AttachButton';
6
6
  import type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';
7
7
  import type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';
@@ -16,9 +16,13 @@ import type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreO
16
16
  import type { SendButtonProps } from '../../components/MessageInput/SendButton';
17
17
  import type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';
18
18
  import type { MessageType } from '../../components/MessageList/hooks/useMessageList';
19
+ import type { Emoji } from '../../emoji-data';
19
20
  import type { Asset, DefaultStreamChatGenerics, File, FileUpload, ImageUpload, UnknownType } from '../../types/types';
20
21
  import { ACITriggerSettingsParams, TriggerSettings } from '../../utils/utils';
21
22
  import { ChannelContextValue } from '../channelContext/ChannelContext';
23
+ export declare type EmojiSearchIndex = {
24
+ search: (query: string) => PromiseLike<Array<Emoji>> | Array<Emoji> | null;
25
+ };
22
26
  export declare type MentionAllAppUsersQuery<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
23
27
  filters?: UserFilters<StreamChatGenerics>;
24
28
  options?: UserOptions;
@@ -105,7 +109,7 @@ export declare type LocalMessageInputContext<StreamChatGenerics extends DefaultS
105
109
  resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;
106
110
  selectedPicker: string | undefined;
107
111
  sending: React.MutableRefObject<boolean>;
108
- sendMessage: () => Promise<void>;
112
+ sendMessage: (customMessageData?: Partial<Message<StreamChatGenerics>>) => Promise<void>;
109
113
  sendMessageAsync: (id: string) => void;
110
114
  sendThreadMessageInChannel: boolean;
111
115
  setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;
@@ -270,6 +274,10 @@ export declare type InputMessageInputContextValue<StreamChatGenerics extends Def
270
274
  * It is defined with message type if the editing state is true, else its undefined.
271
275
  */
272
276
  editing?: MessageType<StreamChatGenerics>;
277
+ /**
278
+ * Prop to override the default emoji search index in auto complete suggestion list.
279
+ */
280
+ emojiSearchIndex?: EmojiSearchIndex;
273
281
  /** Initial value to set on input */
274
282
  initialValue?: string;
275
283
  /**
@@ -324,4 +332,4 @@ export declare const useMessageInputContext: <StreamChatGenerics extends Default
324
332
  * typing is desired while using the HOC withMessageInputContext the Props for the
325
333
  * wrapped component must be provided as the first generic.
326
334
  */
327
- export declare const withMessageInputContext: <P extends UnknownType, StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(Component: React.ComponentType<P>) => React.FC<Omit<P, "numberOfLines" | "maxNumberOfFiles" | "compressImageQuality" | "setQuotedMessageState" | "AttachButton" | "clearEditingState" | "clearQuotedMessageState" | "CommandsButton" | "CooldownTimer" | "editMessage" | "FileUploadPreview" | "hasCommands" | "hasFilePicker" | "hasImagePicker" | "ImageUploadPreview" | "InputEditingStateHeader" | "InputGiphySearch" | "InputReplyStateHeader" | "MoreOptionsButton" | "quotedMessage" | "SendButton" | "sendImageAsync" | "ShowThreadMessageInChannelButton" | "UploadProgressIndicator" | "additionalTextInputProps" | "autoCompleteSuggestionsLimit" | "autoCompleteTriggerSettings" | "doDocUploadRequest" | "doImageUploadRequest" | "editing" | "initialValue" | "Input" | "InputButtons" | "maxMessageLength" | "mentionAllAppUsersEnabled" | "mentionAllAppUsersQuery" | "onChangeText" | "SendMessageDisallowedIndicator" | "setInputRef" | keyof LocalMessageInputContext<StreamChatGenerics>>>;
335
+ export declare const withMessageInputContext: <P extends UnknownType, StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(Component: React.ComponentType<P>) => React.FC<Omit<P, "numberOfLines" | "maxNumberOfFiles" | "compressImageQuality" | "setQuotedMessageState" | "AttachButton" | "clearEditingState" | "clearQuotedMessageState" | "CommandsButton" | "CooldownTimer" | "editMessage" | "FileUploadPreview" | "hasCommands" | "hasFilePicker" | "hasImagePicker" | "ImageUploadPreview" | "InputEditingStateHeader" | "InputGiphySearch" | "InputReplyStateHeader" | "MoreOptionsButton" | "quotedMessage" | "SendButton" | "sendImageAsync" | "ShowThreadMessageInChannelButton" | "UploadProgressIndicator" | "additionalTextInputProps" | "autoCompleteSuggestionsLimit" | "autoCompleteTriggerSettings" | "doDocUploadRequest" | "doImageUploadRequest" | "editing" | "emojiSearchIndex" | "initialValue" | "Input" | "InputButtons" | "maxMessageLength" | "mentionAllAppUsersEnabled" | "mentionAllAppUsersQuery" | "onChangeText" | "SendMessageDisallowedIndicator" | "setInputRef" | keyof LocalMessageInputContext<StreamChatGenerics>>>;
@@ -1,4 +1,4 @@
1
1
  import type { DefaultStreamChatGenerics } from '../../../types/types';
2
2
  import type { ThreadContextValue } from '../../threadContext/ThreadContext';
3
3
  import type { MessageInputContextValue } from '../MessageInputContext';
4
- export declare const useCreateMessageInputContext: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ additionalTextInputProps, appendText, asyncIds, asyncUploads, AttachButton, autoCompleteSuggestionsLimit, clearEditingState, clearQuotedMessageState, closeAttachmentPicker, CommandsButton, compressImageQuality, cooldownEndsAt, CooldownTimer, doDocUploadRequest, doImageUploadRequest, editing, editMessage, FileUploadPreview, fileUploads, giphyActive, hasCommands, hasFilePicker, hasImagePicker, ImageUploadPreview, imageUploads, initialValue, Input, inputBoxRef, InputButtons, InputEditingStateHeader, InputGiphySearch, InputReplyStateHeader, isValidMessage, maxMessageLength, maxNumberOfFiles, mentionAllAppUsersEnabled, mentionAllAppUsersQuery, mentionedUsers, MoreOptionsButton, numberOfLines, numberOfUploads, onChange, onChangeText, onSelectItem, openAttachmentPicker, openCommandsPicker, openFilePicker, openMentionsPicker, pickFile, quotedMessage, removeFile, removeImage, resetInput, selectedPicker, SendButton, sendImageAsync, sending, sendMessage, sendMessageAsync, SendMessageDisallowedIndicator, sendThreadMessageInChannel, setAsyncIds, setAsyncUploads, setFileUploads, setGiphyActive, setImageUploads, setInputBoxRef, setInputRef, setMentionedUsers, setNumberOfUploads, setQuotedMessageState, setSendThreadMessageInChannel, setShowMoreOptions, setText, showMoreOptions, ShowThreadMessageInChannelButton, text, thread, toggleAttachmentPicker, triggerSettings, updateMessage, uploadFile, uploadImage, uploadNewFile, uploadNewImage, UploadProgressIndicator, }: import("../MessageInputContext").LocalMessageInputContext<StreamChatGenerics> & Omit<import("../MessageInputContext").InputMessageInputContextValue<StreamChatGenerics>, "sendMessage"> & Pick<ThreadContextValue<StreamChatGenerics>, "thread">) => MessageInputContextValue<StreamChatGenerics>;
4
+ export declare const useCreateMessageInputContext: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ additionalTextInputProps, appendText, asyncIds, asyncUploads, AttachButton, autoCompleteSuggestionsLimit, clearEditingState, clearQuotedMessageState, closeAttachmentPicker, CommandsButton, compressImageQuality, cooldownEndsAt, CooldownTimer, doDocUploadRequest, doImageUploadRequest, editing, editMessage, emojiSearchIndex, FileUploadPreview, fileUploads, giphyActive, hasCommands, hasFilePicker, hasImagePicker, ImageUploadPreview, imageUploads, initialValue, Input, inputBoxRef, InputButtons, InputEditingStateHeader, InputGiphySearch, InputReplyStateHeader, isValidMessage, maxMessageLength, maxNumberOfFiles, mentionAllAppUsersEnabled, mentionAllAppUsersQuery, mentionedUsers, MoreOptionsButton, numberOfLines, numberOfUploads, onChange, onChangeText, onSelectItem, openAttachmentPicker, openCommandsPicker, openFilePicker, openMentionsPicker, pickFile, quotedMessage, removeFile, removeImage, resetInput, selectedPicker, SendButton, sendImageAsync, sending, sendMessage, sendMessageAsync, SendMessageDisallowedIndicator, sendThreadMessageInChannel, setAsyncIds, setAsyncUploads, setFileUploads, setGiphyActive, setImageUploads, setInputBoxRef, setInputRef, setMentionedUsers, setNumberOfUploads, setQuotedMessageState, setSendThreadMessageInChannel, setShowMoreOptions, setText, showMoreOptions, ShowThreadMessageInChannelButton, text, thread, toggleAttachmentPicker, triggerSettings, updateMessage, uploadFile, uploadImage, uploadNewFile, uploadNewImage, UploadProgressIndicator, }: import("../MessageInputContext").LocalMessageInputContext<StreamChatGenerics> & Omit<import("../MessageInputContext").InputMessageInputContextValue<StreamChatGenerics>, "sendMessage"> & Pick<ThreadContextValue<StreamChatGenerics>, "thread">) => MessageInputContextValue<StreamChatGenerics>;
@@ -3,7 +3,7 @@ import type { CommandResponse, UserResponse } from 'stream-chat';
3
3
  import type { AutoCompleteSuggestionHeaderProps } from '../../components/AutoCompleteInput/AutoCompleteSuggestionHeader';
4
4
  import type { AutoCompleteSuggestionItemProps } from '../../components/AutoCompleteInput/AutoCompleteSuggestionItem';
5
5
  import type { AutoCompleteSuggestionListProps } from '../../components/AutoCompleteInput/AutoCompleteSuggestionList';
6
- import type { Emoji } from '../../emoji-data/compiled';
6
+ import type { Emoji } from '../../emoji-data';
7
7
  import type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
8
8
  export declare type SuggestionComponentType = 'command' | 'emoji' | 'mention';
9
9
  export declare const isSuggestionCommand: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(suggestion: Suggestion<StreamChatGenerics>) => suggestion is SuggestionCommand<StreamChatGenerics>;
@@ -0,0 +1,9 @@
1
+ export declare type Emoji = {
2
+ id: string;
3
+ name: string;
4
+ names: string[];
5
+ unicode: string;
6
+ skins?: string[];
7
+ };
8
+ export declare type Emojis = Emoji[];
9
+ export declare const compiledEmojis: Emojis;
@@ -26,7 +26,7 @@
26
26
  "File type not supported": "File type not supported",
27
27
  "Flag": "Flag",
28
28
  "Flag Message": "Flag Message",
29
- "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged.",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged",
30
30
  "How about sending your first message to a friend?": "How about sending your first message to a friend?",
31
31
  "Instant Commands": "Instant Commands",
32
32
  "Let's start chatting!": "Let's start chatting!",
@@ -4,18 +4,18 @@
4
4
  "Allow access to your Gallery": "Permitir acceso a tu galería",
5
5
  "Allow camera access in device settings": "Permitir el acceso a la cámara en la configuración del dispositivo",
6
6
  "Also send to channel": "",
7
- "Are you sure you want to permanently delete this message?": "¿Estás seguro de que deseas eliminar permanentemente este mensaje?",
8
- "Are you sure?": "¿Estás seguro?",
9
- "Block User": "Bloquear usuario",
10
- "Cancel": "Cancelar",
11
- "Cannot Flag Message": "No se puede reportar el mensaje",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "Considera cómo tu comentario podría hacer sentir a los demás y asegúrate de seguir nuestras Normas de la Comunidad",
13
- "Copy Message": "Copiar mensaje",
14
- "Delete": "Eliminar",
15
- "Delete Message": "Eliminar mensaje",
7
+ "Are you sure you want to permanently delete this message?": "",
8
+ "Are you sure?": "",
9
+ "Block User": "",
10
+ "Cancel": "",
11
+ "Cannot Flag Message": "",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "",
14
+ "Delete": "",
15
+ "Delete Message": "",
16
16
  "Device camera is used to take photos or videos.": "La cámara del dispositivo se utiliza para tomar fotografías o vídeos.",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "¿Deseas enviar una copia de este mensaje a un moderador para una investigación adicional?",
18
- "Edit Message": "Editar mensaje",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
+ "Edit Message": "",
19
19
  "Editing Message": "",
20
20
  "Emoji matching": "",
21
21
  "Empty message...": "",
@@ -24,56 +24,56 @@
24
24
  "Error loading messages for this channel...": "",
25
25
  "Error while loading, please reload/refresh": "",
26
26
  "File type not supported": "Tipo de archivo no admitido",
27
- "Flag": "Reportar",
28
- "Flag Message": "Reportar mensaje",
29
- "Flag action failed either due to a network issue or the message is already flagged": "El reporte falló debido a un problema de red o el mensaje ya fue reportado.",
27
+ "Flag": "",
28
+ "Flag Message": "",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "",
30
30
  "How about sending your first message to a friend?": "",
31
31
  "Instant Commands": "",
32
32
  "Let's start chatting!": "",
33
33
  "Links are disabled": "",
34
- "Loading channels...": "Cargando canales...",
35
- "Loading messages...": "Cargando mensajes...",
36
- "Loading...": "Cargando...",
34
+ "Loading channels...": "",
35
+ "Loading messages...": "",
36
+ "Loading...": "",
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
38
38
  "Message Reactions": "",
39
39
  "Message deleted": "",
40
- "Message flagged": "Mensaje reportado",
41
- "Mute User": "Silenciar usuario",
42
- "Not supported": "No admitido",
40
+ "Message flagged": "",
41
+ "Mute User": "",
42
+ "Not supported": "",
43
43
  "Nothing yet...": "",
44
- "Ok": "Aceptar",
44
+ "Ok": "",
45
45
  "Only visible to you": "",
46
46
  "Open Settings": "Configuración abierta",
47
47
  "Photo": "",
48
48
  "Photos and Videos": "Fotos y videos",
49
- "Pin to Conversation": "Fijar a la conversación",
49
+ "Pin to Conversation": "",
50
50
  "Pinned by": "",
51
51
  "Please enable access to your photos and videos so you can share them.": "Por favor, habilita el acceso a tus fotos y videos para poder compartirlos.",
52
- "Please select a channel first": "",
52
+ "Please select a channel first": "Por favor, selecciona primero un canal",
53
53
  "Reconnecting...": "",
54
- "Reply": "Responder",
54
+ "Reply": "",
55
55
  "Reply to Message": "Responder al mensaje",
56
- "Resend": "Reenviar",
56
+ "Resend": "",
57
57
  "Search GIFs": "Buscar GIFs",
58
58
  "Select More Photos": "Seleccionar más fotos",
59
- "Send Anyway": "Enviar de todos modos",
59
+ "Send Anyway": "",
60
60
  "Send a message": "Enviar un mensaje",
61
61
  "Sending links is not allowed in this conversation": "",
62
62
  "Slow mode ON": "Modo lento ACTIVADO",
63
- "The message has been reported to a moderator.": "El mensaje ha sido reportado a un moderador.",
64
- "Thread Reply": "Respuesta de hilo",
65
- "Unblock User": "Desbloquear usuario",
63
+ "The message has been reported to a moderator.": "",
64
+ "Thread Reply": "",
65
+ "Unblock User": "",
66
66
  "Unknown User": "Usuario desconocido",
67
- "Unmute User": "Activar sonido del usuario",
68
- "Unpin from Conversation": "Desmarcar de la conversación",
69
- "Unread Messages": "Mensajes no leídos",
67
+ "Unmute User": "",
68
+ "Unpin from Conversation": "",
69
+ "Unread Messages": "",
70
70
  "Video": "",
71
71
  "You": "",
72
72
  "You can't send messages in this channel": "",
73
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
73
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} y {{ nonSelfUserLength }} más están escribiendo",
74
74
  "{{ index }} of {{ photoLength }}": "{{ index }} de {{ photoLength }}",
75
75
  "{{ replyCount }} Replies": "{{ replyCount }} Respuestas",
76
76
  "{{ replyCount }} Thread Replies": "{{ replyCount }} respuestas de hilo",
77
- "{{ user }} is typing": "",
77
+ "{{ user }} is typing": "{{ user }} está escribiendo",
78
78
  "🏙 Attachment...": ""
79
79
  }