UNPKG

@clayui/shared

Version:
45 lines (44 loc) 1.27 kB
import React from "react"; function 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.createElement( EllipsisComponent, { items: removedItems, key: "ellipsisComponent", spritemap, ...ellipsisProps } ) ]; } return removedItems; } function getEllipsisItems(config, ellipsisBuffer, activeIndex = 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; } export { getEllipsisItems };