@progress/kendo-react-data-tools
Version:
Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package
10 lines (9 loc) • 2.57 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
"use client";
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("react"),m=require("@progress/kendo-react-common"),C=require("@progress/kendo-react-buttons"),b=require("../messages/index.js"),R=require("@progress/kendo-react-intl"),c=require("./utils.js");function I(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const a=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(s,n,a.get?a:{enumerable:!0,get:()=>t[n]})}}return s.default=t,Object.freeze(s)}const o=I(z),P="...",T=t=>{const s=R.useLocalization(),{messagesMap:n,size:a,totalPages:p,type:k,navigatable:M}=t,N=c.getL10NMessage(b.pagerMobileSelect,n),D=c.getL10NMessage(b.pagerPage,n),O=c.getL10NMessage(b.pagerMoreButtonLabel,n),f=c.translateMessage(s,O),h=(e,u)=>{e.preventDefault(),t.pageChange(u,e)},L=e=>{e.preventDefault(),t.pageChange(e.target.value,e)},v=(e,u)=>o.createElement(C.Button,{fillMode:"flat",themeColor:"primary",size:a,rounded:null,role:"button","aria-label":u,onClick:w=>h(w,e),tabIndex:M?-1:void 0},P),y=e=>o.createElement("option",{value:e},P);let r=1;const l=t.currentPage,d=t.buttonCount;if(l>d){const e=l%d;r=e===0?l-d+1:l-e+1}const i=Math.min(r+t.buttonCount-1,t.totalPages),B=r>1&&v(r-1,f),E=i<p&&v(i+1,f),S=r>1&&y(r-1),q=i<p&&y(i+1),g=[];for(let e=r;e<=i;e++)g.push(e);const x=g.map(e=>o.createElement(C.Button,{className:m.classNames({"k-selected":l===e}),key:e,fillMode:"flat",themeColor:"primary",size:a,rounded:null,role:"button","aria-label":c.translateMessage(s,D)+" "+e,"aria-current":l===e?!0:void 0,onClick:u=>h(u,e),tabIndex:M?-1:void 0},e)),j=g.map(e=>o.createElement("option",{key:e},e));return o.createElement(o.Fragment,null,o.createElement("select",{style:{width:"5em",margin:"0px 1em",display:"inline-flex"},className:m.classNames("k-picker k-dropdown-list k-dropdown k-rounded-md k-picker-solid",{[`k-picker-${m.kendoThemeMaps.sizeMap[a]||a}`]:a,"k-hidden":k!=="dropdown"}),"aria-label":c.translateMessage(s,N),value:l,onChange:e=>L(e)},S,j,q),o.createElement("div",{className:"k-pager-numbers",style:{display:k==="numbers"?"":"none"}},B,x,E))};exports.PagerNumericButtons=T;