stream-chat-react-native-core 5.23.0-beta.4 → 5.23.0-beta.5

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 (55) hide show
  1. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -11
  2. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  3. package/lib/commonjs/components/MessageInput/MessageInput.js +51 -28
  4. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  5. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  6. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  7. package/lib/commonjs/i18n/en.json +1 -1
  8. package/lib/commonjs/i18n/fr.json +32 -32
  9. package/lib/commonjs/i18n/hi.json +32 -32
  10. package/lib/commonjs/i18n/it.json +32 -32
  11. package/lib/commonjs/i18n/nl.json +32 -32
  12. package/lib/commonjs/i18n/ru.json +32 -32
  13. package/lib/commonjs/i18n/tr.json +32 -32
  14. package/lib/commonjs/utils/utils.js +2 -2
  15. package/lib/commonjs/utils/utils.js.map +1 -1
  16. package/lib/commonjs/version.json +1 -1
  17. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -11
  18. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  19. package/lib/module/components/MessageInput/MessageInput.js +51 -28
  20. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  21. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  22. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  23. package/lib/module/i18n/en.json +1 -1
  24. package/lib/module/i18n/fr.json +32 -32
  25. package/lib/module/i18n/hi.json +32 -32
  26. package/lib/module/i18n/it.json +32 -32
  27. package/lib/module/i18n/nl.json +32 -32
  28. package/lib/module/i18n/ru.json +32 -32
  29. package/lib/module/i18n/tr.json +32 -32
  30. package/lib/module/utils/utils.js +2 -2
  31. package/lib/module/utils/utils.js.map +1 -1
  32. package/lib/module/version.json +1 -1
  33. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +1 -1
  34. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  35. package/lib/typescript/i18n/en.json +1 -1
  36. package/lib/typescript/i18n/fr.json +32 -32
  37. package/lib/typescript/i18n/hi.json +32 -32
  38. package/lib/typescript/i18n/it.json +32 -32
  39. package/lib/typescript/i18n/nl.json +32 -32
  40. package/lib/typescript/i18n/ru.json +32 -32
  41. package/lib/typescript/i18n/tr.json +32 -32
  42. package/package.json +1 -1
  43. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +0 -10
  44. package/src/components/MessageInput/MessageInput.tsx +33 -3
  45. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +2 -0
  46. package/src/contexts/themeContext/utils/theme.ts +2 -0
  47. package/src/i18n/en.json +1 -1
  48. package/src/i18n/fr.json +32 -32
  49. package/src/i18n/hi.json +32 -32
  50. package/src/i18n/it.json +32 -32
  51. package/src/i18n/nl.json +32 -32
  52. package/src/i18n/ru.json +32 -32
  53. package/src/i18n/tr.json +32 -32
  54. package/src/utils/utils.ts +3 -2
  55. package/src/version.json +1 -1
@@ -251,7 +251,7 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
251
251
  return name.includes(query);
