@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
52 lines • 4.07 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} pageNumber
* @param {?} currentPage
* @param {?} spacing
* @return {?}
*/
export default function buildPaginationArray(pageNumber, currentPage, spacing) {
/** @type {?} */
const pageArray = [];
/** @type {?} */
const startingPosition = Math.max(currentPage - spacing, 1);
/** @type {?} */
const endPosition = Math.min(currentPage + spacing, pageNumber);
for (let i = startingPosition; i <= endPosition; i++) {
pageArray.push(i);
}
if (currentPage - spacing > 1) {
appendFirstPages(pageArray);
}
if (currentPage + spacing < pageNumber) {
appendLastPages(pageArray, pageNumber);
}
return pageArray;
}
/**
* @param {?} array
* @return {?}
*/
function appendFirstPages(array) {
/** @type {?} */
const initialValue = array[0];
if (initialValue - 1 > 1) {
array.unshift('...');
}
array.unshift(1);
}
/**
* @param {?} array
* @param {?} lastPageNumber
* @return {?}
*/
function appendLastPages(array, lastPageNumber) {
if (array[array.length - 1] + 1 < lastPageNumber) {
array.push('...');
}
array.push(lastPageNumber);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrdXNoa2kvbmctc3VrYS8iLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE1BQU0sQ0FBQyxPQUFPLFVBQVUsb0JBQW9CLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxPQUFPOztVQUNyRSxTQUFTLEdBQUcsRUFBRTs7VUFFZCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDOztVQUNyRCxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUUvRCxLQUFLLElBQUksQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEQsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUU7UUFDN0IsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDN0I7SUFFRCxJQUFJLFdBQVcsR0FBRyxPQUFPLEdBQUcsVUFBVSxFQUFFO1FBQ3RDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDeEM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDOzs7OztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBSzs7VUFDdkIsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFN0IsSUFBSSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RCO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDOzs7Ozs7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFLLEVBQUUsY0FBYztJQUM1QyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLEVBQUU7UUFDaEQsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQjtJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkUGFnaW5hdGlvbkFycmF5KHBhZ2VOdW1iZXIsIGN1cnJlbnRQYWdlLCBzcGFjaW5nKSB7XG4gIGNvbnN0IHBhZ2VBcnJheSA9IFtdO1xuXG4gIGNvbnN0IHN0YXJ0aW5nUG9zaXRpb24gPSBNYXRoLm1heChjdXJyZW50UGFnZSAtIHNwYWNpbmcsIDEpO1xuICBjb25zdCBlbmRQb3NpdGlvbiA9IE1hdGgubWluKGN1cnJlbnRQYWdlICsgc3BhY2luZywgcGFnZU51bWJlcik7XG5cbiAgZm9yIChsZXQgaSA9IHN0YXJ0aW5nUG9zaXRpb247IGkgPD0gZW5kUG9zaXRpb247IGkrKykge1xuICAgIHBhZ2VBcnJheS5wdXNoKGkpO1xuICB9XG5cbiAgaWYgKGN1cnJlbnRQYWdlIC0gc3BhY2luZyA+IDEpIHtcbiAgICBhcHBlbmRGaXJzdFBhZ2VzKHBhZ2VBcnJheSk7XG4gIH1cblxuICBpZiAoY3VycmVudFBhZ2UgKyBzcGFjaW5nIDwgcGFnZU51bWJlcikge1xuICAgIGFwcGVuZExhc3RQYWdlcyhwYWdlQXJyYXksIHBhZ2VOdW1iZXIpO1xuICB9XG5cbiAgcmV0dXJuIHBhZ2VBcnJheTtcbn1cblxuZnVuY3Rpb24gYXBwZW5kRmlyc3RQYWdlcyhhcnJheSkge1xuICBjb25zdCBpbml0aWFsVmFsdWUgPSBhcnJheVswXTtcblxuICBpZiAoaW5pdGlhbFZhbHVlIC0gMSA+IDEpIHtcbiAgICBhcnJheS51bnNoaWZ0KCcuLi4nKTtcbiAgfVxuXG4gIGFycmF5LnVuc2hpZnQoMSk7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZExhc3RQYWdlcyhhcnJheSwgbGFzdFBhZ2VOdW1iZXIpIHtcbiAgaWYgKGFycmF5W2FycmF5Lmxlbmd0aCAtIDFdICsgMSA8IGxhc3RQYWdlTnVtYmVyKSB7XG4gICAgYXJyYXkucHVzaCgnLi4uJyk7XG4gIH1cblxuICBhcnJheS5wdXNoKGxhc3RQYWdlTnVtYmVyKTtcbn1cbiJdfQ==