// Metro module 10103 (f10104). import ChannelStore from "../../stores/ChannelStore"; import GuildChannelStore from "../../stores/GuildChannelStore"; import GuildNSFWAgreeStore from "../../stores/GuildNSFWAgreeStore"; import RelationshipStore from "../../stores/RelationshipStore"; import "../../stores/SelectedChannelStore"; import UserStore from "../../stores/UserStore"; import { SearchTabs } from "./SearchConstants"; import { IS_SEARCH_ANSWER_TOKEN, IS_SEARCH_FILTER_TOKEN, SearchModes, SearchPopoutModes, SearchTokenTypes, SearchTypes, ME } from "../../Constants"; import Module3771 from "../../_bundle/Module3771"; import { intl, t } from "../../intl/index.native"; import SearchTokens, { isSearchFilterTokenType, rebuildSearchTokenConfigs, buildCrossDMSearchTokensConfig } from "./tokens/SearchTokens"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import QueryTokenizer from "../../lib/QueryTokenizer"; import Module12 from "../../_bundle/Module12"; import SearchActionCreators from "./SearchActionCreators"; import { computeChannelName } from "../channel/useChannelName"; import UserUtils from "../../utils/UserUtils"; function $mk83946() { return (a0, a1) => `\\${a1}`; } ME; let c6723_16 = 2592000; let c6723_17 = 31536000; const r45 = {}; r45[SearchTokenTypes.FILTER_BEFORE] = true; r45[SearchTokenTypes.FILTER_AFTER] = true; r45[SearchTokenTypes.FILTER_ON] = true; let c6723_18 = r45; let c6723_19 = new QueryTokenizer(); let c6723_20 = new QueryTokenizer(); export function getSearchContextId(a0) { const type = a0.type; if (SearchTypes.GUILD === type) { return a0.guildId; } if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) { if (SearchTypes.DMS === type) { return a0.type; } return void 0; } return a0.channelId; } export function getSearchHistoryStateId(a0) { let guildId; L8: { const type = a0.type; if (SearchTypes.GUILD === type) { guildId = a0.guildId; } else { if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) { const DMS = SearchTypes.DMS; guildId = void 0; if (DMS !== type) { break L8; } guildId = a0.type; break L8; } guildId = a0.channelId; } } return guildId; } export function getSearchTabFetchId(a0, a1, a2) { let guildId; L8: { const type = a0.type; if (SearchTypes.GUILD === type) { guildId = a0.guildId; } else { if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) { const DMS = SearchTypes.DMS; guildId = void 0; if (DMS !== type) { break L8; } guildId = a0.type; break L8; } guildId = a0.channelId; } } return `${guildId}-${a1}-${a2}`; } export function getChannelActiveAgoTimestamp(a0) { const r19 = Module3771().diff(Module3771(a0), "s"); if (r19 > c6723_17) { return intl.formatToPlainString(t["7th+Mf"], { count: Math.round(r19 / c6723_17) }); } if (r19 > c6723_16) { return intl.formatToPlainString(t.g2uHTD, { count: Math.round(r19 / c6723_16) }); } if (r19 > 172800) { return intl.formatToPlainString(t.HNgi95, { count: Math.round(r19 / 86400) }); } if (r19 > 86400) { return intl.string(t.uNkIhT); } if (r19 > 3600) { return intl.formatToPlainString(t.WJBWP1, { count: Math.round(r19 / 3600) }); } if (r19 > 60) { return intl.formatToPlainString(t.CbRfwg, { count: Math.round(r19 / 60) }); } return intl.string(t["5Ldpkc"]); } export function getIndexingErrorText({ type }) { if (SearchTypes.CHANNEL === type) { return intl.string(t.Q0JJjv); } if (SearchTypes.DMS === type) { return intl.string(t.Br0xJA); } if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.GUILD !== type && SearchTypes.THREAD !== type) { return void 0; } return intl.string(t.AXPbZr); } export function getGuildIdFromSearchContext(a0) { const type = a0.type; if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.GUILD !== type && SearchTypes.THREAD !== type) { if (SearchTypes.CHANNEL === type) { let r15 = ChannelStore.getChannel(a0.channelId)?.guild_id; if (r15 == null) { r15 = null; } return r15; } return null; } return a0.guildId; } export function isGuildLikeSearchContext(a0) { return a0.type === SearchTypes.GUILD || a0.type === SearchTypes.GUILD_CHANNEL || a0.type === SearchTypes.THREAD; } export function getChannelIdFromSearchContext(a0) { const type = a0.type; if (SearchTypes.GUILD_CHANNEL !== type && SearchTypes.CHANNEL !== type && SearchTypes.THREAD !== type) { return null; } return a0.channelId; } export function getTabTitle(a0) { if (SearchTabs.RECENT === a0) { return intl.string(t.tWnHcL); } if (SearchTabs.MESSAGES === a0) { return intl.string(t.dvZAkp); } if (SearchTabs.PEOPLE === a0) { return intl.string(t["GFd/I5"]); } if (SearchTabs.MEDIA === a0) { return intl.string(t["Aw9+/M"]); } if (SearchTabs.PINS === a0) { return intl.string(t["/MoGoB"]); } if (SearchTabs.LINKS === a0) { return intl.string(t.DFSvTt); } if (SearchTabs.FILES === a0) { return intl.string(t["WgVYR/"]); } if (SearchTabs.GUILD_CHANNELS === a0) { return intl.string(t.OGiMXJ); } if (SearchTabs.MEMBERS === a0) { return intl.string(t["9Oq93m"]); } if (SearchTabs.THREADS === a0) { return intl.string(t.B2panI); } } export function searchModeToSearchQueryParams(a0) { if (SearchModes.MOST_RELEVANT === a0) { return { sort_by: "relevance", sort_order: "desc" }; } if (SearchModes.OLDEST === a0) { return { sort_by: "timestamp", sort_order: "asc" }; } SearchModes.NEWEST; return { sort_by: "timestamp", sort_order: "desc" }; } export function searchQueryParamsToSearchMode(a0) { let MOST_RELEVANT; L10: { if (a0.sort_by != null && a0.sort_order != null) { if (a0.sort_by === "relevance") { MOST_RELEVANT = SearchModes.MOST_RELEVANT; break L10; } if (a0.sort_order === "asc") { MOST_RELEVANT = SearchModes.OLDEST; break L10; } MOST_RELEVANT = SearchModes.NEWEST; } else { MOST_RELEVANT = SearchModes.NEWEST; } } return MOST_RELEVANT; } export function getSearchOptionAnswer(a0) { if (SearchTokenTypes.FILTER_FROM === a0) { return intl.string(t.E466pL); } if (SearchTokenTypes.FILTER_MENTIONS === a0) { return intl.string(t.BYvFWl); } if (SearchTokenTypes.FILTER_HAS === a0) { return intl.string(t.bhSYbc); } if (SearchTokenTypes.FILTER_BEFORE !== a0 && SearchTokenTypes.FILTER_ON !== a0 && SearchTokenTypes.FILTER_AFTER !== a0) { if (SearchTokenTypes.FILTER_IN === a0) { return intl.string(t["GpM+/7"]); } if (SearchTokenTypes.FILTER_LINK_FROM === a0) { return intl.string(t.FdDTni); } if (SearchTokenTypes.FILTER_FILE_TYPE === a0) { return intl.string(t.FXcAFe); } if (SearchTokenTypes.FILTER_FILE_NAME === a0) { return intl.string(t.uAbFDM); } if (SearchTokenTypes.FILTER_PINNED === a0) { return intl.string(t.UJxL3V); } if (SearchTokenTypes.FILTER_AUTHOR_TYPE === a0) { return intl.string(t.qCQzBl); } return void 0; } return intl.string(t.Zbbc1E); } export { c6723_18 as ShowDatePicker }; export function setIncludeNSFW(a0, a1) { if (GuildNSFWAgreeStore.didAgree(a1)) { const currentUser = UserStore.getCurrentUser(); if (currentUser == null) { return void 0; } a0.include_nsfw = currentUser.nsfwAllowed == null || currentUser.nsfwAllowed; } } export function getSearchQueryFromTokens(a0) { const r0 = {}; let c17687_0 = r0; a0.forEach((a0) => { L32: { const type = a0.type; if (!IS_SEARCH_FILTER_TOKEN.test(type)) { if (SearchTokenTypes.ANSWER_BEFORE !== type && SearchTokenTypes.ANSWER_ON !== type && SearchTokenTypes.ANSWER_AFTER !== type) { const r7 = (function getQueryKey(a0) { const r8 = SearchTokens[a0]; let r10 = r8 != null ? r8.queryKey : null; if (r10 == null) { r10 = "content"; } return r10; })(type); if (c17687_0[r7] == null) { c17687_0[r7] = new Set(); } const r33 = c17687_0[r7]; if (SearchTokenTypes.ANSWER_USERNAME_FROM !== type && SearchTokenTypes.ANSWER_USERNAME_MENTIONS !== type) { if (SearchTokenTypes.ANSWER_LINK_FROM !== type && SearchTokenTypes.ANSWER_FILE_TYPE !== type && SearchTokenTypes.ANSWER_FILE_NAME !== type) { if (SearchTokenTypes.ANSWER_IN !== type) { if (SearchTokenTypes.ANSWER_HAS === type) { r33.add(a0.getData("has")); break L32; } if (SearchTokenTypes.ANSWER_PINNED === type) { r33.add(a0.getData("pinned")); break L32; } if (SearchTokenTypes.ANSWER_AUTHOR_TYPE === type) { r33.add(a0.getData("author_type")); break L32; } r33.add(a0.getFullMatch().trim()); break L32; } let r66 = a0.getData("channelIds"); if (r66 == null) { r66 = []; } for (const item of r66) { r33.add(item); } break L32; } r33.add(a0.getMatch(1)); break L32; } r33.add(a0.getData("userId")); break L32; } const data = a0.getData("start"); const data2 = a0.getData("end"); if (data) { c17687_0.min_id = SnowflakeUtils.fromTimestamp(data); } if (data2) { c17687_0.max_id = SnowflakeUtils.fromTimestamp(data2); } return void 0; } } }); for (const item of Object.entries(r0)) { const [r37, r38] = item; if (r38 instanceof Set) { r0[r37] = Array.from(r38); } } if (r0.content) { delete r0["contents"]; r0.content = r0.content.join(" ").trim(); if (!r0.content) { delete r0["content"]; } } return r0; } export function getQueryContentString(a0) { let r12; if (a0?.contents != null && a0.contents.length > 0) { const r13 = a0 == null; let r5 = void 0; if (!r13) { const contents = a0.contents; r5 = contents == null ? void 0 : contents.map((content) => content.split("|").slice(1).join("|")).join(" "); } r12 = r5; } else { r12 = a0?.content; } return r12; } export function getNonTokenQuery(a0) { return a0.map((item) => item.type === QueryTokenizer.NON_TOKEN_TYPE ? item.getFullMatch() : "").join(" ").trim(); } export function getSelectionScope(a0, a1, a2) { let previousToken, nextToken; const currentToken = a0.find((item, index) => { let r1; L7: { if (a1 >= item.start && a1 <= item.end) { if (a2 >= item.start && a2 <= item.end) { const r3 = a0[index + 1] != null; r1 = true; if (!r3) { break L7; } nextToken = a0[index + 1]; r1 = true; } else { previousToken = item; r1 = false; } } else { previousToken = item; r1 = false; } } return r1; }); return currentToken != null ? { previousToken, currentToken, nextToken, focusOffset: a1, anchorOffset: a2 } : null; } export function getAutocompleteMode(a0, a1) { const r7 = a0 == null ? {} : a0; const { currentToken, nextToken: nextToken2, previousToken: previousToken2 } = r7; if (a1.length === 0) { return { type: SearchPopoutModes.EMPTY, filter: null, token: null }; } if (currentToken == null) { return { type: SearchPopoutModes.FILTER_ALL, filter: null, token: null }; } L10: { if (isSearchFilterTokenType(currentToken.type)) { if (nextToken2 != null && nextToken2.type !== QueryTokenizer.NON_TOKEN_TYPE) { if (nextToken2 == null) { break L10; } if (IS_SEARCH_ANSWER_TOKEN.test(nextToken2.type)) { break L10; } return { type: SearchPopoutModes.FILTER, filter: currentToken.type, token: null }; } return { type: SearchPopoutModes.FILTER, filter: currentToken.type, token: nextToken2 }; } } return currentToken.type === QueryTokenizer.NON_TOKEN_TYPE && (previousToken2 != null && isSearchFilterTokenType(previousToken2.type)) ? { type: SearchPopoutModes.FILTER, filter: previousToken2.type, token: currentToken } : { type: SearchPopoutModes.FILTER_ALL, filter: null, token: currentToken.type === QueryTokenizer.NON_TOKEN_TYPE ? currentToken : void 0 }; } export function quoteChannelName(a0) { return a0.match(/([\\" ])/g) != null ? `"${a0.replaceAll.call(a0, /([\\"])/g, $mk83946())}"` : a0; } export function getFlattenedAutocompleteResults(a0, c17689_0) { let c17689_1 = []; Module12(a0).forEach((item) => { let group; if (item != null && item.results.length !== 0) { group = item.group; c17689_1 = c17689_1.concat(item.results.map((a0) => { const text = a0.text; const r10 = a0.channel != null ? text.match(/([\\" ])/g) != null ? `"${text.replaceAll(/([\\"])/g, $mk83946())}"` : text : text; const type = c17689_0.type; const FILTER_ALL = SearchPopoutModes.FILTER_ALL; let resultText = r10; if (type === FILTER_ALL) { let group2 = a0.group; if (group2 == null) { group2 = group; } group = group2; const r34 = SearchTokens[group]; resultText = r34?.key != null && r34?.key !== "" ? `${r34.key} ${r10}` : r10; } return { result: a0, group: item.group, resultText }; })); } }); return c17689_1.filter((item) => item.resultText !== ""); } export function getQueryFromTokens(a0) { return a0 == null ? "" : a0.map((item) => item.getFullMatch()).join(""); } export function queryHasFilter(a0, c17690_0) { return c6723_19.tokenize(a0).some((item) => item.type === c17690_0); } export function tokenizeQuery(a0) { return c6723_19.tokenize(a0); } export function clearTokenCache() { c6723_19.clearCache(); c6723_20.clearCache(); } export function showDatePicker(a0) { return a0 != null ? c6723_18[a0] : null; } export function filterHasAnswer(a0, a1) { const r7 = IS_SEARCH_FILTER_TOKEN.test(a0.type); return !(a1 == null && r7 || a1 != null && r7 && !IS_SEARCH_ANSWER_TOKEN.test(a1.type)); } export function refreshSearchTokens() { rebuildSearchTokenConfigs(); c6723_19.reset(); Module12(SearchTokens).forOwn((a0, a1) => c6723_19.addRule({ type: a1, ...a0 })); c6723_20.reset(); Module12(buildCrossDMSearchTokensConfig()).forOwn((a0, a1) => c6723_20.addRule({ type: a1, ...a0 })); SearchActionCreators.markSearchTokensRefreshed(); } export function getChannelDisplayName(a0) { let r0, r20; const r12 = computeChannelName(a0, UserStore, RelationshipStore); if (a0.isDM()) { const userTag = UserUtils.getUserTag(UserStore.getUser(a0.getRecipientId())); const r40 = userTag == null; r0 = false; r20 = userTag; if (r40) { return null; } } else { const isGroupDM = a0.isGroupDM(); r0 = false; r20 = r12; if (!isGroupDM) { const r2 = !a0.isThread(); const r28 = GuildChannelStore.getTextChannelNameDisambiguations(a0.getGuildId())[a0.id]; const name = r28?.name; r0 = r2; r20 = r12; if (name != null) { r20 = r28.name; r0 = r2; } } } const r43 = r20.match(/([\\" ])/g); const r45 = r20; const r46 = r43 != null ? `"${r45.replaceAll(/([\\"])/g, $mk83946())}"` : r45; return r0 ? `#${r46}` : r46; } export function getChannelPlaceholderName(a0) { if (a0.isGroupDM()) { return computeChannelName(a0, UserStore, RelationshipStore); } if (a0.isDM()) { return UserUtils.getUserTag(UserStore.getUser(a0.getRecipientId())); } let r18 = GuildChannelStore.getTextChannelNameDisambiguations(a0.getGuildId())[a0.id]?.name; if (r18 == null) { r18 = computeChannelName(a0, UserStore, RelationshipStore); } return r18; } export function removeInvalidPrivateChannelSearchTokens(a0) { let c17691_1; const r4 = c6723_20.tokenize(a0); const r6 = []; let c17691_0 = r6; r4.forEach((item) => { if (!(item.type === SearchTokenTypes.FILTER_IN || item.type === SearchTokenTypes.ANSWER_IN)) { c17691_0.push(item); } }); c17691_1 = ""; r6.forEach((item) => { c17691_1 = c17691_1 + item.getFullMatch(); }); return c17691_1.trim(); }