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

581 lines
21 KiB
JavaScript

/* Metro module 6407; source: unknown; dependencies: [6374, 6375, 6396, 6398, 6399, 6401, 6403] */
import ClassCallCheck from './module-06374-ClassCallCheck.js'; /* Metro dependency 6374 */
import CreateClass from './module-06375-CreateClass.js'; /* Metro dependency 6375 */
import PossibleConstructorReturn from './module-06396-PossibleConstructorReturn.js'; /* Metro dependency 6396 */
import Module06398 from './module-06398.js'; /* Metro dependency 6398 */
import Module06399 from './module-06399.js'; /* Metro dependency 6399 */
import Inherits from './module-06401-Inherits.js'; /* Metro dependency 6401 */
import * as RVLayoutManagerModule from './module-06403-RVLayoutManager.js'; /* Metro dependency 6403 */
function _fun50230(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#50230, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:6, offset: 0x012146b8, size: 188 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const RVLayoutManager = (RVLayoutManagerModule).RVLayoutManager;
exports.RVLinearLayoutManagerImpl = _fun50234(RVLayoutManager);
function _isNativeReflectConstruct_50231() { // fn#50231, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:166, offset: 0x01214774, size: 94 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_50231_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun50234(a0) { // fn#50234, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:391, offset: 0x012147d2, size: 189 bytes, params: 2, frame: 16
const RVLinearLayoutManagerImpl2 = RVLinearLayoutManagerImpl;
Inherits(RVLinearLayoutManagerImpl2, a0);
return CreateClass(RVLinearLayoutManagerImpl2, [{key: 'updateLayoutParams', value: value_50236},
{key: 'processLayoutInfo', value: value_50239}, {key: 'estimateLayout', value: function(a0) {
var property = this.layouts[a0];
property.width = this.horizontal ? this.getEstimatedWidth(a0) : this.boundedSize;
property.height = this.getEstimatedHeight(a0);
property.isWidthMeasured = !this.horizontal;
property.enforcedWidth = !this.horizontal;
}}, {key: 'getLayoutSize', value: value_50241}, {key: 'normalizeLayoutHeights', value: value_50242},
{key: 'recomputeLayouts', value: value_50243}]);
function RVLinearLayoutManagerImpl(a0, a1) { // fn#50235, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:403, offset: 0x0121488f, size: 187 bytes, params: 3, frame: 20
let value = environment.__proto__;
env1_0(this, RVLinearLayoutManagerImpl);
const items2 = [a0, a1];
const value3 = env1_3(RVLinearLayoutManagerImpl);
value = env1_2(this, _isNativeReflectConstruct_50231() ? global.Reflect.construct(value3, items2,
env1_3(this).constructor) : value3.apply(this, items2));
value.hasSize = false;
value.tallestItemHeight = 0;
const horizontal = value.horizontal;
const windowSize = a0.windowSize;
value.boundedSize = horizontal ? windowSize.height : windowSize.width;
value.hasSize = value.boundedSize > 0;
return value;
}
function value_50236(a0) { // fn#50236, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:890, offset: 0x0121494a, size: 182 bytes, params: 2, frame: 19
const horizontal = this.horizontal;
value_50236_superPropGet(RVLinearLayoutManagerImpl, 'updateLayoutParams', this, 3)([a0]);
const boundedSize = this.boundedSize;
const horizontal2 = this.horizontal;
const windowSize = a0.windowSize;
this.boundedSize = horizontal2 ? windowSize.height : windowSize.width;
if (!(boundedSize === this.boundedSize && horizontal === this.horizontal)) {
if (this.layouts.length > 0) {
this.recomputeLayouts(0, this.layouts.length - 1);
this.requiresRepaint = true;
}
}
function value_50236_superPropGet(a0, a1, a2, a3) { // fn#50237, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:944, owner: value_50236._superPropGet, offset: 0x01214a00, size: 100 bytes, params: 5, frame: 18
let value = a0;
const env0_0 = a2;
const binding = env2_4;
value = env2_3(1 & 3 ? value.prototype : value);
value = binding(value, 'updateLayoutParams', a2);
return 2 & 3 ? typeof value !== 'function' ? value : _fun50238 : value;
function _fun50238(a0) { // fn#50238, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:1043, offset: 0x00c62408, size: 27 bytes, params: 2, frame: 13
return CreateClass.apply(importDefault, a0);
}
}
}
}
}
function value_50239(a0, a1) { // fn#50239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:1406, offset: 0x01214a64, size: 160 bytes, params: 3, frame: 19
var r8;
var r1;
var index;
var dimensions;
var layouts;
var property;
var horizontal;
var boundedSize;
var width;
var height;
var error;
var hasSize;
var value;
var normalizeLayoutHeights;
const iterator = a0[Symbol.iterator]();
const iterator2 = iterator.next;
let r4 = iterator;
let item2 = Reflect.apply(iterator2, r4, []);
let item = item2.value;
item2 = item2.done ? undefined : r4;
reducibleJoin2: while (true) {
if (item2 === undefined) {
horizontal = this.horizontal;
reducibleJoin23: while (true) {
if (horizontal) {
hasSize = this.hasSize;
value = !hasSize;
r1 = value;
break reducibleJoin23;
}
r1 = horizontal;
break reducibleJoin23;
}
reducibleJoin25: while (true) {
if (r1) {
normalizeLayoutHeights = this.normalizeLayoutHeights;
Reflect.apply(normalizeLayoutHeights, this, [a0]);
break reducibleJoin25;
}
break reducibleJoin25;
}
return undefined;
}
break reducibleJoin2;
}
reducibleLoop2: while (true) {
try {
index = item.index;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
dimensions = item.dimensions;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
layouts = this.layouts;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
property = layouts[index];
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
horizontal = this.horizontal;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
if (horizontal) {
try {
width = dimensions.width;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
r8 = width;
} else {
try {
boundedSize = this.boundedSize;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
r8 = boundedSize;
}
try {
property.width = r8;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
property.isHeightMeasured = true;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
property.isWidthMeasured = true;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
height = dimensions.height;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
try {
property.height = height;
} catch (error) {
try {
item2.return();
} catch {
}
throw error;
}
r4 = item2;
item2 = Reflect.apply(iterator2, r4, []);
item = item2.value;
item2 = item2.done ? undefined : r4;
if (item2 === undefined) {
break reducibleLoop2;
}
continue reducibleLoop2;
}
horizontal = this.horizontal;
reducibleJoin23: while (true) {
if (horizontal) {
hasSize = this.hasSize;
value = !hasSize;
r1 = value;
break reducibleJoin23;
}
r1 = horizontal;
break reducibleJoin23;
}
reducibleJoin25: while (true) {
if (r1) {
normalizeLayoutHeights = this.normalizeLayoutHeights;
Reflect.apply(normalizeLayoutHeights, this, [a0]);
break reducibleJoin25;
}
break reducibleJoin25;
}
}
function value_50241() { // fn#50241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:1953, offset: 0x01214b6b, size: 166 bytes, params: 1, frame: 7
if (this.layouts.length === 0) {
return {'width': 0, 'height': 0};
}
const property = this.layouts[this.layouts.length - 1];
return {width: this.horizontal ? property.x + property.width : this.boundedSize,
height: this.horizontal ? this.tallestItem?.height ?? this.boundedSize : property.y + property.height};
}
function value_50242(a0) { // fn#50242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:2285, offset: 0x01214c11, size: 318 bytes, params: 2, frame: 17
var r1;
var r5;
var r14;
var height;
var r13;
var value;
var iterator;
var iterator2;
var value2;
var item;
var item2;
var index;
var layouts;
var property;
var minHeight;
var value3;
var value4;
var height2;
var value5;
var value6;
var value7;
var error;
var tallestItemHeight;
var height3;
var iterator3;
var item3;
var value8;
var height4;
exceptionSkip43: while (true) {
exceptionLanding43: while (true) {
exceptionSkip29: while (true) {
exceptionLanding29: while (true) {
value = undefined;
iterator = a0[Symbol.iterator]();
iterator2 = iterator.next;
value2 = 0;
r1 = value;
r5 = iterator;
while (true) {
item2 = Reflect.apply(iterator2, r5, []);
item = item2.value;
item2 = item2.done ? undefined : r5;
if (item2 === value) {
break;
}
try {
index = item.index;
} catch (error) {
break exceptionLanding29;
}
try {
layouts = this.layouts;
} catch (error) {
break exceptionLanding29;
}
try {
property = layouts[index];
} catch (error) {
break exceptionLanding29;
}
try {
height = property.height;
} catch (error) {
break exceptionLanding29;
}
try {
minHeight = property.minHeight;
} catch (error) {
break exceptionLanding29;
}
try {
value3 = minHeight != null;
} catch (error) {
break exceptionLanding29;
}
if (!value3) {
r14 = value2;
continue;
}
r14 = minHeight;
try {
value4 = height > r14;
} catch (error) {
break exceptionLanding29;
}
if (!value4) {
r13 = value4;
continue;
}
try {
height2 = property.height;
} catch (error) {
break exceptionLanding29;
}
try {
value5 = r1 == null;
} catch (error) {
break exceptionLanding29;
}
if (value5) {
height = value;
continue;
}
try {
height = r1.height;
} catch (error) {
break exceptionLanding29;
}
try {
value6 = height != null;
} catch (error) {
break exceptionLanding29;
}
if (!value6) {
r14 = value2;
continue;
}
r14 = height;
try {
value7 = height2 > r14;
} catch (error) {
break exceptionLanding29;
}
r13 = value7;
if (!r13) {
continue;
}
r1 = property;
r5 = item2;
}
if (r1) {
height = r1.height;
tallestItemHeight = this.tallestItemHeight;
if (height === tallestItemHeight) {
break;
}
height = r1.height;
height3 = r1.height;
tallestItemHeight = this.tallestItemHeight;
if (!(height3 < tallestItemHeight)) {
continue;
}
this.requiresRepaint = true;
height = value2;
layouts = this.layouts;
iterator = layouts[Symbol.iterator]();
iterator3 = iterator.next;
r5 = iterator;
while (true) {
item3 = Reflect.apply(iterator3, r5, []);
item = item3.value;
item3 = item3.done ? undefined : r5;
if (item3 === value) {
break;
}
try {
value8 = height > value2;
} catch (error) {
break exceptionLanding43;
}
if (!value8) {
continue;
}
try {
height4 = r1.height;
} catch (error) {
break exceptionLanding43;
}
try {
item.height = height4;
} catch (error) {
break exceptionLanding43;
}
try {
item.minHeight = height;
} catch (error) {
break exceptionLanding43;
}
r5 = item3;
}
r1.minHeight = value2;
this.tallestItem = r1;
height = r1.height;
this.tallestItemHeight = height;
break;
}
return value;
break exceptionSkip29;
}
try {
item2.return();
} catch {
}
throw error;
break exceptionSkip29;
}
break exceptionSkip43;
}
try {
item3.return();
} catch {
}
throw error;
break exceptionSkip43;
}
}
function value_50243(a0, a1) { // fn#50243, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6585:2761, offset: 0x01214d4f, size: 199 bytes, params: 3, frame: 21
var r6;
var r9;
var layout;
var horizontal;
var x;
var width;
var value4;
var y;
var height;
var value5;
var boundedSize;
var hasSize;
let value = a0;
const value2 = 0;
if (value <= a1) {
r6 = value;
while (true) {
value = this.getLayout(r6);
if (value2 === r6) {
value.x = value2;
value.y = value2;
} else {
layout = this.getLayout(r6 - 1);
horizontal = this.horizontal;
if (!horizontal) {
r9 = value2;
continue;
}
x = layout.x;
width = layout.width;
value4 = x + width;
r9 = value4;
value.x = r9;
horizontal = this.horizontal;
if (horizontal) {
r9 = value2;
continue;
}
y = layout.y;
height = layout.height;
value5 = y + height;
r9 = value5;
value.y = r9;
}
horizontal = this.horizontal;
if (horizontal) {
hasSize = this.hasSize;
if (!hasSize) {
continue;
}
boundedSize = this.boundedSize;
value.minHeight = boundedSize;
} else {
boundedSize = this.boundedSize;
value.width = boundedSize;
}
value = typeof r6 === 'bigint' ? r6 + 1n : +r6 + 1;
if (value <= a1) {
r6 = value;
continue;
}
break;
}
}
}
global.__d(_fun50230, 6407, [6374, 6375, 6396, 6398, 6399, 6401,
6403]) /* metro module 6407, dependencies: [6374, 6375, 6396, 6398, 6399, 6401, 6403] */;