/* Metro module 6392; source: unknown; dependencies: [6386, 6374, 6375, 6393] */ import ClassCallCheck from './module-06374-ClassCallCheck.js'; /* Metro dependency 6374 */ import CreateClass from './module-06375-CreateClass.js'; /* Metro dependency 6375 */ import Module06386 from './module-06386.js'; /* Metro dependency 6386 */ function _fun50101(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#50101, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:6, offset: 0x0121157d, size: 117 bytes, params: 8, frame: 18 const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); exports.default = _fun50102(); function _fun50102() { // fn#50102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:128, offset: 0x012115f2, size: 55 bytes, params: 1, frame: 14 return CreateClass(ViewabilityManager, [{key: 'shouldListenToVisibleIndices', get: function() { return this.viewabilityHelpers.length > 0; }}]); function ViewabilityManager(a0) { // fn#50103, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:149, offset: 0x01211629, size: 246 bytes, params: 2, frame: 19 var environment; var viewabilityHelpers; var createViewabilityHelper; const env0_0 = a0; const value = environment.__proto__; env1_3(this, ViewabilityManager); this.viewabilityHelpers = []; this.hasInteracted = false; this.dispose = dispose_50104; this.onVisibleIndicesChanged = onVisibleIndicesChanged; this.recordInteraction = recordInteraction; this.updateViewableItems = updateViewableItems; this.recomputeViewableItems = recomputeViewableItems; this.createViewabilityHelper = createViewabilityHelper; this.rvManager = a0; if (a0.props.onViewableItemsChanged !== null && a0.props.onViewableItemsChanged !== undefined) { viewabilityHelpers = this.viewabilityHelpers; viewabilityHelpers.push(this.createViewabilityHelper(a0.props.viewabilityConfig, _fun50120)); } (a0.props.viewabilityConfigCallbackPairs ?? []).forEach(_fun50121); function ViewabilityManagerDispose() { // fn#50104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:282, owner: ViewabilityManager.dispose, offset: 0x0121171f, size: 34 bytes, params: 1, frame: 11 env0_1.viewabilityHelpers.forEach(function(a0) { return a0.dispose(); }); } function onVisibleIndicesChanged(a0) { // fn#50106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:387, owner: ViewabilityManager.onVisibleIndicesChanged, offset: 0x01211750, size: 25 bytes, params: 2, frame: 11 env0_1.updateViewableItems(a0); } function recordInteraction() { // fn#50107, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:448, owner: ViewabilityManager.recordInteraction, offset: 0x01211769, size: 65 bytes, params: 1, frame: 12 var binding; if (!env0_1.hasInteracted) { binding = env0_1; binding.hasInteracted = true; binding.viewabilityHelpers.forEach(function(a0) { a0.hasInteracted = true; }); binding.updateViewableItems(); } } function updateViewableItems(a0) { // fn#50109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:611, owner: ViewabilityManager.updateViewableItems, offset: 0x012117b9, size: 136 bytes, params: 2, frame: 14 var r4; var binding; const env0_0 = a0; let rvManager = windowSize2.rvManager; const windowSize = rvManager.getWindowSize(); var windowSize2 = windowSize; if (windowSize !== undefined) { if (windowSize2.shouldListenToVisibleIndices) { rvManager = windowSize2.rvManager; r4 = rvManager.getAbsoluteLastScrollOffset() ?? 0; binding = windowSize2; rvManager = binding.rvManager; var env0_2 = r4 - rvManager.firstItemOffset; binding.viewabilityHelpers.forEach(_fun50110); } } function _fun50110(a0) { // fn#50110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:828, offset: 0x01211841, size: 81 bytes, params: 2, frame: 19 var environment; const updateViewableItems = a0.updateViewableItems; const value = environment.__proto__; const horizontal = env1_1.rvManager.props.horizontal; Reflect.apply(updateViewableItems, a0, [horizontal != null && horizontal, env0_2, env0_1, _fun50111, env0_0]); function _fun50111(a0) { // fn#50111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:915, offset: 0x01211892, size: 29 bytes, params: 2, frame: 11 return env2_1.rvManager.getLayout(a0); } } } function recomputeViewableItems() { // fn#50112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:997, owner: ViewabilityManager.recomputeViewableItems, offset: 0x012118af, size: 44 bytes, params: 1, frame: 12 const binding = env0_1; binding.viewabilityHelpers.forEach(function(a0) { return a0.clearLastReportedViewableIndices(); }); binding.updateViewableItems(); } function createViewabilityHelper(a0, a1) { // fn#50114, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1151, owner: ViewabilityManager.createViewabilityHelper, offset: 0x012118ea, size: 73 bytes, params: 3, frame: 13 var environment; const env0_0 = a1; let value = environment.__proto__.__proto__; value = importDefault(6393) /* metro dependency 6393 */; const value2 = Object.create(value.prototype, {constructor: {value: value}}); value = new value(a0, _fun50116); return value instanceof Object ? value : value2; function mapViewToken(a0, a1) { // fn#50115, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1171, owner: ViewabilityManager.createViewabilityHelper.mapViewToken, offset: 0x01211933, size: 145 bytes, params: 3, frame: 14 const value = environment.__proto__; const property = env1_1.rvManager.props.data[a0]; const object = {index: a0, isViewable: a1, item: property, key: property === undefined || env1_1.rvManager.props.keyExtractor === undefined ? a0.toString() : env1_1.rvManager.props.keyExtractor(property, a0)}; const Date = global.Date; object.timestamp = Date.now(); return object; } function _fun50116(a0, a1, a2) { // fn#50116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1420, offset: 0x012119c4, size: 128 bytes, params: 4, frame: 19 var environment; var object; var items2; var concat; var binding; var value; if (require != null) { object = {}; object.viewableItems = a0.map(function(a0) { return mapViewToken(a0, true); }); items2 = []; concat = items2.concat; value = environment.__proto__.__proto__.__proto__; binding = env3_2; value = a1.map(_fun50118); value = binding(value); object.changed = Reflect.apply(concat, items2, [value, binding(a2.map(_fun50119))]); require(object); } function _fun50118(a0) { // fn#50118, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1526, offset: 0x01211a44, size: 22 bytes, params: 2, frame: 13 return mapViewToken(a0, true); } function _fun50119(a0) { // fn#50119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1566, offset: 0x01211a5a, size: 22 bytes, params: 2, frame: 13 return mapViewToken(a0, false); } } } function _fun50120(a0) { // fn#50120, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1786, offset: 0x01211a70, size: 51 bytes, params: 2, frame: 11 if (env0_0.props.onViewableItemsChanged != null) { env0_0.props.onViewableItemsChanged(a0); } } function _fun50121({viewabilityConfig}, a1) { // fn#50121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:1939, offset: 0x01211aa3, size: 62 bytes, params: 3, frame: 15 const env0_0 = a1; const binding = env0_1; const viewabilityHelpers = binding.viewabilityHelpers; viewabilityHelpers.push(binding.createViewabilityHelper(viewabilityConfig, _fun50122)); function _fun50122(a0) { // fn#50122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6570:2026, offset: 0x01211ae1, size: 71 bytes, params: 2, frame: 13 let value = environment.__proto__; const viewabilityConfigCallbackPairs = env1_0.props.viewabilityConfigCallbackPairs; value = undefined; const onViewableItemsChanged = viewabilityConfigCallbackPairs == null || viewabilityConfigCallbackPairs[require] == null ? value : viewabilityConfigCallbackPairs[require].onViewableItemsChanged; if (onViewableItemsChanged != null) { onViewableItemsChanged(a0); } return value; } } } } } global.__d(_fun50101, 6392, [6386, 6374, 6375, 6393]) /* metro module 6392, dependencies: [6386, 6374, 6375, 6393] */;