var b=Object.defineProperty;var g=(t,e,s)=>e in t?b(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var d=(t,e,s)=>g(t,typeof e!="symbol"?e+"":e,s);import{r as m,R as w}from"./core.browser.esm-Cdu4tCQ1.js";import{P as o}from"./index-DgRYyi0e.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="4feb7134-221f-4136-af20-9f1a1989a168",t._sentryDebugIdIdentifier="sentry-dbid-4feb7134-221f-4136-af20-9f1a1989a168")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="e71fcfba-8d61-427d-9b98-98ae26ee5c61",t._sentryDebugIdIdentifier="sentry-dbid-e71fcfba-8d61-427d-9b98-98ae26ee5c61")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="0424d6a1-9ca6-4a4c-a148-6af78255960d",t._sentryDebugIdIdentifier="sentry-dbid-0424d6a1-9ca6-4a4c-a148-6af78255960d")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="3c0bc5db-ca67-477b-9420-eb086ec8296a",t._sentryDebugIdIdentifier="sentry-dbid-3c0bc5db-ca67-477b-9420-eb086ec8296a")}catch{}})();class f extends m.Component{constructor(e){super(e),this.scrollListener=this.scrollListener.bind(this),this.eventListenerOptions=this.eventListenerOptions.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this)}componentDidMount(){this.pageLoaded=this.props.pageStart,this.options=this.eventListenerOptions(),this.attachScrollListener()}componentDidUpdate(){if(this.props.isReverse&&this.loadMore){const e=this.getParentElement(this.scrollComponent);e.scrollTop=e.scrollHeight-this.beforeScrollHeight+this.beforeScrollTop,this.loadMore=!1}this.attachScrollListener()}componentWillUnmount(){this.detachScrollListener(),this.detachMousewheelListener()}isPassiveSupported(){let e=!1;const s={get passive(){e=!0}};try{document.addEventListener("test",null,s),document.removeEventListener("test",null,s)}catch{}return e}eventListenerOptions(){let e=this.props.useCapture;return this.isPassiveSupported()?e={useCapture:this.props.useCapture,passive:!0}:e={passive:!1},e}setDefaultLoader(e){this.defaultLoader=e}detachMousewheelListener(){let e=window;this.props.useWindow===!1&&(e=this.scrollComponent.parentNode),e.removeEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture)}detachScrollListener(){let e=window;this.props.useWindow===!1&&(e=this.getParentElement(this.scrollComponent)),e.removeEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),e.removeEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture)}getParentElement(e){const s=this.props.getScrollParent&&this.props.getScrollParent();return s??(e&&e.parentNode)}filterProps(e){return e}attachScrollListener(){const e=this.getParentElement(this.scrollComponent);if(!this.props.hasMore||!e)return;let s=window;this.props.useWindow===!1&&(s=e),s.addEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture),s.addEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),s.addEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture),this.props.initialLoad&&this.scrollListener()}mousewheelListener(e){e.deltaY===1&&!this.isPassiveSupported()&&e.preventDefault()}scrollListener(){const e=this.scrollComponent,s=window,r=this.getParentElement(e);let i;if(this.props.useWindow){const p=document.documentElement||document.body.parentNode||document.body,n=s.pageYOffset!==void 0?s.pageYOffset:p.scrollTop;this.props.isReverse?i=n:i=this.calculateOffset(e,n)}else this.props.isReverse?i=r.scrollTop:i=e.scrollHeight-r.scrollTop-r.clientHeight;i<Number(this.props.threshold)&&e&&e.offsetParent!==null&&(this.detachScrollListener(),this.beforeScrollHeight=r.scrollHeight,this.beforeScrollTop=r.scrollTop,typeof this.props.loadMore=="function"&&(this.props.loadMore(this.pageLoaded+=1),this.loadMore=!0))}calculateOffset(e,s){return e?this.calculateTopPosition(e)+(e.offsetHeight-s-window.innerHeight):0}calculateTopPosition(e){return e?e.offsetTop+this.calculateTopPosition(e.offsetParent):0}render(){const e=this.filterProps(this.props),{children:s,element:r,hasMore:i,initialLoad:p,isReverse:n,loader:a,loadMore:L,pageStart:y,ref:h,threshold:v,useCapture:E,useWindow:P,getScrollParent:S,...c}=e;c.ref=u=>{this.scrollComponent=u,h&&h(u)};const l=[s];return i&&(a?n?l.unshift(a):l.push(a):this.defaultLoader&&(n?l.unshift(this.defaultLoader):l.push(this.defaultLoader))),w.createElement(r,c,l)}}d(f,"propTypes",{children:o.node.isRequired,element:o.node,hasMore:o.bool,initialLoad:o.bool,isReverse:o.bool,loader:o.node,loadMore:o.func.isRequired,pageStart:o.number,ref:o.func,getScrollParent:o.func,threshold:o.number,useCapture:o.bool,useWindow:o.bool}),d(f,"defaultProps",{element:"div",hasMore:!1,initialLoad:!0,pageStart:0,ref:null,threshold:250,useWindow:!0,isReverse:!1,useCapture:!1,loader:null,getScrollParent:null});export{f as I};
