var entriesToDisplay;
var hasRequiredEntriesToDisplay;
function requireEntriesToDisplay() {
  if (hasRequiredEntriesToDisplay) return entriesToDisplay;
  hasRequiredEntriesToDisplay = 1;
  /**
   * Determine what entries should be displayed on the screen, based on the
   * currently selected index and the maximum visible. Used in list-based
   * prompts like `select` and `multiselect`.
   *
   * @param {number} cursor the currently selected entry
   * @param {number} total the total entries available to display
   * @param {number} [maxVisible] the number of entries that can be displayed
   */

  entriesToDisplay = (cursor, total, maxVisible) => {
    maxVisible = maxVisible || total;
    let startIndex = Math.min(total - maxVisible, cursor - Math.floor(maxVisible / 2));
    if (startIndex < 0) startIndex = 0;
    let endIndex = Math.min(startIndex + maxVisible, total);
    return {
      startIndex,
      endIndex
    };
  };
  return entriesToDisplay;
}

export { requireEntriesToDisplay as __require };
