react-virtualize
Version:
react virtualized render
2 lines (1 loc) • 2.18 kB
JavaScript
var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self)["react-virtualize"]=t(e.React)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(e);const o={position:"absolute"};return t=>{const[n,l]=e.useState(0),[i,s]=e.useState([]),p=e.useCallback((e=>{var r,n,l;const s=null!=(r=t.itemCount)?r:0,p=[];if(!t.renderItem)return[];const a=e+(1+(null!=(n=t.preRenderPageCount)?n:1))*t.height,u=e-(null!=(l=t.preRenderPageCount)?l:1)*t.height;for(let f=0;f<s;f++){const e=i[f],r=i[f+1];if(e<a&&r>u)p.push(t.renderItem({index:f,style:__spreadProps(__spreadValues({},o),{top:`${e}px`})}));else if(p.length>0)break}return p}),[i,t.height,t.itemCount,t.renderItem,t.preRenderPageCount]),a=e.useCallback((()=>{var e;const r=null!=(e=t.itemCount)?e:0,o=[0];let n=0;for(let l=0;l<r;l++)"function"==typeof t.itemSize?n+=t.itemSize(l):"number"==typeof t.itemSize&&(n+=t.itemSize),o.push(n);s(o)}),[t.itemCount,t.itemSize]),u=e.useCallback((e=>{var r,o;const n=null!=(o=null==(r=e.target)?void 0:r.scrollTop)?o:0;l((e=>{const r=n-e,o=t.height/2;return r<o&&r>-o?e:n}))}),[]);return e.useEffect((()=>{a()}),[t.reRenderCount,a]),r.default.createElement("div",{style:{width:`${t.width}px`,height:`${t.height}px`,overflow:"auto"},onScroll:u},r.default.createElement("div",{style:{position:"relative",height:`${i[i.length-1]}px`}},p(n)))}}));