Spaces:
Runtime error
Runtime error
; | |
const utils = require('./utils'); | |
const colors = require('ansi-colors'); | |
const styles = { | |
default: colors.noop, | |
noop: colors.noop, | |
/** | |
* Modifiers | |
*/ | |
set inverse(custom) { | |
this._inverse = custom; | |
}, | |
get inverse() { | |
return this._inverse || utils.inverse(this.primary); | |
}, | |
set complement(custom) { | |
this._complement = custom; | |
}, | |
get complement() { | |
return this._complement || utils.complement(this.primary); | |
}, | |
/** | |
* Main color | |
*/ | |
primary: colors.cyan, | |
/** | |
* Main palette | |
*/ | |
success: colors.green, | |
danger: colors.magenta, | |
strong: colors.bold, | |
warning: colors.yellow, | |
muted: colors.dim, | |
disabled: colors.gray, | |
dark: colors.dim.gray, | |
underline: colors.underline, | |
set info(custom) { | |
this._info = custom; | |
}, | |
get info() { | |
return this._info || this.primary; | |
}, | |
set em(custom) { | |
this._em = custom; | |
}, | |
get em() { | |
return this._em || this.primary.underline; | |
}, | |
set heading(custom) { | |
this._heading = custom; | |
}, | |
get heading() { | |
return this._heading || this.muted.underline; | |
}, | |
/** | |
* Statuses | |
*/ | |
set pending(custom) { | |
this._pending = custom; | |
}, | |
get pending() { | |
return this._pending || this.primary; | |
}, | |
set submitted(custom) { | |
this._submitted = custom; | |
}, | |
get submitted() { | |
return this._submitted || this.success; | |
}, | |
set cancelled(custom) { | |
this._cancelled = custom; | |
}, | |
get cancelled() { | |
return this._cancelled || this.danger; | |
}, | |
/** | |
* Special styling | |
*/ | |
set typing(custom) { | |
this._typing = custom; | |
}, | |
get typing() { | |
return this._typing || this.dim; | |
}, | |
set placeholder(custom) { | |
this._placeholder = custom; | |
}, | |
get placeholder() { | |
return this._placeholder || this.primary.dim; | |
}, | |
set highlight(custom) { | |
this._highlight = custom; | |
}, | |
get highlight() { | |
return this._highlight || this.inverse; | |
} | |
}; | |
styles.merge = (options = {}) => { | |
if (options.styles && typeof options.styles.enabled === 'boolean') { | |
colors.enabled = options.styles.enabled; | |
} | |
if (options.styles && typeof options.styles.visible === 'boolean') { | |
colors.visible = options.styles.visible; | |
} | |
let result = utils.merge({}, styles, options.styles); | |
delete result.merge; | |
for (let key of Object.keys(colors)) { | |
if (!result.hasOwnProperty(key)) { | |
Reflect.defineProperty(result, key, { get: () => colors[key] }); | |
} | |
} | |
for (let key of Object.keys(colors.styles)) { | |
if (!result.hasOwnProperty(key)) { | |
Reflect.defineProperty(result, key, { get: () => colors[key] }); | |
} | |
} | |
return result; | |
}; | |
module.exports = styles; | |