// Metro module 313 (f314). import { fixVirtualizeListCollapseWindowSize } from "./Module27"; const elementsThatOverlapOffsets = function elementsThatOverlapOffsets(a0, a1, a2, r15 = 1) { let r35, r37; const itemCount = a1.getItemCount(a1.data); const r22 = []; const r24 = 0 < a0.length; let r4 = 0; if (r24) { do { const r17 = a0[r4]; let r1 = itemCount - 1; const r5 = r4; let r25 = 0; while (r25 <= r1) { L12: { const r20 = r25 + Math.floor((r1 - r25) / 2); const cellMetricsApprox = a2.getCellMetricsApprox(r20, a1); const r21 = cellMetricsApprox.offset * r15; const r34 = (cellMetricsApprox.offset + cellMetricsApprox.length) * r15; r35 = r1; const r36 = r25; if (!(r20 === 0 && r17 < r21) && !(r20 !== 0 && r17 <= r21)) { if (r17 > r34) { r37 = r20 + 1; break L12; } r22[r5] = r20; break; } r35 = r20 - 1; r37 = r36; } r1 = r35; r25 = r37; } r4 = r5 + 1; } while (r4 < a0.length); } return r22; }; export { elementsThatOverlapOffsets }; export function newRangeCount(a0, a1) { return a1.last - a1.first + 1 - Math.max(0, 1 + Math.min(a1.last, a0.last) - Math.max(a1.first, a0.first)); } export function computeWindowedRenderLimits(a0, a1, a2, a3, a4, a5) { let r9, r10, first2, last2; const itemCount = a0.getItemCount(a0.data); if (itemCount === 0) { return { first: 0, last: -1 }; } const { offset, velocity, visibleLength, zoomScale = 1 } = a5; const r29 = Math.max(0, offset); const r28 = r29 + visibleLength; const r0 = (a2 - 1) * visibleLength; const r45 = velocity > 1 ? "after" : velocity < -1 ? "before" : "none"; const r51 = Math; const r54 = 0.5 * r0; const r30 = r51.max(0, r29 - r54); const r27 = Math.max(0, r28 + r54); if (a4.getCellMetricsApprox(itemCount - 1, a0).offset * zoomScale < r30) { return { first: Math.max(0, itemCount - 1 - a1), last: itemCount - 1 }; } let [r70, first, last, overscanLast] = elementsThatOverlapOffsets([r30, r29, r28, r27], a0, a4, zoomScale); const overscanFirst = r70 == null ? 0 : r70; if (overscanLast == null) { overscanLast = itemCount - 1; } if (first == null) { first = Math.max(0, overscanFirst); } const visible = { first, last: null }; if (last == null) { last = Math.min(overscanLast, first + a1 - 1); } L58: { visible.last = last; const r99 = visible.last - visible.first + 1 - Math.max(0, 1 + Math.min(visible.last, a3.last) - Math.max(visible.first, a3.first)); const r101 = r45 === "before"; const r102 = r45 === "after"; let r103 = r99; let r104 = last; let r105 = first; if (first <= overscanFirst) { r103 = r99; r104 = last; r105 = first; first2 = r105; last2 = r104; if (last2 >= overscanLast) { break L58; } } while (true) { const r8 = r103 >= a1; const r113 = fixVirtualizeListCollapseWindowSize(); const r6 = r105 <= a3.first; const r3 = r103; const r115 = r104; const r116 = r105; if (r113) { r9 = r115 >= a3.last; r10 = r6; } else { r10 = r6 ? r6 : r116 > a3.last; r9 = r115 >= a3.last || r115 < a3.first; } const r11 = r116 > overscanFirst && (r8 ? !r10 : !r8); const r122 = r115 < overscanLast && (r8 ? !r9 : !r8); if (r8 && !r11) { last2 = r115; first2 = r116; if (!r122) { break; } } const r123 = r11 ? r102 && r122 && r9 : !r11; let r2 = r3; let r125 = r116; if (!r123) { const r126 = r10 ? r3 + 1 : r3; r125 = r116 - 1; r2 = r126; } const r127 = r122 ? r101 && r11 && r10 : !r122; let r129 = r2; let r130 = r115; if (!r127) { const r131 = r9 ? r2 + 1 : r2; r130 = r115 + 1; r129 = r131; } r103 = r129; r104 = r130; r105 = r125; if (r125 <= overscanFirst) { r103 = r129; r104 = r130; r105 = r125; first2 = r105; last2 = r104; if (last2 >= overscanLast) { break; } } } } if (last2 >= first2 && first2 >= 0 && last2 < itemCount && first2 >= overscanFirst && last2 <= overscanLast && first2 <= visible.first && last2 >= visible.last) { return { first: first2, last: last2 }; } throw new Error("Bad window calculation " + JSON.stringify({ first: first2, last: last2, itemCount, overscanFirst, overscanLast, visible })); } export function keyExtractor(a0, a1) { return typeof a0 === "object" && a0?.key != null ? a0.key : typeof a0 === "object" ? a0?.id != null ? a0.id : String(a1) : String(a1); }