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.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							48 lines
						
					
					
						
							1.2 KiB
						
					
					
				'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() | 
						|
}
 | 
						|
 |