UNPKG

@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) 1.99 kB
/** * @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 q=require("react"),D=require("@progress/kendo-react-common"),P=require("@progress/kendo-react-buttons"),C=require("../messages/index.js"),O=require("@progress/kendo-react-intl"),l=require("./utils.js");function R(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(o,n,r.get?r:{enumerable:!0,get:()=>t[n]})}}return o.default=t,Object.freeze(o)}const g=R(q),j="...",x=t=>{const o=O.useLocalization(),{messagesMap:n,size:r,totalPages:N,navigatable:d,pagerNumericButtonsRef:k}=t,v=l.getL10NMessage(C.pagerPage,n),p=l.getL10NMessage(C.pagerMoreButtonLabel,n),m=l.translateMessage(o,p),b=(e,c)=>{e.preventDefault(),t.pageChange(c,e)},f=(e,c)=>g.createElement(P.Button,{fillMode:"flat",themeColor:"primary",size:r,rounded:null,role:"button","aria-label":c,onClick:L=>b(L,e),tabIndex:d?-1:void 0},j);let s=1;const a=t.currentPage,u=t.buttonCount;if(a>u){const e=a%u;s=e===0?a-u+1:a-e+1}const i=Math.min(s+t.buttonCount-1,t.totalPages),y=s>1&&f(s-1,m),B=i<N&&f(i+1,m),M=[];for(let e=s;e<=i;e++)M.push(e);const h=M.map(e=>g.createElement(P.Button,{className:D.classNames({"k-selected":a===e}),key:e,fillMode:"flat",themeColor:"primary",size:r,rounded:null,role:"button","aria-label":l.translateMessage(o,v)+" "+e,"aria-current":a===e?!0:void 0,onClick:c=>b(c,e),tabIndex:d?-1:void 0},e));return g.createElement("div",{className:"k-pager-numbers",ref:k},y,h,B)};exports.PagerNumericButtons=x;