UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

3 lines (2 loc) 3.29 kB
import{slicedToArray as r}from"../../../_virtual/_rollupPluginBabelHelpers.js";import e,{forwardRef as t,useState as o,useRef as n,useCallback as i,useMemo as l,useEffect as u}from"react";import s from"classnames";import{VariableSizeGrid as c}from"react-window";import a from"react-virtualized-auto-sizer";import{getNormalizedItems as d,getOnItemsRenderedData as m,isLayoutDirectionScrollbarVisible as f}from"../../services/virtualized-service.js";import v from"../../hooks/usePrevious/index.js";import h from"../../hooks/useThrottledCallback.js";import I from"../../hooks/useMergeRef.js";import{NOOP as p}from"../../utils/function-utils.js";import{getTestId as g,ComponentDefaultTestId as w}from"../../tests/testIds.js";import x from"./VirtualizedGrid.module.scss.js";var T=t((function(t,T){var R=t.className,S=t.id,b=t.items,j=void 0===b?[]:b,C=t.itemRenderer,z=void 0===C?function(r,e,t){return r}:C,N=t.getRowHeight,M=void 0===N?function(){return 50}:N,k=t.getColumnWidth,E=void 0===k?function(){return 100}:k,V=t.getItemId,W=void 0===V?function(r,e){return r.id}:V,y=t.onScroll,A=t.scrollToId,D=void 0===A?null:A,G=t.onScrollToFinished,H=void 0===G?p:G,O=t.onItemsRendered,U=void 0===O?null:O,_=t.onItemsRenderedThrottleMs,F=void 0===_?200:_,P=t.onSizeUpdate,q=void 0===P?p:P,B=t.onVerticalScrollbarVisiblityChange,L=void 0===B?null:B,Z=t.scrollableClassName,J=t["data-testid"],K=o(0),Q=r(K,2),X=Q[0],Y=Q[1],$=o(0),rr=r($,2),er=rr[0],tr=rr[1],or=v(D),nr=n(null),ir=n(null),lr=n(null),ur=n(0),sr=n({scrollOffsetInitial:0,scrollOffsetFinal:0,animationStartTime:0}),cr=I(T,nr),ar=sr.current,dr=i((function(r){var e=M();return e&&!Number.isNaN(e)||console.error("Couldn't get height for item: ",r),e}),[M]),mr=i((function(r,e){var t=W(r,e);return void 0===t&&console.error("Couldn't get id for item: ",r),t}),[W]),fr=l((function(){return d(j,mr,dr)}),[j,mr,dr]),vr=l((function(){return Math.min(j.length,Math.floor(er/E()))}),[j,er,E]),hr=l((function(){return vr>0?Math.ceil(j.length/vr):0}),[j,vr]),Ir=l((function(){return D%vr}),[D,vr]),pr=l((function(){return Math.floor(D/vr)}),[D,vr]),gr=i((function(r){var e=r.horizontalScrollDirection,t=r.scrollTop,o=r.scrollUpdateWasRequested;ur.current=t,o||(ar.scrollOffsetInitial=t),y&&y(e,t,o)}),[y,ur,ar]),wr=i((function(r){var e=r.rowIndex*vr+r.columnIndex;return z(j[e],e,r.style)}),[j,z,vr]),xr=i((function(r,e){e===X&&r===er||setTimeout((function(){Y(e),tr(r),q(r,e)}),0)}),[X,er,q]),Tr=h((function(r){if(U){var e=m(j,fr,mr,r.visibleStartIndex,r.visibleStopIndex,X,ur.current);U(e)}}),{wait:F,trailing:!0},[U,j,fr,mr,X]);return u((function(){D&&or!==D&&(lr.current.scrollToItem({align:"center",columnIndex:Ir,rowIndex:pr}),H())}),[D,or,lr,Ir,pr,H]),u((function(){lr.current&&lr.current.resetAfterIndices({columnIndex:0,rowIndex:0})}),[fr]),u((function(){if(L){var r=f(j,fr,mr,X);ir.current!==r&&(ir.current=r,L(r))}}),[L,j,fr,X,mr]),e.createElement("div",{ref:cr,className:s(x.virtualizedGridWrapper,R),id:S,"data-testid":J||g(w.VIRTUALIZED_GRID,S)},e.createElement(a,null,(function(r){var t=r.height,o=r.width;return xr(o,t),e.createElement(c,{ref:lr,height:t,width:o,columnWidth:E,columnCount:vr,rowHeight:M,rowCount:hr,onScroll:gr,onItemsRendered:Tr,className:Z},wr)})))}));export{T as default}; //# sourceMappingURL=VirtualizedGrid.js.map