mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2025-05-22 05:54:45 +00:00
.
This commit is contained in:
parent
a004f0ae58
commit
fc725ba36b
7280 changed files with 19 additions and 1796407 deletions
114
node_modules/prompts/lib/elements/toggle.js
generated
vendored
114
node_modules/prompts/lib/elements/toggle.js
generated
vendored
|
@ -1,114 +0,0 @@
|
|||
const color = require('kleur');
|
||||
const Prompt = require('./prompt');
|
||||
const { style, clear } = require('../util');
|
||||
const { cursor, erase } = require('sisteransi');
|
||||
|
||||
/**
|
||||
* TogglePrompt Base Element
|
||||
* @param {Object} opts Options
|
||||
* @param {String} opts.message Message
|
||||
* @param {Boolean} [opts.initial=false] Default value
|
||||
* @param {String} [opts.active='no'] Active label
|
||||
* @param {String} [opts.inactive='off'] Inactive label
|
||||
* @param {Stream} [opts.stdin] The Readable stream to listen to
|
||||
* @param {Stream} [opts.stdout] The Writable stream to write readline data to
|
||||
*/
|
||||
class TogglePrompt extends Prompt {
|
||||
constructor(opts={}) {
|
||||
super(opts);
|
||||
this.msg = opts.message;
|
||||
this.value = !!opts.initial;
|
||||
this.active = opts.active || 'on';
|
||||
this.inactive = opts.inactive || 'off';
|
||||
this.initialValue = this.value;
|
||||
this.render();
|
||||
}
|
||||
|
||||
reset() {
|
||||
this.value = this.initialValue;
|
||||
this.fire();
|
||||
this.render();
|
||||
}
|
||||
|
||||
abort() {
|
||||
this.done = this.aborted = true;
|
||||
this.fire();
|
||||
this.render();
|
||||
this.out.write('\n');
|
||||
this.close();
|
||||
}
|
||||
|
||||
submit() {
|
||||
this.done = true;
|
||||
this.aborted = false;
|
||||
this.fire();
|
||||
this.render();
|
||||
this.out.write('\n');
|
||||
this.close();
|
||||
}
|
||||
|
||||
deactivate() {
|
||||
if (this.value === false) return this.bell();
|
||||
this.value = false;
|
||||
this.render();
|
||||
}
|
||||
|
||||
activate() {
|
||||
if (this.value === true) return this.bell();
|
||||
this.value = true;
|
||||
this.render();
|
||||
}
|
||||
|
||||
delete() {
|
||||
this.deactivate();
|
||||
}
|
||||
left() {
|
||||
this.deactivate();
|
||||
}
|
||||
right() {
|
||||
this.activate();
|
||||
}
|
||||
down() {
|
||||
this.deactivate();
|
||||
}
|
||||
up() {
|
||||
this.activate();
|
||||
}
|
||||
|
||||
next() {
|
||||
this.value = !this.value;
|
||||
this.fire();
|
||||
this.render();
|
||||
}
|
||||
|
||||
_(c, key) {
|
||||
if (c === ' ') {
|
||||
this.value = !this.value;
|
||||
} else if (c === '1') {
|
||||
this.value = true;
|
||||
} else if (c === '0') {
|
||||
this.value = false;
|
||||
} else return this.bell();
|
||||
this.render();
|
||||
}
|
||||
|
||||
render() {
|
||||
if (this.closed) return;
|
||||
if (this.firstRender) this.out.write(cursor.hide);
|
||||
super.render();
|
||||
|
||||
this.out.write(
|
||||
erase.lines(this.first ? 1 : this.msg.split(/\n/g).length) +
|
||||
cursor.to(0) + [
|
||||
style.symbol(this.done, this.aborted),
|
||||
color.bold(this.msg),
|
||||
style.delimiter(this.done),
|
||||
this.value ? this.inactive : color.cyan().underline(this.inactive),
|
||||
color.gray('/'),
|
||||
this.value ? color.cyan().underline(this.active) : this.active
|
||||
].join(' ')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = TogglePrompt;
|
Loading…
Add table
Add a link
Reference in a new issue