@lskjs/bots-base
Version:
LSK.js plugin for @lskjs/bots module for telegram, slack, discord, whatsapp, twitter, instagram and vk bots creation
66 lines (64 loc) • 2.48 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
exports.getPages = getPages;
exports.getPagination = getPagination;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _range = _interopRequireDefault(require("lodash/range"));
var _excluded = ["first", "last", "current"];
// «
// »
function getPages() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref$page = _ref.page,
page = _ref$page === void 0 ? 1 : _ref$page,
_ref$max = _ref.max,
max = _ref$max === void 0 ? 10 : _ref$max,
_ref$size = _ref.size,
size = _ref$size === void 0 ? 5 : _ref$size;
var half = Math.floor(size / 2);
var offset = page - half;
if (offset >= size + half) offset -= half; // TODO: чтото в этом роде, не дотестировал
if (offset < 1) offset = 1;
var pages = (0, _range["default"])(size).slice(0, max).map(function (p) {
return p + offset;
});
if (pages[0] > 1) pages[0] = 1;
var last = pages.length - 1;
if (pages[last] < max) pages[last] = max;
// if (pages[0] < 1) pages = range(1, size);
// pages = pages.slice(0, size + 1);
return pages;
}
function getPagination() {
var initProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _initProps$first = initProps.first,
first = _initProps$first === void 0 ? function (page) {
return "\xAB ".concat(page);
} : _initProps$first,
_initProps$last = initProps.last,
last = _initProps$last === void 0 ? function (page) {
return "".concat(page, " \xBB");
} : _initProps$last,
_initProps$current = initProps.current,
current = _initProps$current === void 0 ? function (page) {
return "- ".concat(page, " -");
} : _initProps$current,
props = (0, _objectWithoutProperties2["default"])(initProps, _excluded);
var currentPage = props.page,
max = props.max;
var pages = getPages(props);
if (pages.length <= 1) return [];
return pages.map(function (page) {
return {
page: page,
text: page === currentPage ? current(page) : page === 1 ? first(page) : page === max ? last(page) : page.toString()
};
});
}
var _default = getPagination;
exports["default"] = _default;
//# sourceMappingURL=getPagination.js.map