UNPKG

@tapie-kr/inspire-react

Version:

React Component Collection for INSPIRE

16 lines (14 loc) 1.37 kB
/* eslint-disable */ /* * INSPIRE : Creative Kit * React Component Collection for INSPIRE * * This file is generated automatically. Do not modify it manually * Generated at : 2025. 3. 4. 오후 6:18:13 * @tapie-kr/inspire-react version: 0.2.15 * * (c) 2025 TAPIE. All rights reserved. * MIT License */ function getCurrentItems(min,max,visiblePage,currentPage){function getRange(size,c){if(size%2){const half=(size-1)/2;return [c-half,c+half]}else {return [c-size/2,c+(size/2-1)]}}function clamp(l,r,size){let length=r-l+1;if(length<size){l-=size-length;}if(l<min){l=min;r=l+size-1;}if(r>max){r=max;l=r-size+1;}return [l,r]}let[left,right]=getRange(visiblePage,currentPage);[left,right]=clamp(left,right,visiblePage);if(right>=max){const result=[];for(let i=left;i<=right;i++){result.push({type:"page",value:i});}return result}else {if(right===max-1){const blockSize=visiblePage-1;let[l,r]=getRange(blockSize,currentPage);[l,r]=clamp(l,r,blockSize);const result=[];for(let i=l;i<=r;i++){result.push({type:"page",value:i});}result.push({type:"page",value:max});return result}else {const blockSize=visiblePage-2;let[l,r]=getRange(blockSize,currentPage);[l,r]=clamp(l,r,blockSize);const result=[];for(let i=l;i<=r;i++){result.push({type:"page",value:i});}result.push({type:"ellipsis"});result.push({type:"page",value:max});return result}}} export { getCurrentItems };