/* Metro module 9677; source: modules/search/SearchAutocompleteStore.tsx; dependencies: [6, 7, 15, 17, 18, 1379, 1945, 1867, 1934, 3996, 1878, 661, 6587, 9675, 7238, 3995, 5062, 6592, 6526, 9676, 566, 694, 2] */ function _fun75995(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#75995, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:6, offset: 0x01dc0f40, size: 756 bytes, params: 8, frame: 22 const env0_0 = require; const _arrayLikeToArray_76001 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const stateFactory = function({searchContext, query, mode, tokens, cursorScope, autocompletes}) { getOrCreateUserSearchContext(searchContext); return {searchContext: searchContext, query: query, mode: mode, tokens: tokens, cursorScope: cursorScope, autocompletes: autocompletes}; }; const isUserAutocompleteFilter = function(a0) { return a0 != null && (a0 === SearchTokenTypes.FILTER_FROM || a0 === SearchTokenTypes.FILTER_MENTIONS); }; const closure = CHANNEL_CREATE_76011; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(6) /* metro dependency 6 */; const env0_4 = importDefault(7) /* metro dependency 7 */; const env0_5 = importDefault(15) /* metro dependency 15 */; const env0_6 = importDefault(17) /* metro dependency 17 */; const env0_7 = importDefault(18) /* metro dependency 18 */; const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const guildMemberStore = importDefault(1945) /* metro dependency 1945: GuildMemberStore */; const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */; const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */; const streamerModeStore = importDefault(3996) /* metro dependency 3996: StreamerModeStore */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; const constantsModule = require(661) /* metro dependency 661: Constants */; const env0_14 = constantsModule.SearchPopoutModes; const SearchTokenTypes = constantsModule.SearchTokenTypes; const env0_16 = constantsModule.ME; const env0_17 = (require(6587) /* metro dependency 6587: AutocompleterConstants */).AutocompleterResultTypes; const env0_19 = []; let Map = global.Map; let map = new Map(); Map = global.Map; map = new Map(); const Set = global.Set; const FILTER_FROM = SearchTokenTypes.FILTER_FROM; items = [FILTER_FROM]; const FILTER_IN = SearchTokenTypes.FILTER_IN; items[1] = FILTER_IN; const FILTER_MENTIONS = SearchTokenTypes.FILTER_MENTIONS; items[2] = FILTER_MENTIONS; Object.create(Set.prototype, {constructor: {value: Set}}); new Set(items); const Store = (importDefault(566) /* metro dependency 566: flux */).Store; _fun76013(Store).displayName = 'SearchAutocompleteStore'; map = new map(importDefault(694) /* metro dependency 694: Dispatcher */, {SEARCH_AUTOCOMPLETE_INITIALIZE: function({searchContext}) { setSelectedSearchContext(searchContext); rebuildAutocompleteResults(searchContext); }, SEARCH_AUTOCOMPLETE_QUERY_UPDATE: SEARCH_AUTOCOMPLETE_QUERY_UPDATE, SEARCH_EDITOR_STATE_CLEAR: SEARCH_EDITOR_STATE_CLEAR, CHANNEL_CREATE: closure, CHANNEL_DELETE: closure, STREAMER_MODE_UPDATE: STREAMER_MODE_UPDATE_76021, CHANNEL_SELECT: CHANNEL_SELECT_76022}); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/search/SearchAutocompleteStore.tsx'); exports.default = map; } function _isNativeReflectConstruct_75996() { // fn#75996, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:310, offset: 0x01dc1234, size: 98 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_75996_isNativeReflectConstruct = function() { return !!result; })(); } function _createForOfIteratorHelperLoose_75999(a0, a1) { // fn#75999, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:503, offset: 0x01dc1296, size: 372 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun76000; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_76001(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_76001(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_76001(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun76000; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); } function getOrCreateUserSearchContext(a0) { // fn#76002, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:1509, offset: 0x01dc140a, size: 140 bytes, params: 2, frame: 19 var r0; var defaultImport; var getUserSearchContext; var handleUserSearchResultsBinding; const searchContextId = (require(9675) /* metro dependency 9675: SearchUtils */).getSearchContextId(a0); const value3 = env0_21.get(searchContextId); if (value3 != null) { r0 = value3; } else { defaultImport = importDefault(7238) /* metro dependency 7238: UserSearchManager */; getUserSearchContext = defaultImport.getUserSearchContext; handleUserSearchResultsBinding = handleUserSearchResults; r0 = {results: [], context: Reflect.apply(getUserSearchContext, defaultImport, [handleUserSearchResultsBinding.bind(null, a0)])}; } env0_21.set(searchContextId, r0); return r0; } function isUserAutocompleteMode(a0) { // fn#76005, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:2024, offset: 0x01dc151e, size: 46 bytes, params: 2, frame: 12 const type = a0.type; const FILTER = SearchPopoutModes.FILTER; return type === FILTER && isUserAutocompleteFilter(a0.filter); } function handleUserSearchResults(a0, {results}) { // fn#76006, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:2120, offset: 0x01dc154c, size: 404 bytes, params: 3, frame: 28 var r12; var r9; var isUserAutocompleteModeBinding; var mode; var object; var value8; var value9; var done; var value10; var length; var getUser; var id; var value11; var defaultImport; var userTag; var value13; var query; var tokens; var stateFactoryBinding; var value14; const searchContextId = (require(9675) /* metro dependency 9675: SearchUtils */).getSearchContextId(a0); let binding = env0_21; const value3 = binding.get(searchContextId); const value4 = env0_20.get(searchContextId); if (value3 != null) { if (value4 != null) { isUserAutocompleteModeBinding = isUserAutocompleteMode; mode = value4.mode; if (isUserAutocompleteModeBinding(mode)) { mode = value4.mode; r12 = mode.type !== SearchPopoutModes.FILTER ? 3 : 10; r12 = r12 === undefined ? 10 : r12; object = []; value8 = _createForOfIteratorHelperLoose_75999(results); value9 = value8(); done = value9.done; if (!done) { r9 = value9; while (true) { value10 = r9.value; length = object.length; if (length >= r12) { break; } getUser = UserStore.getUser; id = value10.id; value11 = Reflect.apply(getUser, UserStore, [id]); if (value11 == null) { continue; } defaultImport = importDefault(3995) /* metro dependency 3995: UserUtils */; userTag = defaultImport.getUserTag(value11); if (userTag == null) { continue; } object.push({text: userTag, user: value11}); value13 = value8(); done = value13.done; if (done) { break; } r9 = value13; continue; } } value3.results = object; query = value4.query; mode = value4.mode; tokens = value4.tokens; stateFactoryBinding = stateFactory; object = {searchContext: a0, query: query, mode: mode, tokens: tokens}; object.cursorScope = value4.cursorScope; object.autocompletes = getAutocompleteList(a0, mode, tokens); value14 = stateFactoryBinding(object); binding = env0_20; binding.set(searchContextId, value14); binding = env0_23; binding.emitChange(); } } } } function setSelectedSearchContext(a0) { // fn#76007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:2758, offset: 0x01dc16e0, size: 77 bytes, params: 2, frame: 14 if (!(importDefault(5062) /* metro dependency 5062 */)(env0_18, a0)) { env0_18 = a0; (require(9675) /* metro dependency 9675: SearchUtils */).clearTokenCache(); } } function getAutocompleteList(a0, a1, a2) { // fn#76008, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:2844, offset: 0x01dc172d, size: 151 bytes, params: 4, frame: 12 var value2; const type = a1.type; const FILTER = SearchPopoutModes.FILTER; if (FILTER === type) { value2 = generateFilterResults({filter: a1.filter, currentToken: a1.token, searchContext: a0, maxResults: env0_22, tokens: a2}); return value2 != null ? [value2] : env0_19; } const FILTER_ALL = SearchPopoutModes.FILTER_ALL; if (FILTER_ALL === type) { return env0_19; } const EMPTY = SearchPopoutModes.EMPTY; if (EMPTY === type) { return env0_19; } } function CHANNEL_CREATE_76011() { // fn#76011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:3771, offset: 0x01dc19a2, size: 37 bytes, params: 1, frame: 11 (require(9675) /* metro dependency 9675: SearchUtils */).clearTokenCache(); } function rebuildAutocompleteResults(a0) { // fn#76012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:3838, offset: 0x01dc19c7, size: 154 bytes, params: 2, frame: 21 const searchContextId = (require(9675) /* metro dependency 9675: SearchUtils */).getSearchContextId(a0); const value3 = env0_20.get(searchContextId); if (value3 == null) { return false; } const query = value3.query; const mode = value3.mode; const tokens = value3.tokens; const stateFactoryBinding = stateFactory; const object2 = {searchContext: a0, query: query, mode: mode, tokens: tokens}; object2.cursorScope = value3.cursorScope; object2.autocompletes = getAutocompleteList(a0, mode, tokens); env0_20.set(searchContextId, stateFactoryBinding(object2)); } function _fun76013(a0) { // fn#76013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:4122, offset: 0x01dc1a61, size: 122 bytes, params: 2, frame: 16 const closure = SearchAutocompleteStoreClass; env0_7(closure, a0); return env0_4(closure, [{key: 'initialize', value: function() { this.waitFor(ChannelStore, GuildMemberStore, GuildStore, SelectedChannelStore, StreamerModeStore, UserStore); }}, {key: 'getState', value: value_76016}, {key: 'getSelectedSearchContext', value: value_76017}]); } function SEARCH_AUTOCOMPLETE_QUERY_UPDATE({searchContext, tokens, cursorScope}) { // fn#76019, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:5127, offset: 0x01dc1bb5, size: 601 bytes, params: 2, frame: 29 var r15; var autocompletes; var r12; var r0; var r6; var value7; var context; var autocompleteList; var orCreateUserSearchContext; var token; var autocompleteList2; var guildIdFromSearchContext; var setQuery; var object2; var moduleValue5; setSelectedSearchContext(searchContext); const queryFromTokens = (require(9675) /* metro dependency 9675: SearchUtils */).getQueryFromTokens(tokens); const autocompleteMode = (require(9675) /* metro dependency 9675: SearchUtils */).getAutocompleteMode(cursorScope, tokens); const searchContextId = (require(9675) /* metro dependency 9675: SearchUtils */).getSearchContextId(searchContext); const value6 = env0_20.get(searchContextId); if (value6 == null) { if (isUserAutocompleteMode(autocompleteMode)) { orCreateUserSearchContext = getOrCreateUserSearchContext(searchContext); token = autocompleteMode.token; r15 = token == null ? undefined : token.getFullMatch()?.trim(); if (r15 == null) { orCreateUserSearchContext.context.clearQuery(); autocompleteList2 = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList2; } else if (r15.length > 0) { guildIdFromSearchContext = (require(9675) /* metro dependency 9675: SearchUtils */).getGuildIdFromSearchContext(searchContext); if (guildIdFromSearchContext != null) { (importDefault(6592) /* metro dependency 6592: GuildUtils */).requestMembers(guildIdFromSearchContext, r15, env0_22); } context = orCreateUserSearchContext.context; setQuery = context.setQuery; object2 = {query: r15}; object2.filters = {guild: guildIdFromSearchContext ?? undefined}; moduleValue5 = require(6526) /* metro dependency 6526: AutocompleteUtils */; object2.boosters = moduleValue5.getBoosterMap(AutocompleterResultTypes.USER); Reflect.apply(setQuery, context, [object2]); r12 = value6?.autocompletes ?? []; r0 = false; r6 = r12; } else { orCreateUserSearchContext.context.clearQuery(); autocompleteList2 = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList2; } } else { value7 = env0_21.get(searchContextId); if (value7 != null) { value7.context.clearQuery(); value7.results = []; } autocompleteList = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList; } } else if (queryFromTokens !== value6.query) { if (isUserAutocompleteMode(autocompleteMode)) { orCreateUserSearchContext = getOrCreateUserSearchContext(searchContext); token = autocompleteMode.token; r15 = token == null ? undefined : token.getFullMatch()?.trim(); if (r15 == null) { orCreateUserSearchContext.context.clearQuery(); autocompleteList2 = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList2; } else if (r15.length > 0) { guildIdFromSearchContext = (require(9675) /* metro dependency 9675: SearchUtils */).getGuildIdFromSearchContext(searchContext); if (guildIdFromSearchContext != null) { (importDefault(6592) /* metro dependency 6592: GuildUtils */).requestMembers(guildIdFromSearchContext, r15, env0_22); } context = orCreateUserSearchContext.context; setQuery = context.setQuery; object2 = {query: r15}; object2.filters = {guild: guildIdFromSearchContext ?? undefined}; moduleValue5 = require(6526) /* metro dependency 6526: AutocompleteUtils */; object2.boosters = moduleValue5.getBoosterMap(AutocompleterResultTypes.USER); Reflect.apply(setQuery, context, [object2]); r12 = value6?.autocompletes ?? []; r0 = false; r6 = r12; } else { orCreateUserSearchContext.context.clearQuery(); autocompleteList2 = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList2; } } else { value7 = env0_21.get(searchContextId); if (value7 != null) { value7.context.clearQuery(); value7.results = []; } autocompleteList = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList; } } else if (value6.mode == null) { autocompletes = value6.autocompletes; r0 = false; r6 = autocompletes; } else if (value6.mode.filter === autocompleteMode.filter) { autocompletes = value6.autocompletes; r0 = false; r6 = autocompletes; } else if (isUserAutocompleteMode(autocompleteMode)) { orCreateUserSearchContext = getOrCreateUserSearchContext(searchContext); token = autocompleteMode.token; r15 = token == null ? undefined : token.getFullMatch()?.trim(); if (r15 == null) { orCreateUserSearchContext.context.clearQuery(); autocompleteList2 = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList2; } else if (r15.length > 0) { guildIdFromSearchContext = (require(9675) /* metro dependency 9675: SearchUtils */).getGuildIdFromSearchContext(searchContext); if (guildIdFromSearchContext != null) { (importDefault(6592) /* metro dependency 6592: GuildUtils */).requestMembers(guildIdFromSearchContext, r15, env0_22); } context = orCreateUserSearchContext.context; setQuery = context.setQuery; object2 = {query: r15}; object2.filters = {guild: guildIdFromSearchContext ?? undefined}; moduleValue5 = require(6526) /* metro dependency 6526: AutocompleteUtils */; object2.boosters = moduleValue5.getBoosterMap(AutocompleterResultTypes.USER); Reflect.apply(setQuery, context, [object2]); r12 = value6?.autocompletes ?? []; r0 = false; r6 = r12; } else { orCreateUserSearchContext.context.clearQuery(); autocompleteList2 = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList2; } } else { value7 = env0_21.get(searchContextId); if (value7 != null) { value7.context.clearQuery(); value7.results = []; } autocompleteList = getAutocompleteList(searchContext, autocompleteMode, tokens); r0 = true; r6 = autocompleteList; } env0_20.set(searchContextId, stateFactory({searchContext: searchContext, query: queryFromTokens, mode: autocompleteMode, tokens: tokens, cursorScope: cursorScope, autocompletes: r6})); return r0; } function SEARCH_EDITOR_STATE_CLEAR({id}) { // fn#76020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:6159, offset: 0x01dc1e0e, size: 92 bytes, params: 2, frame: 14 const value2 = env0_21.get(id); if (value2 != null) { value2.context.destroy(); value2.results = []; env0_21.delete(id); } env0_20.delete(id); } function STREAMER_MODE_UPDATE_76021() { // fn#76021, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:6403, offset: 0x01dc1e6a, size: 33 bytes, params: 1, frame: 12 return env0_18 != null && rebuildAutocompleteResults(env0_18); } function generateFilterResults({filter, currentToken, searchContext, maxResults, tokens}) { // fn#76009, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:2915, owner: getAutocompleteList.generateFilterResults, offset: 0x01dc17c4, size: 436 bytes, params: 2, frame: 22 var r2; var getAutocompletions; var r5; var r3; var fullMatch; var property; var value9; let value = undefined; maxResults = maxResults === value ? 10 : maxResults; if (filter == null) { return null; } if (currentToken == null) { r2 = value; } else { fullMatch = currentToken.getFullMatch(); r2 = fullMatch == null ? value : fullMatch.trim(); } const r8 = r2 ?? ''; const length = r8.length; const searchUtilsModule = require(9675) /* metro dependency 9675: SearchUtils */; if (searchUtilsModule.isGuildLikeSearchContext(searchContext)) { if (isUserAutocompleteFilter(filter)) { if (length === 0) { property = (importDefault(9676) /* metro dependency 9676: SearchTokens */)[filter]; getAutocompletions = property == null ? value : property.getAutocompletions; r5 = getAutocompletions != null ? getAutocompletions({query: r8, searchContext: searchContext, maxResults: maxResults, tokens: tokens}) : []; } else { r5 = getOrCreateUserSearchContext(searchContext).results; } } else { property = (importDefault(9676) /* metro dependency 9676: SearchTokens */)[filter]; getAutocompletions = property == null ? value : property.getAutocompletions; r5 = getAutocompletions != null ? getAutocompletions({query: r8, searchContext: searchContext, maxResults: maxResults, tokens: tokens}) : []; } } else { property = (importDefault(9676) /* metro dependency 9676: SearchTokens */)[filter]; getAutocompletions = property == null ? value : property.getAutocompletions; r5 = getAutocompletions != null ? getAutocompletions({query: r8, searchContext: searchContext, maxResults: maxResults, tokens: tokens}) : []; } if (r5 == null) { r3 = r5; } else if (isUserAutocompleteFilter(filter)) { value = require(9676) /* metro dependency 9676: SearchTokens */; if (value.isMeAutcompleteAnswer(r8)) { value = UserStore.getCurrentUser(); if (value == null) { r3 = r5; } else { value9 = r5.filter(_fun76010); value9.unshift({text: ME, user: value}); r3 = value9; } } else { r3 = r5; } } else { r3 = r5; } return r3 == null || r3.length === 0 ? null : {group: filter, results: r3}; } function value_76016(a0) { // fn#76016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:4553, offset: 0x01dc1b0a, size: 137 bytes, params: 2, frame: 13 return env1_20.get((require(9675) /* metro dependency 9675: SearchUtils */).getSearchContextId(a0)) ?? ({searchContext: a0, query: '', mode: {'type': null, 'filter': null, 'token': null, type: SearchPopoutModes.EMPTY}, tokens: [], cursorScope: null, autocompletes: []}); } function _fun76010({user}) { // fn#76010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9863:3507, offset: 0x01dc1978, size: 42 bytes, params: 2, frame: 3 return user?.id !== env0_0.id; }