UNPKG

@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
"use strict"; 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