You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
16 KiB
1 line
16 KiB
{"ast":null,"code":"'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n return out;\n}\nexport function newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\nexport function computeWindowedRenderLimits(data, getItemCount, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = getItemCount(data);\n if (itemCount === 0) {\n return prev;\n }\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength;\n var leadFactor = 0.5;\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n if (lastItemOffset < overscanBegin) {\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n }\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], itemCount, getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first: first,\n last: last\n };\n var newCellCount = newRangeCount(prev, visible);\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n break;\n }\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n break;\n }\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first: first,\n last: last,\n itemCount: itemCount,\n overscanFirst: overscanFirst,\n overscanLast: overscanLast,\n visible: visible\n }));\n }\n return {\n first: first,\n last: last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n return String(index);\n}","map":{"version":3,"names":["invariant","elementsThatOverlapOffsets","offsets","itemCount","getFrameMetrics","out","outLength","ii","frame","trailingOffset","offset","length","kk","JSON","stringify","newRangeCount","prev","next","last","first","Math","max","min","computeWindowedRenderLimits","data","getItemCount","maxToRenderPerBatch","windowSize","getFrameMetricsApprox","scrollMetrics","velocity","visibleLength","visibleBegin","visibleEnd","overscanLength","leadFactor","fillPreference","overscanBegin","overscanEnd","lastItemOffset","_elementsThatOverlapO","overscanFirst","overscanLast","visible","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","Error","keyExtractor","item","index","key","id","String"],"sources":["/Users/thomaschazot/Documents/But2A/LaSuperMeteo/iut-expo-starter/node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\n\nexport function elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\n}\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\n\nexport function newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\n\nexport function computeWindowedRenderLimits(data, getItemCount, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength; // Considering velocity seems to introduce more churn than it's worth.\n\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n } // Find the indices that correspond to the items at the render boundaries we're targeting.\n\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], itemCount, getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first,\n last\n }; // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n\n var newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n\n return String(index);\n}"],"mappings":"AASA,YAAY;;AAEZ,OAAOA,SAAS,MAAM,oBAAoB;AAO1C,OAAO,SAASC,0BAA0B,CAACC,OAAO,EAAEC,SAAS,EAAEC,eAAe,EAAE;EAC9E,IAAIC,GAAG,GAAG,EAAE;EACZ,IAAIC,SAAS,GAAG,CAAC;EAEjB,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGJ,SAAS,EAAEI,EAAE,EAAE,EAAE;IACrC,IAAIC,KAAK,GAAGJ,eAAe,CAACG,EAAE,CAAC;IAC/B,IAAIE,cAAc,GAAGD,KAAK,CAACE,MAAM,GAAGF,KAAK,CAACG,MAAM;IAEhD,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGV,OAAO,CAACS,MAAM,EAAEC,EAAE,EAAE,EAAE;MAC1C,IAAIP,GAAG,CAACO,EAAE,CAAC,IAAI,IAAI,IAAIH,cAAc,IAAIP,OAAO,CAACU,EAAE,CAAC,EAAE;QACpDP,GAAG,CAACO,EAAE,CAAC,GAAGL,EAAE;QACZD,SAAS,EAAE;QAEX,IAAIM,EAAE,KAAKV,OAAO,CAACS,MAAM,GAAG,CAAC,EAAE;UAC7BX,SAAS,CAACM,SAAS,KAAKJ,OAAO,CAACS,MAAM,EAAE,sDAAsD,EAAEE,IAAI,CAACC,SAAS,CAACZ,OAAO,CAAC,CAAC;UACxH,OAAOG,GAAG;QACZ;MACF;IACF;EACF;EAEA,OAAOA,GAAG;AACZ;AAQA,OAAO,SAASU,aAAa,CAACC,IAAI,EAAEC,IAAI,EAAE;EACxC,OAAOA,IAAI,CAACC,IAAI,GAAGD,IAAI,CAACE,KAAK,GAAG,CAAC,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAGD,IAAI,CAACE,GAAG,CAACL,IAAI,CAACC,IAAI,EAAEF,IAAI,CAACE,IAAI,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACJ,IAAI,CAACE,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAC,CAAC;AACxH;AAQA,OAAO,SAASI,2BAA2B,CAACC,IAAI,EAAEC,YAAY,EAAEC,mBAAmB,EAAEC,UAAU,EAAEX,IAAI,EAAEY,qBAAqB,EAAEC,aAAa,EAAE;EAC3I,IAAI1B,SAAS,GAAGsB,YAAY,CAACD,IAAI,CAAC;EAElC,IAAIrB,SAAS,KAAK,CAAC,EAAE;IACnB,OAAOa,IAAI;EACb;EAEA,IAAIN,MAAM,GAAGmB,aAAa,CAACnB,MAAM;IAC7BoB,QAAQ,GAAGD,aAAa,CAACC,QAAQ;IACjCC,aAAa,GAAGF,aAAa,CAACE,aAAa;EAI/C,IAAIC,YAAY,GAAGZ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEX,MAAM,CAAC;EACtC,IAAIuB,UAAU,GAAGD,YAAY,GAAGD,aAAa;EAC7C,IAAIG,cAAc,GAAG,CAACP,UAAU,GAAG,CAAC,IAAII,aAAa;EAErD,IAAII,UAAU,GAAG,GAAG;EAEpB,IAAIC,cAAc,GAAGN,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAGA,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM;EAC/E,IAAIO,aAAa,GAAGjB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEW,YAAY,GAAG,CAAC,CAAC,GAAGG,UAAU,IAAID,cAAc,CAAC;EACjF,IAAII,WAAW,GAAGlB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEY,UAAU,GAAGE,UAAU,GAAGD,cAAc,CAAC;EACvE,IAAIK,cAAc,GAAGX,qBAAqB,CAACzB,SAAS,GAAG,CAAC,CAAC,CAACO,MAAM;EAEhE,IAAI6B,cAAc,GAAGF,aAAa,EAAE;IAElC,OAAO;MACLlB,KAAK,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAElB,SAAS,GAAG,CAAC,GAAGuB,mBAAmB,CAAC;MACvDR,IAAI,EAAEf,SAAS,GAAG;IACpB,CAAC;EACH;EAGA,IAAIqC,qBAAqB,GAAGvC,0BAA0B,CAAC,CAACoC,aAAa,EAAEL,YAAY,EAAEC,UAAU,EAAEK,WAAW,CAAC,EAAEnC,SAAS,EAAEyB,qBAAqB,CAAC;IAC5Ia,aAAa,GAAGD,qBAAqB,CAAC,CAAC,CAAC;IACxCrB,KAAK,GAAGqB,qBAAqB,CAAC,CAAC,CAAC;IAChCtB,IAAI,GAAGsB,qBAAqB,CAAC,CAAC,CAAC;IAC/BE,YAAY,GAAGF,qBAAqB,CAAC,CAAC,CAAC;EAE3CC,aAAa,GAAGA,aAAa,IAAI,IAAI,GAAG,CAAC,GAAGA,aAAa;EACzDtB,KAAK,GAAGA,KAAK,IAAI,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEoB,aAAa,CAAC,GAAGtB,KAAK;EAC1DuB,YAAY,GAAGA,YAAY,IAAI,IAAI,GAAGvC,SAAS,GAAG,CAAC,GAAGuC,YAAY;EAClExB,IAAI,GAAGA,IAAI,IAAI,IAAI,GAAGE,IAAI,CAACE,GAAG,CAACoB,YAAY,EAAEvB,KAAK,GAAGO,mBAAmB,GAAG,CAAC,CAAC,GAAGR,IAAI;EACpF,IAAIyB,OAAO,GAAG;IACZxB,KAAK,EAALA,KAAK;IACLD,IAAI,EAAJA;EACF,CAAC;EAKD,IAAI0B,YAAY,GAAG7B,aAAa,CAACC,IAAI,EAAE2B,OAAO,CAAC;EAE/C,OAAO,IAAI,EAAE;IACX,IAAIxB,KAAK,IAAIsB,aAAa,IAAIvB,IAAI,IAAIwB,YAAY,EAAE;MAElD;IACF;IAEA,IAAIG,WAAW,GAAGD,YAAY,IAAIlB,mBAAmB;IACrD,IAAIoB,gBAAgB,GAAG3B,KAAK,IAAIH,IAAI,CAACG,KAAK,IAAIA,KAAK,GAAGH,IAAI,CAACE,IAAI;IAC/D,IAAI6B,oBAAoB,GAAG5B,KAAK,GAAGsB,aAAa,KAAK,CAACI,WAAW,IAAI,CAACC,gBAAgB,CAAC;IACvF,IAAIE,eAAe,GAAG9B,IAAI,IAAIF,IAAI,CAACE,IAAI,IAAIA,IAAI,GAAGF,IAAI,CAACG,KAAK;IAC5D,IAAI8B,mBAAmB,GAAG/B,IAAI,GAAGwB,YAAY,KAAK,CAACG,WAAW,IAAI,CAACG,eAAe,CAAC;IAEnF,IAAIH,WAAW,IAAI,CAACE,oBAAoB,IAAI,CAACE,mBAAmB,EAAE;MAKhE;IACF;IAEA,IAAIF,oBAAoB,IAAI,EAAEX,cAAc,KAAK,OAAO,IAAIa,mBAAmB,IAAID,eAAe,CAAC,EAAE;MACnG,IAAIF,gBAAgB,EAAE;QACpBF,YAAY,EAAE;MAChB;MAEAzB,KAAK,EAAE;IACT;IAEA,IAAI8B,mBAAmB,IAAI,EAAEb,cAAc,KAAK,QAAQ,IAAIW,oBAAoB,IAAID,gBAAgB,CAAC,EAAE;MACrG,IAAIE,eAAe,EAAE;QACnBJ,YAAY,EAAE;MAChB;MAEA1B,IAAI,EAAE;IACR;EACF;EAEA,IAAI,EAAEA,IAAI,IAAIC,KAAK,IAAIA,KAAK,IAAI,CAAC,IAAID,IAAI,GAAGf,SAAS,IAAIgB,KAAK,IAAIsB,aAAa,IAAIvB,IAAI,IAAIwB,YAAY,IAAIvB,KAAK,IAAIwB,OAAO,CAACxB,KAAK,IAAID,IAAI,IAAIyB,OAAO,CAACzB,IAAI,CAAC,EAAE;IAC1J,MAAM,IAAIgC,KAAK,CAAC,yBAAyB,GAAGrC,IAAI,CAACC,SAAS,CAAC;MACzDK,KAAK,EAALA,KAAK;MACLD,IAAI,EAAJA,IAAI;MACJf,SAAS,EAATA,SAAS;MACTsC,aAAa,EAAbA,aAAa;MACbC,YAAY,EAAZA,YAAY;MACZC,OAAO,EAAPA;IACF,CAAC,CAAC,CAAC;EACL;EAEA,OAAO;IACLxB,KAAK,EAALA,KAAK;IACLD,IAAI,EAAJA;EACF,CAAC;AACH;AACA,OAAO,SAASiC,YAAY,CAACC,IAAI,EAAEC,KAAK,EAAE;EACxC,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACE,GAAG,KAAK,IAAI,EAAE;IAC1E,OAAOF,IAAI,CAACE,GAAG;EACjB;EAEA,IAAI,OAAOF,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACG,EAAE,KAAK,IAAI,EAAE;IACzE,OAAOH,IAAI,CAACG,EAAE;EAChB;EAEA,OAAOC,MAAM,CAACH,KAAK,CAAC;AACtB"},"metadata":{},"sourceType":"module"} |