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