| '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; |