Files
discord-decomp/sources/utils/EmojiUtils.tsx
T
2026-07-27 16:20:00 +03:00

751 lines
33 KiB
TypeScript

/* Metro module 3801; source: utils/EmojiUtils.tsx; dependencies: [5, 1383, 3784, 1878, 661, 1881, 3800, 3802, 6545, 3777, 7171, 1475, 1423, 2] */
function _fun29006(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#29006, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:6, offset: 0x00fb41c4, size: 738 bytes, params: 8, frame: 26
const env0_0 = require;
const _arrayLikeToArray_29009 = 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 closure = isCustomEmoji;
const closure2 = isInternalEmojiForGuildId;
const closure3 = getEmojiUnavailableReason;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
let value = require(1383) /* metro dependency 1383: ChannelRecord */;
const env0_4 = value.isGuildTextChannelType;
const env0_5 = value.isGuildVocalChannelType;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const env0_8 = (require(661) /* metro dependency 661: Constants */).Permissions;
value = require(1881) /* metro dependency 1881: EmojiConstants */;
const env0_9 = value.EMOJI_MAX_FILESIZE;
const env0_10 = value.EMOJI_MAX_LENGTH;
const env0_11 = value.EMOJI_RE;
const EmojiDisabledReasons = value.EmojiDisabledReasons;
const env0_13 = value.EmojiIntention;
const env0_14 = value.isExternalEmojiAllowedForIntention;
let Set = global.Set;
const PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED;
const ROLE_SUBSCRIPTION_LOCKED = EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED;
let set = new Set([PREMIUM_LOCKED, ROLE_SUBSCRIPTION_LOCKED]);
Set = global.Set;
object = [];
set = arraySpread(object, set, 0, 0);
let GUILD_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE;
object[set] = GUILD_SUBSCRIPTION_UNAVAILABLE;
set += 1;
const ROLE_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.ROLE_SUBSCRIPTION_UNAVAILABLE;
object[set] = ROLE_SUBSCRIPTION_UNAVAILABLE;
set = new Set(object);
Set = global.Set;
const DISALLOW_CUSTOM = EmojiDisabledReasons.DISALLOW_CUSTOM;
const DISALLOW_EXTERNAL = EmojiDisabledReasons.DISALLOW_EXTERNAL;
GUILD_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE;
const ONLY_GUILD_EMOJIS_ALLOWED = EmojiDisabledReasons.ONLY_GUILD_EMOJIS_ALLOWED;
set = new Set([DISALLOW_CUSTOM, DISALLOW_EXTERNAL, GUILD_SUBSCRIPTION_UNAVAILABLE, ONLY_GUILD_EMOJIS_ALLOWED]);
object = {sanitizeEmojiName: sanitizeEmojiName};
object.filterUnsupportedEmojis = (importDefault(7171) /* metro dependency 7171: EmojiUtilsPlatformedNative */).filterUnsupportedEmojis;
const getURL = (importDefault(7171) /* metro dependency 7171: EmojiUtilsPlatformedNative */).getURL;
object.getURL = getURL;
object.isInternalEmojiForGuildId = closure2;
object.getEmojiUnavailableReason = closure3;
object.isCustomEmoji = closure;
object.getEmojiUnavailableReasons = getEmojiUnavailableReasons;
object.isEmojiFiltered = isEmojiFiltered;
object.isEmojiPremiumLocked = isEmojiPremiumLocked;
object.isEmojiCategoryNitroLocked = isEmojiCategoryNitroLocked;
object.isEmojiFilteredOrLocked = function(a0) {
return this.isEmojiFiltered(a0) || this.isEmojiPremiumLocked(a0);
};
object.isEmojiDisabled = isEmojiDisabled;
object.isFileTooBig = function(a0) {
return a0.size > 2097152;
};
object.isDataTooBig = function(a0) {
return require(dependencyMap[11]).dataUriFileSize(a0) > EMOJI_MAX_FILESIZE;
};
(require(2) /* metro dependency 2 */).fileFinishedImporting('utils/EmojiUtils.tsx');
exports.default = object;
exports.countEmoji = countEmoji;
exports.getEmojiColors = function() {
return _getEmojiColors.apply(this, arguments);
};
exports.getEmojiUrl = getEmojiUrl;
exports.getAllEmojiNamesString = function(a0) {
return 'allNamesString' in a0 ? a0.allNamesString : ':' + a0.name + ':';
};
}
function _createForOfIteratorHelperLoose_29007(a0, a1) { // fn#29007, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:370, offset: 0x00fb44a6, size: 370 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 _fun29008;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_29009(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_29009(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_29009(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun29008;
}
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 isCustomEmoji(a0) { // fn#29010, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:1536, offset: 0x00fb4618, size: 65 bytes, params: 2, frame: 13
const type = a0.type;
const EmojiTypes = (require(3800) /* metro dependency 3800: EmojiTypes */).EmojiTypes;
const GUILD = EmojiTypes.GUILD;
return type === GUILD || a0.guildId != null;
}
function isInternalEmojiForGuildId(a0, a1) { // fn#29011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:1621, offset: 0x00fb4659, size: 56 bytes, params: 3, frame: 13
let value = a0 != null;
let r0 = value && a1 != null;
if (r0) {
value = isCustomEmoji(a0);
r0 = value ? a1 === a0.guildId : !value;
}
return r0;
}
function getEmojiUnavailableReason({emoji, channel, guildId, intention, forceIncludeExternalGuilds}) { // fn#29012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:1721, offset: 0x00fb4691, size: 647 bytes, params: 2, frame: 23
var r1;
var r11;
var r8;
var r6;
var r4;
var PREMIUM_LOCKED;
var r5;
var DISALLOW_EXTERNAL;
var getGuildId;
var value2;
var value4;
var value5;
var isGuildTextChannelTypeBinding;
var type;
var isGuildTextChannelType2;
var value6;
var isGuildVocalChannelTypeBinding;
var isGuildVocalChannelType2;
var isInternalEmojiForGuildId2;
var can;
var USE_EXTERNAL_EMOJIS;
var value7;
var COMMUNITY_CONTENT;
var id;
var available;
var getCurrentUser;
var value8;
var defaultImport;
var canUseEmojisEverywhere;
var STATUS;
var managed;
var moduleValue;
var isUnusableRoleSubscriptionEmoji;
var animated;
var defaultImport2;
var canUseAnimatedEmojis;
var isPurchasableRoleSubscriptionEmoji;
var shouldHideGuildPurchaseEntryPoints;
var ROLE_SUBSCRIPTION_LOCKED;
var ROLE_SUBSCRIPTION_UNAVAILABLE;
let value = undefined;
reducibleJoin4: while (true) {
if (guildId !== value) {
r11 = guildId;
break reducibleJoin4;
}
reducibleJoin3: while (true) {
if (channel == null) {
r1 = value;
break reducibleJoin3;
}
getGuildId = channel.getGuildId;
value2 = Reflect.apply(getGuildId, channel, []);
r1 = value2;
break reducibleJoin3;
}
r11 = r1;
break reducibleJoin4;
}
if (isCustomEmoji(emoji)) {
if (intention !== EmojiIntention.GUILD_PROFILE) {
reducibleJoin48: while (true) {
if (intention !== EmojiIntention.NO_CUSTOM_EMOJI) {
value4 = null;
value5 = value4 != channel;
reducibleJoin10: while (true) {
if (value5) {
isGuildTextChannelTypeBinding = isGuildTextChannelType;
type = channel.type;
isGuildTextChannelType2 = isGuildTextChannelTypeBinding(type);
r8 = isGuildTextChannelType2;
break reducibleJoin10;
}
r8 = value5;
break reducibleJoin10;
}
value6 = value4 != channel;
reducibleJoin12: while (true) {
if (value6) {
isGuildVocalChannelTypeBinding = isGuildVocalChannelType;
type = channel.type;
isGuildVocalChannelType2 = isGuildVocalChannelTypeBinding(type);
r6 = isGuildVocalChannelType2;
break reducibleJoin12;
}
r6 = value6;
break reducibleJoin12;
}
isInternalEmojiForGuildId2 = isInternalEmojiForGuildId(emoji, r11);
can = PermissionStore.can;
USE_EXTERNAL_EMOJIS = Permissions.USE_EXTERNAL_EMOJIS;
value7 = Reflect.apply(can, PermissionStore, [USE_EXTERNAL_EMOJIS, channel]);
COMMUNITY_CONTENT = EmojiIntention.COMMUNITY_CONTENT;
if (intention === COMMUNITY_CONTENT) {
reducibleJoin47: while (true) {
reducibleJoin46: while (true) {
if (isInternalEmojiForGuildId2) {
guildId = emoji.guildId;
if (value4 == guildId) {
break reducibleJoin46;
}
available = emoji.available;
if (available) {
DISALLOW_EXTERNAL = value4;
break reducibleJoin47;
}
break reducibleJoin46;
}
break reducibleJoin46;
}
DISALLOW_EXTERNAL = EmojiDisabledReasons.DISALLOW_EXTERNAL;
break reducibleJoin47;
}
return DISALLOW_EXTERNAL;
}
if (!isExternalEmojiAllowedForIntention(intention)) {
reducibleJoin17: while (true) {
if (isInternalEmojiForGuildId(emoji, r11)) {
break reducibleJoin17;
}
if (!forceIncludeExternalGuilds) {
return EmojiDisabledReasons.DISALLOW_EXTERNAL;
}
break reducibleJoin17;
}
}
if (!r8) {
reducibleJoin19: while (true) {
if (!r6) {
id = emoji.id;
if (value4 != id) {
available = emoji.available;
reducibleJoin25: while (true) {
if (!available) {
return EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE;
}
break reducibleJoin25;
}
}
getCurrentUser = UserStore.getCurrentUser;
value8 = Reflect.apply(getCurrentUser, UserStore, []);
defaultImport = importDefault(3802) /* metro dependency 3802: PremiumUtils */;
canUseEmojisEverywhere = defaultImport.canUseEmojisEverywhere;
if (!Reflect.apply(canUseEmojisEverywhere, defaultImport, [value8])) {
reducibleJoin31: while (true) {
if (isInternalEmojiForGuildId2) {
break reducibleJoin31;
}
STATUS = EmojiIntention.STATUS;
if (intention === STATUS) {
return EmojiDisabledReasons.PREMIUM_LOCKED;
}
managed = emoji.managed;
if (!managed) {
return EmojiDisabledReasons.PREMIUM_LOCKED;
}
break reducibleJoin31;
}
}
moduleValue = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */;
isUnusableRoleSubscriptionEmoji = moduleValue.isUnusableRoleSubscriptionEmoji;
r4 = value4 != r11 ? r11 : value;
if (Reflect.apply(isUnusableRoleSubscriptionEmoji, moduleValue, [emoji, r4])) {
value = require(3777) /* metro dependency 3777: CreatorMonetizationRestrictionsUtils */;
shouldHideGuildPurchaseEntryPoints = value.shouldHideGuildPurchaseEntryPoints;
guildId = emoji.guildId;
value = Reflect.apply(shouldHideGuildPurchaseEntryPoints, value, [guildId]);
if (value) {
ROLE_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.ROLE_SUBSCRIPTION_UNAVAILABLE;
r5 = ROLE_SUBSCRIPTION_UNAVAILABLE;
} else {
ROLE_SUBSCRIPTION_LOCKED = EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED;
r5 = ROLE_SUBSCRIPTION_LOCKED;
}
r4 = r5;
} else {
animated = emoji.animated;
reducibleJoin37: while (true) {
if (animated) {
defaultImport2 = importDefault(3802) /* metro dependency 3802: PremiumUtils */;
canUseAnimatedEmojis = defaultImport2.canUseAnimatedEmojis;
if (Reflect.apply(canUseAnimatedEmojis, defaultImport2, [value8])) {
PREMIUM_LOCKED = value4;
break reducibleJoin37;
}
value = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */;
isPurchasableRoleSubscriptionEmoji = value.isPurchasableRoleSubscriptionEmoji;
if (Reflect.apply(isPurchasableRoleSubscriptionEmoji, value, [emoji])) {
PREMIUM_LOCKED = value4;
break reducibleJoin37;
}
PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED;
break reducibleJoin37;
}
PREMIUM_LOCKED = value4;
break reducibleJoin37;
}
r4 = PREMIUM_LOCKED;
}
return r4;
}
break reducibleJoin19;
}
}
if (!isInternalEmojiForGuildId2) {
reducibleJoin22: while (true) {
if (!value7) {
return EmojiDisabledReasons.DISALLOW_EXTERNAL;
}
break reducibleJoin22;
}
}
id = emoji.id;
if (value4 != id) {
available = emoji.available;
reducibleJoin25: while (true) {
if (!available) {
return EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE;
}
break reducibleJoin25;
}
}
getCurrentUser = UserStore.getCurrentUser;
value8 = Reflect.apply(getCurrentUser, UserStore, []);
defaultImport = importDefault(3802) /* metro dependency 3802: PremiumUtils */;
canUseEmojisEverywhere = defaultImport.canUseEmojisEverywhere;
if (!Reflect.apply(canUseEmojisEverywhere, defaultImport, [value8])) {
reducibleJoin31: while (true) {
if (isInternalEmojiForGuildId2) {
break reducibleJoin31;
}
STATUS = EmojiIntention.STATUS;
if (intention === STATUS) {
return EmojiDisabledReasons.PREMIUM_LOCKED;
}
managed = emoji.managed;
if (!managed) {
return EmojiDisabledReasons.PREMIUM_LOCKED;
}
break reducibleJoin31;
}
}
moduleValue = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */;
isUnusableRoleSubscriptionEmoji = moduleValue.isUnusableRoleSubscriptionEmoji;
r4 = value4 != r11 ? r11 : value;
if (Reflect.apply(isUnusableRoleSubscriptionEmoji, moduleValue, [emoji, r4])) {
value = require(3777) /* metro dependency 3777: CreatorMonetizationRestrictionsUtils */;
shouldHideGuildPurchaseEntryPoints = value.shouldHideGuildPurchaseEntryPoints;
guildId = emoji.guildId;
value = Reflect.apply(shouldHideGuildPurchaseEntryPoints, value, [guildId]);
if (value) {
ROLE_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.ROLE_SUBSCRIPTION_UNAVAILABLE;
r5 = ROLE_SUBSCRIPTION_UNAVAILABLE;
} else {
ROLE_SUBSCRIPTION_LOCKED = EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED;
r5 = ROLE_SUBSCRIPTION_LOCKED;
}
r4 = r5;
} else {
animated = emoji.animated;
reducibleJoin37: while (true) {
if (animated) {
defaultImport2 = importDefault(3802) /* metro dependency 3802: PremiumUtils */;
canUseAnimatedEmojis = defaultImport2.canUseAnimatedEmojis;
if (Reflect.apply(canUseAnimatedEmojis, defaultImport2, [value8])) {
PREMIUM_LOCKED = value4;
break reducibleJoin37;
}
value = require(6545) /* metro dependency 6545: RoleSubscriptionEmojiUtils */;
isPurchasableRoleSubscriptionEmoji = value.isPurchasableRoleSubscriptionEmoji;
if (Reflect.apply(isPurchasableRoleSubscriptionEmoji, value, [emoji])) {
PREMIUM_LOCKED = value4;
break reducibleJoin37;
}
PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED;
break reducibleJoin37;
}
PREMIUM_LOCKED = value4;
break reducibleJoin37;
}
r4 = PREMIUM_LOCKED;
}
return r4;
}
break reducibleJoin48;
}
}
return EmojiDisabledReasons.DISALLOW_CUSTOM;
}
return null;
}
function _getEmojiColors() { // fn#29013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4286, offset: 0x00fb4918, size: 48 bytes, params: 1, frame: 14
return env0_3(_fun29015).apply(this, arguments);
}
function sanitizeEmojiName(a0) { // fn#29016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:2803, offset: 0x00fb4992, size: 85 bytes, params: 2, frame: 15
var r2;
var r0;
var value;
let length = a0.replace(EMOJI_RE, '').slice(0, EMOJI_MAX_LENGTH).length;
if (length < 2) {
for (r2 = value; true; r2 = value) {
value = r2 + '_';
length = value.length;
if (!(length < 2)) {
r0 = value;
break;
}
}
} else {
r0 = value;
}
return r0;
}
function getEmojiUnavailableReasons({categoryEmojis, channel, guildId, intention}) { // fn#29017, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3098, offset: 0x00fb49e7, size: 346 bytes, params: 2, frame: 30
var r5;
var r6;
var r7;
var r19;
var r0;
var r18;
var r16;
var r17;
var r1;
var r2;
var value7;
var emojiUnavailableReason;
var binding;
var has;
var id;
var add;
var PREMIUM_LOCKED;
var value9;
var value10;
var value11;
var value12;
const Set = global.Set;
const set = new Set();
const items2 = [];
const value3 = _createForOfIteratorHelperLoose_29007(categoryEmojis);
const value4 = value3();
let done = value4.done;
if (done) {
r1 = false;
r2 = 0;
} else {
r5 = false;
r6 = 0;
r7 = value4;
while (true) {
value7 = r7.value;
emojiUnavailableReason = getEmojiUnavailableReason({emoji: value7, channel: channel, guildId: guildId,
intention: intention});
if (emojiUnavailableReason != null) {
binding = env0_17;
has = binding.has;
if (Reflect.apply(has, binding, [emojiUnavailableReason])) {
continue;
}
items2.push(value7);
binding = env0_16;
has = binding.has;
if (Reflect.apply(has, binding, [emojiUnavailableReason])) {
id = value7.id;
if (id == null) {
continue;
}
add = set.add;
id = value7.id;
Reflect.apply(add, set, [id]);
binding = env0_15;
has = binding.has;
if (!Reflect.apply(has, binding, [emojiUnavailableReason])) {
r0 = r5;
r18 = r6;
continue;
}
if (r5) {
r19 = r5;
continue;
}
PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED;
value9 = emojiUnavailableReason !== PREMIUM_LOCKED;
r19 = value9;
if (r19) {
continue;
}
value10 = true;
r5 = value10;
value11 = typeof r6 === 'bigint' ? r6 + 1n : +r6 + 1;
r0 = r5;
r18 = value11;
r16 = r0;
r17 = r18;
break;
}
r16 = r5;
r17 = r6;
break;
}
items2.push(value7);
r16 = r5;
r17 = r6;
value12 = value3();
done = value12.done;
if (done) {
r1 = r16;
r2 = r17;
break;
}
r5 = r16;
r6 = r17;
r7 = value12;
continue;
}
}
return {emojisDisabled: set, emojisUnfiltered: items2, emojisPremiumLockedCount: r2, emojiNitroLocked: r1};
}
function isEmojiFiltered(a0) { // fn#29018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3570, offset: 0x00fb4b41, size: 33 bytes, params: 2, frame: 12
return env0_17.has(getEmojiUnavailableReason(a0));
}
function isEmojiPremiumLocked(a0) { // fn#29019, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3641, offset: 0x00fb4b62, size: 33 bytes, params: 2, frame: 12
return env0_15.has(getEmojiUnavailableReason(a0));
}
function isEmojiCategoryNitroLocked({categoryEmojis, channel, guildId, intention}) { // fn#29020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:3717, offset: 0x00fb4b83, size: 184 bytes, params: 2, frame: 25
var r4;
var r5;
var r6;
var r14;
var r15;
var r0;
var r2;
var getEmojiUnavailableReasonBinding;
var value6;
var emojiUnavailableReasonBinding;
var PREMIUM_LOCKED;
var GUILD_SUBSCRIPTION_UNAVAILABLE;
var value8;
var value9;
var value10;
var value11;
const value2 = _createForOfIteratorHelperLoose_29007(categoryEmojis);
const value3 = value2();
let done = value3.done;
if (done) {
r0 = false;
r2 = 0;
} else {
r4 = 0;
r5 = false;
r6 = value3;
while (true) {
getEmojiUnavailableReasonBinding = getEmojiUnavailableReason;
value6 = r6.value;
emojiUnavailableReasonBinding = getEmojiUnavailableReasonBinding({emoji: value6, channel: channel,
intention: intention, guildId: guildId});
PREMIUM_LOCKED = EmojiDisabledReasons.PREMIUM_LOCKED;
if (emojiUnavailableReasonBinding !== PREMIUM_LOCKED) {
GUILD_SUBSCRIPTION_UNAVAILABLE = EmojiDisabledReasons.GUILD_SUBSCRIPTION_UNAVAILABLE;
if (emojiUnavailableReasonBinding !== GUILD_SUBSCRIPTION_UNAVAILABLE) {
r14 = r4;
r15 = r5;
break;
}
value8 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1;
r14 = value8;
r15 = r5;
break;
}
value9 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1;
value10 = true;
r14 = value9;
r15 = value10;
value11 = value2();
done = value11.done;
if (done) {
r0 = r15;
r2 = r14;
break;
}
r4 = r14;
r5 = r15;
r6 = value11;
continue;
}
}
r0 = r0 && r2 === categoryEmojis.length;
return r0;
}
function isEmojiDisabled(a0) { // fn#29022, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4136, offset: 0x00fb4c5c, size: 33 bytes, params: 2, frame: 12
return env0_16.has(getEmojiUnavailableReason(a0));
}
function countEmoji(a0, a1) { // fn#29025, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4501, offset: 0x00fb4cc2, size: 117 bytes, params: 3, frame: 12
const env0_0 = a1;
const env0_1 = 0;
const env0_2 = 0;
const env0_3 = 0;
const env0_4 = 0;
const env0_5 = 0;
const env0_6 = 0;
a0.forEach(_fun29026);
return {unicode: env0_1, custom: env0_2, customExternal: env0_3, managed: env0_4, managedExternal: env0_5,
animated: env0_6};
}
function getEmojiUrl({id, name, animated}) { // fn#29028, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4890, offset: 0x00fb4df5, size: 134 bytes, params: 2, frame: 17
var r0;
let value = a1;
if (id != null) {
value = importDefault(1423) /* metro dependency 1423: AvatarUtils */;
value = value.getEmojiURL({id: id, size: value !== undefined ? value : 32,
animated: animated != null && animated});
r0 = value;
} else {
value = importDefault(7171) /* metro dependency 7171: EmojiUtilsPlatformedNative */;
value = value.getURL(name);
r0 = value;
}
return r0;
}
function* _fun29015(a0) { // fn#29015, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4339, offset: 0x00fb4951, size: 65 bytes, params: 2, frame: 12
if (true) {
value = environment.__proto__.__proto__;
value = env2_1(env2_2[10]);
var getEmojiColors = value.getEmojiColors;
yield Reflect.apply(getEmojiColors, value, [a0]);
}
}
function _fun29026(a0) { // fn#29026, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:3928:4572, offset: 0x00fb4d37, size: 190 bytes, params: 2, frame: 13
var value;
var binding;
var type;
if (a0.id != null) {
type = a0.type;
value = environment.__proto__;
binding = type === (require(3800) /* metro dependency 3800: EmojiTypes */).EmojiTypes.GUILD ? a0.guildId === require ? a0.managed ? env0_4 : env0_2 : a0.managed ? env0_5 : env0_3 : binding;
if (a0.animated) {
binding = env0_6;
env0_6 = typeof binding === 'bigint' ? binding + 1n : +binding + 1;
}
} else {
binding = env0_1;
env0_1 = typeof binding === 'bigint' ? binding + 1n : +binding + 1;
}
}