.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / enquirer / lib / state.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/enquirer/lib/state.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/enquirer/lib/state.js
new file mode 100644 (file)
index 0000000..501890b
--- /dev/null
@@ -0,0 +1,69 @@
+'use strict';
+
+const { define, width } = require('./utils');
+
+class State {
+  constructor(prompt) {
+    let options = prompt.options;
+    define(this, '_prompt', prompt);
+    this.type = prompt.type;
+    this.name = prompt.name;
+    this.message = '';
+    this.header = '';
+    this.footer = '';
+    this.error = '';
+    this.hint = '';
+    this.input = '';
+    this.cursor = 0;
+    this.index = 0;
+    this.lines = 0;
+    this.tick = 0;
+    this.prompt = '';
+    this.buffer = '';
+    this.width = width(options.stdout || process.stdout);
+    Object.assign(this, options);
+    this.name = this.name || this.message;
+    this.message = this.message || this.name;
+    this.symbols = prompt.symbols;
+    this.styles = prompt.styles;
+    this.required = new Set();
+    this.cancelled = false;
+    this.submitted = false;
+  }
+
+  clone() {
+    let state = { ...this };
+    state.status = this.status;
+    state.buffer = Buffer.from(state.buffer);
+    delete state.clone;
+    return state;
+  }
+
+  set color(val) {
+    this._color = val;
+  }
+  get color() {
+    let styles = this.prompt.styles;
+    if (this.cancelled) return styles.cancelled;
+    if (this.submitted) return styles.submitted;
+    let color = this._color || styles[this.status];
+    return typeof color === 'function' ? color : styles.pending;
+  }
+
+  set loading(value) {
+    this._loading = value;
+  }
+  get loading() {
+    if (typeof this._loading === 'boolean') return this._loading;
+    if (this.loadingChoices) return 'choices';
+    return false;
+  }
+
+  get status() {
+    if (this.cancelled) return 'cancelled';
+    if (this.submitted) return 'submitted';
+    return 'pending';
+  }
+}
+
+module.exports = State;