UNPKG

neo-neo-bblessed

Version:

A fork of neo-blessed (which is a fork of blessed) with bug fixes and maintenance.

81 lines (62 loc) 1.33 kB
/** * line.js - line element for blessed * Copyright (c) 2013-2015, Christopher Jeffrey and contributors (MIT License). * https://github.com/chjj/blessed */ /** * Modules */ const Node = require('./node'); const Box = require('./box'); /** * Type definitions */ interface LineOptions { orientation?: 'vertical' | 'horizontal'; type?: string; ch?: string; width?: number; height?: number; [key: string]: any; } interface Border { type: string; __proto__: any; } interface LineInterface extends Box { type: string; ch: string; border: Border; style: any; } /** * Line */ function Line(this: LineInterface, options?: LineOptions) { if (!(this instanceof Node)) { return new (Line as any)(options); } options = options || {}; const orientation = options.orientation || 'vertical'; delete options.orientation; if (orientation === 'vertical') { options.width = 1; } else { options.height = 1; } Box.call(this, options); this.ch = !options.type || options.type === 'line' ? orientation === 'horizontal' ? '─' : '│' : options.ch || ' '; this.border = { type: 'bg', __proto__: this }; this.style.border = this.style; } Line.prototype.__proto__ = Box.prototype; Line.prototype.type = 'line'; /** * Expose */ module.exports = Line;