| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- 'use strict';
 
- var _ = {
 
-   isString: require('lodash/isString'),
 
-   isNumber: require('lodash/isNumber'),
 
-   extend: require('lodash/extend'),
 
-   isFunction: require('lodash/isFunction'),
 
- };
 
- /**
 
-  * Choice object
 
-  * Normalize input as choice object
 
-  * @constructor
 
-  * @param {Number|String|Object} val  Choice value. If an object is passed, it should contains
 
-  *                                    at least one of `value` or `name` property
 
-  */
 
- module.exports = class Choice {
 
-   constructor(val, answers) {
 
-     // Don't process Choice and Separator object
 
-     if (val instanceof Choice || val.type === 'separator') {
 
-       // eslint-disable-next-line no-constructor-return
 
-       return val;
 
-     }
 
-     if (_.isString(val) || _.isNumber(val)) {
 
-       this.name = String(val);
 
-       this.value = val;
 
-       this.short = String(val);
 
-     } else {
 
-       _.extend(this, val, {
 
-         name: val.name || val.value,
 
-         value: 'value' in val ? val.value : val.name,
 
-         short: val.short || val.name || val.value,
 
-       });
 
-     }
 
-     if (_.isFunction(val.disabled)) {
 
-       this.disabled = val.disabled(answers);
 
-     } else {
 
-       this.disabled = val.disabled;
 
-     }
 
-   }
 
- };
 
 
  |