You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					49 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					49 lines
				
				1.2 KiB
			| 
											3 years ago
										 | 'use strict' | ||
|  | var consoleControl = require('console-control-strings') | ||
|  | var renderTemplate = require('./render-template.js') | ||
|  | var validate = require('aproba') | ||
|  | 
 | ||
|  | var Plumbing = module.exports = function (theme, template, width) { | ||
|  |   if (!width) width = 80 | ||
|  |   validate('OAN', [theme, template, width]) | ||
|  |   this.showing = false | ||
|  |   this.theme = theme | ||
|  |   this.width = width | ||
|  |   this.template = template | ||
|  | } | ||
|  | Plumbing.prototype = {} | ||
|  | 
 | ||
|  | Plumbing.prototype.setTheme = function (theme) { | ||
|  |   validate('O', [theme]) | ||
|  |   this.theme = theme | ||
|  | } | ||
|  | 
 | ||
|  | Plumbing.prototype.setTemplate = function (template) { | ||
|  |   validate('A', [template]) | ||
|  |   this.template = template | ||
|  | } | ||
|  | 
 | ||
|  | Plumbing.prototype.setWidth = function (width) { | ||
|  |   validate('N', [width]) | ||
|  |   this.width = width | ||
|  | } | ||
|  | 
 | ||
|  | Plumbing.prototype.hide = function () { | ||
|  |   return consoleControl.gotoSOL() + consoleControl.eraseLine() | ||
|  | } | ||
|  | 
 | ||
|  | Plumbing.prototype.hideCursor = consoleControl.hideCursor | ||
|  | 
 | ||
|  | Plumbing.prototype.showCursor = consoleControl.showCursor | ||
|  | 
 | ||
|  | Plumbing.prototype.show = function (status) { | ||
|  |   var values = Object.create(this.theme) | ||
|  |   for (var key in status) { | ||
|  |     values[key] = status[key] | ||
|  |   } | ||
|  | 
 | ||
|  |   return renderTemplate(this.width, this.template, values).trim() + | ||
|  |          consoleControl.color('reset') + | ||
|  |          consoleControl.eraseLine() + consoleControl.gotoSOL() | ||
|  | } |