UNPKG

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.81 kB
this.primereact=this.primereact||{},this.primereact.datascroller=function(e,r,t,n,l){"use strict";function a(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=a(r);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 c(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 i(e){if(Array.isArray(e))return c(e)}function s(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function f(e,r){if(e){if("string"==typeof e)return c(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)?c(e,r):void 0}}function d(){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 m(e){return i(e)||s(e)||f(e)||d()}function p(e){if(Array.isArray(e))return e}function y(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,l,a=[],o=!0,u=!1;try{for(t=t.call(e);!(o=(n=t.next()).done)&&(a.push(n.value),!r||a.length!==r);o=!0);}catch(e){u=!0,l=e}finally{try{o||null==t.return||t.return()}finally{if(u)throw l}}return a}}function v(){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 h=o.memo(o.forwardRef((function(e,r){var a,c,i=o.useState([]),s=(c=2,p(a=i)||y(a,c)||f(a,c)||v()),d=s[0],b=s[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(m(O.current))}},L=function(){j.current=0,O.current=[],b(m(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};n.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)))})),n.useUpdateEffect((function(){e.value&&(w.current=e.value,e.lazy||(j.current=0),O.current=[],e.lazy?(O.current=w.current,b(m(O.current))):H())}),[e.value]),n.useUpdateEffect((function(){e.loader&&A()}),[e.loader]),n.useUnmountEffect((function(){S.current&&A()})),o.useImperativeHandle(r,(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 r=l.ObjectUtils.getJSXElement(e.emptyMessage,e)||t.localeOption("emptyMessage");return o.createElement("li",null,r)},R=l.ObjectUtils.findDiffKeys(e,h.defaultProps),T=l.classNames("p-datascroller p-component",e.className,{"p-datascroller-inline":e.inline}),P=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=l.ObjectUtils.isNotEmpty(d)?d.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:T},R),P,_,U)})));return h.displayName="DataScroller",h.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},e.DataScroller=h,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.utils);