UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 2.08 kB
import*as t from"react";import{PrimeReactContext as e}from"primereact/api";import{useMergeProps as r,useEventListener as n,useMountEffect as o}from"primereact/hooks";import{ComponentBase as a}from"primereact/componentbase";function i(t){if(Array.isArray(t))return t}function u(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,a,i,u=[],l=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(c)throw o}}return u}}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function c(t,e){if(t){if("string"==typeof t)return l(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(t,e):void 0}}function f(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(t,e){return i(t)||u(t,e)||c(t,e)||f()}var m=a.extend({defaultProps:{__TYPE:"DeferredContent",onload:null,children:void 0}}),s=t.forwardRef((function(a,i){var u=r(),l=t.useContext(e),c=m.getProps(a,l),f=p(t.useState(!1),2),s=f[0],d=f[1],y=t.useRef(null),v=p(n({target:"window",type:"scroll",listener:function(){w()&&(A(),g())}}),2),h=v[0],g=v[1],b=m.setMetaData({props:c,state:{loaded:s}}).ptm,w=function(){if(s)return!1;var t=y.current.getBoundingClientRect();return document.documentElement.clientHeight>=t.top},A=function(t){d(!0),c.onLoad&&c.onLoad(t)};t.useImperativeHandle(i,(function(){return{props:c,getElement:function(){return y.current}}})),o((function(){s||(w()?A():h())}));var S=u({ref:y},m.getOtherProps(c),b("root"));return t.createElement("div",S,s&&c.children)}));s.displayName="DeferredContent";export{s as DeferredContent};