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) • 6.38 kB
JavaScript
import*as e from"react";import t,{localeOption as a}from"primereact/api";import{Paginator as n}from"primereact/paginator";import{Ripple as r}from"primereact/ripple";import{ObjectUtils as o,classNames as l}from"primereact/utils";function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function s(e){if(Array.isArray(e))return u(e)}function p(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function c(e,t){if(e){if("string"==typeof e)return u(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?u(e,t):void 0}}function m(){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){if(Array.isArray(e))return e}function f(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o=[],l=!0,i=!1;try{for(a=a.call(e);!(l=(n=a.next()).done)&&(o.push(n.value),!t||o.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==a.return||a.return()}finally{if(i)throw r}}return o}}function g(){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 y(e,t){return d(e)||f(e,t)||c(e,t)||g()}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},v.apply(this,arguments)}var w=e.memo((function(t){var a=function(e,a){t.onChange({originalEvent:e,value:a}),e.preventDefault()},n=o.findDiffKeys(t,w.defaultProps),i=l("p-dataview-layout-options p-selectbutton p-buttonset",t.className),u=l("p-button p-button-icon-only",{"p-highlight":"list"===t.layout}),s=l("p-button p-button-icon-only",{"p-highlight":"grid"===t.layout});return e.createElement("div",v({id:t.id,style:t.style,className:i},n),e.createElement("button",{type:"button",className:u,onClick:function(e){return a(e,"list")}},e.createElement("i",{className:"pi pi-bars"}),e.createElement(r,null)),e.createElement("button",{type:"button",className:s,onClick:function(e){return a(e,"grid")}},e.createElement("i",{className:"pi pi-th-large"}),e.createElement(r,null)))})),b=e.memo((function(e){return e.template(e.item,e.layout)})),h=e.memo(e.forwardRef((function(r,u){var d,f=y(e.useState(r.first),2),g=f[0],w=f[1],P=y(e.useState(r.rows),2),E=P[0],N=P[1],S=e.useRef(null),O=r.onPage?r.first:g,T=r.onPage?r.rows:E,D=function(e){return r.dataKey?o.resolveFieldData(e,r.dataKey):null},L=function(){return r.totalRecords?r.totalRecords:r.value?r.value.length:0},k=function(t){var a=l("p-paginator-"+t,r.paginatorClassName),o=L();return e.createElement(n,{first:O,rows:T,pageLinkSize:r.pageLinkSize,className:a,onPageChange:A,template:r.paginatorTemplate,totalRecords:o,rowsPerPageOptions:r.rowsPerPageOptions,currentPageReportTemplate:r.currentPageReportTemplate,leftContent:r.paginatorLeft,rightContent:r.paginatorRight,alwaysShow:r.alwaysShowPaginator,dropdownAppendTo:r.paginatorDropdownAppendTo})},A=function(e){r.onPage?r.onPage(e):(w(e.first),N(e.rows))},R=function(){if(r.value){var e=s(a=r.value)||p(a)||c(a)||m();return e.sort((function(e,a){var n=o.resolveFieldData(e,r.sortField),l=o.resolveFieldData(a,r.sortField);return o.sort(n,l,r.sortOrder,t.locale,t.nullSortOrder)})),e}var a;return null},C=function(){if(!r.loading){var t=r.emptyMessage||a("emptyMessage");return e.createElement("div",{className:"p-col-12 col-12 p-dataview-emptymessage"},t)}return null},I=function(t){if(o.isNotEmpty(t)){if(r.paginator){for(var a=r.lazy?0:O,n=L(),l=Math.min(T+a,n),i=[],u=a;u<l;u++){var s=t[u];s&&i.push(e.createElement(b,{key:D(t)||u,template:r.itemTemplate,layout:r.layout,item:s}))}return i}return t.map((function(t,a){return e.createElement(b,{key:D(t)||a,template:r.itemTemplate,layout:r.layout,item:t})}))}return C()};e.useImperativeHandle(u,(function(){return{props:r,getElement:function(){return S.current}}}));var j,F,z=function(){var e=r.value;return o.isNotEmpty(e)&&r.sortField&&(e=R()),e}(),K=o.findDiffKeys(r,h.defaultProps),M=l("p-dataview p-component",(i(d={},"p-dataview-".concat(r.layout),!!r.layout),i(d,"p-dataview-loading",r.loading),d),r.className),V=function(){if(r.loading){var t=l("p-dataview-loading-icon pi-spin",r.loadingIcon);return e.createElement("div",{className:"p-dataview-loading-overlay p-component-overlay"},e.createElement("i",{className:t}))}return null}(),_=!r.paginator||"bottom"===r.paginatorPosition&&"both"!==r.paginatorPosition?null:k("top"),x=!r.paginator||"top"===r.paginatorPosition&&"both"!==r.paginatorPosition?null:k("bottom"),Y=r.header?e.createElement("div",{className:"p-dataview-header"},r.header):null,H=r.footer?e.createElement("div",{className:"p-dataview-footer"},r.footer):null,U=(j=I(z),F=l("p-grid grid",{"p-nogutter grid-nogutter":!r.gutter}),e.createElement("div",{className:"p-dataview-content"},e.createElement("div",{className:F},j)));return e.createElement("div",v({id:r.id,ref:S,style:r.style,className:M},K),V,Y,_,U,x,H)})));w.displayName="DataViewLayoutOptions",w.defaultProps={__TYPE:"DataViewLayoutOptions",id:null,style:null,className:null,layout:null,onChange:null},b.displayName="DataViewItem",h.displayName="DataView",h.defaultProps={__TYPE:"DataView",id:null,header:null,footer:null,value:null,layout:"list",dataKey:null,rows:null,first:0,totalRecords:null,paginator:!1,paginatorPosition:"bottom",alwaysShowPaginator:!0,paginatorClassName:null,paginatorTemplate:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown",paginatorLeft:null,paginatorRight:null,paginatorDropdownAppendTo:null,pageLinkSize:5,rowsPerPageOptions:null,currentPageReportTemplate:"({currentPage} of {totalPages})",emptyMessage:null,sortField:null,sortOrder:null,style:null,className:null,lazy:!1,loading:!1,loadingIcon:"pi pi-spinner",gutter:!1,itemTemplate:null,onPage:null};export{h as DataView,b as DataViewItem,w as DataViewLayoutOptions};