Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/threeletters/cli-gui2
Beautiful and functional console interface. Quickly create user-friendly interfaces. (Works over SSH)
https://github.com/threeletters/cli-gui2
cli-gui nodejs npm-package
Last synced: 1 day ago
JSON representation
Beautiful and functional console interface. Quickly create user-friendly interfaces. (Works over SSH)
- Host: GitHub
- URL: https://github.com/threeletters/cli-gui2
- Owner: ThreeLetters
- License: agpl-3.0
- Created: 2016-12-06T02:11:30.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-01-11T16:59:22.000Z (almost 7 years ago)
- Last Synced: 2024-10-12T09:29:12.600Z (about 1 month ago)
- Topics: cli-gui, nodejs, npm-package
- Language: JavaScript
- Homepage:
- Size: 64.5 KB
- Stars: 6
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CLI-GUI2
![cligui](https://cloud.githubusercontent.com/assets/13282284/24179552/2f214a24-0e86-11e7-8e91-ba859d606799.png)CLI-GUI - but much better. Graphical interface in command line.
# Features
1. List
2. Checklist
3. Search
4. Table
5. Prompt
6. Guided prompt
7. Log
8. Terminal
9. Box
10. Editor# Documentation
## Installation
> npm install cligui2## Usage
```js
var CliGui = require('cligui2');
var interface = new CliGui();
```#### interface.stop - Stop interface
This stops the interface completely#### interface.done - Remove layer
Used to remove "layers".#### interface.reset - Reset interface
Resets interface#### interface.addListener
Arguments: target,functionAdds a listener to a target
Available targets:
1. key - Key presses#### interface.removeListener
Arguments: target,functionRemoves a listener from a target
#### interface.clearListeners
Arguments: targetclears listeners from a target
#### interface.list - List items
Arguments: title,items,callThe list function is very flexible. It can be called in four different ways.
1. Options argument as an array of strings, call argument a function
2. Options argument as an array of strings, call argument as an array of functions
3. Options argument as an array of objects
4. Options argument as an objectExample:
```js
interface.list("This is a list",["a","b","c","d"],function(main,chosen) {})
interface.list("Another way",["a","b","c"],[
function(main) {},
function(main) {},
function(main) {}
])interface.list("Again Another way",[
{
name: "a",
call: function(main) {}
},
{
name: "b",
call: function(main) {}
}
])interface.list("The fourth way",{
a: function(main) {},
b: function(main) {},
c: function(main) {}
})```
#### interface.checklist - List items as a checklist
Arguments: title,items,callThe checklist function is also as flexible as the list function. For usage, please refer to the list documentation. A option can also be checked on by default. To do so please set `checked` to true.
Example:
```js
interface.checklist("A is checked on by default",[
{
name: "a",
checked: true,
call: function(main) {}
},
{
name: "b",
call: function(main) {}
}
])
```#### interface.search - List items as a searchable list
Arguments: title,items,callUsage is same as the usage for the List function
#### interface.table - List items as a table
Arguments: title,dataData is an object
Example:
```js
interface.table("This is a table",{
thead: ["a","b","c"], // this is the sticky at the top
data: [["hello","this","is"],["a","cool","test"],["tables","are","fun"], // the contents of the table
sizes: [8,8,8], // optional: Sets the size for each column
call: function(main,chosen) { // the callback
}
})
```#### interface.prompt - Prompt the user (text input)
Arguments: title,shadow,callThe prompt funcion prompts the user for a text input.
Example:
```js
interface.prompt("this is a prompt","type something",function(main,output) {})
```
#### interface.gprompt - Guided prompt
Arguments: title,shadow,options,callThe guided prompt function allows for a user-guiding prompt system
Example:
```js
var options = [
{
name: "hello",
description: "Hello world", // optional
options: [ // optional, sets arguments (ex: hello [arg1])
{
name: "arg1",
options: ["a","b","c"], // optional, sets selectable options for the argument
description: "argument 1" // optional
}
]
},
{
name: "hello_again" // spaces are not allowed
}
]
interface.gprompt("this is a guided prompt","type something",options,function(main,output) {})
```
#### interface.log - Display
Arguments: titleReturns: logger
Functions:
1. logger.log(string) - log string
2. logger.slow(string,time,callback) - log string with typing animation
3. logger.clear() - clear display
4. logger.clearRow() - clear recent rowExample:
```js
var logger = interface.log("this is a log display")
logger.log("This is logged onto the display")
```#### interface.terminal - Terminal
Arguments: title,startchar,callbackReturns: logger
Functions:
1. logger.log(string) - log string
2. logger.slow(string,time,callback) - log string with typing animation
3. logger.clear() - clear display
4. logger.clearRow() - clear recent rowExample:
```js
var logger = interface.terminal("this is a terminal",">",function(main,output) {})
logger.log("This is logged onto the display")
```#### interface.box - Popup box
Arguments: x,y,width,height,content,options,callExample:
```js
var logger = interface.log("this is a log display")
function onKey(key) {
if (key == "ESC") {
interface.box(-20,-3,40,6,"Exit?",{
yes: function(m) {
m.done(); // Removes box. BTW, m === interface
m.done(); // removes log
},
no: function(m) {
m.done(); // remove box
}
})
}}interface.addListener("key",onKey); // add keypress listener
logger.log("This is logged onto the display")
```#### interface.editor - File editor
Arguments: file,callbackExample:
```js
interface.editor("./path/to/something.txt",function(main,file_contents,saved?) {})
```