From 01160246e4a0c0052181c72a53737e356ea7d02d Mon Sep 17 00:00:00 2001 From: Minteck Date: Sat, 12 Feb 2022 10:33:06 +0100 Subject: First commit --- node_modules/prompts/lib/util/entriesToDisplay.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 node_modules/prompts/lib/util/entriesToDisplay.js (limited to 'node_modules/prompts/lib/util/entriesToDisplay.js') diff --git a/node_modules/prompts/lib/util/entriesToDisplay.js b/node_modules/prompts/lib/util/entriesToDisplay.js new file mode 100644 index 0000000..5f6efbb --- /dev/null +++ b/node_modules/prompts/lib/util/entriesToDisplay.js @@ -0,0 +1,21 @@ +'use strict'; + +/** + * 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 + */ +module.exports = (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 }; +}; -- cgit