2 lines
18 KiB
JavaScript
2 lines
18 KiB
JavaScript
import e,{Component as t}from"react";import{classNames as n,ObjectUtils as r}from"primereact/utils";import{Ripple as o}from"primereact/ripple";import{Dropdown as a}from"primereact/dropdown";import{InputNumber as s}from"primereact/inputnumber";function i(e){if(Array.isArray(e))return e}function p(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],s=!0,i=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){i=!0,o=e}finally{try{s||null==n.return||n.return()}finally{if(i)throw o}}return a}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}function u(){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 h(e){return h="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},h(e)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t,n){return t&&g(e.prototype,t),n&&g(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e,t){return y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},y(e,t)}function v(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&y(e,t)}function P(e,t){if(t&&("object"===h(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}function b(e){return b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},b(e)}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var w=function(a){v(l,t);var s,i,p=(s=l,i=C(),function(){var e,t=b(s);if(i){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function l(){return f(this,l),p.apply(this,arguments)}return d(l,[{key:"render",value:function(){var t=n("p-paginator-first p-paginator-element p-link",{"p-disabled":this.props.disabled}),a="p-paginator-icon pi pi-angle-double-left",s=e.createElement("button",{type:"button",className:t,onClick:this.props.onClick,disabled:this.props.disabled},e.createElement("span",{className:a}),e.createElement(o,null));return this.props.template?r.getJSXElement(this.props.template,{onClick:this.props.onClick,className:t,iconClassName:a,disabled:this.props.disabled,element:s,props:this.props}):s}}]),l}();function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(w,"defaultProps",{disabled:!1,onClick:null,template:null});var E=function(a){v(l,t);var s,i,p=(s=l,i=R(),function(){var e,t=b(s);if(i){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function l(){return f(this,l),p.apply(this,arguments)}return d(l,[{key:"render",value:function(){var t=n("p-paginator-next p-paginator-element p-link",{"p-disabled":this.props.disabled}),a="p-paginator-icon pi pi-angle-right",s=e.createElement("button",{type:"button",className:t,onClick:this.props.onClick,disabled:this.props.disabled},e.createElement("span",{className:a}),e.createElement(o,null));return this.props.template?r.getJSXElement(this.props.template,{onClick:this.props.onClick,className:t,iconClassName:a,disabled:this.props.disabled,element:s,props:this.props}):s}}]),l}();function O(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(E,"defaultProps",{disabled:!1,onClick:null,template:null});var N=function(a){v(l,t);var s,i,p=(s=l,i=O(),function(){var e,t=b(s);if(i){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function l(){return f(this,l),p.apply(this,arguments)}return d(l,[{key:"render",value:function(){var t=n("p-paginator-prev p-paginator-element p-link",{"p-disabled":this.props.disabled}),a="p-paginator-icon pi pi-angle-left",s=e.createElement("button",{type:"button",className:t,onClick:this.props.onClick,disabled:this.props.disabled},e.createElement("span",{className:a}),e.createElement(o,null));return this.props.template?r.getJSXElement(this.props.template,{onClick:this.props.onClick,className:t,iconClassName:a,disabled:this.props.disabled,element:s,props:this.props}):s}}]),l}();function T(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(N,"defaultProps",{disabled:!1,onClick:null,template:null});var L=function(a){v(l,t);var s,i,p=(s=l,i=T(),function(){var e,t=b(s);if(i){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function l(){return f(this,l),p.apply(this,arguments)}return d(l,[{key:"render",value:function(){var t=n("p-paginator-last p-paginator-element p-link",{"p-disabled":this.props.disabled}),a="p-paginator-icon pi pi-angle-double-right",s=e.createElement("button",{type:"button",className:t,onClick:this.props.onClick,disabled:this.props.disabled},e.createElement("span",{className:a}),e.createElement(o,null));return this.props.template?r.getJSXElement(this.props.template,{onClick:this.props.onClick,className:t,iconClassName:a,disabled:this.props.disabled,element:s,props:this.props}):s}}]),l}();function S(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(L,"defaultProps",{disabled:!1,onClick:null,template:null});var j=function(a){v(l,t);var s,i,p=(s=l,i=S(),function(){var e,t=b(s);if(i){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function l(){return f(this,l),p.apply(this,arguments)}return d(l,[{key:"onPageLinkClick",value:function(e,t){this.props.onClick&&this.props.onClick({originalEvent:e,value:t}),e.preventDefault()}},{key:"render",value:function(){var t,a=this;if(this.props.value){var s=this.props.value[0],i=this.props.value[this.props.value.length-1];t=this.props.value.map((function(t,p){var l=n("p-paginator-page p-paginator-element p-link",{"p-paginator-page-start":t===s,"p-paginator-page-end":t===i,"p-highlight":t-1===a.props.page}),c=e.createElement("button",{type:"button",className:l,onClick:function(e){return a.onPageLinkClick(e,t)}},t,e.createElement(o,null));if(a.props.template){var u={onClick:function(e){return a.onPageLinkClick(e,t)},className:l,view:{startPage:s-1,endPage:i-1},page:t-1,currentPage:a.props.page,totalPages:a.props.pageCount,element:c,props:a.props};c=r.getJSXElement(a.props.template,u)}return e.createElement(e.Fragment,{key:t},c)}))}return e.createElement("span",{className:"p-paginator-pages"},t)}}]),l}();function x(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(j,"defaultProps",{value:null,page:null,rows:null,pageCount:null,links:null,template:null});var B=function(n){v(p,t);var o,s,i=(o=p,s=x(),function(){var e,t=b(o);if(s){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function p(){return f(this,p),i.apply(this,arguments)}return d(p,[{key:"hasOptions",value:function(){return this.props.options&&this.props.options.length>0}},{key:"render",value:function(){var t=this.hasOptions(),n=t?this.props.options.map((function(e){return{label:String(e),value:e}})):[],o=t?e.createElement(a,{value:this.props.value,options:n,onChange:this.props.onChange,appendTo:this.props.appendTo,disabled:this.props.disabled}):null;return this.props.template?r.getJSXElement(this.props.template,{value:this.props.value,options:n,onChange:this.props.onChange,appendTo:this.props.appendTo,currentPage:this.props.page,totalPages:this.props.pageCount,totalRecords:this.props.totalRecords,disabled:this.props.disabled,element:o,props:this.props}):o}}]),p}();function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function J(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){k(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function M(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(B,"defaultProps",{options:null,value:null,page:null,pageCount:null,totalRecords:0,appendTo:null,onChange:null,template:null,disabled:!1});var F=function(n){v(i,t);var o,a,s=(o=i,a=M(),function(){var e,t=b(o);if(a){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function i(){return f(this,i),s.apply(this,arguments)}return d(i,[{key:"render",value:function(){var t={currentPage:this.props.page+1,totalPages:this.props.pageCount,first:Math.min(this.props.first+1,this.props.totalRecords),last:Math.min(this.props.first+this.props.rows,this.props.totalRecords),rows:this.props.rows,totalRecords:this.props.totalRecords},n=this.props.reportTemplate.replace("{currentPage}",t.currentPage).replace("{totalPages}",t.totalPages).replace("{first}",t.first).replace("{last}",t.last).replace("{rows}",t.rows).replace("{totalRecords}",t.totalRecords),o=e.createElement("span",{className:"p-paginator-current"},n);if(this.props.template){var a=J(J({},t),{className:"p-paginator-current",element:o,props:this.props});return r.getJSXElement(this.props.template,a)}return o}}]),i}();function X(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(F,"defaultProps",{pageCount:null,page:null,first:null,rows:null,totalRecords:null,reportTemplate:"({currentPage} of {totalPages})",template:null});var A=function(n){v(p,t);var o,a,i=(o=p,a=X(),function(){var e,t=b(o);if(a){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function p(e){var t;return f(this,p),(t=i.call(this,e)).onChange=t.onChange.bind(m(t)),t}return d(p,[{key:"onChange",value:function(e){this.props.onChange&&this.props.onChange(this.props.rows*(e.value-1),this.props.rows)}},{key:"render",value:function(){var t=this.props.pageCount>0?this.props.page+1:0,n=e.createElement(s,{value:t,onChange:this.onChange,className:"p-paginator-page-input",disabled:this.props.disabled});return this.props.template?r.getJSXElement(this.props.template,{value:t,onChange:this.onChange,disabled:this.props.disabled,className:"p-paginator-page-input",element:n,props:this.props}):n}}]),p}();function _(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}k(A,"defaultProps",{page:null,rows:null,pageCount:null,disabled:!1,template:null,onChange:null});var I=function(o){v(g,t);var a,s,l=(a=g,s=_(),function(){var e,t=b(a);if(s){var n=b(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return P(this,e)});function g(e){var t;return f(this,g),(t=l.call(this,e)).changePageToFirst=t.changePageToFirst.bind(m(t)),t.changePageToPrev=t.changePageToPrev.bind(m(t)),t.changePageToNext=t.changePageToNext.bind(m(t)),t.changePageToLast=t.changePageToLast.bind(m(t)),t.onRowsChange=t.onRowsChange.bind(m(t)),t.changePage=t.changePage.bind(m(t)),t.onPageLinkClick=t.onPageLinkClick.bind(m(t)),t}return d(g,[{key:"isFirstPage",value:function(){return 0===this.getPage()}},{key:"isLastPage",value:function(){return this.getPage()===this.getPageCount()-1}},{key:"getPageCount",value:function(){return Math.ceil(this.props.totalRecords/this.props.rows)}},{key:"calculatePageLinkBoundaries",value:function(){var e=this.getPageCount(),t=Math.min(this.props.pageLinkSize,e),n=Math.max(0,Math.ceil(this.getPage()-t/2)),r=Math.min(e-1,n+t-1);return[n=Math.max(0,n-(this.props.pageLinkSize-(r-n+1))),r]}},{key:"updatePageLinks",value:function(){for(var e=[],t=this.calculatePageLinkBoundaries(),n=t[1],r=t[0];r<=n;r++)e.push(r+1);return e}},{key:"changePage",value:function(e,t){var n=this.getPageCount(),r=Math.floor(e/t);r>=0&&r<n&&(this.props.onPageChange&&this.props.onPageChange({first:e,rows:t,page:r,pageCount:n}))}},{key:"getPage",value:function(){return Math.floor(this.props.first/this.props.rows)}},{key:"empty",value:function(){return 0===this.getPageCount()}},{key:"changePageToFirst",value:function(e){this.changePage(0,this.props.rows),e.preventDefault()}},{key:"changePageToPrev",value:function(e){this.changePage(this.props.first-this.props.rows,this.props.rows),e.preventDefault()}},{key:"onPageLinkClick",value:function(e){this.changePage((e.value-1)*this.props.rows,this.props.rows)}},{key:"changePageToNext",value:function(e){this.changePage(this.props.first+this.props.rows,this.props.rows),e.preventDefault()}},{key:"changePageToLast",value:function(e){this.changePage((this.getPageCount()-1)*this.props.rows,this.props.rows),e.preventDefault()}},{key:"onRowsChange",value:function(e){var t=e.value;this.isRowChanged=t!==this.props.rows,this.changePage(0,t)}},{key:"componentDidUpdate",value:function(e,t){this.props.rows===e.rows||this.isRowChanged?this.getPage()>0&&e.totalRecords!==this.props.totalRecords&&this.props.first>=this.props.totalRecords&&this.changePage((this.getPageCount()-1)*this.props.rows,this.props.rows):this.changePage(0,this.props.rows),this.isRowChanged=!1}},{key:"renderElement",value:function(t,n){var r;switch(t){case"FirstPageLink":r=e.createElement(w,{key:t,onClick:this.changePageToFirst,disabled:this.isFirstPage()||this.empty(),template:n});break;case"PrevPageLink":r=e.createElement(N,{key:t,onClick:this.changePageToPrev,disabled:this.isFirstPage()||this.empty(),template:n});break;case"NextPageLink":r=e.createElement(E,{key:t,onClick:this.changePageToNext,disabled:this.isLastPage()||this.empty(),template:n});break;case"LastPageLink":r=e.createElement(L,{key:t,onClick:this.changePageToLast,disabled:this.isLastPage()||this.empty(),template:n});break;case"PageLinks":r=e.createElement(j,{key:t,value:this.updatePageLinks(),page:this.getPage(),rows:this.props.rows,pageCount:this.getPageCount(),onClick:this.onPageLinkClick,template:n});break;case"RowsPerPageDropdown":r=e.createElement(B,{key:t,value:this.props.rows,page:this.getPage(),pageCount:this.getPageCount(),totalRecords:this.props.totalRecords,options:this.props.rowsPerPageOptions,onChange:this.onRowsChange,appendTo:this.props.dropdownAppendTo,template:n,disabled:this.empty()});break;case"CurrentPageReport":r=e.createElement(F,{reportTemplate:this.props.currentPageReportTemplate,key:t,page:this.getPage(),pageCount:this.getPageCount(),first:this.props.first,rows:this.props.rows,totalRecords:this.props.totalRecords,template:n});break;case"JumpToPageInput":r=e.createElement(A,{key:t,rows:this.props.rows,page:this.getPage(),pageCount:this.getPageCount(),onChange:this.changePage,disabled:this.empty(),template:n});break;default:r=null}return r}},{key:"renderElements",value:function(){var e=this,t=this.props.template;return t?"object"===h(t)?t.layout?t.layout.split(" ").map((function(n){var r=n.trim();return e.renderElement(r,t[r])})):Object.entries(t).map((function(t){var n,r,o=(r=2,i(n=t)||p(n,r)||c(n,r)||u());return e.renderElement(o[0],o[1])})):t.split(" ").map((function(t){return e.renderElement(t.trim())})):null}},{key:"render",value:function(){if(this.props.alwaysShow||1!==this.getPageCount()){var t=n("p-paginator p-component",this.props.className),o=r.getJSXElement(this.props.leftContent,this.props),a=r.getJSXElement(this.props.rightContent,this.props),s=this.renderElements();return e.createElement("div",{className:t,style:this.props.style},o&&e.createElement("div",{className:"p-paginator-left-content"},o),s,a&&e.createElement("div",{className:"p-paginator-right-content"},a))}return null}}]),g}();k(I,"defaultProps",{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})"});export{I as Paginator};
|