@tapie-kr/inspire-react
Version:
React Component Collection for INSPIRE
16 lines (14 loc) • 1.37 kB
JavaScript
/* 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 };