/* Metro module 6384; source: unknown; dependencies: [6374, 6375, 6385, 6391, 6392, 6394, 6395, 6406, 6407, 6408] */ function _fun50001(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#50001, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:6, offset: 0x0120ed23, size: 108 bytes, params: 8, frame: 18 const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(6374) /* metro dependency 6374 */; const env0_4 = importDefault(6375) /* metro dependency 6375 */; exports.RecyclerViewManager = _fun50002(); } function _fun50002() { // fn#50002, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:118, offset: 0x0120ed8f, size: 1077 bytes, params: 1, frame: 15 return env0_4(RecyclerViewManager, [{key: 'animationOptimizationsEnabled', get: function() { return this._animationOptimizationsEnabled; }, set: function(a0) { this._animationOptimizationsEnabled = a0; this.renderStackManager.disableRecycling = a0; }}, {key: 'isOffsetProjectionEnabled', get: function() { return this.engagedIndicesTracker.enableOffsetProjection; }}, {key: 'isDisposed', get: function() { return this._isDisposed; }}, {key: 'numColumns', get: function() { return this.propsRef.numColumns ?? 1; }}, {key: 'props', get: function() { return this.propsRef; }}, {key: 'setOffsetProjectionEnabled', value: function(a0) { this.engagedIndicesTracker.enableOffsetProjection = a0; }}, {key: 'updateProps', value: function(a0) { var r1; this.propsRef = a0; var property = this.engagedIndicesTracker; property.drawDistance = a0.drawDistance ?? this.engagedIndicesTracker.drawDistance; property = this.propsRef.overrideProps; var value = undefined; r1 = property == null ? value : property.initialDrawBatchSize; r1 = r1 ?? this.initialDrawBatchSize; this.initialDrawBatchSize = r1; return value; }}, {key: 'updateScrollOffset', value: function(a0, a1) { var engagedIndicesTracker; var value; if (this.layoutManager) { if (this._isDisposed) { return undefined; } engagedIndicesTracker = this.engagedIndicesTracker; value = a0 - this.firstItemOffset; value = engagedIndicesTracker.updateScrollOffset(value, a1, this.layoutManager); if (value) { this.updateRenderStack(value); return value; } } }}, {key: 'updateAverageRenderTime', value: function(a0) { this.engagedIndicesTracker.averageRenderTime = a0; }}, {key: 'getIsFirstLayoutComplete', value: function() { return this.isFirstLayoutComplete; }}, {key: 'getLayout', value: value_50016}, {key: 'tryGetLayout', value: function(a0) { if (this.layoutManager) { if (a0 >= 0) { if (a0 < this.layoutManager.getLayoutCount()) { return this.layoutManager.getLayout(a0); } return undefined; } } }}, {key: 'getChildContainerDimensions', value: value_50018}, {key: 'getRenderStack', value: function() { return this.renderStackManager.getRenderStack(); }}, {key: 'getWindowSize', value: value_50020}, {key: 'getLastScrollOffset', value: function() { return this.engagedIndicesTracker.scrollOffset; }}, {key: 'getMaxScrollOffset', value: function() { var r4; var Math = global.Math; var max = Math.max; var horizontal = this.propsRef.horizontal; var value = this.getChildContainerDimensions(); r4 = horizontal ? value.width : value.height; var horizontal2 = this.propsRef.horizontal; value = this.getWindowSize(); return Reflect.apply(max, Math, [0, r4 - (horizontal2 ? value.width : value.height) + this.firstItemOffset]); }}, {key: 'getAbsoluteLastScrollOffset', value: function() { return this.engagedIndicesTracker.scrollOffset + this.firstItemOffset; }}, {key: 'setScrollDirection', value: function(a0) { this.engagedIndicesTracker.setScrollDirection(a0); }}, {key: 'resetVelocityCompute', value: function() { this.engagedIndicesTracker.resetVelocityHistory(); }}, {key: 'updateLayoutParams', value: value_50026}, {key: 'hasLayout', value: function() { return this.layoutManager !== undefined; }}, {key: 'computeVisibleIndices', value: value_50028}, {key: 'getEngagedIndices', value: function() { return this.engagedIndicesTracker.getEngagedIndices(); }}, {key: 'modifyChildrenLayout', value: value_50030}, {key: 'computeItemViewability', value: function() { var r0; var itemViewabilityManager; var updateViewableItems; var value; if (this.itemViewabilityManager.shouldListenToVisibleIndices) { itemViewabilityManager = this.itemViewabilityManager; updateViewableItems = itemViewabilityManager.updateViewableItems; if (this.propsRef.masonry) { value = this.engagedIndicesTracker.getEngagedIndices(); value = value.toArray(); r0 = value; } else { value = this.computeVisibleIndices(); value = value.toArray(); r0 = value; } Reflect.apply(updateViewableItems, itemViewabilityManager, [r0]); } }}, {key: 'recordInteraction', value: function() { this.itemViewabilityManager.recordInteraction(); }}, {key: 'recomputeViewableItems', value: function() { this.itemViewabilityManager.recomputeViewableItems(); }}, {key: 'processDataUpdate', value: function() { var r0; var property; var data; var value; if (this.hasLayout()) { property = this.modifyChildrenLayout; data = this.propsRef.data; value = undefined; r0 = data == null ? value : data.length; value = 0; Reflect.apply(property, this, [[], r0 ?? value]); property = this.hasRenderedProgressively; r0 = property && !this.recomputeEngagedIndices(); if (r0) { this.updateRenderStack(this.engagedIndicesTracker.getEngagedIndices()); } } }}, {key: 'recomputeEngagedIndices', value: function() { return this.updateScrollOffset(this.getAbsoluteLastScrollOffset()); }}, {key: 'restoreIfNeeded', value: function() { if (this._isDisposed) { this._isDisposed = false; } }}, {key: 'dispose', value: function() { this._isDisposed = true; this.itemViewabilityManager.dispose(); }}, {key: 'markLayoutManagerDirty', value: function() { this._isLayoutManagerDirty = true; }}, {key: 'getInitialScrollIndex', value: function() { var r1; var r0; var value; var property = this.propsRef.initialScrollIndex; if (property != null) { r0 = property; } else { property = this.propsRef.maintainVisibleContentPosition; value = undefined; if (property != null) { if (property.startRenderingFromBottom) { value = this.getDataLength(); value -= 1; r1 = value; } else { r1 = value; } } else { r1 = value; } r0 = r1; } return r0; }}, {key: 'shouldMaintainVisibleContentPosition', value: function() { var r0; var property = this.propsRef.maintainVisibleContentPosition; r0 = property != null && property.disabled; r0 = !r0 ? this.propsRef.horizontal : r0; return !r0; }}, {key: 'getDataLength', value: function() { return this.propsRef.data?.length ?? 0; }}, {key: 'hasStableDataKeys', value: function() { var Boolean = global.Boolean; return Boolean(this.propsRef.keyExtractor); }}, {key: 'getDataKey', value: function(a0) { var r0; var propsRef = this.propsRef; r0 = propsRef.keyExtractor?.call(propsRef, this.propsRef.data[a0], a0); r0 = r0 ?? a0.toString(); return r0; }}, {key: 'getLayoutManagerClass', value: value_50044}, {key: 'applyInitialScrollAdjustment', value: value_50045}, {key: 'renderProgressively', value: value_50046}, {key: 'getItemType', value: function(a0) { var propsRef = this.propsRef; var getItemType = propsRef.getItemType; return (getItemType?.call(propsRef, this.propsRef.data[a0], a0) ?? 'default').toString(); }}, {key: 'overrideItemLayout', value: function(a0, a1) { var propsRef = this.propsRef; if (!(propsRef == null || propsRef.overrideItemLayout == null)) { propsRef.overrideItemLayout(a1, this.propsRef.data[a0], a0, this.numColumns, this.propsRef.extraData); } }}, {key: 'checkPropsAndWarn', value: value_50050}]); } function RecyclerViewManager(a0) { // fn#50003, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:139, offset: 0x0120f1c4, size: 342 bytes, params: 2, frame: 18 var environment; let value = environment.__proto__; env1_3(this, RecyclerViewManager); this.initialDrawBatchSize = 2; this.isFirstLayoutComplete = false; this.hasRenderedProgressively = false; this.progressiveRenderCount = 0; this._isDisposed = false; this._isLayoutManagerDirty = false; this._animationOptimizationsEnabled = false; this.firstItemOffset = 0; this.ignoreScrollEvents = false; this.isFirstPaintOnUiComplete = false; this.updateRenderStack = updateRenderStack; const getDataKey = this.getDataKey; this.getDataKey = getDataKey.bind(this); const getItemType = this.getItemType; this.getItemType = getItemType.bind(this); const overrideItemLayout = this.overrideItemLayout; this.overrideItemLayout = overrideItemLayout.bind(this); this.propsRef = a0; const RVEngagedIndicesTrackerImpl = (require(6385) /* metro dependency 6385 */).RVEngagedIndicesTrackerImpl; const value3 = Object.create(RVEngagedIndicesTrackerImpl.prototype, {constructor: {value: RVEngagedIndicesTrackerImpl}}); const rVEngagedIndicesTrackerImpl = new RVEngagedIndicesTrackerImpl(); this.engagedIndicesTracker = rVEngagedIndicesTrackerImpl instanceof Object ? rVEngagedIndicesTrackerImpl : value3; const RenderStackManager = (require(6391) /* metro dependency 6391 */).RenderStackManager; const maxItemsInRecyclePool = a0.maxItemsInRecyclePool; const value5 = Object.create(RenderStackManager.prototype, {constructor: {value: RenderStackManager}}); const renderStackManager = new RenderStackManager(maxItemsInRecyclePool); this.renderStackManager = renderStackManager instanceof Object ? renderStackManager : value5; value = importDefault(6392) /* metro dependency 6392 */; value = new value(this); this.itemViewabilityManager = value; this.checkPropsAndWarn(); } function value_50016(a0) { // fn#50016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:2474, offset: 0x0120f4a7, size: 101 bytes, params: 2, frame: 13 if (this.layoutManager) { return this.layoutManager.getLayout(a0); } const Error = global.Error; const value = environment.__proto__; const ErrorMessages = (require(6394) /* metro dependency 6394 */).ErrorMessages; throw new Error(ErrorMessages.layoutManagerNotInitializedLayoutInfo); } function value_50018() { // fn#50018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:2837, offset: 0x0120f54e, size: 97 bytes, params: 1, frame: 13 if (this.layoutManager) { return this.layoutManager.getLayoutSize(); } const Error = global.Error; const value = environment.__proto__; const ErrorMessages = (require(6394) /* metro dependency 6394 */).ErrorMessages; throw new Error(ErrorMessages.layoutManagerNotInitializedChildContainer); } function value_50020() { // fn#50020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:3155, offset: 0x0120f5c4, size: 97 bytes, params: 1, frame: 13 if (this.layoutManager) { return this.layoutManager.getWindowsSize(); } const Error = global.Error; const value = environment.__proto__; const ErrorMessages = (require(6394) /* metro dependency 6394 */).ErrorMessages; throw new Error(ErrorMessages.layoutManagerNotInitializedWindowSize); } function value_50026(a0, a1) { // fn#50026, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:4148, offset: 0x0120f6f7, size: 363 bytes, params: 3, frame: 18 var Boolean; var value3; var propsRef; var horizontal; var object2; var optimizeItemArrangement; var value5; var Error; var horizontalPropCannotBeToggled; this.firstItemOffset = a1; let value = this.getLayoutManagerClass(); let layoutManager = this.layoutManager; if (layoutManager) { Boolean = global.Boolean; layoutManager = this.layoutManager; value3 = Boolean(layoutManager?.isHorizontal()); Boolean = global.Boolean; propsRef = this.propsRef; horizontal = propsRef.horizontal; if (value3 !== Boolean(horizontal)) { Error = global.Error; value = environment.__proto__; horizontalPropCannotBeToggled = (require(6394) /* metro dependency 6394 */).ErrorMessages.horizontalPropCannotBeToggled; throw new Error(); } if (this._isLayoutManagerDirty) { this.layoutManager = undefined; this._isLayoutManagerDirty = false; } object2 = {windowSize: a0}; object2.maxColumns = this.numColumns; Boolean = global.Boolean; propsRef = this.propsRef; horizontal = propsRef.horizontal; object2.horizontal = Boolean(horizontal); propsRef = this.propsRef; optimizeItemArrangement = propsRef.optimizeItemArrangement; object2.optimizeItemArrangement = optimizeItemArrangement == null || optimizeItemArrangement; object2.overrideItemLayout = this.overrideItemLayout; object2.getItemType = this.getItemType; layoutManager = this.layoutManager; value5 = layoutManager instanceof value; layoutManager = this.layoutManager; if (value5) { layoutManager.updateLayoutParams(object2); } else { value = new value(object2, layoutManager); this.layoutManager = value; } } else { if (this._isLayoutManagerDirty) { this.layoutManager = undefined; this._isLayoutManagerDirty = false; } object2 = {windowSize: a0}; object2.maxColumns = this.numColumns; Boolean = global.Boolean; propsRef = this.propsRef; object2.horizontal = Boolean(propsRef.horizontal); propsRef = this.propsRef; optimizeItemArrangement = propsRef.optimizeItemArrangement; object2.optimizeItemArrangement = optimizeItemArrangement == null || optimizeItemArrangement; object2.overrideItemLayout = this.overrideItemLayout; object2.getItemType = this.getItemType; layoutManager = this.layoutManager; value5 = layoutManager instanceof value; layoutManager = this.layoutManager; if (value5) { layoutManager.updateLayoutParams(object2); } else { value = new value(object2, layoutManager); this.layoutManager = value; } } } function value_50028() { // fn#50028, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:5001, offset: 0x0120f873, size: 104 bytes, params: 1, frame: 13 var engagedIndicesTracker; if (this.layoutManager) { engagedIndicesTracker = this.engagedIndicesTracker; return engagedIndicesTracker.computeVisibleIndices(this.layoutManager); } const Error = global.Error; const value = environment.__proto__; const ErrorMessages = (require(6394) /* metro dependency 6394 */).ErrorMessages; throw new Error(ErrorMessages.layoutManagerNotInitializedVisibleIndices); } function value_50030(a0, a1) { // fn#50030, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:5366, offset: 0x0120f8f0, size: 152 bytes, params: 3, frame: 15 var r3; var r1; var r0; var isFirstPaintOnUiComplete; let layoutManager = this.layoutManager; if (layoutManager != null) { layoutManager.modifyLayout(a0, a1); } let value = a1 !== 0; if (value) { layoutManager = this.layoutManager; if (layoutManager == null) { if (this.hasRenderedProgressively) { isFirstPaintOnUiComplete = this.isFirstPaintOnUiComplete; value = !!isFirstPaintOnUiComplete; if (isFirstPaintOnUiComplete) { value = this.recomputeEngagedIndices(); value = value !== undefined; r3 = value; } else { r3 = value; } r1 = r3; } else { this.renderProgressively(); r1 = !this.hasRenderedProgressively; } } else if (layoutManager.requiresRepaint) { this.layoutManager.requiresRepaint = false; r1 = true; } else if (this.hasRenderedProgressively) { isFirstPaintOnUiComplete = this.isFirstPaintOnUiComplete; value = !!isFirstPaintOnUiComplete; if (isFirstPaintOnUiComplete) { value = this.recomputeEngagedIndices(); value = value !== undefined; r3 = value; } else { r3 = value; } r1 = r3; } else { this.renderProgressively(); r1 = !this.hasRenderedProgressively; } r0 = r1; } else { r0 = value; } return r0; } function value_50044() { // fn#50044, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:7910, offset: 0x0120fc0a, size: 340 bytes, params: 1, frame: 12 var r0; var value; const RVGridLayoutManagerImpl = (require(6406) /* metro dependency 6406 */).RVGridLayoutManagerImpl; const RVLinearLayoutManagerImpl = (require(6407) /* metro dependency 6407 */).RVLinearLayoutManagerImpl; const RVMasonryLayoutManagerImpl = (require(6395) /* metro dependency 6395 */).RVMasonryLayoutManagerImpl; var Error; const ErrorMessages = (require(6394) /* metro dependency 6394 */).ErrorMessages; var numColumnsAndHorizontalIncompatible; var masonryAndHorizontalIncompatible; let propsRef = this.propsRef; if (propsRef.masonry) { propsRef = this.propsRef; if (propsRef.horizontal) { Error = global.Error; value = environment.__proto__; masonryAndHorizontalIncompatible = ErrorMessages.masonryAndHorizontalIncompatible; throw new Error(); } if (this.numColumns > 1) { propsRef = this.propsRef; if (propsRef.horizontal) { Error = global.Error; value = environment.__proto__; numColumnsAndHorizontalIncompatible = ErrorMessages.numColumnsAndHorizontalIncompatible; throw new Error(); } propsRef = this.propsRef; return propsRef.masonry ? RVMasonryLayoutManagerImpl : this.numColumns > 1 ? this.propsRef.horizontal ? RVLinearLayoutManagerImpl : RVGridLayoutManagerImpl : RVLinearLayoutManagerImpl; } propsRef = this.propsRef; r0 = propsRef.masonry ? RVMasonryLayoutManagerImpl : this.numColumns > 1 ? this.propsRef.horizontal ? RVLinearLayoutManagerImpl : RVGridLayoutManagerImpl : RVLinearLayoutManagerImpl; } else { if (this.numColumns > 1) { propsRef = this.propsRef; if (propsRef.horizontal) { Error = global.Error; value = environment.__proto__; numColumnsAndHorizontalIncompatible = ErrorMessages.numColumnsAndHorizontalIncompatible; throw new Error(); } propsRef = this.propsRef; return propsRef.masonry ? RVMasonryLayoutManagerImpl : this.numColumns > 1 ? this.propsRef.horizontal ? RVLinearLayoutManagerImpl : RVGridLayoutManagerImpl : RVLinearLayoutManagerImpl; } r0 = this.propsRef.masonry ? RVMasonryLayoutManagerImpl : this.numColumns > 1 ? this.propsRef.horizontal ? RVLinearLayoutManagerImpl : RVGridLayoutManagerImpl : RVLinearLayoutManagerImpl; } return r0; } function value_50045() { // fn#50045, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:8407, offset: 0x0120fd5e, size: 218 bytes, params: 1, frame: 19 var r1; var r7; var value; var value2; var value3; var horizontal; var value5; var engagedIndicesTracker; let layoutManager = this.layoutManager; if (layoutManager) { value = this.getDataLength(); value2 = 0; if (value2 !== value) { value = this.getInitialScrollIndex(); layoutManager = this.layoutManager; value3 = undefined; r7 = layoutManager == null ? value3 : layoutManager.getLayout(value ?? value2); horizontal = this.propsRef.horizontal; value5 = r7 == null; r1 = horizontal ? value5 ? value3 : r7.x : value5 ? value3 : r7.y; if (value3 !== value) { this.layoutManager.recomputeLayouts(value2, value); engagedIndicesTracker = this.engagedIndicesTracker; r1 = r1 ?? value2 + this.firstItemOffset; engagedIndicesTracker.scrollOffset = r1; } else { this.engagedIndicesTracker.scrollOffset = (r1 ?? value2) - this.firstItemOffset; } } } } function value_50046() { // fn#50046, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:8903, offset: 0x0120fe38, size: 233 bytes, params: 1, frame: 18 var visibleIndices; var hasRenderedProgressively; var numColumns; var initialDrawBatchSize; var Math; var ceil; var value; var updateRenderStack; var slice; let progressiveRenderCount = this.progressiveRenderCount; this.progressiveRenderCount = typeof progressiveRenderCount === 'bigint' ? progressiveRenderCount + 1n : +progressiveRenderCount + 1; if (this.layoutManager) { this.applyInitialScrollAdjustment(); visibleIndices = this.computeVisibleIndices(); this.hasRenderedProgressively = visibleIndices.every(function(a0) { return layoutManager.getLayout(a0).isHeightMeasured && layoutManager.getLayout(a0).isWidthMeasured; }); hasRenderedProgressively = this.hasRenderedProgressively; if (hasRenderedProgressively) { this.isFirstLayoutComplete = true; } numColumns = this.numColumns; initialDrawBatchSize = this.initialDrawBatchSize; Math = global.Math; ceil = Math.ceil; progressiveRenderCount = this.progressiveRenderCount; value = numColumns * exponentiationOperator(initialDrawBatchSize, Reflect.apply(ceil, Math, [progressiveRenderCount / 5]), progressiveRenderCount); hasRenderedProgressively = this.hasRenderedProgressively; if (!hasRenderedProgressively) { updateRenderStack = this.updateRenderStack; slice = visibleIndices.slice; Math = global.Math; Reflect.apply(updateRenderStack, this, [Reflect.apply(slice, visibleIndices, [0, Math.min(visibleIndices.length, this.getRenderStack().size + value)])]); } } } function value_50050() { // fn#50050, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:9890, offset: 0x01210001, size: 95 bytes, params: 1, frame: 13 var value; var console; var warn; if (this.propsRef.onStartReached && !this.propsRef.keyExtractor) { console = global.console; warn = console.warn; value = environment.__proto__; Reflect.apply(warn, console, [(require(6408) /* metro dependency 6408 */).WarningMessages.keyExtractorNotDefinedForMVCP]); } } function updateRenderStack(a0) { // fn#50004, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6562:526, owner: RecyclerViewManager.updateRenderStack, offset: 0x0120f31a, size: 55 bytes, params: 2, frame: 17 const binding = env0_0; const renderStackManager = binding.renderStackManager; const sync = renderStackManager.sync; const getDataKey = binding.getDataKey; const getItemType = binding.getItemType; Reflect.apply(sync, renderStackManager, [getDataKey, getItemType, a0, binding.getDataLength()]); }