Files
discord-decomp/sources/by-id/module-06472.js
T
2026-07-28 01:06:53 +03:00

521 lines
20 KiB
JavaScript

/* Metro module 6472; source: unknown; dependencies: [6450] */
import * as Module06450Module from './module-06450.js'; /* Metro dependency 6450 */
function _fun50896(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#50896, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:6, offset: 0x01224a38, size: 97 bytes, params: 8, frame: 16
const value = this;
const env0_0 = require;
if (value && value.__spreadArray) {
}
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
exports.default = _fun50898();
function _fun50898() { // fn#50898, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:323, offset: 0x01224a99, size: 507 bytes, params: 1, frame: 4
const ViewabilityTracker2 = ViewabilityTracker;
ViewabilityTracker2.prototype.init = function(a0) {
this._doInitialFit(this._currentOffset, a0);
};
ViewabilityTracker2.prototype.setLayouts = function(a0, a1) {
this._layouts = a0;
this._maxOffset = a1;
};
ViewabilityTracker2.prototype.setDimensions = function(a0, a1) {
this._isHorizontal = a1;
this._windowBound = a1 ? a0.width : a0.height;
};
ViewabilityTracker2.prototype.forceRefresh = function() {
var r0;
r0 = this._actualOffset >= 0 && this._currentOffset >= this._maxOffset - this._windowBound;
this.forceRefreshWithOffset(this._currentOffset);
return r0;
};
ViewabilityTracker2.prototype.forceRefreshWithOffset = function(a0) {
this._currentOffset = -1;
this.updateOffset(a0, false, this._defaultCorrection);
};
ViewabilityTracker2.prototype.updateOffset = updateOffset_50906;
ViewabilityTracker2.prototype.getLastOffset = function() {
return this._currentOffset;
};
ViewabilityTracker2.prototype.getLastActualOffset = function() {
return this._actualOffset;
};
ViewabilityTracker2.prototype.getEngagedIndexes = function() {
return this._engagedIndexes;
};
ViewabilityTracker2.prototype.findFirstLogicallyVisibleIndex = findFirstLogicallyVisibleIndex;
ViewabilityTracker2.prototype.updateRenderAheadOffset = function(a0) {
var Math = global.Math;
this._renderAheadOffset = Math.max(0, a0);
this.forceRefreshWithOffset(this._currentOffset);
};
ViewabilityTracker2.prototype.getCurrentRenderAheadOffset = function() {
return this._renderAheadOffset;
};
ViewabilityTracker2.prototype.setActualOffset = function(a0) {
this._actualOffset = a0;
};
ViewabilityTracker2.prototype._findFirstVisibleIndexOptimally = function() {
return this._currentOffset > 5000 ? this._findFirstVisibleIndexUsingBS() : this._currentOffset > 0 ? this._findFirstVisibleIndexLinearly() : 0;
};
ViewabilityTracker2.prototype._fitAndUpdate = function(a0) {
var items = [];
var items2 = [];
this._fitIndexes(items, items2, a0, true);
this._fitIndexes(items, items2, a0 + 1, false);
this._diffUpdateOriginalIndexesAndRaiseEvents(items, items2);
};
ViewabilityTracker2.prototype._doInitialFit = function(a0, a1) {
var Math = global.Math;
var _maxOffset = this._maxOffset;
var Math2 = global.Math;
this._updateTrackingWindows(Math.min(_maxOffset, Math2.max(0, a0)), a1);
this._fitAndUpdate(this._findFirstVisibleIndexOptimally());
};
ViewabilityTracker2.prototype._findFirstVisibleIndexLinearly = function() {
var r2;
var property;
var start;
var value2;
var length = this._layouts.length;
var object = {'start': 0, 'end': 0};
var value = 0;
if (value < length) {
r2 = value;
loopExit1: while (true) {
property = this._layouts[r2];
this._setRelevantBounds(property, object);
start = object.start;
if (this._itemIntersectsVisibleWindow(start, object.end)) {
return r2;
}
value2 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value2 < length) {
r2 = value2;
continue;
}
break loopExit1;
}
}
return value;
};
ViewabilityTracker2.prototype._findFirstVisibleIndexUsingBS = _findFirstVisibleIndexUsingBS;
ViewabilityTracker2.prototype._fitIndexes = _fitIndexes;
ViewabilityTracker2.prototype._checkIntersectionAndReport = _checkIntersectionAndReport;
ViewabilityTracker2.prototype._setRelevantBounds = function(a0, a1) {
if (this._isHorizontal) {
a1.end = a0.x + a0.width;
a1.start = a0.x;
} else {
a1.end = a0.y + a0.height;
a1.start = a0.y;
}
};
ViewabilityTracker2.prototype._isItemInBounds = function(a0, a1) {
return a0.start < a1 && a0.end > a1;
};
ViewabilityTracker2.prototype._isItemBoundsBeyondWindow = function(a0, a1, a2) {
return a0.start >= a1 && a0.end <= a2;
};
ViewabilityTracker2.prototype._isZeroHeightEdgeElement = function(a0, a1, a2) {
return a1 - a2 == 0 && (a0.start === a1 || a0.end === a2);
};
ViewabilityTracker2.prototype._itemIntersectsWindow = function(a0, a1, a2) {
var r0;
r0 = this._isItemInBounds(a0, a1) || this._isItemInBounds(a0, a2);
r0 = !r0 ? this._isItemBoundsBeyondWindow(a0, a1, a2) : r0;
r0 = !r0 ? this._isZeroHeightEdgeElement(a0, a1, a2) : r0;
return r0;
};
ViewabilityTracker2.prototype._itemIntersectsEngagedWindow = function(a0, a1) {
return this._itemIntersectsWindow(this._engagedWindow, a0, a1);
};
ViewabilityTracker2.prototype._itemIntersectsVisibleWindow = function(a0, a1) {
return this._itemIntersectsWindow(this._visibleWindow, a0, a1);
};
ViewabilityTracker2.prototype._updateTrackingWindows = _updateTrackingWindows;
ViewabilityTracker2.prototype._diffUpdateOriginalIndexesAndRaiseEvents = function(a0, a1) {
this._diffArraysAndCallFunc(a0, this._visibleIndexes, this.onVisibleRowsChanged);
this._diffArraysAndCallFunc(a1, this._engagedIndexes, this.onEngagedRowsChanged);
this._visibleIndexes = a0;
this._engagedIndexes = a1;
};
ViewabilityTracker2.prototype._diffArraysAndCallFunc = _diffArraysAndCallFunc;
ViewabilityTracker2.prototype._calculateArrayDiff = function(a0, a1) {
var r1;
var property;
var value3;
var length = a0.length;
var items = [];
var value = 0;
if (value < length) {
r1 = value;
while (true) {
property = require(dependencyMap[value]).default;
if (property.findIndexOf(a1, a0[r1]) === -1) {
items.push(a0[r1]);
}
value3 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value3 < length) {
r1 = value3;
continue;
}
break;
}
}
return items;
};
return ViewabilityTracker2;
function ViewabilityTracker(a0, a1) { // fn#50899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:334, offset: 0x01224c94, size: 201 bytes, params: 3, frame: 14
this._layouts = [];
this._valueExtractorForBinarySearch = _valueExtractorForBinarySearch;
const Math = global.Math;
this._currentOffset = Math.max(0, a1);
this._maxOffset = 0;
this._actualOffset = 0;
this._renderAheadOffset = a0;
this._visibleWindow = {'start': 0, 'end': 0};
this._engagedWindow = {'start': 0, 'end': 0};
this._isHorizontal = false;
this._windowBound = 0;
this._visibleIndexes = [];
this._engagedIndexes = [];
this.onVisibleRowsChanged = null;
this.onEngagedRowsChanged = null;
this._relevantDim = {'start': 0, 'end': 0};
this._defaultCorrection = {'startCorrection': 0, 'endCorrection': 0, 'windowShift': 0};
function _valueExtractorForBinarySearch(a0) { // fn#50900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:431, owner: ViewabilityTracker._valueExtractorForBinarySearch, offset: 0x01224d5d, size: 51 bytes, params: 2, frame: 13
const binding = env0_0;
binding._setRelevantBounds(binding._layouts[a0], binding._relevantDim);
return binding._relevantDim.end;
}
}
function _findFirstVisibleIndexUsingBS(a0) { // fn#50918, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:3720, offset: 0x0122513a, size: 88 bytes, params: 2, frame: 17
let value = a0;
const r5 = value !== undefined ? value : 0;
const length = this._layouts.length;
value = environment.__proto__;
const property = (Module06450Module).default;
return property.findClosestHigherValueIndex(length, this._visibleWindow.start + r5,
this._valueExtractorForBinarySearch);
}
function _diffArraysAndCallFunc(a0, a1, a2) { // fn#50930, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:6129, offset: 0x01225529, size: 98 bytes, params: 4, frame: 18
var value;
var value2;
var value5;
if (a2) {
value = this._calculateArrayDiff(a0, a1);
value2 = this._calculateArrayDiff(a1, a0);
if (value.length > 0 || value2.length > 0) {
value5 = environment.__proto__;
a2(env1_2([], a0, true), value, value2);
}
}
}
}
}
function _fun50897(a0, a1, a2) { // fn#50897, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:76, offset: 0x00dfe7bf, size: 165 bytes, params: 4, frame: 22
var r0;
var r3;
var r9;
var r8;
var r1;
var length;
var value2;
var Array;
var prototype;
var slice;
var call;
let value = undefined;
reducibleJoin10: while (true) {
reducibleJoin2: while (true) {
if (a2) {
break reducibleJoin2;
}
if (arguments.length !== 2) {
r1 = value;
break reducibleJoin10;
}
break reducibleJoin2;
}
length = a1.length;
value2 = 0;
if (!(value2 < length)) {
r1 = value;
break reducibleJoin10;
}
r0 = value2;
r3 = value;
reducibleLoop3: while (true) {
value = !r3;
reducibleJoin5: while (true) {
if (r3) {
r9 = value;
break reducibleJoin5;
}
value = r0 in a1;
r9 = value;
break reducibleJoin5;
}
reducibleJoin9: while (true) {
if (r9) {
r8 = r3;
break reducibleJoin9;
}
reducibleJoin8: while (true) {
if (r3) {
r9 = r3;
break reducibleJoin8;
}
Array = global.Array;
prototype = Array.prototype;
slice = prototype.slice;
call = slice.call;
value = Reflect.apply(call, slice, [a1, value2, r0]);
r9 = value;
break reducibleJoin8;
}
r9[r0] = a1[r0];
r8 = r9;
break reducibleJoin9;
}
value = typeof r0 === 'bigint' ? r0 + 1n : +r0 + 1;
if (value < length) {
r0 = value;
r3 = r8;
continue reducibleLoop3;
}
r1 = r8;
break reducibleJoin10;
}
break reducibleJoin10;
}
const concat = a0.concat;
reducibleJoin12: while (true) {
if (r1) {
break reducibleJoin12;
}
Array = global.Array;
prototype = Array.prototype;
slice = prototype.slice;
call = slice.call;
value = Reflect.apply(call, slice, [a1]);
r1 = value;
break reducibleJoin12;
}
return Reflect.apply(concat, a0, [r1]);
}
function updateOffset_50906(a0, a1, a2) { // fn#50906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:1635, offset: 0x01224e57, size: 163 bytes, params: 4, frame: 20
var r0;
var Math;
var min;
var _maxOffset;
var Math2;
var length;
let value = a0;
if (a1) {
this._actualOffset = value;
Math = global.Math;
min = Math.min;
_maxOffset = this._maxOffset;
Math2 = global.Math;
r0 = Reflect.apply(min, Math, [_maxOffset, Math2.max(0, value + (a2.windowShift + a2.startCorrection))]);
} else {
r0 = value;
}
if (this._currentOffset !== r0) {
this._currentOffset = r0;
this._updateTrackingWindows(value, a2);
length = this._visibleIndexes.length;
value = 0;
this._fitAndUpdate(length > value ? this._visibleIndexes[value] : value);
}
}
function findFirstLogicallyVisibleIndex() { // fn#50910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:2251, offset: 0x01224f1b, size: 136 bytes, params: 1, frame: 17
var r1;
var r3;
var r0;
var _isHorizontal;
var _layouts;
var property;
var y;
var y2;
var x;
var x2;
var value3;
const value = this._findFirstVisibleIndexUsingBS(0.001);
const value2 = value - 1;
if (value2 >= 0) {
r1 = value;
r3 = value2;
reducibleLoop1: while (true) {
_isHorizontal = this._isHorizontal;
_layouts = this._layouts;
property = _layouts[value];
if (_isHorizontal) {
x = property.x;
_layouts = this._layouts;
x2 = _layouts[r3].x;
reducibleJoin4: while (true) {
if (x !== x2) {
r0 = r1;
break reducibleLoop1;
}
break reducibleJoin4;
}
} else {
y = property.y;
_layouts = this._layouts;
y2 = _layouts[r3].y;
reducibleJoin4: while (true) {
if (y !== y2) {
r0 = r1;
break reducibleLoop1;
}
break reducibleJoin4;
}
}
value3 = typeof r3 === 'bigint' ? r3 - 1n : +r3 - 1;
if (value3 >= 0) {
r1 = r3;
r3 = value3;
continue reducibleLoop1;
}
r0 = r3;
break reducibleLoop1;
}
} else {
r0 = value;
}
return r0;
}
function _fitIndexes(a0, a1, a2, a3) { // fn#50919, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:3937, offset: 0x01225192, size: 177 bytes, params: 5, frame: 26
var r0;
var r1;
var r11;
var r5;
var r8;
var value2;
var _checkIntersectionAndReport;
var value3;
var value4;
let value = a2;
const length = this._layouts.length;
const object = {'start': 0, 'end': 0};
reducibleJoin10: while (true) {
if (!(value < length)) {
break reducibleJoin10;
}
if (a3) {
value4 = false;
if (!(value >= 0)) {
break reducibleJoin10;
}
r1 = value4;
r5 = value;
reducibleLoop7: while (true) {
_checkIntersectionAndReport = this._checkIntersectionAndReport;
value = true;
if (Reflect.apply(_checkIntersectionAndReport, this, [r5, value, object, a0, a1])) {
r8 = value;
} else {
reducibleJoin9: while (true) {
if (r1) {
break reducibleJoin10;
}
r8 = r1;
break reducibleJoin9;
}
}
value = typeof r5 === 'bigint' ? r5 - 1n : +r5 - 1;
if (value >= 0) {
r1 = r8;
r5 = value;
continue reducibleLoop7;
}
break reducibleJoin10;
}
} else {
value2 = false;
if (!(value < length)) {
break reducibleJoin10;
}
r0 = value2;
r1 = value;
reducibleLoop3: while (true) {
_checkIntersectionAndReport = this._checkIntersectionAndReport;
value = Reflect.apply(_checkIntersectionAndReport, this, [r1, value2, object, a0, a1]);
value3 = true;
if (value) {
r11 = value3;
} else {
reducibleJoin5: while (true) {
if (r0) {
break reducibleJoin10;
}
r11 = r0;
break reducibleJoin5;
}
}
value = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value < length) {
r0 = r11;
r1 = value;
continue reducibleLoop3;
}
break reducibleJoin10;
}
}
}
}
function _checkIntersectionAndReport(a0, a1, a2, a3, a4) { // fn#50920, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:4256, offset: 0x01225243, size: 187 bytes, params: 6, frame: 19
var r0;
this._setRelevantBounds(this._layouts[a0], a2);
if (this._itemIntersectsVisibleWindow(a2.start, a2.end)) {
if (a1) {
a3.splice(0, 0, a0);
a4.splice(0, 0, a0);
r0 = true;
} else {
a3.push(a0);
a4.push(a0);
r0 = true;
}
} else if (this._itemIntersectsEngagedWindow(a2.start, a2.end)) {
if (a1) {
a4.splice(0, 0, a0);
r0 = true;
} else {
a4.push(a0);
r0 = true;
}
} else {
r0 = false;
}
return r0;
}
function _updateTrackingWindows(a0, a1) { // fn#50928, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6650:5507, offset: 0x01225446, size: 152 bytes, params: 3, frame: 17
let value = a1.windowShift + a1.startCorrection;
const value2 = a1.windowShift + a1.endCorrection;
value = a0 + value;
const value3 = a0 + this._windowBound + value2;
const _engagedWindow = this._engagedWindow;
const Math = global.Math;
_engagedWindow.start = Math.max(0, value - this._renderAheadOffset);
this._engagedWindow.end = value3 + this._renderAheadOffset;
this._visibleWindow.start = value;
this._visibleWindow.end = value3;
}
global.__d(_fun50896, 6472, [6450]) /* metro module 6472, dependencies: [6450] */;