Socket
Socket
Sign inDemoInstall

react-cool-virtual

Package Overview
Dependencies
5
Maintainers
1
Versions
56
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.5.7 to 0.5.8

6

CHANGELOG.md
# react-cool-virtual
## 0.5.8
### Patch Changes
- [`9ee5ae5`](https://github.com/wellyshen/react-cool-virtual/commit/9ee5ae528244cfdd4c7903274680a6a62f18e0b4) Thanks [@wellyshen](https://github.com/wellyshen)! - fix: the `e.userScroll` of `onScroll` and `loadMore` should be `false` when using `scrollTo` or `scrollToItem` with smooth mode
## 0.5.7

@@ -4,0 +10,0 @@

2

dist/index.cjs.development.js

@@ -282,2 +282,3 @@ 'use strict';

if (outerRef.current) {
userScrollRef.current = false;
isScrollingRef.current = isScrolling;

@@ -295,3 +296,2 @@ outerRef.current[scrollKey] = offset;

if (!isNumber(offset)) return;
userScrollRef.current = false;

@@ -298,0 +298,0 @@ if (!smooth) {

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r,e,n=require("react");(e=r||(r={})).auto="auto",e.start="start",e.center="center",e.end="end";var t=function(r,e,n,t){for(;r<=e;){var u=(r+e)/2|0,c=t(u);if(n<c)e=u-1;else{if(!(n>c))return u;r=u+1}}return 0<r?r-1:0},u=function(r){return"number"==typeof r&&!Number.isNaN(r)},c=function(){return"performance"in window?performance.now():Date.now()},i=function(r){var e=n.useRef(r);return e.current=r,e},o="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;exports.default=function(e){var a=e.itemCount,s=e.ssrItemCount,f=e.itemSize,l=void 0===f?50:f;f=e.horizontal;var v=e.resetScroll,d=e.overscanCount,h=void 0===d?1:d;d=e.useIsScrolling;var m=e.stickyIndices,g=e.scrollDuration;g=void 0===g?function(r){return Math.min(Math.max(.075*r,100),500)}:g;var S=e.scrollEasingFunction;S=void 0===S?function(r){return-(Math.cos(Math.PI*r)-1)/2}:S;var R=e.loadMoreCount,b=void 0===R?15:R;R=e.isItemLoaded;var p=e.loadMore,x=e.onScroll;e=e.onResize;var M=n.useState((function(){return function(r,e){void 0===e&&(e=0);var n=u(e)?[0,e-1]:e;e=n[1];var t=[];for(n=n[0];n<=e;n+=1)t.push({index:n,start:0,width:0,size:u(r)?r:r(n,0),measureRef:function(){return null}});return{items:t}}(l,s)})),w=M[0],z=M[1],C=n.useRef(!1),I=n.useRef(!0),k=n.useRef(!1),y=n.useRef(!1),A=n.useRef(new Map),F=n.useRef(0),O=n.useRef(-1),E=n.useRef(-1),L=n.useRef(null),T=n.useRef(null),q=n.useRef({width:0,height:0}),j=n.useRef([]),N=n.useRef(!0),D=n.useRef(),P=i(m),_=i(g),B=i(S),G=n.useRef(R),H=i(p),J=i(l),K=i(d),Q=i(x),U=i(e),V=f?"width":"height",W=f?"marginLeft":"marginTop",X=f?"scrollLeft":"scrollTop",Y=n.useCallback((function(r){var e=J.current;return u(e)?e:e(r,q.current.width)}),[J]),Z=n.useCallback((function(r,e){var n,t,u=null!=(n=null==(t=j.current[r-1])?void 0:t.end)?n:0;return{idx:r,start:u,end:u+e,size:e}}),[]),$=n.useCallback((function(r){void 0===r&&(r=!0),j.current.length=a;for(var e=0;e<a;e+=1)j.current[e]=Z(e,r&&j.current[e]?j.current[e].size:Y(e))}),[Y,Z,a]),rr=n.useCallback((function(r){var e=j.current,n=e.length-1,u=0;if(y.current)for(;u<n&&e[u].start+e[u].size<r;)u+=1;else u=t(0,n,r,(function(r){return e[r].start}));for(var c=u,i=e[c].start;c<n&&i<r+q.current[V];)i+=e[c].size,c+=1;c=c===n?c:c-1,r=Math.max(u-h,0),i=Math.min(c+h,n);var o=e[r].start;return{oStart:r,oStop:i,vStart:u,vStop:c,innerMargin:o,innerSize:(n=Math[i<n?"max":"min"](e[i].end+e[i].size,e[n].end))-o}}),[h,V]),er=n.useCallback((function(r,e){void 0===e&&(e=!0),L.current&&(I.current=e,L.current[X]=r)}),[X]),nr=n.useCallback((function(r,e){var n=(r=u(r)?{offset:r}:r).offset;if(r=r.smooth,u(n))if(N.current=!1,r){var t=F.current,i=c();D.current=requestAnimationFrame((function r(){var o=_.current;o=u(o)?o:o(Math.abs(n-t)),o=Math.min((c()-i)/o,1);var a=B.current(o);er(a*(n-t)+t),1>o?D.current=requestAnimationFrame(r):e&&e()}))}else er(n),e&&e()}),[_,B,er]),tr=n.useCallback((function(e,n){var t=u(e)?{index:e}:e,c=t.index,i=t.align;if(i=void 0===i?r.auto:i,t=t.smooth,u(c)){k.current=!0,y.current&&$();var o=j.current,a=o[Math.max(0,Math.min(c,o.length-1))];if(a){c=a.start;var s=a.end;a=a.size,o=o[o.length-1].end;var f=q.current[V],l=F.current;o<=f?n&&n():(i===r.start||i===r.auto&&l+f>s&&l>c?l=o-c<=f?o-f:c:i===r.end||i===r.auto&&l+f<s&&l<c?l=c+a<=f?0:c-f+a:i===r.center&&c+a/2>f/2&&(l=o-(i=c-f/2+a/2)<=f?o-f:i),y.current&&1>=Math.abs(l-F.current)?n&&n():nr({offset:l,smooth:t},(function(){y.current?setTimeout((function(){return tr(e,n)})):n&&n()})))}}}),[$,nr,V]);f=function(r,e){var t=n.useRef(),u=i(r),o=n.useCallback((function(){t.current&&(cancelAnimationFrame(t.current),t.current=void 0)}),[]),a=n.useCallback((function(r){c()-r>=e?u.current():t.current=requestAnimationFrame((function(){return a(r)}))}),[u,e]);return[n.useCallback((function(){o(),a(c())}),[o,a]),o]}((function(){return ir(F.current)}),150);var ur=f[0],cr=f[1],ir=n.useCallback((function(r,e,n){if(!H.current||C.current||G.current&&G.current(0)||H.current({startIndex:0,stopIndex:b-1,loadIndex:0,scrollOffset:r,userScroll:!1}),a){var u=rr(r),c=u.oStart,i=u.oStop,o=u.vStart,s=u.vStop,f=u.innerMargin,l=u.innerSize,v=[],d=Array.isArray(P.current)?P.current:[];u=function(t){var u=j.current,c=u[t],i=c.start,o=c.size;v.push({index:t,start:i-f,size:o,width:q.current.width,isScrolling:n||void 0,isSticky:d.includes(t)||void 0,measureRef:function(c){c&&new ResizeObserver((function(c,a){var s,f,l,v=(c=c[0].target).getBoundingClientRect()[V];if(v){var d=null!=(s=null==(f=u[t-1])?void 0:f.end)?s:0;v===o&&i===d||(t<O.current&&i<r&&er(r+v-o,!1),j.current[t]=Z(t,v),k.current||ir(F.current,e,n),y.current=!0),O.current=t,null==(l=A.current.get(c))||l.disconnect(),A.current.set(c,a)}else a.disconnect(),A.current.delete(c)})).observe(c)}})};for(var h=c;h<=i;h+=1)u(h);d.length&&(c>(u=d[t(0,d.length-1,o,(function(r){return d[r]}))])&&(h=j.current[u].size,v.unshift({index:u,start:0,size:h,width:q.current.width,isScrolling:n||void 0,isSticky:!0,measureRef:function(){return null}}),f-=h,l+=h)),z((function(r){return function(r,e,n){if(r.length!==e.length)return!0;for(var t=function(t){if(Object.keys(r[t]).some((function(u){return!n[u]&&r[t][u]!==e[t][u]})))return{v:!0}},u=0;u<r.length;u+=1){var c=t(u);if("object"==typeof c)return c.v}return!1}(r.items,v,{measureRef:!0})?{items:v,innerMargin:f,innerSize:l}:r})),e&&(u=r>F.current,Q.current&&Q.current({overscanStartIndex:c,overscanStopIndex:i,visibleStartIndex:o,visibleStopIndex:s,scrollOffset:r,scrollForward:u,userScroll:N.current}),i=(c=Math.max(Math.floor((s+1)/b)-(u?0:1),0))*b,!H.current||s===E.current||G.current&&G.current(c)||H.current({startIndex:i,stopIndex:i+b-1,loadIndex:c,scrollOffset:r,userScroll:N.current}),n&&ur(),E.current=s)}else z({items:[]})}),[P,rr,Z,a,b,H,Q,ur,er,V]);return function(r,e,n){var t=i(e);o((function(){if(null==r||!r.current)return function(){return null};var e=new ResizeObserver((function(r){r=r[0].contentRect,t.current({width:r.width,height:r.height})}));return e.observe(r.current),function(){return e.disconnect()}}),[t,r].concat(n))}(L,(function(r){var e,n=q.current,t=n.height;t=(n=n.width===r.width)&&t===r.height;var u=j.current.length,c=null==(e=j.current[u-1])?void 0:e.end;if(q.current=r,$(y.current),ir(F.current),v&&a!==u&&setTimeout((function(){return er(0,!1)})),C.current){var i;if(!y.current&&!n)e=null==(i=j.current[j.current.length-1])?void 0:i.end,er(F.current*(e/c||1),!1);!t&&U.current&&U.current(r)}else C.current=!0}),[a,v,ir,$,U,er]),o((function(){T.current&&(u(w.innerMargin)&&(T.current.style[W]=w.innerMargin+"px"),u(w.innerSize)&&(T.current.style[V]=w.innerSize+"px"))}),[W,V,w.innerMargin,w.innerSize]),o((function(){var r=L.current;if(!r)return function(){return null};var e=function(r){if((r=r.target[X])!==F.current){var e=K.current;e="function"==typeof e?e(Math.abs(r-F.current)):e,ir(r,I.current,e),N.current=!0,I.current=!0,k.current=!1,F.current=r}};r.addEventListener("scroll",e,{passive:!0});var n=A.current;return function(){cr(),D.current&&(cancelAnimationFrame(D.current),D.current=void 0),r.removeEventListener("scroll",e),n.forEach((function(r){return r.disconnect()})),n.clear()}}),[cr,ir,X,K]),{outerRef:L,innerRef:T,items:w.items,scrollTo:nr,scrollToItem:tr}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r,e,n=require("react");(e=r||(r={})).auto="auto",e.start="start",e.center="center",e.end="end";var t=function(r,e,n,t){for(;r<=e;){var u=(r+e)/2|0,c=t(u);if(n<c)e=u-1;else{if(!(n>c))return u;r=u+1}}return 0<r?r-1:0},u=function(r){return"number"==typeof r&&!Number.isNaN(r)},c=function(){return"performance"in window?performance.now():Date.now()},i=function(r){var e=n.useRef(r);return e.current=r,e},o="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;exports.default=function(e){var a=e.itemCount,s=e.ssrItemCount,f=e.itemSize,l=void 0===f?50:f;f=e.horizontal;var v=e.resetScroll,d=e.overscanCount,h=void 0===d?1:d;d=e.useIsScrolling;var m=e.stickyIndices,g=e.scrollDuration;g=void 0===g?function(r){return Math.min(Math.max(.075*r,100),500)}:g;var S=e.scrollEasingFunction;S=void 0===S?function(r){return-(Math.cos(Math.PI*r)-1)/2}:S;var R=e.loadMoreCount,b=void 0===R?15:R;R=e.isItemLoaded;var p=e.loadMore,x=e.onScroll;e=e.onResize;var M=n.useState((function(){return function(r,e){void 0===e&&(e=0);var n=u(e)?[0,e-1]:e;e=n[1];var t=[];for(n=n[0];n<=e;n+=1)t.push({index:n,start:0,width:0,size:u(r)?r:r(n,0),measureRef:function(){return null}});return{items:t}}(l,s)})),w=M[0],z=M[1],C=n.useRef(!1),I=n.useRef(!0),k=n.useRef(!1),y=n.useRef(!1),A=n.useRef(new Map),F=n.useRef(0),O=n.useRef(-1),E=n.useRef(-1),L=n.useRef(null),T=n.useRef(null),q=n.useRef({width:0,height:0}),j=n.useRef([]),N=n.useRef(!0),D=n.useRef(),P=i(m),_=i(g),B=i(S),G=n.useRef(R),H=i(p),J=i(l),K=i(d),Q=i(x),U=i(e),V=f?"width":"height",W=f?"marginLeft":"marginTop",X=f?"scrollLeft":"scrollTop",Y=n.useCallback((function(r){var e=J.current;return u(e)?e:e(r,q.current.width)}),[J]),Z=n.useCallback((function(r,e){var n,t,u=null!=(n=null==(t=j.current[r-1])?void 0:t.end)?n:0;return{idx:r,start:u,end:u+e,size:e}}),[]),$=n.useCallback((function(r){void 0===r&&(r=!0),j.current.length=a;for(var e=0;e<a;e+=1)j.current[e]=Z(e,r&&j.current[e]?j.current[e].size:Y(e))}),[Y,Z,a]),rr=n.useCallback((function(r){var e=j.current,n=e.length-1,u=0;if(y.current)for(;u<n&&e[u].start+e[u].size<r;)u+=1;else u=t(0,n,r,(function(r){return e[r].start}));for(var c=u,i=e[c].start;c<n&&i<r+q.current[V];)i+=e[c].size,c+=1;c=c===n?c:c-1,r=Math.max(u-h,0),i=Math.min(c+h,n);var o=e[r].start;return{oStart:r,oStop:i,vStart:u,vStop:c,innerMargin:o,innerSize:(n=Math[i<n?"max":"min"](e[i].end+e[i].size,e[n].end))-o}}),[h,V]),er=n.useCallback((function(r,e){void 0===e&&(e=!0),L.current&&(N.current=!1,I.current=e,L.current[X]=r)}),[X]),nr=n.useCallback((function(r,e){var n=(r=u(r)?{offset:r}:r).offset;if(r=r.smooth,u(n))if(r){var t=F.current,i=c();D.current=requestAnimationFrame((function r(){var o=_.current;o=u(o)?o:o(Math.abs(n-t)),o=Math.min((c()-i)/o,1);var a=B.current(o);er(a*(n-t)+t),1>o?D.current=requestAnimationFrame(r):e&&e()}))}else er(n),e&&e()}),[_,B,er]),tr=n.useCallback((function(e,n){var t=u(e)?{index:e}:e,c=t.index,i=t.align;if(i=void 0===i?r.auto:i,t=t.smooth,u(c)){k.current=!0,y.current&&$();var o=j.current,a=o[Math.max(0,Math.min(c,o.length-1))];if(a){c=a.start;var s=a.end;a=a.size,o=o[o.length-1].end;var f=q.current[V],l=F.current;o<=f?n&&n():(i===r.start||i===r.auto&&l+f>s&&l>c?l=o-c<=f?o-f:c:i===r.end||i===r.auto&&l+f<s&&l<c?l=c+a<=f?0:c-f+a:i===r.center&&c+a/2>f/2&&(l=o-(i=c-f/2+a/2)<=f?o-f:i),y.current&&1>=Math.abs(l-F.current)?n&&n():nr({offset:l,smooth:t},(function(){y.current?setTimeout((function(){return tr(e,n)})):n&&n()})))}}}),[$,nr,V]);f=function(r,e){var t=n.useRef(),u=i(r),o=n.useCallback((function(){t.current&&(cancelAnimationFrame(t.current),t.current=void 0)}),[]),a=n.useCallback((function(r){c()-r>=e?u.current():t.current=requestAnimationFrame((function(){return a(r)}))}),[u,e]);return[n.useCallback((function(){o(),a(c())}),[o,a]),o]}((function(){return ir(F.current)}),150);var ur=f[0],cr=f[1],ir=n.useCallback((function(r,e,n){if(!H.current||C.current||G.current&&G.current(0)||H.current({startIndex:0,stopIndex:b-1,loadIndex:0,scrollOffset:r,userScroll:!1}),a){var u=rr(r),c=u.oStart,i=u.oStop,o=u.vStart,s=u.vStop,f=u.innerMargin,l=u.innerSize,v=[],d=Array.isArray(P.current)?P.current:[];u=function(t){var u=j.current,c=u[t],i=c.start,o=c.size;v.push({index:t,start:i-f,size:o,width:q.current.width,isScrolling:n||void 0,isSticky:d.includes(t)||void 0,measureRef:function(c){c&&new ResizeObserver((function(c,a){var s,f,l,v=(c=c[0].target).getBoundingClientRect()[V];if(v){var d=null!=(s=null==(f=u[t-1])?void 0:f.end)?s:0;v===o&&i===d||(t<O.current&&i<r&&er(r+v-o,!1),j.current[t]=Z(t,v),k.current||ir(F.current,e,n),y.current=!0),O.current=t,null==(l=A.current.get(c))||l.disconnect(),A.current.set(c,a)}else a.disconnect(),A.current.delete(c)})).observe(c)}})};for(var h=c;h<=i;h+=1)u(h);d.length&&(c>(u=d[t(0,d.length-1,o,(function(r){return d[r]}))])&&(h=j.current[u].size,v.unshift({index:u,start:0,size:h,width:q.current.width,isScrolling:n||void 0,isSticky:!0,measureRef:function(){return null}}),f-=h,l+=h)),z((function(r){return function(r,e,n){if(r.length!==e.length)return!0;for(var t=function(t){if(Object.keys(r[t]).some((function(u){return!n[u]&&r[t][u]!==e[t][u]})))return{v:!0}},u=0;u<r.length;u+=1){var c=t(u);if("object"==typeof c)return c.v}return!1}(r.items,v,{measureRef:!0})?{items:v,innerMargin:f,innerSize:l}:r})),e&&(u=r>F.current,Q.current&&Q.current({overscanStartIndex:c,overscanStopIndex:i,visibleStartIndex:o,visibleStopIndex:s,scrollOffset:r,scrollForward:u,userScroll:N.current}),i=(c=Math.max(Math.floor((s+1)/b)-(u?0:1),0))*b,!H.current||s===E.current||G.current&&G.current(c)||H.current({startIndex:i,stopIndex:i+b-1,loadIndex:c,scrollOffset:r,userScroll:N.current}),n&&ur(),E.current=s)}else z({items:[]})}),[P,rr,Z,a,b,H,Q,ur,er,V]);return function(r,e,n){var t=i(e);o((function(){if(null==r||!r.current)return function(){return null};var e=new ResizeObserver((function(r){r=r[0].contentRect,t.current({width:r.width,height:r.height})}));return e.observe(r.current),function(){return e.disconnect()}}),[t,r].concat(n))}(L,(function(r){var e,n=q.current,t=n.height;t=(n=n.width===r.width)&&t===r.height;var u=j.current.length,c=null==(e=j.current[u-1])?void 0:e.end;if(q.current=r,$(y.current),ir(F.current),v&&a!==u&&setTimeout((function(){return er(0,!1)})),C.current){var i;if(!y.current&&!n)e=null==(i=j.current[j.current.length-1])?void 0:i.end,er(F.current*(e/c||1),!1);!t&&U.current&&U.current(r)}else C.current=!0}),[a,v,ir,$,U,er]),o((function(){T.current&&(u(w.innerMargin)&&(T.current.style[W]=w.innerMargin+"px"),u(w.innerSize)&&(T.current.style[V]=w.innerSize+"px"))}),[W,V,w.innerMargin,w.innerSize]),o((function(){var r=L.current;if(!r)return function(){return null};var e=function(r){if((r=r.target[X])!==F.current){var e=K.current;e="function"==typeof e?e(Math.abs(r-F.current)):e,ir(r,I.current,e),N.current=!0,I.current=!0,k.current=!1,F.current=r}};r.addEventListener("scroll",e,{passive:!0});var n=A.current;return function(){cr(),D.current&&(cancelAnimationFrame(D.current),D.current=void 0),r.removeEventListener("scroll",e),n.forEach((function(r){return r.disconnect()})),n.clear()}}),[cr,ir,X,K]),{outerRef:L,innerRef:T,items:w.items,scrollTo:nr,scrollToItem:tr}};
//# sourceMappingURL=index.cjs.production.min.js.map

@@ -278,2 +278,3 @@ import { useRef, useCallback, useLayoutEffect, useEffect, useState } from 'react';

if (outerRef.current) {
userScrollRef.current = false;
isScrollingRef.current = isScrolling;

@@ -291,3 +292,2 @@ outerRef.current[scrollKey] = offset;

if (!isNumber(offset)) return;
userScrollRef.current = false;

@@ -294,0 +294,0 @@ if (!smooth) {

@@ -282,2 +282,3 @@ (function (global, factory) {

if (outerRef.current) {
userScrollRef.current = false;
isScrollingRef.current = isScrolling;

@@ -295,3 +296,2 @@ outerRef.current[scrollKey] = offset;

if (!isNumber(offset)) return;
userScrollRef.current = false;

@@ -298,0 +298,0 @@ if (!smooth) {

@@ -1,2 +0,2 @@

"use strict";!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).ReactCoolVirtual={},r.React)}(this,(function(r,e){var n,t;(t=n||(n={})).auto="auto",t.start="start",t.center="center",t.end="end";var u=function(r,e,n,t){for(;r<=e;){var u=(r+e)/2|0,i=t(u);if(n<i)e=u-1;else{if(!(n>i))return u;r=u+1}}return 0<r?r-1:0},i=function(r){return"number"==typeof r&&!Number.isNaN(r)},c=function(){return"performance"in window?performance.now():Date.now()},o=function(r){var n=e.useRef(r);return n.current=r,n},a="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;r.useVirtual=function(r){var t=r.itemCount,s=r.ssrItemCount,f=r.itemSize,l=void 0===f?50:f;f=r.horizontal;var d=r.resetScroll,v=r.overscanCount,h=void 0===v?1:v;v=r.useIsScrolling;var m=r.stickyIndices,g=r.scrollDuration;g=void 0===g?function(r){return Math.min(Math.max(.075*r,100),500)}:g;var p=r.scrollEasingFunction;p=void 0===p?function(r){return-(Math.cos(Math.PI*r)-1)/2}:p;var R=r.loadMoreCount,S=void 0===R?15:R;R=r.isItemLoaded;var b=r.loadMore,x=r.onScroll;r=r.onResize;var M=e.useState((function(){return function(r,e){void 0===e&&(e=0);var n=i(e)?[0,e-1]:e;e=n[1];var t=[];for(n=n[0];n<=e;n+=1)t.push({index:n,start:0,width:0,size:i(r)?r:r(n,0),measureRef:function(){return null}});return{items:t}}(l,s)})),w=M[0],z=M[1],y=e.useRef(!1),C=e.useRef(!0),I=e.useRef(!1),k=e.useRef(!1),T=e.useRef(new Map),A=e.useRef(0),F=e.useRef(-1),O=e.useRef(-1),E=e.useRef(null),L=e.useRef(null),j=e.useRef({width:0,height:0}),q=e.useRef([]),N=e.useRef(!0),D=e.useRef(),P=o(m),V=o(g),_=o(p),B=e.useRef(R),G=o(b),H=o(l),J=o(v),K=o(x),Q=o(r),U=f?"width":"height",W=f?"marginLeft":"marginTop",X=f?"scrollLeft":"scrollTop",Y=e.useCallback((function(r){var e=H.current;return i(e)?e:e(r,j.current.width)}),[H]),Z=e.useCallback((function(r,e){var n,t,u=null!=(n=null==(t=q.current[r-1])?void 0:t.end)?n:0;return{idx:r,start:u,end:u+e,size:e}}),[]),$=e.useCallback((function(r){void 0===r&&(r=!0),q.current.length=t;for(var e=0;e<t;e+=1)q.current[e]=Z(e,r&&q.current[e]?q.current[e].size:Y(e))}),[Y,Z,t]),rr=e.useCallback((function(r){var e=q.current,n=e.length-1,t=0;if(k.current)for(;t<n&&e[t].start+e[t].size<r;)t+=1;else t=u(0,n,r,(function(r){return e[r].start}));for(var i=t,c=e[i].start;i<n&&c<r+j.current[U];)c+=e[i].size,i+=1;i=i===n?i:i-1,r=Math.max(t-h,0),c=Math.min(i+h,n);var o=e[r].start;return{oStart:r,oStop:c,vStart:t,vStop:i,innerMargin:o,innerSize:(n=Math[c<n?"max":"min"](e[c].end+e[c].size,e[n].end))-o}}),[h,U]),er=e.useCallback((function(r,e){void 0===e&&(e=!0),E.current&&(C.current=e,E.current[X]=r)}),[X]),nr=e.useCallback((function(r,e){var n=(r=i(r)?{offset:r}:r).offset;if(r=r.smooth,i(n))if(N.current=!1,r){var t=A.current,u=c();D.current=requestAnimationFrame((function r(){var o=V.current;o=i(o)?o:o(Math.abs(n-t)),o=Math.min((c()-u)/o,1);var a=_.current(o);er(a*(n-t)+t),1>o?D.current=requestAnimationFrame(r):e&&e()}))}else er(n),e&&e()}),[V,_,er]),tr=e.useCallback((function(r,e){var t=i(r)?{index:r}:r,u=t.index,c=t.align;if(c=void 0===c?n.auto:c,t=t.smooth,i(u)){I.current=!0,k.current&&$();var o=q.current,a=o[Math.max(0,Math.min(u,o.length-1))];if(a){u=a.start;var s=a.end;a=a.size,o=o[o.length-1].end;var f=j.current[U],l=A.current;o<=f?e&&e():(c===n.start||c===n.auto&&l+f>s&&l>u?l=o-u<=f?o-f:u:c===n.end||c===n.auto&&l+f<s&&l<u?l=u+a<=f?0:u-f+a:c===n.center&&u+a/2>f/2&&(l=o-(c=u-f/2+a/2)<=f?o-f:c),k.current&&1>=Math.abs(l-A.current)?e&&e():nr({offset:l,smooth:t},(function(){k.current?setTimeout((function(){return tr(r,e)})):e&&e()})))}}}),[$,nr,U]);f=function(r,n){var t=e.useRef(),u=o(r),i=e.useCallback((function(){t.current&&(cancelAnimationFrame(t.current),t.current=void 0)}),[]),a=e.useCallback((function(r){c()-r>=n?u.current():t.current=requestAnimationFrame((function(){return a(r)}))}),[u,n]);return[e.useCallback((function(){i(),a(c())}),[i,a]),i]}((function(){return cr(A.current)}),150);var ur=f[0],ir=f[1],cr=e.useCallback((function(r,e,n){if(!G.current||y.current||B.current&&B.current(0)||G.current({startIndex:0,stopIndex:S-1,loadIndex:0,scrollOffset:r,userScroll:!1}),t){var i=rr(r),c=i.oStart,o=i.oStop,a=i.vStart,s=i.vStop,f=i.innerMargin,l=i.innerSize,d=[],v=Array.isArray(P.current)?P.current:[];i=function(t){var u=q.current,i=u[t],c=i.start,o=i.size;d.push({index:t,start:c-f,size:o,width:j.current.width,isScrolling:n||void 0,isSticky:v.includes(t)||void 0,measureRef:function(i){i&&new ResizeObserver((function(i,a){var s,f,l,d=(i=i[0].target).getBoundingClientRect()[U];if(d){var v=null!=(s=null==(f=u[t-1])?void 0:f.end)?s:0;d===o&&c===v||(t<F.current&&c<r&&er(r+d-o,!1),q.current[t]=Z(t,d),I.current||cr(A.current,e,n),k.current=!0),F.current=t,null==(l=T.current.get(i))||l.disconnect(),T.current.set(i,a)}else a.disconnect(),T.current.delete(i)})).observe(i)}})};for(var h=c;h<=o;h+=1)i(h);v.length&&(c>(i=v[u(0,v.length-1,a,(function(r){return v[r]}))])&&(h=q.current[i].size,d.unshift({index:i,start:0,size:h,width:j.current.width,isScrolling:n||void 0,isSticky:!0,measureRef:function(){return null}}),f-=h,l+=h)),z((function(r){return function(r,e,n){if(r.length!==e.length)return!0;for(var t=function(t){if(Object.keys(r[t]).some((function(u){return!n[u]&&r[t][u]!==e[t][u]})))return{v:!0}},u=0;u<r.length;u+=1){var i=t(u);if("object"==typeof i)return i.v}return!1}(r.items,d,{measureRef:!0})?{items:d,innerMargin:f,innerSize:l}:r})),e&&(i=r>A.current,K.current&&K.current({overscanStartIndex:c,overscanStopIndex:o,visibleStartIndex:a,visibleStopIndex:s,scrollOffset:r,scrollForward:i,userScroll:N.current}),o=(c=Math.max(Math.floor((s+1)/S)-(i?0:1),0))*S,!G.current||s===O.current||B.current&&B.current(c)||G.current({startIndex:o,stopIndex:o+S-1,loadIndex:c,scrollOffset:r,userScroll:N.current}),n&&ur(),O.current=s)}else z({items:[]})}),[P,rr,Z,t,S,G,K,ur,er,U]);return function(r,e,n){var t=o(e);a((function(){if(null==r||!r.current)return function(){return null};var e=new ResizeObserver((function(r){r=r[0].contentRect,t.current({width:r.width,height:r.height})}));return e.observe(r.current),function(){return e.disconnect()}}),[t,r].concat(n))}(E,(function(r){var e,n=j.current,u=n.height;u=(n=n.width===r.width)&&u===r.height;var i=q.current.length,c=null==(e=q.current[i-1])?void 0:e.end;if(j.current=r,$(k.current),cr(A.current),d&&t!==i&&setTimeout((function(){return er(0,!1)})),y.current){var o;if(!k.current&&!n)e=null==(o=q.current[q.current.length-1])?void 0:o.end,er(A.current*(e/c||1),!1);!u&&Q.current&&Q.current(r)}else y.current=!0}),[t,d,cr,$,Q,er]),a((function(){L.current&&(i(w.innerMargin)&&(L.current.style[W]=w.innerMargin+"px"),i(w.innerSize)&&(L.current.style[U]=w.innerSize+"px"))}),[W,U,w.innerMargin,w.innerSize]),a((function(){var r=E.current;if(!r)return function(){return null};var e=function(r){if((r=r.target[X])!==A.current){var e=J.current;e="function"==typeof e?e(Math.abs(r-A.current)):e,cr(r,C.current,e),N.current=!0,C.current=!0,I.current=!1,A.current=r}};r.addEventListener("scroll",e,{passive:!0});var n=T.current;return function(){ir(),D.current&&(cancelAnimationFrame(D.current),D.current=void 0),r.removeEventListener("scroll",e),n.forEach((function(r){return r.disconnect()})),n.clear()}}),[ir,cr,X,J]),{outerRef:E,innerRef:L,items:w.items,scrollTo:nr,scrollToItem:tr}},Object.defineProperty(r,"__esModule",{value:!0})}));
"use strict";!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).ReactCoolVirtual={},r.React)}(this,(function(r,e){var n,t;(t=n||(n={})).auto="auto",t.start="start",t.center="center",t.end="end";var u=function(r,e,n,t){for(;r<=e;){var u=(r+e)/2|0,i=t(u);if(n<i)e=u-1;else{if(!(n>i))return u;r=u+1}}return 0<r?r-1:0},i=function(r){return"number"==typeof r&&!Number.isNaN(r)},c=function(){return"performance"in window?performance.now():Date.now()},o=function(r){var n=e.useRef(r);return n.current=r,n},a="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;r.useVirtual=function(r){var t=r.itemCount,s=r.ssrItemCount,f=r.itemSize,l=void 0===f?50:f;f=r.horizontal;var d=r.resetScroll,v=r.overscanCount,h=void 0===v?1:v;v=r.useIsScrolling;var m=r.stickyIndices,g=r.scrollDuration;g=void 0===g?function(r){return Math.min(Math.max(.075*r,100),500)}:g;var p=r.scrollEasingFunction;p=void 0===p?function(r){return-(Math.cos(Math.PI*r)-1)/2}:p;var R=r.loadMoreCount,S=void 0===R?15:R;R=r.isItemLoaded;var b=r.loadMore,x=r.onScroll;r=r.onResize;var M=e.useState((function(){return function(r,e){void 0===e&&(e=0);var n=i(e)?[0,e-1]:e;e=n[1];var t=[];for(n=n[0];n<=e;n+=1)t.push({index:n,start:0,width:0,size:i(r)?r:r(n,0),measureRef:function(){return null}});return{items:t}}(l,s)})),w=M[0],z=M[1],y=e.useRef(!1),C=e.useRef(!0),I=e.useRef(!1),k=e.useRef(!1),T=e.useRef(new Map),A=e.useRef(0),F=e.useRef(-1),O=e.useRef(-1),E=e.useRef(null),L=e.useRef(null),j=e.useRef({width:0,height:0}),q=e.useRef([]),N=e.useRef(!0),D=e.useRef(),P=o(m),V=o(g),_=o(p),B=e.useRef(R),G=o(b),H=o(l),J=o(v),K=o(x),Q=o(r),U=f?"width":"height",W=f?"marginLeft":"marginTop",X=f?"scrollLeft":"scrollTop",Y=e.useCallback((function(r){var e=H.current;return i(e)?e:e(r,j.current.width)}),[H]),Z=e.useCallback((function(r,e){var n,t,u=null!=(n=null==(t=q.current[r-1])?void 0:t.end)?n:0;return{idx:r,start:u,end:u+e,size:e}}),[]),$=e.useCallback((function(r){void 0===r&&(r=!0),q.current.length=t;for(var e=0;e<t;e+=1)q.current[e]=Z(e,r&&q.current[e]?q.current[e].size:Y(e))}),[Y,Z,t]),rr=e.useCallback((function(r){var e=q.current,n=e.length-1,t=0;if(k.current)for(;t<n&&e[t].start+e[t].size<r;)t+=1;else t=u(0,n,r,(function(r){return e[r].start}));for(var i=t,c=e[i].start;i<n&&c<r+j.current[U];)c+=e[i].size,i+=1;i=i===n?i:i-1,r=Math.max(t-h,0),c=Math.min(i+h,n);var o=e[r].start;return{oStart:r,oStop:c,vStart:t,vStop:i,innerMargin:o,innerSize:(n=Math[c<n?"max":"min"](e[c].end+e[c].size,e[n].end))-o}}),[h,U]),er=e.useCallback((function(r,e){void 0===e&&(e=!0),E.current&&(N.current=!1,C.current=e,E.current[X]=r)}),[X]),nr=e.useCallback((function(r,e){var n=(r=i(r)?{offset:r}:r).offset;if(r=r.smooth,i(n))if(r){var t=A.current,u=c();D.current=requestAnimationFrame((function r(){var o=V.current;o=i(o)?o:o(Math.abs(n-t)),o=Math.min((c()-u)/o,1);var a=_.current(o);er(a*(n-t)+t),1>o?D.current=requestAnimationFrame(r):e&&e()}))}else er(n),e&&e()}),[V,_,er]),tr=e.useCallback((function(r,e){var t=i(r)?{index:r}:r,u=t.index,c=t.align;if(c=void 0===c?n.auto:c,t=t.smooth,i(u)){I.current=!0,k.current&&$();var o=q.current,a=o[Math.max(0,Math.min(u,o.length-1))];if(a){u=a.start;var s=a.end;a=a.size,o=o[o.length-1].end;var f=j.current[U],l=A.current;o<=f?e&&e():(c===n.start||c===n.auto&&l+f>s&&l>u?l=o-u<=f?o-f:u:c===n.end||c===n.auto&&l+f<s&&l<u?l=u+a<=f?0:u-f+a:c===n.center&&u+a/2>f/2&&(l=o-(c=u-f/2+a/2)<=f?o-f:c),k.current&&1>=Math.abs(l-A.current)?e&&e():nr({offset:l,smooth:t},(function(){k.current?setTimeout((function(){return tr(r,e)})):e&&e()})))}}}),[$,nr,U]);f=function(r,n){var t=e.useRef(),u=o(r),i=e.useCallback((function(){t.current&&(cancelAnimationFrame(t.current),t.current=void 0)}),[]),a=e.useCallback((function(r){c()-r>=n?u.current():t.current=requestAnimationFrame((function(){return a(r)}))}),[u,n]);return[e.useCallback((function(){i(),a(c())}),[i,a]),i]}((function(){return cr(A.current)}),150);var ur=f[0],ir=f[1],cr=e.useCallback((function(r,e,n){if(!G.current||y.current||B.current&&B.current(0)||G.current({startIndex:0,stopIndex:S-1,loadIndex:0,scrollOffset:r,userScroll:!1}),t){var i=rr(r),c=i.oStart,o=i.oStop,a=i.vStart,s=i.vStop,f=i.innerMargin,l=i.innerSize,d=[],v=Array.isArray(P.current)?P.current:[];i=function(t){var u=q.current,i=u[t],c=i.start,o=i.size;d.push({index:t,start:c-f,size:o,width:j.current.width,isScrolling:n||void 0,isSticky:v.includes(t)||void 0,measureRef:function(i){i&&new ResizeObserver((function(i,a){var s,f,l,d=(i=i[0].target).getBoundingClientRect()[U];if(d){var v=null!=(s=null==(f=u[t-1])?void 0:f.end)?s:0;d===o&&c===v||(t<F.current&&c<r&&er(r+d-o,!1),q.current[t]=Z(t,d),I.current||cr(A.current,e,n),k.current=!0),F.current=t,null==(l=T.current.get(i))||l.disconnect(),T.current.set(i,a)}else a.disconnect(),T.current.delete(i)})).observe(i)}})};for(var h=c;h<=o;h+=1)i(h);v.length&&(c>(i=v[u(0,v.length-1,a,(function(r){return v[r]}))])&&(h=q.current[i].size,d.unshift({index:i,start:0,size:h,width:j.current.width,isScrolling:n||void 0,isSticky:!0,measureRef:function(){return null}}),f-=h,l+=h)),z((function(r){return function(r,e,n){if(r.length!==e.length)return!0;for(var t=function(t){if(Object.keys(r[t]).some((function(u){return!n[u]&&r[t][u]!==e[t][u]})))return{v:!0}},u=0;u<r.length;u+=1){var i=t(u);if("object"==typeof i)return i.v}return!1}(r.items,d,{measureRef:!0})?{items:d,innerMargin:f,innerSize:l}:r})),e&&(i=r>A.current,K.current&&K.current({overscanStartIndex:c,overscanStopIndex:o,visibleStartIndex:a,visibleStopIndex:s,scrollOffset:r,scrollForward:i,userScroll:N.current}),o=(c=Math.max(Math.floor((s+1)/S)-(i?0:1),0))*S,!G.current||s===O.current||B.current&&B.current(c)||G.current({startIndex:o,stopIndex:o+S-1,loadIndex:c,scrollOffset:r,userScroll:N.current}),n&&ur(),O.current=s)}else z({items:[]})}),[P,rr,Z,t,S,G,K,ur,er,U]);return function(r,e,n){var t=o(e);a((function(){if(null==r||!r.current)return function(){return null};var e=new ResizeObserver((function(r){r=r[0].contentRect,t.current({width:r.width,height:r.height})}));return e.observe(r.current),function(){return e.disconnect()}}),[t,r].concat(n))}(E,(function(r){var e,n=j.current,u=n.height;u=(n=n.width===r.width)&&u===r.height;var i=q.current.length,c=null==(e=q.current[i-1])?void 0:e.end;if(j.current=r,$(k.current),cr(A.current),d&&t!==i&&setTimeout((function(){return er(0,!1)})),y.current){var o;if(!k.current&&!n)e=null==(o=q.current[q.current.length-1])?void 0:o.end,er(A.current*(e/c||1),!1);!u&&Q.current&&Q.current(r)}else y.current=!0}),[t,d,cr,$,Q,er]),a((function(){L.current&&(i(w.innerMargin)&&(L.current.style[W]=w.innerMargin+"px"),i(w.innerSize)&&(L.current.style[U]=w.innerSize+"px"))}),[W,U,w.innerMargin,w.innerSize]),a((function(){var r=E.current;if(!r)return function(){return null};var e=function(r){if((r=r.target[X])!==A.current){var e=J.current;e="function"==typeof e?e(Math.abs(r-A.current)):e,cr(r,C.current,e),N.current=!0,C.current=!0,I.current=!1,A.current=r}};r.addEventListener("scroll",e,{passive:!0});var n=T.current;return function(){ir(),D.current&&(cancelAnimationFrame(D.current),D.current=void 0),r.removeEventListener("scroll",e),n.forEach((function(r){return r.disconnect()})),n.clear()}}),[ir,cr,X,J]),{outerRef:E,innerRef:L,items:w.items,scrollTo:nr,scrollToItem:tr}},Object.defineProperty(r,"__esModule",{value:!0})}));
//# sourceMappingURL=index.umd.production.min.js.map
{
"name": "react-cool-virtual",
"version": "0.5.7",
"version": "0.5.8",
"description": "A tiny React hook for rendering large datasets like a breeze.",

@@ -90,32 +90,32 @@ "license": "MIT",

"dependencies": {
"@babel/runtime": "^7.15.4"
"@babel/runtime": "^7.16.7"
},
"devDependencies": {
"@ampproject/rollup-plugin-closure-compiler": "^0.27.0",
"@babel/core": "^7.15.8",
"@babel/plugin-transform-runtime": "^7.15.8",
"@babel/preset-env": "^7.15.8",
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0",
"@changesets/changelog-github": "^0.4.1",
"@changesets/cli": "^2.17.0",
"@babel/core": "^7.16.7",
"@babel/plugin-transform-runtime": "^7.16.8",
"@babel/preset-env": "^7.16.8",
"@babel/preset-react": "^7.16.7",
"@babel/preset-typescript": "^7.16.7",
"@changesets/changelog-github": "^0.4.2",
"@changesets/cli": "^2.19.0",
"@rollup/plugin-babel": "^5.3.0",
"@rollup/plugin-commonjs": "^21.0.1",
"@rollup/plugin-node-resolve": "^13.0.6",
"@rollup/plugin-replace": "^3.0.0",
"@testing-library/jest-dom": "^5.14.1",
"@rollup/plugin-node-resolve": "^13.1.3",
"@rollup/plugin-replace": "^3.0.1",
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^12.1.2",
"@testing-library/react-hooks": "^7.0.2",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.0.2",
"@types/react": "^17.0.31",
"@types/jest": "^27.4.0",
"@types/react": "^17.0.38",
"bundlesize2": "^0.0.31",
"cpy-cli": "^3.1.1",
"eslint": "^7.2.0",
"eslint-config-welly": "^1.11.8",
"eslint": "^8.2.0",
"eslint-config-welly": "^1.13.0",
"husky": "^7.0.4",
"jest": "^27.3.1",
"lint-staged": "^11.2.3",
"jest": "^27.4.7",
"lint-staged": "^12.1.7",
"npm-run-all": "^4.1.5",
"prettier": "^2.4.1",
"prettier": "^2.5.1",
"react": "^17.0.2",

@@ -125,7 +125,7 @@ "react-dom": "^17.0.2",

"rimraf": "^3.0.2",
"rollup": "^2.58.0",
"rollup": "^2.63.0",
"rollup-plugin-size-snapshot": "^0.12.0",
"rollup-plugin-terser": "^7.0.2",
"ts-jest": "^27.0.7",
"typescript": "^4.4.4"
"ts-jest": "^27.1.2",
"typescript": "^4.5.4"
},

@@ -132,0 +132,0 @@ "peerDependencies": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc