primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ 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) • 4.78 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("primereact/api"),t=require("primereact/hooks"),n=require("primereact/utils");function l(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var o=l(e);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},u.apply(this,arguments)}function a(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function c(e){if(Array.isArray(e))return a(e)}function i(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function s(e,r){if(e){if("string"==typeof e)return a(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,r):void 0}}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e){return c(e)||i(e)||s(e)||f()}function m(e){if(Array.isArray(e))return e}function p(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,l,o=[],u=!0,a=!1;try{for(t=t.call(e);!(u=(n=t.next()).done)&&(o.push(n.value),!r||o.length!==r);u=!0);}catch(e){a=!0,l=e}finally{try{u||null==t.return||t.return()}finally{if(a)throw l}}return o}}function y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var v=o.memo(o.forwardRef((function(e,l){var a,c,i=o.useState([]),f=(c=2,m(a=i)||p(a,c)||s(a,c)||y()),h=f[0],b=f[1],g=o.useRef(null),E=o.useRef(null),w=o.useRef(e.value),O=o.useRef([]),j=o.useRef(0),S=o.useRef(null),H=function(){if(e.lazy)e.onLazyLoad&&e.onLazyLoad(N()),j.current+=e.rows;else if(w.current){for(var r=j.current;r<j.current+e.rows&&!(r>=w.current.length);r++)O.current.push(w.current[r]);0!==w.current.length&&(j.current+=e.rows),b(d(O.current))}},L=function(){j.current=0,O.current=[],b(d(O.current)),H()},N=function(){return{first:j.current,rows:e.rows}},A=function(){S.current&&(e.inline&&E.current?E.current.removeEventListener("scroll",S.current):e.loader||window.removeEventListener("scroll",S.current)),S.current=null};t.useMountEffect((function(){H(),e.loader||(e.inline?(S.current=function(){E.current.scrollTop>=E.current.scrollHeight*e.buffer-E.current.clientHeight&&H()},E.current.addEventListener("scroll",S.current)):(S.current=function(){var r=document.body,t=document.documentElement,n=window.pageYOffset||document.documentElement.scrollTop,l=t.clientHeight;n>=Math.max(r.scrollHeight,r.offsetHeight,l,t.scrollHeight,t.offsetHeight)*e.buffer-l&&H()},window.addEventListener("scroll",S.current)))})),t.useUpdateEffect((function(){e.value&&(w.current=e.value,e.lazy||(j.current=0),O.current=[],e.lazy?(O.current=w.current,b(d(O.current))):H())}),[e.value]),t.useUpdateEffect((function(){e.loader&&A()}),[e.loader]),t.useUnmountEffect((function(){S.current&&A()})),o.useImperativeHandle(l,(function(){return{props:e,load:H,reset:L,getElement:function(){return g.current},getContent:function(){return E.current}}}));var z=function(r,t){var n=e.itemTemplate?e.itemTemplate(r):r;return o.createElement("li",{key:t+"_datascrollitem"},n)},M=function(){var t=n.ObjectUtils.getJSXElement(e.emptyMessage,e)||r.localeOption("emptyMessage");return o.createElement("li",null,t)},T=n.ObjectUtils.findDiffKeys(e,v.defaultProps),P=n.classNames("p-datascroller p-component",e.className,{"p-datascroller-inline":e.inline}),R=e.header?o.createElement("div",{className:"p-datascroller-header"},e.header):null,U=e.footer?o.createElement("div",{className:"p-datascroller-footer"},e.footer):null,_=function(){var r=n.ObjectUtils.isNotEmpty(h)?h.map(z):M();return o.createElement("div",{ref:E,className:"p-datascroller-content",style:{maxHeight:e.scrollHeight}},o.createElement("ul",{className:"p-datascroller-list"},r))}();return o.createElement("div",u({id:e.id,ref:g,className:P},T),R,_,U)})));v.displayName="DataScroller",v.defaultProps={__TYPE:"DataScroller",id:null,value:null,rows:0,inline:!1,scrollHeight:null,loader:!1,buffer:.9,style:null,className:null,onLazyLoad:null,emptyMessage:null,itemTemplate:null,header:null,footer:null,lazy:!1},exports.DataScroller=v;