Files
discord-decomp/sources/utils/DragAndDropUtils.tsx
T
2026-07-28 01:06:53 +03:00

151 lines
6.1 KiB
TypeScript

/* Metro module 11879; source: utils/DragAndDropUtils.tsx; dependencies: [3, 22, 2] */
import Logger from '../modules/debug/Logger.tsx'; /* Metro dependency 3 */
import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
function _fun91135(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#91135, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12065:6, offset: 0x02053701, size: 197 bytes, params: 8, frame: 21
const calculatePositionDeltas2 = calculatePositionDeltas;
const closure2 = function(a0, a1, a2) {
var property = a0[a1];
var items = [];
arraySpread(items, a0, 0, a1);
items.splice(a1, 1);
items.splice(a2, 0, property);
return items;
};
const getPositionUpdates2 = getPositionUpdates;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = Logger;
value = new value('DragAndDropUtils');
object = {moveItemFromTo: closure2, calculatePositionDeltas: calculatePositionDeltas2,
getPositionUpdates: getPositionUpdates2};
(FileImportTrackerModule).fileFinishedImporting('utils/DragAndDropUtils.tsx');
exports.default = object;
exports.calculatePositionDeltas = calculatePositionDeltas2;
exports.moveItemFromTo = closure2;
exports.getPositionUpdates = getPositionUpdates2;
function calculatePositionDeltas({oldOrdering, newOrdering, idGetter, existingPositionGetter, ascending}) { // fn#91136, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12065:135, offset: 0x020537c6, size: 341 bytes, params: 2, frame: 27
var r0;
var r7;
var r15;
var r13;
var value;
var value5;
var value6;
var value7;
var value8;
var value9;
var push;
var reverse;
reducibleJoin2: while (true) {
if (ascending !== undefined) {
break reducibleJoin2;
}
value = true;
ascending = value;
break reducibleJoin2;
}
const length = newOrdering.length;
if (oldOrdering.length !== length) {
env0_2.warn('Arrays are not of the same length!', oldOrdering, newOrdering);
return [];
}
value = oldOrdering.map(idGetter);
value = value.sort();
value = value.join(':');
const value4 = newOrdering.map(idGetter).sort().join(':');
if (value !== value4) {
env0_2.warn('Object IDs in the old ordering and the new ordering are not the same.', value, value4);
return [];
}
const object = {};
value = 0;
if (value < length) {
r0 = value;
reducibleLoop5: while (true) {
value5 = idGetter(oldOrdering[r0]);
object[value5] = existingPositionGetter(oldOrdering[r0]);
value6 = typeof r0 === 'bigint' ? r0 + 1n : +r0 + 1;
if (value6 < length) {
r0 = value6;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
const items2 = [];
if (value < length) {
r7 = value;
reducibleLoop7: while (true) {
value = idGetter(newOrdering[r7]);
reducibleJoin9: while (true) {
if (ascending) {
r15 = r7;
break reducibleJoin9;
}
value7 = length - 1 - r7;
r15 = value7;
break reducibleJoin9;
}
value8 = object[value] === r15;
reducibleJoin11: while (true) {
if (value8) {
value9 = existingPositionGetter(newOrdering[r7]) === r15;
r13 = value9;
break reducibleJoin11;
}
r13 = value8;
break reducibleJoin11;
}
reducibleJoin13: while (true) {
if (r13) {
break reducibleJoin13;
}
push = items2.push;
Reflect.apply(push, items2, [{id: value, position: r15}]);
break reducibleJoin13;
}
value = typeof r7 === 'bigint' ? r7 + 1n : +r7 + 1;
if (value < length) {
r7 = value;
continue reducibleLoop7;
}
break reducibleLoop7;
}
}
reducibleJoin16: while (true) {
if (ascending) {
break reducibleJoin16;
}
reverse = items2.reverse;
Reflect.apply(reverse, items2, []);
break reducibleJoin16;
}
return items2;
}
function getPositionUpdates({objectArray, fromPosition, toPosition, idGetter, existingPositionGetter, ascending}) { // fn#91138, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12065:762, offset: 0x02053958, size: 162 bytes, params: 2, frame: 21
var r7;
var value;
ascending = ascending === undefined || ascending;
const Array = global.Array;
if (Array.isArray(objectArray)) {
r7 = objectArray;
} else {
value = importDefault(22) /* metro dependency 22 */;
value = value.values(objectArray);
r7 = value;
}
const calculatePositionDeltasBinding = calculatePositionDeltas;
const object = {oldOrdering: r7};
object.newOrdering = moveItemFromTo(r7, fromPosition, toPosition);
object.idGetter = idGetter;
object.existingPositionGetter = existingPositionGetter;
object.ascending = ascending;
return calculatePositionDeltasBinding(object);
}
}
global.__d(_fun91135, 11879, [3, 22, 2]) /* metro module 11879, dependencies: [3, 22, 2] */;