decord/alpha/source/modules/autocompleter/native/AutocompleteOptions.tsx
2026-10-12 06:59:38 +00:00

383 lines
14 KiB
TypeScript

// Module ID: 9800
// Function ID: 9801
// Name: AutocompleteOptions
// Dependencies: [7921, 7922, 8236, 6030, 2065, 2125, 2087, 1085, 5403, 5404, 9801, 1393, 12, 9802, 5970, 2041, 8706, 8710, 9117, 7044, 9813, 9759, 7047, 1415, 1126, 2]
// Exports: getAutocompleteOptions
// Module 9800 (AutocompleteOptions)
import intl2 from "intl" /* 1126 */;
import ApplicationCommandConstants from "ApplicationCommandConstants" /* 5403 */;
import AutocompleteUtilsDefault from "AutocompleteUtils" /* 5970 */;
import StickersActionCreators from "StickersActionCreators" /* 9759 */;
import channel_text_area_ChannelAutocompleteConstants from "channel_text_area/ChannelAutocompleteConstants" /* 9801 */;
import executeCommandDefault from "executeCommand" /* 9802 */;
import ApplicationCommandAutocompleteStore from "ApplicationCommandAutocompleteStore" /* 7921 */;
import ApplicationCommandStore from "ApplicationCommandStore" /* 7922 */;
import GameAutocompleteStore from "GameAutocompleteStore" /* 8236 */;
import StickersStore from "StickersStore" /* 6030 */;
import ChannelStore from "ChannelStore" /* 2065 */;
import GuildMemberStore from "GuildMemberStore" /* 2125 */;
import GuildStore from "GuildStore" /* 2087 */;
import Constants from "Constants" /* 1085 */;
import ChannelAutocompleteConstants from "ChannelAutocompleteConstants" /* 5404 */;
import EmojiConstants from "EmojiConstants" /* 1393 */;
import module_12 from "module_12" /* 12 */;
import size from "module_2" /* 2 */;
let sticker;
let c10;
let closure_12;
let closure_14;
let closure_15;
let closure_17;
let closure_18;
let closure_19;
let map1;
let unpackModuleId;
({ AutoCompleteResultTypes: c10, MAX_AUTOCOMPLETE_RESULTS: unpackModuleId } = Constants);
const AUTOCOMPLETE_OPTION_DEBOUNCE_TIME = ApplicationCommandConstants.AUTOCOMPLETE_OPTION_DEBOUNCE_TIME;
({ MENTION_SENTINEL: closure_12, EMOJI_SENTINEL: map1, CHANNEL_SENTINEL: closure_14, COMMAND_SENTINEL: closure_15 } = ChannelAutocompleteConstants);
const AutocompleteTypes = channel_text_area_ChannelAutocompleteConstants.AutocompleteTypes;
({ EmojiIntention: closure_17, EMOJI_MAX_LENGTH: closure_18, EMOJI_URL_BASE_SIZE: closure_19 } = EmojiConstants);
let c20 = false;
const executeCommand = module_12.debounce(executeCommandDefault, AUTOCOMPLETE_OPTION_DEBOUNCE_TIME, { leading: true, trailing: true });
let result = size.fileFinishedImporting("modules/autocompleter/native/AutocompleteOptions.tsx");
export const getAutocompleteOptions = function getAutocompleteOptions(channel, arg1, setting) {
let items;
let items1;
let items2;
let flag = arg1;
if (arg1 === undefined) {
flag = false;
}
let flag2 = setting;
if (setting === undefined) {
flag2 = true;
}
let obj = {
stores: items,
queryResults(query, canMentionEveryone, request) {
let canMentionHere;
let canMentionRoles;
let canMentionUsers;
let globals;
let prop;
let prop1;
let prop2;
let roles;
let users;
let obj = { query, channel, canMentionEveryone, canMentionHere, canMentionUsers, canMentionRoles, includeAllGuildUsers: prop, includeNonMentionableRoles: prop1, canMentionOtherGlobals: prop2, request };
canMentionEveryone = undefined;
const queryMentionResults = AutocompleteUtilsDefault.queryMentionResults;
if (canMentionEveryone != null) {
canMentionEveryone = canMentionEveryone.canMentionEveryone;
}
canMentionHere = undefined;
if (canMentionEveryone != null) {
canMentionHere = canMentionEveryone.canMentionHere;
}
canMentionUsers = undefined;
if (canMentionEveryone != null) {
canMentionUsers = canMentionEveryone.canMentionUsers;
}
canMentionRoles = undefined;
if (canMentionEveryone != null) {
canMentionRoles = canMentionEveryone.canMentionRoles;
}
prop = undefined;
if (canMentionEveryone != null) {
prop = canMentionEveryone.canMentionAnyGuildUser;
}
prop1 = undefined;
if (canMentionEveryone != null) {
prop1 = canMentionEveryone.canMentionNonMentionableRoles;
}
prop2 = undefined;
if (canMentionEveryone != null) {
prop2 = canMentionEveryone.canMentionOtherGlobals;
}
({ users, globals, roles } = queryMentionResults(obj));
queryMentionResults(obj);
const items = [
...users.map((item) => {
const obj = { type: constants.USER };
const merged = Object.assign(item);
return obj;
}),
...globals.map((item) => {
const obj = { type: constants.GLOBAL };
const merged = Object.assign(item);
return obj;
}),
...roles.map((item) => {
const obj = { type: constants.ROLE };
const merged = Object.assign(item);
return obj;
})
];
const tmpResult = module_12;
const iter = tmpResult(items);
return iter.value();
},
matches(arg0, arg1) {
const obj = flag(flag2[14]);
return obj.matchSentinel(arg0, arg1, closure_1_12);
}
};
items = [GuildMemberStore, GameAutocompleteStore];
let obj2 = {
stores: items1,
queryResults(query) {
const IncludeGameMentionsInAutocomplete = channel(flag2[15]).IncludeGameMentionsInAutocomplete;
if (IncludeGameMentionsInAutocomplete.getSetting()) {
if (0 !== query.length) {
const queryGamesAutocomplete = channel(flag2[16]).queryGamesAutocomplete;
channel(flag2[16]);
let result = queryGamesAutocomplete(query, tmp(tmp2[17]).GameSearchFilterGroup.DEFAULT, tmp(tmp2[18]).GameSearchSurface.CHAT_MENTION);
if (result == null) {
result = [];
}
const substr = result.slice(0, closure_1_11);
const mapped = substr.map((game) => ({ type: constants.GAME_MENTION, game }));
}
return [];
}
},
matches() {
return false;
}
};
items1 = [GameAutocompleteStore];
let obj3 = {
queryResults(str) {
const TimestampAutocompleteMobileExperiment = channel(flag2[19]).TimestampAutocompleteMobileExperiment;
const items = [];
const tmp = channel;
const tmp2 = flag2;
if (TimestampAutocompleteMobileExperiment.getConfig({ location: "timestamps autocomplete" }).enabled) {
const tmpResult = tmp(tmp2[20]);
const result = tmpResult.queryTimestampSuggestions(str.trim());
const iter = result[Symbol.iterator]();
const nextResult = iter.next();
while (iter !== undefined) {
let tmp10 = nextResult;
if (null != nextResult.mention) {
let obj = { type: constants.TIMESTAMP_MENTION, mention: null, description: null };
({ mention: obj2.mention, description: obj2.description } = tmp10);
let arr = items.push(obj);
}
continue;
}
return items;
} else {
return items;
}
},
matches() {
return false;
}
};
let obj4 = {
queryResults(query, channelTypes) {
let result;
if (channelTypes != null) {
channelTypes = channelTypes.channelTypes;
}
let prop;
if (channelTypes != null) {
prop = channelTypes.isActiveApplicationCommand;
}
let obj = AutocompleteUtilsDefault;
if (prop) {
const obj2 = { query, channel, channelTypes };
result = obj.queryApplicationCommandChannelResults(obj2);
} else {
const obj3 = { query, channel };
result = obj.queryChannelResults(obj3);
}
const channels = result.channels;
return channels.map((channel) => {
const obj = { type: constants.CHANNEL, channel, category: channel.getChannel(channel.parent_id) };
return obj;
});
},
matches(arg0, arg1) {
let matchSentinelResult = !channel.isPrivate();
channel.isPrivate();
if (matchSentinelResult) {
const obj = AutocompleteUtilsDefault;
matchSentinelResult = obj.matchSentinel(arg0, arg1, syncedClientThemes);
}
return matchSentinelResult;
}
};
let obj5 = {
queryResults(query, includeEmojiPremiumUpsell) {
let num = 40;
if (flag2) {
num = 0;
}
let obj = AutocompleteUtilsDefault;
let obj2 = { query, channel, intention: constants2.CHAT, maxCount: unpackModuleId + num };
const queryEmojiResultsResult = obj.queryEmojiResults(obj2);
let prop;
const tmp5 = channel;
if (includeEmojiPremiumUpsell != null) {
prop = includeEmojiPremiumUpsell.includeEmojiPremiumUpsell;
}
if (prop) {
if (queryEmojiResultsResult.emojis.locked.length > 0) {
let items5;
if (queryEmojiResultsResult.emojis.unlocked.length < 4) {
const obj3 = { type: constants.EMOJI_PREMIUM_UPSELL, results: queryEmojiResultsResult.emojis.locked };
const items = [obj3];
items5 = items;
}
let items1 = [];
if (flag2) {
const hasLoadedStickerPacks = c20 || StickersStore.hasLoadedStickerPacks;
if (!hasLoadedStickerPacks) {
flag = true;
c20 = true;
let obj4 = StickersActionCreators;
const stickerPacks = obj4.fetchStickerPacks();
}
const items2 = [query];
const items3 = [tmp5, (arg0, arg1) => arg1 === channel(flag2[22]).StickerSendability.SENDABLE];
flag2 = true;
const tmp3Result = AutocompleteUtilsDefault;
items1 = tmp3Result.queryStickers(items2, true, items3);
}
const items4 = [];
const unlocked = queryEmojiResultsResult.emojis.unlocked;
const arraySpreadResult = HermesBuiltin.arraySpread(items4, items1.map((sticker) => {
sticker = sticker.sticker;
return { type: constants.STICKER, name: sticker.name, sticker };
}), 0);
HermesBuiltin.arraySpread(items4, items5, HermesBuiltin.arraySpread(items4, unlocked.map((name) => {
let surrogates;
let url;
const obj = { type: constants.EMOJI, name: name.name, url, surrogates };
if (null != name.id) {
const obj4 = { id: null, animated: null, size };
({ id: obj3.id, animated: obj3.animated } = name);
const obj2 = flag(flag2[23]);
url = obj2.getEmojiURL(obj4);
} else {
url = name.url;
}
surrogates = undefined;
if (null == name.id) {
surrogates = name.surrogates;
}
return obj;
}), arraySpreadResult));
return items4;
}
}
items5 = [];
},
matches(arg0, arr) {
let tmp2 = arg0 === closure_1_13;
if (tmp2) {
tmp2 = !tmp4 && !arr.includes(tmp);
!(arr.length < 2 || arr.length > closure_1_18) && !arr.includes(tmp);
}
return tmp2;
}
};
let obj6 = {
queryResults() {
return [];
},
matches(arg0, arg1, arg2) {
let tmp = 0 === arg2 && arg0 === authStore3;
if (tmp) {
tmp = !(flag && 0 === arg1.length);
const tmp4 = flag && 0 === arg1.length;
}
return tmp;
}
};
let obj7 = {
queryResults() {
return [];
},
matches(arg0, arg1, arg2) {
return flag && 0 === arg2 && arg0 === authStore3 && 0 === arg1.length;
}
};
let obj8 = {
stores: items2,
queryResults(query, option) {
let intl;
let items1;
let obj4;
let obj5;
let autocomplete;
if (option != null) {
option = option.option;
if (option != null) {
autocomplete = option.autocomplete;
}
}
if (autocomplete) {
let activeCommand;
if (option != null) {
activeCommand = option.activeCommand;
}
if (null != activeCommand) {
let optionValues;
if (option != null) {
optionValues = option.optionValues;
}
if (null != optionValues) {
let fillResult;
const obj2 = { command: null, optionValues: null, context: obj4 };
({ activeCommand: obj3.command, optionValues: obj3.optionValues } = option);
obj4 = { channel, guild: GuildStore.getGuild(channel.guild_id), autocomplete: obj5 };
obj5 = { name: option.option.name, query };
executeCommand(obj2);
const autocompleteChoices = ApplicationCommandAutocompleteStore.getAutocompleteChoices(channel.id, option.option.name, query);
if (null == autocompleteChoices) {
const _Array = Array;
const self = this;
const self2 = this;
const array = new Array(4);
const obj6 = { type: constants.CHOICE_LOADING };
fillResult = array.fill(obj6);
} else if (0 === autocompleteChoices.length) {
const obj7 = { type: constants.LABEL, label: intl.string(intl2.t["41014u"]) };
intl = intl2.intl;
const items = [obj7];
fillResult = items;
} else {
fillResult = autocompleteChoices.map((choice) => ({ type: constants.CHOICE, choice }));
}
return fillResult;
}
}
}
let choices;
if (option != null) {
choices = option.choices;
}
if (null == choices) {
items1 = [];
} else {
const obj = AutocompleteUtilsDefault;
const obj8 = { query, choices };
const choices1 = obj.queryChoiceResults(obj8).choices;
items1 = choices1.map((choice) => ({ type: constants.CHOICE, choice }));
}
return items1;
},
matches() {
return false;
}
};
items2 = [ApplicationCommandStore, ApplicationCommandAutocompleteStore];
return { [closure_16.MENTIONS]: obj, [closure_16.GAME_MENTIONS]: obj2, [closure_16.TIMESTAMPS]: obj3, [closure_16.CHANNELS]: obj4, [closure_16.EMOJIS_AND_STICKERS]: obj5, [closure_16.SLASHES]: obj6, [closure_16.SLASHES_DISCOVERY]: obj7, [closure_16.CHOICES]: obj8 };
};