import*as e from"react";import{PrimeReactContext as r,localeOption as t}from"primereact/api";import{ComponentBase as n,useHandleStyle as l}from"primereact/componentbase";import{useMergeProps as o,useMountEffect as a,useUpdateEffect as c,useUnmountEffect as u}from"primereact/hooks";import{classNames as i,ObjectUtils as s}from"primereact/utils";function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;re.length)&&(r=e.length);for(var t=0,n=Array(r);t=I.current.length);e++)P.current.push(I.current[e]);0!==I.current.length&&(C.current=C.current+x.rows),N(h(P.current))}},k=function(){C.current=0,P.current=[],N(h(P.current)),_()},U=function(){return{first:C.current,rows:x.rows}},Y=function(){x.inline?(D.current=function(){R.current.scrollTop>=R.current.scrollHeight*x.buffer-R.current.clientHeight&&_()},R.current.addEventListener("scroll",D.current)):(D.current=function(){var e=document.body,r=document.documentElement,t=window.pageYOffset||document.documentElement.scrollTop,n=r.clientHeight;t>=Math.max(e.scrollHeight,e.offsetHeight,n,r.scrollHeight,r.offsetHeight)*x.buffer-n&&_()},window.addEventListener("scroll",D.current))},J=function(){D.current&&(x.inline&&R.current?R.current.removeEventListener("scroll",D.current):x.loader||window.removeEventListener("scroll",D.current)),D.current=null};a((function(){_(),x.loader||Y()})),c((function(){x.value&&(I.current=x.value,x.lazy||(C.current=0),P.current=[],x.lazy?(P.current=I.current,N(h(P.current))):_())}),[x.value]),c((function(){x.loader?J():Y()}),[x.loader]),u((function(){D.current&&J()})),e.useImperativeHandle(d,(function(){return{props:x,load:_,reset:k,getElement:function(){return M.current},getContent:function(){return R.current}}}));var X,$,q=function(r,t){var n=T("item"),l=x.itemTemplate?x.itemTemplate(r):r;return e.createElement("li",f({},n,{key:t+"_datascrollitem"}),l)},B=function(){var r=v(T("emptyMessage")),n=s.getJSXElement(x.emptyMessage,x)||t("emptyMessage");return e.createElement("li",r,n)},F=(X=v({className:j("header")},T("header")),x.header?e.createElement("div",X,x.header):null),G=($=v({className:j("footer")},T("footer")),x.footer?e.createElement("div",$,x.footer):null),K=function(){var r=v({ref:R,className:j("content"),style:z("content")},T("content")),t=v({className:j("list")},T("list")),n=s.isNotEmpty(A)?A.map(q):B();return e.createElement("div",r,e.createElement("ul",t,n))}(),Q=v({id:x.id,ref:M,className:i(x.className,j("root"))},E.getOtherProps(x),T("root"));return e.createElement("div",Q,F,K,G)})));S.displayName="DataScroller";export{S as DataScroller};