| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | 'use strict';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;
 |