File size: 897 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
'use strict';
const hint = '(Use <shift>+<up/down> to sort)';
const Prompt = require('./select');
class Sort extends Prompt {
constructor(options) {
super({ ...options, reorder: false, sort: true, multiple: true });
this.state.hint = [this.options.hint, hint].find(this.isValue.bind(this));
}
indicator() {
return '';
}
async renderChoice(choice, i) {
let str = await super.renderChoice(choice, i);
let sym = this.symbols.identicalTo + ' ';
let pre = (this.index === i && this.sorting) ? this.styles.muted(sym) : ' ';
if (this.options.drag === false) pre = '';
if (this.options.numbered === true) {
return pre + `${i + 1} - ` + str;
}
return pre + str;
}
get selected() {
return this.choices;
}
submit() {
this.value = this.choices.map(choice => choice.value);
return super.submit();
}
}
module.exports = Sort;
|