UNPKG

@cascade/pagination

Version:

Array and Service Pagination powered by Cascade.

48 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function createPage(data, count) { return ({ data: data, count: count }); } exports.createPage = createPage; function pageArray(results, page, pageSize, sortedColumn, sortedDirection) { if (results && sortedColumn) { results.sort(function (a, b) { var aValue = (a[sortedColumn] || '').toString(); var bValue = (b[sortedColumn] || '').toString(); var ax = [], bx = []; aValue.replace(/(\d+)|(\D+)/g, function (_, $1, $2) { ax.push([$1 || Infinity, $2 || ""]); return ''; }); bValue.replace(/(\d+)|(\D+)/g, function (_, $1, $2) { bx.push([$1 || Infinity, $2 || ""]); return ''; }); while (ax.length && bx.length) { var an = ax.shift(); var bn = bx.shift(); var nn = (an[0] - bn[0]) || an[1].localeCompare(bn[1]); if (nn) return nn; } return ax.length - bx.length; }); if (sortedDirection === undefined) { sortedDirection = true; } else { sortedDirection = !!sortedDirection; } if (!sortedDirection) { results.reverse(); } } return Promise.resolve(results ? createPage(results.slice(page * pageSize, (page + 1) * pageSize), results.length) : createPage([], 0)); } exports.pageArray = pageArray; //# sourceMappingURL=PageUtil.js.map