diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-05-12 17:42:09 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-05-13 12:48:36 -0300 |
commit | 6ea74c268a12325296a1d2e7fc31b02030ddb8bc (patch) | |
tree | 5da94d93acb64e7ab650d240d6cb23c659ad02ca /ui/WrapLabel.js | |
parent | e783bcf8522fa68e6b221afd18469c3c265b1bb7 (diff) |
use ESM module syntax & minor cleanups
The biggest change here is moving various element classes under more scope-specific directories, which helps to avoid circular dependencies and is just cleaner to navigate and expand in the future. Otherwise this is a largely uncritical port to ESM module syntax! There are probably a number of changes and other cleanups that remain much needed. Whenever I make changes to tui-lib it's hard to believe it's already been <INSERT COUNTING NUMBER HERE> years since the previous time. First commits are from January 2017, and the code originates a month earlier in KAaRMNoD!
Diffstat (limited to 'ui/WrapLabel.js')
-rw-r--r-- | ui/WrapLabel.js | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/ui/WrapLabel.js b/ui/WrapLabel.js deleted file mode 100644 index babf462..0000000 --- a/ui/WrapLabel.js +++ /dev/null @@ -1,44 +0,0 @@ -const ansi = require('../util/ansi') -const wrap = require('word-wrap') - -const Label = require('./Label') - -module.exports = class WrapLabel extends Label { - // A word-wrapping text display. Given a width, wraps text to fit. - - constructor(...args) { - super(...args) - } - - fixLayout() { - // Override Label.fixLayout to do nothing. We don't want to make the - // width of this label be set to the content of the text! (That would - // defeat the entire point of word wrapping.) - } - - writeTextTo(writable) { - const lines = this.getWrappedLines() - for (let i = 0; i < lines.length; i++) { - writable.write(ansi.moveCursor(this.absTop + i, this.absLeft)) - writable.write(lines[i]) - } - } - - getWrappedLines() { - if (this.text.trim().length === 0) { - return [] - } - - const options = {width: this.w, indent: ''} - return wrap(this.text, options).split('\n') - .map(l => l.trim()) - } - - get h() { - return this.getWrappedLines().length - } - - set h(newHeight) { - // Do nothing. Height is computed on the fly. - } -} |