« get me outta code hell

use ESM module syntax & minor cleanups - tui-lib - Pure Node.js library for making visual command-line programs (ala vim, ncdu)
about summary refs log tree commit diff
path: root/ui/WrapLabel.js
diff options
context:
space:
mode:
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
commit6ea74c268a12325296a1d2e7fc31b02030ddb8bc (patch)
tree5da94d93acb64e7ab650d240d6cb23c659ad02ca /ui/WrapLabel.js
parente783bcf8522fa68e6b221afd18469c3c265b1bb7 (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.js44
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.
-  }
-}