diff options
author | Minteck <contact@minteck.org> | 2022-02-12 10:33:06 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-12 10:33:06 +0100 |
commit | 01160246e4a0c0052181c72a53737e356ea7d02d (patch) | |
tree | c6f8ea675f9147d4c06ef503697fb35d58493991 /node_modules/prompts/lib/util/entriesToDisplay.js | |
parent | af898a152a14e31bdbcbbedb952ad333697553ef (diff) | |
download | twilight-01160246e4a0c0052181c72a53737e356ea7d02d.tar.gz twilight-01160246e4a0c0052181c72a53737e356ea7d02d.tar.bz2 twilight-01160246e4a0c0052181c72a53737e356ea7d02d.zip |
First commit
Diffstat (limited to 'node_modules/prompts/lib/util/entriesToDisplay.js')
-rw-r--r-- | node_modules/prompts/lib/util/entriesToDisplay.js | 21 |
1 files changed, 21 insertions, 0 deletions
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 }; +}; |