UNPKG

@ozen-ui/kit

Version:

React component library

46 lines (45 loc) 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPaginationRange = void 0; var tslib_1 = require("tslib"); var constants_1 = require("../../constants"); var range_1 = require("../range"); var calculateSiblingIndexes_1 = require("./calculateSiblingIndexes"); var canHaveDotsOrSiblings_1 = require("./canHaveDotsOrSiblings"); var shouldShowDots_1 = require("./shouldShowDots"); var FIRST_PAGE_INDEX = 1; var createPaginationRange = function (_a) { var page = _a.page, pageSize = _a.pageSize, totalCount = _a.totalCount, siblingCount = _a.siblingCount; var totalPageCount = Math.ceil(totalCount / pageSize); var lastPageIndex = totalPageCount; var itemsToShow = 3 + 2 * siblingCount; if (!(0, canHaveDotsOrSiblings_1.canHaveDotsOrSiblings)(siblingCount, totalPageCount)) { return (0, range_1.range)(FIRST_PAGE_INDEX, lastPageIndex); } var _b = (0, calculateSiblingIndexes_1.calculateSiblingIndexes)({ page: page, siblingCount: siblingCount, totalPageCount: totalPageCount }), leftSiblingStartIndex = _b.leftSiblingStartIndex, rightSiblingEndIndex = _b.rightSiblingEndIndex; var _c = (0, shouldShowDots_1.shouldShowDots)({ leftSiblingStartIndex: leftSiblingStartIndex, rightSiblingEndIndex: rightSiblingEndIndex, totalPageCount: totalPageCount, }), shouldShowLeftDots = _c.shouldShowLeftDots, shouldShowRightDots = _c.shouldShowRightDots; if (!shouldShowLeftDots && shouldShowRightDots) { var leftRange = (0, range_1.range)(1, itemsToShow); return tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(leftRange), false), [constants_1.ELLIPSIS, totalPageCount], false); } if (shouldShowLeftDots && !shouldShowRightDots) { var rightRange = (0, range_1.range)(totalPageCount - itemsToShow + 1, totalPageCount); return tslib_1.__spreadArray([FIRST_PAGE_INDEX, constants_1.ELLIPSIS], tslib_1.__read(rightRange), false); } if (shouldShowLeftDots && shouldShowRightDots) { var middleRange = (0, range_1.range)(leftSiblingStartIndex, rightSiblingEndIndex); return tslib_1.__spreadArray(tslib_1.__spreadArray([ FIRST_PAGE_INDEX, constants_1.ELLIPSIS ], tslib_1.__read(middleRange), false), [ constants_1.ELLIPSIS, lastPageIndex, ], false); } return (0, range_1.range)(FIRST_PAGE_INDEX, lastPageIndex); }; exports.createPaginationRange = createPaginationRange;