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) • 12.8 kB
JavaScript
import*as e from"react";import{useUpdateEffect as t}from"primereact/hooks";import{ObjectUtils as r,classNames as a}from"primereact/utils";import{ariaLabel as n,localeOption as o}from"primereact/api";import{Ripple as l}from"primereact/ripple";import{InputNumber as i}from"primereact/inputnumber";import{Dropdown as p}from"primereact/dropdown";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},s.apply(this,arguments)}function u(e){if(Array.isArray(e))return e}function c(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,o,l,i=[],p=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;p=!1}else for(;!(p=(a=o.call(r)).done)&&(i.push(a.value),i.length!==t);p=!0);}catch(e){s=!0,n=e}finally{try{if(!p&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw n}}return i}}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}function m(e,t){if(e){if("string"==typeof e)return g(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(e,t):void 0}}function d(){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 f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function P(e,t){if("object"!==f(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!==f(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function b(e){var t=P(e,"string");return"symbol"===f(t)?t:String(t)}function v(e,t,r){return(t=b(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var h={defaultProps:{__TYPE:"Paginator",totalRecords:0,rows:0,first:0,pageLinkSize:5,rowsPerPageOptions:null,alwaysShow:!0,style:null,className:null,template:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown",onPageChange:null,leftContent:null,rightContent:null,dropdownAppendTo:null,currentPageReportTemplate:"({currentPage} of {totalPages})",children:void 0},getProps:function(e){return r.getMergedProps(e,h.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,h.defaultProps)}},y={defaultProps:{__TYPE:"CurrentPageReport",pageCount:null,page:null,first:null,rows:null,totalRecords:null,reportTemplate:"({currentPage} of {totalPages})",template:null,children:void 0},getProps:function(e){return r.getMergedProps(e,y.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,y.defaultProps)}},k={defaultProps:{__TYPE:"FirstPageLink",disabled:!1,onClick:null,template:null,children:void 0},getProps:function(e){return r.getMergedProps(e,k.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,k.defaultProps)}},C={defaultProps:{__TYPE:"JumpToPageInput",page:null,rows:null,pageCount:null,disabled:!1,template:null,onChange:null,children:void 0},getProps:function(e){return r.getMergedProps(e,C.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,C.defaultProps)}},w={defaultProps:{__TYPE:"LastPageLink",disabled:!1,onClick:null,template:null,children:void 0},getProps:function(e){return r.getMergedProps(e,w.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,w.defaultProps)}},E={defaultProps:{__TYPE:"NextPageLink",disabled:!1,onClick:null,template:null,children:void 0},getProps:function(e){return r.getMergedProps(e,E.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,E.defaultProps)}},N={defaultProps:{__TYPE:"PageLinks",value:null,page:null,rows:null,pageCount:null,links:null,template:null,children:void 0},getProps:function(e){return r.getMergedProps(e,N.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,N.defaultProps)}},O={defaultProps:{__TYPE:"PrevPageLink",disabled:!1,onClick:null,template:null,children:void 0},getProps:function(e){return r.getMergedProps(e,O.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,O.defaultProps)}},L={defaultProps:{__TYPE:"RowsPerPageDropdown",options:null,value:null,page:null,pageCount:null,totalRecords:0,appendTo:null,onChange:null,template:null,disabled:!1,children:void 0},getProps:function(e){return r.getMergedProps(e,L.defaultProps)},getOtherProps:function(e){return r.getDiffProps(e,L.defaultProps)}};function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function R(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var T=e.memo((function(t){var a=y.getProps(t),n={currentPage:a.page+1,totalPages:a.pageCount,first:Math.min(a.first+1,a.totalRecords),last:Math.min(a.first+a.rows,a.totalRecords),rows:a.rows,totalRecords:a.totalRecords},o=a.reportTemplate.replace("{currentPage}",n.currentPage).replace("{totalPages}",n.totalPages).replace("{first}",n.first).replace("{last}",n.last).replace("{rows}",n.rows).replace("{totalRecords}",n.totalRecords),l=e.createElement("span",{className:"p-paginator-current"},o);if(a.template){var i=R(R({},n),{className:"p-paginator-current",element:l,props:a});return r.getJSXElement(a.template,i)}return l}));T.displayName="CurrentPageReport";var j=e.memo((function(t){var o=k.getProps(t),i=a("p-paginator-first p-paginator-element p-link",{"p-disabled":o.disabled}),p="p-paginator-icon pi pi-angle-double-left",s=e.createElement("button",{type:"button",className:i,onClick:o.onClick,disabled:o.disabled,"aria-label":n("firstPageLabel")},e.createElement("span",{className:p}),e.createElement(l,null));return o.template?r.getJSXElement(o.template,{onClick:o.onClick,className:i,iconClassName:p,disabled:o.disabled,element:s,props:o}):s}));j.displayName="FirstPageLink";var D=e.memo((function(t){var a=C.getProps(t),n=function(e){a.onChange&&a.onChange(a.rows*(e.value-1),a.rows)},o=a.pageCount>0?a.page+1:0,l=e.createElement(i,{value:o,onChange:n,className:"p-paginator-page-input",disabled:a.disabled});return a.template?r.getJSXElement(a.template,{value:o,onChange:n,disabled:a.disabled,className:"p-paginator-page-input",element:l,props:a}):l}));D.displayName="JumpToPageInput";var M=e.memo((function(t){var o=w.getProps(t),i=a("p-paginator-last p-paginator-element p-link",{"p-disabled":o.disabled}),p="p-paginator-icon pi pi-angle-double-right",s=e.createElement("button",{type:"button",className:i,onClick:o.onClick,disabled:o.disabled,"aria-label":n("lastPageLabel")},e.createElement("span",{className:p}),e.createElement(l,null));return o.template?r.getJSXElement(o.template,{onClick:o.onClick,className:i,iconClassName:p,disabled:o.disabled,element:s,props:o}):s}));M.displayName="LastPageLink";var _=e.memo((function(t){var o=E.getProps(t),i=a("p-paginator-next p-paginator-element p-link",{"p-disabled":o.disabled}),p="p-paginator-icon pi pi-angle-right",s=e.createElement("button",{type:"button",className:i,onClick:o.onClick,disabled:o.disabled,"aria-label":n("nextPageLabel")},e.createElement("span",{className:p}),e.createElement(l,null));return o.template?r.getJSXElement(o.template,{onClick:o.onClick,className:i,iconClassName:p,disabled:o.disabled,element:s,props:o}):s}));_.displayName="NextPageLink";var J=e.memo((function(t){var o,i=N.getProps(t),p=function(e,t){i.onClick&&i.onClick({originalEvent:e,value:t}),e.preventDefault()};if(i.value){var s=i.value[0],u=i.value[i.value.length-1];o=i.value.map((function(t){var o=a("p-paginator-page p-paginator-element p-link",{"p-paginator-page-start":t===s,"p-paginator-page-end":t===u,"p-highlight":t-1===i.page}),c=e.createElement("button",{type:"button",className:o,onClick:function(e){return p(e,t)},"aria-label":"".concat(n("pageLabel")," ").concat(t+1)},t,e.createElement(l,null));i.template&&(c=r.getJSXElement(i.template,{onClick:function(e){return p(e,t)},className:o,view:{startPage:s-1,endPage:u-1},page:t-1,currentPage:i.page,totalPages:i.pageCount,element:c,props:i}));return e.createElement(e.Fragment,{key:t},c)}))}return e.createElement("span",{className:"p-paginator-pages"},o)}));J.displayName="PageLinks";var x=e.memo((function(t){var o=O.getProps(t),i=a("p-paginator-prev p-paginator-element p-link",{"p-disabled":o.disabled}),p="p-paginator-icon pi pi-angle-left",s=e.createElement("button",{type:"button",className:i,onClick:o.onClick,disabled:o.disabled,"aria-label":n("previousPageLabel")},e.createElement("span",{className:p}),e.createElement(l,null));return o.template?r.getJSXElement(o.template,{onClick:o.onClick,className:i,iconClassName:p,disabled:o.disabled,element:s,props:o}):s}));x.displayName="PrevPageLink";var X=e.memo((function(t){var a=L.getProps(t),n=a.options&&a.options.length>0,l=n?a.options.map((function(e){return{label:String(e),value:e}})):[],i=o("choose"),s=n?e.createElement(p,{value:a.value,options:l,onChange:a.onChange,appendTo:a.appendTo,disabled:a.disabled,placeholder:i,"aria-label":i}):null;return a.template?r.getJSXElement(a.template,{value:a.value,options:l,onChange:a.onChange,appendTo:a.appendTo,currentPage:a.page,totalPages:a.pageCount,totalRecords:a.totalRecords,disabled:a.disabled,element:s,props:a}):s}));X.displayName="RowsPerPageDropdown";var Y=e.memo(e.forwardRef((function(n,o){var l=h.getProps(n),i=e.useRef(null),p=Math.floor(l.first/l.rows),g=Math.ceil(l.totalRecords/l.rows),P=0===p,b=p===g-1,v=0===g,y=function(){var e=g,t=Math.min(l.pageLinkSize,e),r=Math.max(0,Math.ceil(p-t/2)),a=Math.min(e-1,r+t-1);return[r=Math.max(0,r-(l.pageLinkSize-(a-r+1))),a]},k=function(){for(var e=[],t=y(),r=t[1],a=t[0];a<=r;a++)e.push(a+1);return e},C=function(e,t){var r=g,a=Math.floor(e/t);a>=0&&a<r&&(l.onPageChange&&l.onPageChange({first:e,rows:t,page:a,pageCount:r}))},w=function(e){C(0,l.rows),e.preventDefault()},E=function(e){C(l.first-l.rows,l.rows),e.preventDefault()},N=function(e){C((e.value-1)*l.rows,l.rows)},O=function(e){C(l.first+l.rows,l.rows),e.preventDefault()},L=function(e){C((g-1)*l.rows,l.rows),e.preventDefault()},S=function(e){C(0,e.value)};e.useImperativeHandle(o,(function(){return{props:l,getElement:function(){return i.current}}})),t((function(){p>0&&l.first>=l.totalRecords&&C((g-1)*l.rows,l.rows)}),[l.totalRecords]);var R,Y=function(t,r){var a;switch(t){case"FirstPageLink":a=e.createElement(j,{key:t,onClick:w,disabled:P||v,template:r});break;case"PrevPageLink":a=e.createElement(x,{key:t,onClick:E,disabled:P||v,template:r});break;case"NextPageLink":a=e.createElement(_,{key:t,onClick:O,disabled:b||v,template:r});break;case"LastPageLink":a=e.createElement(M,{key:t,onClick:L,disabled:b||v,template:r});break;case"PageLinks":a=e.createElement(J,{key:t,value:k(),page:p,rows:l.rows,pageCount:g,onClick:N,template:r});break;case"RowsPerPageDropdown":a=e.createElement(X,{key:t,value:l.rows,page:p,pageCount:g,totalRecords:l.totalRecords,options:l.rowsPerPageOptions,onChange:S,appendTo:l.dropdownAppendTo,template:r,disabled:v});break;case"CurrentPageReport":a=e.createElement(T,{reportTemplate:l.currentPageReportTemplate,key:t,page:p,pageCount:g,first:l.first,rows:l.rows,totalRecords:l.totalRecords,template:r});break;case"JumpToPageInput":a=e.createElement(D,{key:t,rows:l.rows,page:p,pageCount:g,onChange:C,disabled:v,template:r});break;default:a=null}return a};if(l.alwaysShow||1!==g){var A=h.getOtherProps(l),I=a("p-paginator p-component",l.className),F=r.getJSXElement(l.leftContent,l),z=r.getJSXElement(l.rightContent,l),H=(R=l.template)?"object"===f(R)?R.layout?R.layout.split(" ").map((function(e){var t=e.trim();return Y(t,R[t])})):Object.entries(R).map((function(e){var t,r,a=(r=2,u(t=e)||c(t,r)||m(t,r)||d());return Y(a[0],a[1])})):R.split(" ").map((function(e){return Y(e.trim())})):null,U=F&&e.createElement("div",{className:"p-paginator-left-content"},F),$=z&&e.createElement("div",{className:"p-paginator-right-content"},z);return e.createElement("div",s({ref:i,className:I,style:l.style},A),U,H,$)}return null})));Y.displayName="Paginator";export{Y as Paginator};