UNPKG

@clayui/shared

Version:

ClayShared component

48 lines (47 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEllipsisItems = void 0; var _react = _interopRequireDefault(require("react")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /** * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com> * SPDX-License-Identifier: BSD-3-Clause */ const getBufferList = (start, end, config) => { const { EllipsisComponent, ellipsisProps, items, spritemap } = config; const removedItems = items.slice(start, Math.max(end, start)); if (removedItems.length > 1) { return [/*#__PURE__*/_react.default.createElement(EllipsisComponent, _extends({ items: removedItems, key: "ellipsisComponent", spritemap: spritemap }, ellipsisProps))]; } return removedItems; }; const getEllipsisItems = function (config, ellipsisBuffer) { let activeIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; const { items } = config; const lastIndex = items.length - 1; const leftBufferEnd = activeIndex - ellipsisBuffer; const rightBufferStart = activeIndex + ellipsisBuffer + 1; const leftBuffer = getBufferList(1, leftBufferEnd, config); const rightBuffer = getBufferList(rightBufferStart, lastIndex, config); const newArray = [items[0], ...leftBuffer, ...items.slice(Math.max(activeIndex - ellipsisBuffer, 1), // Add 1 to account for active index Math.min(activeIndex + ellipsisBuffer + 1, lastIndex)), ...rightBuffer]; if (items.length > 1) { newArray.push(items[lastIndex]); } return newArray; }; exports.getEllipsisItems = getEllipsisItems;