| 'use strict'; | 
|   | 
| const StringPrompt = require('../types/string'); | 
|   | 
| class ListPrompt extends StringPrompt { | 
|   constructor(options = {}) { | 
|     super(options); | 
|     this.sep = this.options.separator || /, */; | 
|     this.initial = options.initial || ''; | 
|   } | 
|   | 
|   split(input = this.value) { | 
|     return input ? String(input).split(this.sep) : []; | 
|   } | 
|   | 
|   format() { | 
|     let style = this.state.submitted ? this.styles.primary : val => val; | 
|     return this.list.map(style).join(', '); | 
|   } | 
|   | 
|   async submit(value) { | 
|     let result = this.state.error || await this.validate(this.list, this.state); | 
|     if (result !== true) { | 
|       this.state.error = result; | 
|       return super.submit(); | 
|     } | 
|     this.value = this.list; | 
|     return super.submit(); | 
|   } | 
|   | 
|   get list() { | 
|     return this.split(); | 
|   } | 
| } | 
|   | 
| module.exports = ListPrompt; |