carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 2.5 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("../pager.style.js"),n=require("../../number/number.component.js"),a=require("../../../__internal__/utils/helpers/events/events.js"),i=require("../../../__internal__/utils/helpers/guid/index.js"),l=require("./pager-navigation-link.component.js"),s=require("../../../hooks/__internal__/useLocale/useLocale.js");function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){o(e,t,r[t])}))}return e}exports.default=({pageSize:o,currentPage:c,setCurrentPage:d,onNext:g,onPrevious:p,onFirst:b,onLast:j,onPagination:m,pageCount:f,showFirstAndLastButtons:h=!0,showPreviousAndNextButtons:x=!0,showPageCount:y=!0,interactivePageNumber:P=!0,hideDisabledElements:v=!1,smallScreenBreakpoint:S})=>{const _=s.default(),N=`Pager_${t.useRef(i.default()).current}`,k=`${_.pager.pageX()} ${c.toString()} ${_.pager.ofY(f)}`,C=f<=1,O=2===f,q={currentPage:c,pageSize:o,pageCount:f,onPagination:m},w=e=>{const t=+e.target.value;return 0===f?(d(0),m(0,o,"input"),0):t<=0||Number.isNaN(t)?(d(1),m(1,o,"input"),1):t>f?(d(f),m(f,o,"input"),f):(d(t),m(t,o,"input"),t)};return e.jsxs(r.StyledPagerNavigation,{smallScreenBreakpoint:S,children:[!C&&e.jsxs(e.Fragment,{children:[!O&&h&&e.jsx(l.default,u({type:"first",hideDisabledElements:v,onClick:b},q)),x&&e.jsx(l.default,u({type:"previous",hideDisabledElements:v,onClick:p},q))]}),y&&(P?e.jsxs(r.StyledPagerNavInner,{children:[e.jsx("label",{htmlFor:N,children:e.jsx(r.StyledPagerNoSelect,{children:_.pager.pageX()})}),e.jsx(n.Number,{value:c.toString(),"data-element":"current-page",onChange:e=>{d(+e.target.value)},onBlur:w,id:N,onKeyUp:e=>!!a.default.isEnterKey(e)&&w(e)}),e.jsx(r.StyledPagerNoSelect,{"data-element":"max-pages",children:_.pager.ofY(f)})]}):e.jsx(r.StyledPagerNavLabel,{"data-element":"current-page-label","data-role":"current-page-label",id:N,"aria-live":"polite",children:k})),!C&&e.jsxs(e.Fragment,{children:[x&&e.jsx(l.default,u({type:"next",hideDisabledElements:v,onClick:g},q)),!O&&h&&e.jsx(l.default,u({type:"last",hideDisabledElements:v,onClick:j},q))]})]})};