/* Metro module 15936; source: utils/ChannelSortingUtils.tsx; dependencies: [1383, 661, 11879, 5099, 2] */ function _fun122953(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#122953, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:6, offset: 0x0257bdab, size: 217 bytes, params: 8, frame: 19 const closure = function(a0, a1) { var r0; var r1; r0 = a0 != null && a1 != null; if (r0) { r1 = a0 === a1 || isGuildSelectableChannelType(a0) && isGuildSelectableChannelType(a1); r1 = !r1 ? isGuildVocalChannelType(a0) && isGuildVocalChannelType(a1) : r1; r0 = r1; } return r0; }; const hoverSameType = function(a0) { return {referenceId: a0.id, parentId: a0.parent_id}; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const channelRecordModule = require(1383) /* metro dependency 1383: ChannelRecord */; const env0_2 = channelRecordModule.isGuildSelectableChannelType; const env0_3 = channelRecordModule.isGuildVocalChannelType; const env0_4 = (require(661) /* metro dependency 661: Constants */).ChannelTypes; (require(2) /* metro dependency 2 */).fileFinishedImporting('utils/ChannelSortingUtils.tsx'); exports.areTypesInSameSection = closure; exports.getDropData = getDropData; exports.getDnDUpdates = getDnDUpdates; } function getFirstChannelOfType(a0, a1, a2, a3) { // fn#122955, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:283, offset: 0x0257bee3, size: 132 bytes, params: 5, frame: 19 var r4; var length; var property; var areTypesInSameSectionBinding; var channel; var type; var value2; const env0_0 = a1; const env0_1 = -1; a3.find(_fun122956); if (!(env0_1 < 0)) { var binding = env0_1; if (binding >= 0) { length = a3.length; if (binding < length) { r4 = binding; loopExit3: while (true) { property = a3[r4]; areTypesInSameSectionBinding = areTypesInSameSection; channel = property.channel; type = channel.type; if (areTypesInSameSectionBinding(type, a2)) { return property; } value2 = r4 + a0; if (value2 >= 0) { length = a3.length; if (value2 < length) { r4 = value2; continue; } break loopExit3; } break loopExit3; } return null; } return null; } } return null; } function getChannelPosition(a0, a1) { // fn#122957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:507, offset: 0x0257bf8d, size: 86 bytes, params: 3, frame: 14 const value = a2; const env0_0 = a0; const env0_1 = value !== undefined ? value : false; if (a0 == null) { return 0; } const env0_2 = null; a1.filter(_fun122958).find(_fun122959); return env0_2; } function getDropData(a0, a1, a2, a3, a4) { // fn#122961, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:918, offset: 0x0257c078, size: 1383 bytes, params: 6, frame: 27 var r6; var r1; var id; var r9; var r2; var areTypesInSameSectionBinding; var channelPosition; var property; var getFirstChannelOfTypeBinding; var firstChannelOfType; var channel; var object2; var channelPosition2; var firstChannelOfTypeBinding; var isGuildSelectableChannelTypeBinding; var channelPosition3; var firstChannelOfType2; var channelPosition4; var firstChannelOfTypeBinding2; var channelPosition5; var firstChannelOfType3; const value = null; if (value == a0) { return value; } if (value == a2) { return value; } let GUILD_CATEGORY = ChannelTypes.GUILD_CATEGORY; if (a0.type === GUILD_CATEGORY) { if (a3 === a1) { r2 = hoverSameType(a2); } else if (a3 < a1) { if (a0.type === a2.type) { r2 = hoverSameType(a2); } else if (a3 > a1) { GUILD_CATEGORY = ChannelTypes.GUILD_CATEGORY; channelPosition5 = getChannelPosition(a2, a4, true); property = a4[(value != channelPosition5 ? channelPosition5 : 0) + 1]; firstChannelOfType3 = getFirstChannelOfType(-1, a2.id, a0.type, a4); r2 = value == firstChannelOfType3 || firstChannelOfType3.channel.id === a0.id ? value : value == property ? {referenceId: firstChannelOfType3.channel.id, parentId: value} : property.channel.type !== GUILD_CATEGORY ? value : {referenceId: firstChannelOfType3.channel.id, parentId: value}; } else { r2 = value; } } else if (a3 > a1) { GUILD_CATEGORY = ChannelTypes.GUILD_CATEGORY; channelPosition5 = getChannelPosition(a2, a4, true); property = a4[(value != channelPosition5 ? channelPosition5 : 0) + 1]; firstChannelOfType3 = getFirstChannelOfType(-1, a2.id, a0.type, a4); r2 = value == firstChannelOfType3 || firstChannelOfType3.channel.id === a0.id ? value : value == property ? {referenceId: firstChannelOfType3.channel.id, parentId: value} : property.channel.type !== GUILD_CATEGORY ? value : {referenceId: firstChannelOfType3.channel.id, parentId: value}; } else { r2 = value; } r1 = r2; } else { areTypesInSameSectionBinding = areTypesInSameSection; if (areTypesInSameSectionBinding(a0.type, a2.type)) { r1 = hoverSameType(a2); } else if (a3 < a1) { if (a2.type === GUILD_CATEGORY) { channelPosition4 = getChannelPosition(a2, a4, true); r9 = value != channelPosition4 ? channelPosition4 : 0; property = a4[r9 - 1]; getFirstChannelOfTypeBinding = getFirstChannelOfType; id = a2.id; firstChannelOfTypeBinding2 = getFirstChannelOfTypeBinding(1, id, a0.type, a4); if (value == property) { r9 = {'referenceId': null, 'parentId': null}; } else if (value != firstChannelOfTypeBinding2) { areTypesInSameSectionBinding = areTypesInSameSection; channel = property.channel; if (areTypesInSameSectionBinding(channel.type, a0.type)) { object2 = {}; channel = firstChannelOfTypeBinding2.channel; object2.referenceId = channel.id; channel = property.channel; object2.parentId = channel.parent_id; r9 = object2; } else if (a0.isGuildVocal()) { isGuildSelectableChannelTypeBinding = isGuildSelectableChannelType; channel = property.channel; if (isGuildSelectableChannelTypeBinding(channel.type)) { object2 = {}; channel = firstChannelOfTypeBinding2.channel; object2.referenceId = channel.id; channel = property.channel; object2.parentId = channel.parent_id; r9 = object2; } else { channel = property.channel; if (channel.isCategory()) { object2 = {}; channel = firstChannelOfTypeBinding2.channel; id = channel.id; object2.referenceId = id; channel = property.channel; id = channel.id; object2.parentId = id; r9 = object2; } else { r9 = value; } } } else { channel = property.channel; if (channel.isCategory()) { object2 = {}; channel = firstChannelOfTypeBinding2.channel; id = channel.id; object2.referenceId = id; channel = property.channel; id = channel.id; object2.parentId = id; r9 = object2; } else { r9 = value; } } } else { r9 = value; } r6 = r9; } else { channelPosition3 = getChannelPosition(a2, a4, true); r6 = value != channelPosition3 ? channelPosition3 : 0; property = a4[r6 - 1]; firstChannelOfType2 = getFirstChannelOfType(1, a2.id, a0.type, a4); r6 = value != property || a0.isGuildVocal() ? isGuildSelectableChannelType(a0.type) && value != firstChannelOfType2 && (isGuildSelectableChannelType(property.channel.type) || property.channel.isCategory()) ? {referenceId: firstChannelOfType2.channel.id, parentId: a2.parent_id} : value : {referenceId: value != firstChannelOfType2 ? firstChannelOfType2.channel.id : value, parentId: value}; } r1 = r6; } else if (a2.type === GUILD_CATEGORY) { channelPosition2 = getChannelPosition(a2, a4, true); property = a4[(value != channelPosition2 ? channelPosition2 : 0) + 1]; getFirstChannelOfTypeBinding = getFirstChannelOfType; id = a2.id; firstChannelOfTypeBinding = getFirstChannelOfTypeBinding(-1, id, a0.type, a4); if (value != firstChannelOfTypeBinding) { if (value == property) { object2 = {}; id = firstChannelOfTypeBinding.channel.id; object2.referenceId = id; id = a2.id; object2.parentId = id; r6 = object2; } else { areTypesInSameSectionBinding = areTypesInSameSection; channel = property.channel; if (areTypesInSameSectionBinding(channel.type, a0.type)) { object2 = {}; channel = firstChannelOfTypeBinding.channel; object2.referenceId = channel.id; channel = property.channel; object2.parentId = channel.parent_id; r6 = object2; } else if (isGuildSelectableChannelType(a0.type)) { channel = property.channel; if (channel.isGuildVocal()) { object2 = {}; channel = firstChannelOfTypeBinding.channel; object2.referenceId = channel.id; channel = property.channel; object2.parentId = channel.parent_id; r6 = object2; } else { channel = property.channel; if (channel.isCategory()) { object2 = {}; id = firstChannelOfTypeBinding.channel.id; object2.referenceId = id; id = a2.id; object2.parentId = id; r6 = object2; } else { r6 = value; } } } else { channel = property.channel; if (channel.isCategory()) { object2 = {}; id = firstChannelOfTypeBinding.channel.id; object2.referenceId = id; id = a2.id; object2.parentId = id; r6 = object2; } else { r6 = value; } } } } else { r6 = value; } r1 = r6; } else { channelPosition = getChannelPosition(a2, a4, true); property = a4[(value != channelPosition ? channelPosition : 0) + 1]; firstChannelOfType = getFirstChannelOfType(-1, a2.id, a0.type, a4); if (value == firstChannelOfType) { r1 = value; } else if (a0.isGuildVocal()) { if (value == property) { r1 = {referenceId: firstChannelOfType.channel.id, parentId: a2.parent_id}; } else { channel = property.channel; if (channel.isCategory()) { r1 = {referenceId: firstChannelOfType.channel.id, parentId: a2.parent_id}; } else { channel = property.channel; if (channel.isGuildVocal()) { object2 = {}; channel = firstChannelOfType.channel; object2.referenceId = channel.id; channel = property.channel; object2.parentId = channel.parent_id; r1 = object2; } else { r1 = a0.isCategory() && (value == property || property.channel.isCategory()) ? {referenceId: firstChannelOfType.channel.id, parentId: value} : value; } } } } else { r1 = a0.isCategory() && (value == property || property.channel.isCategory()) ? {referenceId: firstChannelOfType.channel.id, parentId: value} : value; } } } return r1; } function getDnDUpdates(a0, a1, a2, a3) { // fn#122962, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:3153, offset: 0x0257c5df, size: 441 bytes, params: 5, frame: 24 var r1; var value; var getChannelPositionBinding; var value3; var value4; const env0_0 = a0; const env0_1 = a2; const env0_4 = []; let items = []; const _categories = a3._categories; const closure = generateUpdates; if (a0.isCategory()) { items = []; arraySpread(items, _categories, 0, undefined); value = items.slice(1); getChannelPositionBinding = getChannelPosition; var env0_2 = getChannelPositionBinding(a0, value); var env0_3 = getChannelPositionBinding(a1, value); value = closure(value); value.unshift(_categories[0]); r1 = value; } else { r1 = items; } if (isGuildSelectableChannelType(a0.type)) { value3 = (importDefault(5099) /* metro dependency 5099: getFlattedChannelList */)(r1.length > 0 ? r1 : _categories, a3, function(a0) { return isGuildSelectableChannelType(a0.channel.type); }); getChannelPositionBinding = getChannelPosition; env0_2 = getChannelPositionBinding(a0, value3); env0_3 = getChannelPositionBinding(a1, value3); closure(value3); } else if (a0.isCategory()) { value3 = (importDefault(5099) /* metro dependency 5099: getFlattedChannelList */)(r1.length > 0 ? r1 : _categories, a3, _fun122966); getChannelPositionBinding = getChannelPosition; env0_2 = getChannelPositionBinding(a0, value3); env0_3 = getChannelPositionBinding(a1, value3); closure(value3); } if (a0.isGuildVocal()) { value4 = (importDefault(5099) /* metro dependency 5099: getFlattedChannelList */)(r1.length > 0 ? r1 : _categories, a3, function({channel}) { return channel.isGuildVocal(); }); getChannelPositionBinding = getChannelPosition; env0_2 = getChannelPositionBinding(a0, value4); env0_3 = getChannelPositionBinding(a1, value4); closure(value4); } else if (a0.isCategory()) { value4 = (importDefault(5099) /* metro dependency 5099: getFlattedChannelList */)(r1.length > 0 ? r1 : _categories, a3, _fun122967); getChannelPositionBinding = getChannelPosition; env0_2 = getChannelPositionBinding(a0, value4); env0_3 = getChannelPositionBinding(a1, value4); closure(value4); } value = a0.parent_id !== a2; if (value) { value = env0_4.find(_fun122968); value = value == null; r1 = value; } else { r1 = value; } if (r1) { env0_4.push({id: a0.id, parent_id: a2}); } return env0_4; } function _fun122956({channel}, a1) { // fn#122956, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:343, offset: 0x0257bf67, size: 38 bytes, params: 3, frame: 3 return channel.id === require && true; } function _fun122958({channel}) { // fn#122958, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:593, offset: 0x0257bfe3, size: 65 bytes, params: 2, frame: 15 return env0_0 != null && (env0_1 || areTypesInSameSection(env0_0.type, channel.type)); } function _fun122959({channel}, a1) { // fn#122959, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:669, offset: 0x0257c024, size: 56 bytes, params: 3, frame: 4 return env0_0 != null && channel.id === env0_0.id && true; } function generateUpdates(a0) { // fn#122963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:3235, owner: getDnDUpdates.generateUpdates, offset: 0x0257c798, size: 246 bytes, params: 2, frame: 19 var environment; var r0; var binding; var binding2; var binding3; var items; var value7; var defaultImport; if (env0_2 == null) { items = []; arraySpread(items, a0, 0, a0); r0 = items; } else if (env0_3 == null) { items = []; arraySpread(items, a0, 0, a0); r0 = items; } else { binding = env0_0; binding2 = env0_2; binding3 = env0_3; r0 = binding2 != null && binding3 != null; r0 = r0 && a0[binding2] != null; r0 = r0 && a0[binding2].channel === binding; r0 = r0 && a0[binding3] != null; if (r0) { value7 = environment.__proto__; defaultImport = importDefault(11879) /* metro dependency 11879: DragAndDropUtils */; r0 = defaultImport.moveItemFromTo(a0, env0_2, env0_3); } else { items = []; arraySpread(items, a0, 0, a0); r0 = items; } } binding = env0_4; const concat = binding.concat; const defaultImport2 = importDefault(11879) /* metro dependency 11879: DragAndDropUtils */; env0_4 = Reflect.apply(concat, binding, [defaultImport2.calculatePositionDeltas({oldOrdering: a0, newOrdering: r0, idGetter: function(a0) { return a0.channel.id; }, existingPositionGetter: function(a0) { return a0.channel.position; }})]); return r0; } function _fun122966({channel}) { // fn#122966, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:3762, offset: 0x0257c88e, size: 29 bytes, params: 2, frame: 11 return isGuildSelectableChannelType(channel.type); } function _fun122967({channel}) { // fn#122967, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:3931, offset: 0x0257c8ab, size: 20 bytes, params: 2, frame: 9 return channel.isGuildVocal(); } function _fun122968(a0) { // fn#122968, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16144:4074, offset: 0x0257c8bf, size: 41 bytes, params: 2, frame: 4 var r0; const value2 = a0.id === env0_0.id; if (value2) { a0.parent_id = importDefault; r0 = true; } else { r0 = value2; } return r0; }