252
252
  })) {
253
253
  var emoji = _compiled.compiledEmojis.emojiLib[cur.name];
254
- if (emoji.skin_variations) {
254
+ if (emoji != null && emoji.skin_variations) {
255
255
  acc.push((0, _extends2["default"])({}, emoji, {
256
256
  name: emoji.name + "-tone-1",
257
257
  skin_variations: undefined
@@ -263,7 +263,7 @@ var ACITriggerSettings = function ACITriggerSettings(_ref3) {
263
263
  unicode: tone
264
264
  }));
265
265
  });
266
- } else {
266
+ } else if (emoji) {
267
267
  acc.push(emoji);
268
268
  }
269
269
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_debounce","_interopRequireDefault","require","_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","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","undefined","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","text","indexOf","_options$limit3","selectedCommands","command","_command$name","a","b","_a$name","_b$name","nameA","toLowerCase","nameB","result","slice","output","entity","caretPosition","key","type","_","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","emojiRegex","urlRegex","stringifyMessage","_ref4","deleted_at","latest_reactions","reply_count","status","updated_at","_ref5","join","toISOString","reduceMessagesToString","messages"],"sources":["utils.ts"],"sourcesContent":["import type React from 'react';\n\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 { 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 { 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\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 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 {\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// source: https://raw.githubusercontent.com/mathiasbynens/emoji-regex/master/RGI_Emoji.js\n// [#\\*0-9]\\uFE0F\\u20E3 was replaced with [#*0-9]\\uFE0F\\u20E3 due to a lint warning\nexport const emojiRegex =\n /^(\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC68(?:\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u2764\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#*0-9]\\uFE0F\\u20E3|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])+$/;\n\nexport const urlRegex =\n /(?:\\s|^)((?:https?:\\/\\/)?(?:[a-z0-9-]+(?:\\.[a-z0-9-]+)+)(?::[0-9]+)?(?:\\/(?:[^\\s]+)?)?)/g;\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":";;;;;;;;;;AAGA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAiBA,IAAAC,SAAA,GAAAD,OAAA;AASO,IAAME,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;AAEF,IAAMM,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,KAA4CC,SAAS;AAAA;AAE5D,IAAMC,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,OAAOpC,MAAM,CAACsC,MAAM,CAACF,OAAO,CAAC,CAACG,MAAM,GAE9BvC,MAAM,CAACsC,MAAM,CAACF,OAAO,CAAC,CAACI,MAAM,CAAC,UAACC,MAAM;IAAA,OAAKA,MAAM,CAACb,IAAI;EAAA,EAAC,CAGtDc,GAAG,CAAC,UAACD,MAAM;IAAA,OAAKA,MAAM,CAACb,IAAI;EAAA,EAAC,GAC9B,EAAE;AACR,CAAC;AAED,IAAMe,WAAW,GAAG,SAAdA,WAAWA,CAGfZ,OAAoC,EACjC;EACH,IAAMa,QAAQ,GAAGb,OAAO,CAACM,KAAK,CAACO,QAAQ;EACvC,OAAO5C,MAAM,CAACsC,MAAM,CAACM,QAAQ,CAAC,CAACL,MAAM,OAAAM,mBAAA,aAAO7C,MAAM,CAACsC,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,OAAO/B,MAAM,CAACsC,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,IAAAnC,OAAA;MAAAoC,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/D9C,OAEC,GAAAwC,KAAA,CAAA1B,MAAA,QAAA0B,KAAA,QAAApC,SAAA,GAAAoC,KAAA,MAAG,CAAC,CAAC;UAAAJ,cAAA,GAEkDpC,OAAO,CAAvDqC,KAAK,EAALA,KAAK,GAAAD,cAAA,cAAGvC,mCAAmC,GAAAuC,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,OAAKd,cAAc,CAACc,MAAM,CAACb,IAAI,CAAC,IAAImB,MAAK,CAAC6B,IAAI,CAACnC,MAAM,CAACb,IAAI,CAAC;UAAA,EAAC;UAC5F,IAAIgC,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;AAAC9E,OAAA,CAAA2E,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,IAAAnC,OAAA;MAAAiE,eAAA;MAAA5B,KAAA;MAAA6B,qBAAA;MAAAC,uBAAA;MAAApE,OAAA;MAAAuC,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/D9C,OAGC,GAAAqE,MAAA,CAAAvD,MAAA,QAAAuD,MAAA,QAAAjE,SAAA,GAAAiE,MAAA,MAAG,CAAC,CAAC;UAAA,MAEF,OAAOnC,KAAK,KAAK,QAAQ;YAAAqC,SAAA,CAAAzB,IAAA;YAAA;UAAA;UAAAmB,eAAA,GAIvBjE,OAAO,CAFTqC,KAAK,EAALA,KAAK,GAAA4B,eAAA,cAAGpE,mCAAmC,GAAAoE,eAAA,EAAAC,qBAAA,GAEzClE,OAAO,CADTmE,uBAAuB,EAAvBA,uBAAuB,GAAAD,qBAAA,cAAGpE,8BAA8B,GAAAoE,qBAAA;UAEpDnE,OAAO,OAAAyE,SAAA;YACX7C,EAAE,EAAE;cAAE8C,GAAG,EAAET,MAAM,CAACU;YAAO;UAAC,GACvBP,uBAAuB,oBAAvBA,uBAAuB,CAAEpE,OAAO;UAGrC,IAAImC,KAAK,EAAE;YAETnC,OAAO,CAAC4E,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,CAEtC9D,OAAO,MAAAyE,SAAA;YACL7C,EAAE,EAAE;UAAC,GAAKwC,uBAAuB,oBAAvBA,uBAAuB,CAAElE,IAAI,OAAAuE,SAAA;YACvCnC,KAAK,EAALA;UAAK,GAAK8B,uBAAuB,oBAAvBA,uBAAuB,CAAEnE,OAAO,CAC9C,CAAC;QAAA;UALKsC,QAAQ,GAAAiC,SAAA,CAAAtB,IAAA;UAMR3B,OAA2C,GAAG,EAAE;UACtDgB,QAAQ,CAAChB,KAAK,CAAC4B,OAAO,CAAC,UAAC/C,IAAI;YAAA,OAAKD,cAAc,CAACC,IAAI,CAAC,IAAImB,OAAK,CAAC6B,IAAI,CAAChD,IAAI,CAAC;UAAA,EAAC;UAC1E,IAAIgC,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;AAAC9E,OAAA,CAAAiG,mBAAA,GAAAA,mBAAA;AAEI,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAgB;EAAA,OAAqBA,OAAO,KAAK,GAAG;AAAA;AAACnG,OAAA,CAAAkG,gBAAA,GAAAA,gBAAA;AAE/E,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAID,OAAgB;EAAA,OAAqBA,OAAO,KAAK,GAAG;AAAA;AAACnG,OAAA,CAAAoG,cAAA,GAAAA,cAAA;AAE7E,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIF,OAAgB;EAAA,OAAqBA,OAAO,KAAK,GAAG;AAAA;AAACnG,OAAA,CAAAqG,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,EAAEsD,IAAI,EAAErD,OAAO,EAAmB;QAAA,IAAjBnC,OAAO,GAAAyC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;QAC/C,IAAI+C,IAAI,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;QAEtC,IAAAC,eAAA,GAAwD1F,OAAO,CAAvDqC,KAAK;UAALA,KAAK,GAAAqD,eAAA,cAAG7F,mCAAmC,GAAA6F,eAAA;QACnD,IAAMC,gBAAgB,GAAG,CAACzD,KAAK,GAC3B7B,WAAW,CAACC,OAAO,CAAC,GACpBD,WAAW,CAACC,OAAO,CAAC,CAACS,MAAM,CAAC,UAAC6E,OAAO;UAAA,IAAAC,aAAA;UAAA,OAAK3D,KAAK,IAAI,EAAA2D,aAAA,GAAAD,OAAO,CAAC7C,IAAI,qBAAZ8C,aAAA,CAAcJ,OAAO,CAACvD,KAAK,CAAC,MAAK,CAAC,CAAC;QAAA,EAAC;QAG1FyD,gBAAgB,CAAC1F,IAAI,CAAC,UAAC6F,CAAC,EAAEC,CAAC,EAAK;UAAA,IAAAC,OAAA,EAAAC,OAAA;UAC9B,IAAIC,KAAK,GAAG,EAAAF,OAAA,GAAAF,CAAC,CAAC/C,IAAI,qBAANiD,OAAA,CAAQG,WAAW,CAAC,CAAC,KAAI,EAAE;UACvC,IAAIC,KAAK,GAAG,EAAAH,OAAA,GAAAF,CAAC,CAAChD,IAAI,qBAANkD,OAAA,CAAQE,WAAW,CAAC,CAAC,KAAI,EAAE;UACvC,IAAIjE,KAAK,IAAIgE,KAAK,CAACT,OAAO,CAACvD,KAAK,CAAC,KAAK,CAAC,EAAE;YACvCgE,KAAK,SAAOA,KAAO;UACrB;UACA,IAAIhE,KAAK,IAAIkE,KAAK,CAACX,OAAO,CAACvD,KAAK,CAAC,KAAK,CAAC,EAAE;YACvCkE,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,EAAEjE,KAAK,CAAC;QAE/C,IAAIF,OAAO,EAAE;UACXA,OAAO,CAACkE,MAAM,EAAEnE,KAAK,CAAC;QACxB;QAEA,OAAOmE,MAAM;MACf,CAAC;MACDE,MAAM,EAAE,SAAAA,OAACC,MAAM;QAAA,OAAM;UACnBC,aAAa,EAAE,MAAM;UACrBC,GAAG,OAAKF,MAAM,CAACzD,IAAM;UACrByC,IAAI,QAAMgB,MAAM,CAACzD;QACnB,CAAC;MAAA,CAAC;MACF4D,IAAI,EAAE;IACR,CAAC;IACD,GAAG,EAAE;MACHpB,YAAY,EAAE,SAAAA,aAACrD,KAAK,EAAE0E,CAAC,EAAEzE,OAAO,EAAK;QACnC,IAAI,CAACD,KAAK,EAAE,OAAO,EAAE;QAErB,IAAMmE,MAAM,GAAGQ,wBAAc,CAACC,UAAU,CAACtF,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;UAC5D,IAAID,GAAG,CAACX,MAAM,IAAI,EAAE,EAAE,OAAOW,GAAG;UAEhC,IAAIC,GAAG,CAACqF,KAAK,CAACC,IAAI,CAAC,UAACjE,IAAI;YAAA,OAAKA,IAAI,CAACkE,QAAQ,CAAC/E,KAAK,CAAC;UAAA,EAAC,EAAE;YAClD,IAAMgF,KAAK,GAAGL,wBAAc,CAACM,QAAQ,CAACzF,GAAG,CAACqB,IAAI,CAAC;YAC/C,IAAImE,KAAK,CAACE,eAAe,EAAE;cACzB3F,GAAG,CAAC0B,IAAI,KAAAqB,SAAA,iBACH0C,KAAK;gBACRnE,IAAI,EAAKmE,KAAK,CAACnE,IAAI,YAAS;gBAC5BqE,eAAe,EAAEhH;cAAS,EAC3B,CAAC;cACF8G,KAAK,CAACE,eAAe,CAAClE,OAAO,CAAC,UAACmE,IAAI,EAAEC,KAAK;gBAAA,OACxC7F,GAAG,CAAC0B,IAAI,KAAAqB,SAAA,iBACH0C,KAAK;kBACRnE,IAAI,EAAKmE,KAAK,CAACnE,IAAI,eAASuE,KAAK,GAAG,CAAC,CAAE;kBACvCF,eAAe,EAAEhH,SAAS;kBAC1BmH,OAAO,EAAEF;gBAAI,EACd,CAAC;cAAA,CACJ,CAAC;YACH,CAAC,MAAM;cACL5F,GAAG,CAAC0B,IAAI,CAAC+D,KAAK,CAAC;YACjB;UACF;UAEA,OAAOzF,GAAG;QACZ,CAAC,EAAE,EAAa,CAAC;QAEjB,IAAIU,OAAO,EAAE;UACXA,OAAO,CAACkE,MAAM,EAAEnE,KAAK,CAAC;QACxB;QAEA,OAAOmE,MAAM;MACf,CAAC;MACDE,MAAM,EAAE,SAAAA,OAACC,MAAM;QAAA,OAAM;UACnBC,aAAa,EAAE,MAAM;UACrBC,GAAG,EAAEF,MAAM,CAACzD,IAAI;UAChByC,IAAI,EAAEgB,MAAM,CAACe;QACf,CAAC;MAAA,CAAC;MACFZ,IAAI,EAAE;IACR,CAAC;IACD,GAAG,EAAE;MACHa,QAAQ,EAAE,SAAAA,SAACC,IAAI,EAAK;QAClBnC,mBAAmB,CAACmC,IAAI,CAAC;MAC3B,CAAC;MACDlC,YAAY,EAAE,SAAAA,aACZrD,KAAK,EACL0E,CAAC,EACDzE,OAAO,EAMJ;QAAA,IALHnC,OAAO,GAAAyC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG;UACRJ,KAAK,EAAExC,mCAAmC;UAC1C6H,yBAAyB,EAAE,KAAK;UAChCvD,uBAAuB,EAAErE;QAC3B,CAAC;QAED,IAAIE,OAAO,YAAPA,OAAO,CAAE0H,yBAAyB,EAAE;UACtC,OAAQ3C,mBAAmB,CACzBf,MAAM,EACN9B,KAAK,EACL,UAACyF,IAAI,EAAK;YACR,IAAIxF,OAAO,EAAE;cACXA,OAAO,CAACwF,IAAI,EAAEzF,KAAK,CAAC;YACtB;UACF,CAAC,EACD;YACEG,KAAK,EAAErC,OAAO,CAACqC,KAAK;YACpB8B,uBAAuB,EAAEnE,OAAO,CAACmE;UACnC,CACF,CAAC;QACH;QAQA,IAAI,CAACjC,KAAK,IAAI3D,MAAM,CAACsC,MAAM,CAACP,OAAO,CAACM,KAAK,CAACD,OAAO,CAAC,CAACG,MAAM,GAAG,GAAG,EAAE;UAC/D,IAAMQ,OAAK,GAAGD,qBAAqB,CAACf,OAAO,CAAC;UAE5C,IAAMsH,aAAa,GAAGtG,OAAK,CAACP,MAAM,CAAC,UAACZ,IAAI,EAAK;YAAA,IAAA0H,UAAA;YAC3C,IAAI,CAAC3F,KAAK,EAAE,OAAO,IAAI;YACvB,IAAI,EAAA2F,UAAA,GAAA1H,IAAI,CAAC4C,IAAI,qBAAT8E,UAAA,CAAW1B,WAAW,CAAC,CAAC,CAACV,OAAO,CAACvD,KAAK,CAACiE,WAAW,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,EAAE;cAChE,OAAO,IAAI;YACb;YACA,IAAIhG,IAAI,CAACwB,EAAE,CAACwE,WAAW,CAAC,CAAC,CAACV,OAAO,CAACvD,KAAK,CAACiE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;cAC7D,OAAO,IAAI;YACb;YACA,OAAO,KAAK;UACd,CAAC,CAAC;UAEF,IAAMwB,KAAI,GAAGC,aAAa,CAACtB,KAAK,CAAC,CAAC,EAAEtG,OAAO,oBAAPA,OAAO,CAAEqC,KAAK,CAAC;UAEnD,IAAIF,OAAO,EAAE;YACXA,OAAO,CAACwF,KAAI,EAAEzF,KAAK,CAAC;UACtB;UAEA,OAAOyF,KAAI;QACb;QAEA,OAAQlE,qBAAqB,CAC3BnD,OAAO,EACP4B,KAAK,EACL,UAACyF,IAAI,EAAK;UACR,IAAIxF,OAAO,EAAE;YACXA,OAAO,CAACwF,IAAI,EAAEzF,KAAK,CAAC;UACtB;QACF,CAAC,EACD;UACEG,KAAK,EAAErC,OAAO,CAACqC;QACjB,CACF,CAAC;MACH,CAAC;MACDkE,MAAM,EAAE,SAAAA,OAACC,MAAM;QAAA,OAAM;UACnBC,aAAa,EAAE,MAAM;UACrBC,GAAG,EAAEF,MAAM,CAAC7E,EAAE;UACd6D,IAAI,SAAMgB,MAAM,CAACzD,IAAI,IAAIyD,MAAM,CAAC7E,EAAE;QACpC,CAAC;MAAA,CAAC;MACFgF,IAAI,EAAE;IACR;EACF,CAAC;AAAA,CAAC;AAAC7H,OAAA,CAAAsG,kBAAA,GAAAA,kBAAA;AAEI,IAAM0C,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,GAAW;EAAA,OAChD,CAACA,GAAG,CAACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAYsC,GAAG,GAAKA,GAAG,EAAEC,IAAI,CAAC,CAAC;AAAA;AAAClJ,OAAA,CAAAgJ,sBAAA,GAAAA,sBAAA;AAEnD,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIF,GAAY,EAAK;EACnD,IAAI,CAACA,GAAG,EAAE,OAAOA,GAAG;EAEpB,IAAMG,eAAe,GAAGH,GAAG,CAACtC,OAAO,CAAC,GAAG,CAAC;EACxC,IAAIyC,eAAe,KAAK,CAAC,CAAC,EAAE,OAAOH,GAAG;EAEtC,OAAOA,GAAG,CAACI,SAAS,CAAC,CAAC,EAAEJ,GAAG,CAACtC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAAC3G,OAAA,CAAAmJ,mBAAA,GAAAA,mBAAA;AAEK,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAAIL,GAAW;EAAA,OAAKA,GAAG,CAACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAAA;AAAC3G,OAAA,CAAAsJ,UAAA,GAAAA,UAAA;AAE9D,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA;EAAA,IAAIvC,CAAC,GAAArD,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,EAAE;EAAA,OACrCqD,CAAC,GAEG,CAAC,CAACwC,MAAM,CAACxC,CAAC,CAAC,GAAIyC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAG,KAAMF,MAAM,CAACxC,CAAC,CAAC,GAAG,CAAE,EAAE2C,QAAQ,CAAC,EAAE,CAAC,GACpE,CAAG,GAAG,SAAI,GAAG,SAAI,GAAG,SAAI,GAAG,SAAI,IAAI,EAAGC,OAAO,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;AAAA;AAACvJ,OAAA,CAAAuJ,gBAAA,GAAAA,gBAAA;AAIzE,IAAMM,UAAU,GACrB,ikVAAikV;AAAC7J,OAAA,CAAA6J,UAAA,GAAAA,UAAA;AAE7jV,IAAMC,QAAQ,GACnB,0FAA0F;AAAC9J,OAAA,CAAA8J,QAAA,GAAAA,QAAA;AAO7F,IAAMC,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;IACNvC,IAAI,GAAAmC,KAAA,CAAJnC,IAAI;IACJwC,UAAU,GAAAL,KAAA,CAAVK,UAAU;EAAA,YAEPxC,IAAI,GAAGoC,UAAU,IAClBC,gBAAgB,GAAGA,gBAAgB,CAAC/H,GAAG,CAAC,UAAAmI,KAAA;IAAA,IAAGzC,IAAI,GAAAyC,KAAA,CAAJzC,IAAI;IAAA,OAAOA,IAAI;EAAA,EAAC,CAAC0C,IAAI,CAAC,CAAC,GAAG,EAAE,IACtEJ,WAAW,GAAGC,MAAM,IAAG,CAAAC,UAAU,oBAAVA,UAAU,CAAEG,WAAW,oBAAvBH,UAAU,CAAEG,WAAW,CAAG,CAAC,KAAIH,UAAU;AAAA,CAAE;AAOhE,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAGjCC,QAAqD;EAAA,OAC1CA,QAAQ,CAACvI,GAAG,CAAC4H,gBAAgB,CAAC,CAACQ,IAAI,CAAC,CAAC;AAAA;AAACvK,OAAA,CAAAyK,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_debounce","_interopRequireDefault","require","_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","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","undefined","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","text","indexOf","_options$limit3","selectedCommands","command","_command$name","a","b","_a$name","_b$name","nameA","toLowerCase","nameB","result","slice","output","entity","caretPosition","key","type","_","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","emojiRegex","urlRegex","stringifyMessage","_ref4","deleted_at","latest_reactions","reply_count","status","updated_at","_ref5","join","toISOString","reduceMessagesToString","messages"],"sources":["utils.ts"],"sourcesContent":["import type React from 'react';\n\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 { 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 { 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\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// source: https://raw.githubusercontent.com/mathiasbynens/emoji-regex/master/RGI_Emoji.js\n// [#\\*0-9]\\uFE0F\\u20E3 was replaced with [#*0-9]\\uFE0F\\u20E3 due to a lint warning\nexport const emojiRegex =\n /^(\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC68(?:\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69])(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83E\\uDDD1(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u2764\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#*0-9]\\uFE0F\\u20E3|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])+$/;\n\nexport const urlRegex =\n /(?:\\s|^)((?:https?:\\/\\/)?(?:[a-z0-9-]+(?:\\.[a-z0-9-]+)+)(?::[0-9]+)?(?:\\/(?:[^\\s]+)?)?)/g;\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.23.0-beta.4"
2
+ "version": "5.23.0-beta.5"
3
3
  }
@@ -53,7 +53,6 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
53
53
  openSuggestions = props.openSuggestions,
54
54
  setGiphyActive = props.setGiphyActive,
55
55
  setInputBoxRef = props.setInputBoxRef,
56
- setShowMoreOptions = props.setShowMoreOptions,
57
56
  t = props.t,
58
57
  text = props.text,
59
58
  triggerSettings = props.triggerSettings,
@@ -396,16 +395,10 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
396
395
  testID: "auto-complete-text-input",
397
396
  value: text
398
397
  }, additionalTextInputProps, {
399
- onBlur: function onBlur(event) {
400
- if (additionalTextInputProps != null && additionalTextInputProps.onBlur) {
401
- additionalTextInputProps == null ? void 0 : additionalTextInputProps.onBlur(event);
402
- }
403
- setShowMoreOptions(true);
404
- },
405
398
  __self: _this,
406
399
  __source: {
407
400
  fileName: _jsxFileName,
408
- lineNumber: 391,
401
+ lineNumber: 389,
409
402
  columnNumber: 5
410
403
  }
411
404
  }));
@@ -444,7 +437,6 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
444
437
  onChange = _useMessageInputConte.onChange,
445
438
  setGiphyActive = _useMessageInputConte.setGiphyActive,
446
439
  setInputBoxRef = _useMessageInputConte.setInputBoxRef,
447
- setShowMoreOptions = _useMessageInputConte.setShowMoreOptions,
448
440
  text = _useMessageInputConte.text,
449
441
  triggerSettings = _useMessageInputConte.triggerSettings;
450
442
  var _useSuggestionsContex = (0, _SuggestionsContext.useSuggestionsContext)(),
@@ -467,7 +459,6 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
467
459
  openSuggestions: openSuggestions,
468
460
  setGiphyActive: setGiphyActive,
469
461
  setInputBoxRef: setInputBoxRef,
470
- setShowMoreOptions: setShowMoreOptions,
471
462
  t: t,
472
463
  text: text,
473
464
  triggerSettings: triggerSettings,
@@ -476,7 +467,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
476
467
  __self: _this,
477
468
  __source: {
478
469
  fileName: _jsxFileName,
479
- lineNumber: 501,
470
+ lineNumber: 492,
480
471
  columnNumber: 5
481
472
  }
482
473
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_throttle","_interopRequireDefault","_ChannelContext","_MessageInputContext","_SuggestionsContext","_ThemeContext","_TranslationContext","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","_props$cooldownActive","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","useRef","selectionEnd","_useState","useState","_useState2","_slicedToArray2","textHeight","setTextHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","messageInput","handleChange","newText","fromUpdate","arguments","undefined","handleSuggestionsThrottled","useEffect","startTracking","trigger","triggerSetting","current","type","stopTracking","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","_ref","query","_triggerSetting","_triggerSetting2","wrap","_callee$","_context","prev","next","isMentionTrigger","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","isCommandTrigger","stop","_x","apply","handleSelectionChange","_ref3","end","nativeEvent","selection","_ref4","newTokenString","isSuggestionCommand","output","isEmojiTrigger","isSuggestionEmoji","isSuggestionUser","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","_ref5","_callee2","actualToken","_callee2$","_context2","abrupt","trim","_x2","handleMentions","_ref6","tokenMatch","lastToken","handleMentionsTrigger","keys","find","handleEmojis","_ref7","handleEmojisTrigger","handleSuggestions","_ref8","_callee3","mentionTokenMatch","emojiTokenMatch","_callee3$","_context3","test","sent","match","_x3","placeholderText","throttle","leading","createElement","TextInput","_extends2","autoFocus","maxLength","multiline","onChangeText","onContentSizeChange","_ref9","height","contentSize","onSelectionChange","placeholder","placeholderTextColor","ref","style","color","maxHeight","textAlign","I18nManager","isRTL","testID","value","onBlur","event","__self","__source","fileName","lineNumber","columnNumber","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","_useChannelContext","useChannelContext","_useMessageInputConte","useMessageInputContext","_useSuggestionsContex","useSuggestionsContext","_useTranslationContex","useTranslationContext","exports","displayName"],"sources":["AutoCompleteInput.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native';\n\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'setShowMoreOptions'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AutoCompleteInputPropsWithContext<StreamChatGenerics>>;\n\nconst AutoCompleteInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<StreamChatGenerics>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (!(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n autoFocus={giphyActive}\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputProps<StreamChatGenerics>,\n) => {\n const { giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n text,\n triggerSettings,\n } = useMessageInputContext<StreamChatGenerics>();\n const { closeSuggestions, openSuggestions, updateSuggestions } =\n useSuggestionsContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_throttle","_interopRequireDefault","_ChannelContext","_MessageInputContext","_SuggestionsContext","_ThemeContext","_TranslationContext","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","_props$cooldownActive","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","useRef","selectionEnd","_useState","useState","_useState2","_slicedToArray2","textHeight","setTextHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","messageInput","handleChange","newText","fromUpdate","arguments","undefined","handleSuggestionsThrottled","useEffect","startTracking","trigger","triggerSetting","current","type","stopTracking","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","_ref","query","_triggerSetting","_triggerSetting2","wrap","_callee$","_context","prev","next","isMentionTrigger","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","isCommandTrigger","stop","_x","apply","handleSelectionChange","_ref3","end","nativeEvent","selection","_ref4","newTokenString","isSuggestionCommand","output","isEmojiTrigger","isSuggestionEmoji","isSuggestionUser","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","_ref5","_callee2","actualToken","_callee2$","_context2","abrupt","trim","_x2","handleMentions","_ref6","tokenMatch","lastToken","handleMentionsTrigger","keys","find","handleEmojis","_ref7","handleEmojisTrigger","handleSuggestions","_ref8","_callee3","mentionTokenMatch","emojiTokenMatch","_callee3$","_context3","test","sent","match","_x3","placeholderText","throttle","leading","createElement","TextInput","_extends2","autoFocus","maxLength","multiline","onChangeText","onContentSizeChange","_ref9","height","contentSize","onSelectionChange","placeholder","placeholderTextColor","ref","style","color","maxHeight","textAlign","I18nManager","isRTL","testID","value","__self","__source","fileName","lineNumber","columnNumber","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","_useChannelContext","useChannelContext","_useMessageInputConte","useMessageInputContext","_useSuggestionsContex","useSuggestionsContext","_useTranslationContex","useTranslationContext","exports","displayName"],"sources":["AutoCompleteInput.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native';\n\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AutoCompleteInputPropsWithContext<StreamChatGenerics>>;\n\nconst AutoCompleteInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<StreamChatGenerics>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (!(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n autoFocus={giphyActive}\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputProps<StreamChatGenerics>,\n) => {\n const { giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n text,\n triggerSettings,\n } = useMessageInputContext<StreamChatGenerics>();\n const { closeSuggestions, openSuggestions, updateSuggestions } =\n useSuggestionsContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"],"mappings":"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"}