@teaui/core 1.3.7 → 1.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/Buffer.d.ts +9 -4
- package/.dist/Buffer.js +19 -16
- package/.dist/Buffer.js.map +1 -1
- package/.dist/Color.js +8 -12
- package/.dist/Color.js.map +1 -1
- package/.dist/Container.d.ts +4 -4
- package/.dist/Container.js +6 -10
- package/.dist/Container.js.map +1 -1
- package/.dist/Screen.d.ts +40 -11
- package/.dist/Screen.js +134 -97
- package/.dist/Screen.js.map +1 -1
- package/.dist/StringTerminal.d.ts +21 -0
- package/.dist/StringTerminal.js +100 -0
- package/.dist/StringTerminal.js.map +1 -0
- package/.dist/Style.d.ts +1 -1
- package/.dist/Style.js +24 -32
- package/.dist/Style.js.map +1 -1
- package/.dist/System.d.ts +2 -2
- package/.dist/System.js +2 -7
- package/.dist/System.js.map +1 -1
- package/.dist/TestTerminal.d.ts +100 -0
- package/.dist/TestTerminal.js +290 -0
- package/.dist/TestTerminal.js.map +1 -0
- package/.dist/Theme.d.ts +2 -2
- package/.dist/Theme.js +11 -15
- package/.dist/Theme.js.map +1 -1
- package/.dist/UI.d.ts +1 -1
- package/.dist/UI.js +3 -6
- package/.dist/UI.js.map +1 -1
- package/.dist/View.d.ts +8 -8
- package/.dist/View.js +17 -22
- package/.dist/View.js.map +1 -1
- package/.dist/Viewport.d.ts +6 -6
- package/.dist/Viewport.js +26 -30
- package/.dist/Viewport.js.map +1 -1
- package/.dist/ansi.js +25 -43
- package/.dist/ansi.js.map +1 -1
- package/.dist/components/Accordion.d.ts +8 -9
- package/.dist/components/Accordion.js +32 -40
- package/.dist/components/Accordion.js.map +1 -1
- package/.dist/components/Box.d.ts +3 -3
- package/.dist/components/Box.js +27 -31
- package/.dist/components/Box.js.map +1 -1
- package/.dist/components/Button.d.ts +8 -8
- package/.dist/components/Button.js +18 -22
- package/.dist/components/Button.js.map +1 -1
- package/.dist/components/Checkbox.d.ts +7 -7
- package/.dist/components/Checkbox.js +15 -20
- package/.dist/components/Checkbox.js.map +1 -1
- package/.dist/components/Collapsible.d.ts +6 -6
- package/.dist/components/Collapsible.js +16 -20
- package/.dist/components/Collapsible.js.map +1 -1
- package/.dist/components/CollapsibleText.d.ts +6 -6
- package/.dist/components/CollapsibleText.js +22 -26
- package/.dist/components/CollapsibleText.js.map +1 -1
- package/.dist/components/Digits.d.ts +5 -5
- package/.dist/components/Digits.js +7 -11
- package/.dist/components/Digits.js.map +1 -1
- package/.dist/components/Drawer.d.ts +7 -7
- package/.dist/components/Drawer.js +34 -38
- package/.dist/components/Drawer.js.map +1 -1
- package/.dist/components/Dropdown.d.ts +6 -6
- package/.dist/components/Dropdown.js +21 -25
- package/.dist/components/Dropdown.js.map +1 -1
- package/.dist/components/Header.d.ts +5 -5
- package/.dist/components/Header.js +14 -24
- package/.dist/components/Header.js.map +1 -1
- package/.dist/components/HotKey.d.ts +4 -4
- package/.dist/components/HotKey.js +6 -10
- package/.dist/components/HotKey.js.map +1 -1
- package/.dist/components/Input.d.ts +7 -7
- package/.dist/components/Input.js +38 -42
- package/.dist/components/Input.js.map +1 -1
- package/.dist/components/Log.d.ts +5 -5
- package/.dist/components/Log.js +26 -31
- package/.dist/components/Log.js.map +1 -1
- package/.dist/components/Progress.d.ts +4 -4
- package/.dist/components/Progress.js +11 -15
- package/.dist/components/Progress.js.map +1 -1
- package/.dist/components/Scrollable.d.ts +4 -4
- package/.dist/components/Scrollable.js +21 -25
- package/.dist/components/Scrollable.js.map +1 -1
- package/.dist/components/ScrollableList.d.ts +5 -5
- package/.dist/components/ScrollableList.js +13 -17
- package/.dist/components/ScrollableList.js.map +1 -1
- package/.dist/components/Separator.d.ts +5 -5
- package/.dist/components/Separator.js +6 -10
- package/.dist/components/Separator.js.map +1 -1
- package/.dist/components/Slider.d.ts +5 -5
- package/.dist/components/Slider.js +34 -38
- package/.dist/components/Slider.js.map +1 -1
- package/.dist/components/Space.d.ts +5 -5
- package/.dist/components/Space.js +6 -10
- package/.dist/components/Space.js.map +1 -1
- package/.dist/components/Spinner.d.ts +4 -4
- package/.dist/components/Spinner.js +5 -9
- package/.dist/components/Spinner.js.map +1 -1
- package/.dist/components/Stack.d.ts +6 -6
- package/.dist/components/Stack.js +16 -20
- package/.dist/components/Stack.js.map +1 -1
- package/.dist/components/Tabs.d.ts +7 -7
- package/.dist/components/Tabs.js +30 -34
- package/.dist/components/Tabs.js.map +1 -1
- package/.dist/components/Text.d.ts +6 -6
- package/.dist/components/Text.js +19 -23
- package/.dist/components/Text.js.map +1 -1
- package/.dist/components/ToggleGroup.d.ts +7 -7
- package/.dist/components/ToggleGroup.js +20 -24
- package/.dist/components/ToggleGroup.js.map +1 -1
- package/.dist/components/Tree.d.ts +4 -4
- package/.dist/components/Tree.js +17 -21
- package/.dist/components/Tree.js.map +1 -1
- package/.dist/components/Window.d.ts +2 -2
- package/.dist/components/Window.js +2 -6
- package/.dist/components/Window.js.map +1 -1
- package/.dist/components/fonts.d.ts +1 -1
- package/.dist/components/fonts.js +1 -4
- package/.dist/components/fonts.js.map +1 -1
- package/.dist/components/index.d.ts +27 -27
- package/.dist/components/index.js +27 -47
- package/.dist/components/index.js.map +1 -1
- package/.dist/components/types.js +1 -4
- package/.dist/components/types.js.map +1 -1
- package/.dist/components/utility/TrackMouse.d.ts +5 -5
- package/.dist/components/utility/TrackMouse.js +14 -18
- package/.dist/components/utility/TrackMouse.js.map +1 -1
- package/.dist/components/utility/index.d.ts +1 -1
- package/.dist/components/utility/index.js +1 -5
- package/.dist/components/utility/index.js.map +1 -1
- package/.dist/events/index.d.ts +9 -10
- package/.dist/events/index.js +3 -19
- package/.dist/events/index.js.map +1 -1
- package/.dist/events/key.d.ts +17 -3
- package/.dist/events/key.js +6 -13
- package/.dist/events/key.js.map +1 -1
- package/.dist/events/mouse.d.ts +3 -3
- package/.dist/events/mouse.js +12 -24
- package/.dist/events/mouse.js.map +1 -1
- package/.dist/events/translate.d.ts +4 -0
- package/.dist/events/translate.js +84 -0
- package/.dist/events/translate.js.map +1 -0
- package/.dist/events/window.js +1 -2
- package/.dist/geometry.js +4 -11
- package/.dist/geometry.js.map +1 -1
- package/.dist/iTerm2.d.ts +8 -4
- package/.dist/iTerm2.js +5 -9
- package/.dist/iTerm2.js.map +1 -1
- package/.dist/index.d.ts +23 -19
- package/.dist/index.js +21 -37
- package/.dist/index.js.map +1 -1
- package/.dist/inspect.js +23 -28
- package/.dist/inspect.js.map +1 -1
- package/.dist/log.js +9 -17
- package/.dist/log.js.map +1 -1
- package/.dist/managers/FocusManager.d.ts +2 -2
- package/.dist/managers/FocusManager.js +3 -7
- package/.dist/managers/FocusManager.js.map +1 -1
- package/.dist/managers/ModalManager.d.ts +4 -4
- package/.dist/managers/ModalManager.js +5 -9
- package/.dist/managers/ModalManager.js.map +1 -1
- package/.dist/managers/MouseManager.d.ts +4 -4
- package/.dist/managers/MouseManager.js +11 -14
- package/.dist/managers/MouseManager.js.map +1 -1
- package/.dist/managers/TickManager.d.ts +1 -1
- package/.dist/managers/TickManager.js +1 -5
- package/.dist/managers/TickManager.js.map +1 -1
- package/.dist/renderToAnsi.d.ts +12 -0
- package/.dist/renderToAnsi.js +43 -0
- package/.dist/renderToAnsi.js.map +1 -0
- package/.dist/terminal.d.ts +8 -3
- package/.dist/terminal.js +1 -2
- package/.dist/testing.d.ts +44 -0
- package/.dist/testing.js +164 -0
- package/.dist/testing.js.map +1 -0
- package/.dist/util.js +17 -25
- package/.dist/util.js.map +1 -1
- package/LICENSE +0 -3
- package/package.json +9 -31
- package/.dist/sys/alias.d.ts +0 -470
- package/.dist/sys/alias.js +0 -487
- package/.dist/sys/alias.js.map +0 -1
- package/.dist/sys/colors.d.ts +0 -10
- package/.dist/sys/colors.js +0 -285
- package/.dist/sys/colors.js.map +0 -1
- package/.dist/sys/gpmclient.d.ts +0 -11
- package/.dist/sys/gpmclient.js +0 -193
- package/.dist/sys/gpmclient.js.map +0 -1
- package/.dist/sys/index.d.ts +0 -4
- package/.dist/sys/index.js +0 -41
- package/.dist/sys/index.js.map +0 -1
- package/.dist/sys/keys.d.ts +0 -4
- package/.dist/sys/keys.js +0 -531
- package/.dist/sys/keys.js.map +0 -1
- package/.dist/sys/program.d.ts +0 -356
- package/.dist/sys/program.js +0 -3739
- package/.dist/sys/program.js.map +0 -1
- package/.dist/sys/tput.d.ts +0 -297
- package/.dist/sys/tput.js +0 -2708
- package/.dist/sys/tput.js.map +0 -1
- package/.dist/sys/unicode.d.ts +0 -25
- package/.dist/sys/unicode.js +0 -593
- package/.dist/sys/unicode.js.map +0 -1
- package/.dist/sys/usr/linux +0 -0
- package/.dist/sys/usr/windows-ansi +0 -0
- package/.dist/sys/usr/xterm +0 -0
- package/.dist/sys/usr/xterm-256color +0 -0
- package/.dist/sys/usr/xterm.termcap +0 -243
- package/.dist/sys/usr/xterm.terminfo +0 -1977
package/.dist/testing.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test utilities for headless component rendering and interaction.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* const t = testRender(<view>, {width: 40, height: 10})
|
|
6
|
+
* expect(t.terminal.textContent()).toContain('Hello')
|
|
7
|
+
* expect(t.terminal.styleOf('Hello')?.bold).toBe(true)
|
|
8
|
+
*
|
|
9
|
+
* t.sendKey('a')
|
|
10
|
+
* t.sendKey('tab')
|
|
11
|
+
* t.sendKey('return', {ctrl: true})
|
|
12
|
+
* t.sendMouse('mouse.button.down', {x: 5, y: 2})
|
|
13
|
+
*
|
|
14
|
+
* // Re-renders automatically after events, query again:
|
|
15
|
+
* expect(t.terminal.charAt(0, 0)).toBe('a')
|
|
16
|
+
*/
|
|
17
|
+
import { Buffer } from './Buffer.js';
|
|
18
|
+
import { Viewport } from './Viewport.js';
|
|
19
|
+
import { Size } from './geometry.js';
|
|
20
|
+
import { TestTerminal } from './TestTerminal.js';
|
|
21
|
+
import { FocusManager } from './managers/FocusManager.js';
|
|
22
|
+
import { MouseManager } from './managers/MouseManager.js';
|
|
23
|
+
import { ModalManager } from './managers/ModalManager.js';
|
|
24
|
+
import { TickManager } from './managers/TickManager.js';
|
|
25
|
+
import { UnboundSystem } from './System.js';
|
|
26
|
+
class TestScreen {
|
|
27
|
+
#view;
|
|
28
|
+
#buffer;
|
|
29
|
+
#terminal;
|
|
30
|
+
#size;
|
|
31
|
+
#focusManager;
|
|
32
|
+
#mouseManager;
|
|
33
|
+
#modalManager;
|
|
34
|
+
#tickManager;
|
|
35
|
+
#screenProxy = null;
|
|
36
|
+
constructor(view, size) {
|
|
37
|
+
this.#view = view;
|
|
38
|
+
this.#size = new Size(size.width, size.height);
|
|
39
|
+
this.#buffer = new Buffer();
|
|
40
|
+
this.#terminal = new TestTerminal({ cols: size.width, rows: size.height });
|
|
41
|
+
this.#focusManager = new FocusManager();
|
|
42
|
+
this.#mouseManager = new MouseManager();
|
|
43
|
+
this.#modalManager = new ModalManager();
|
|
44
|
+
this.#tickManager = new TickManager(() => this.render());
|
|
45
|
+
// Wire the view to this screen
|
|
46
|
+
view.moveToScreen(this.asScreen());
|
|
47
|
+
this.render();
|
|
48
|
+
}
|
|
49
|
+
get terminal() {
|
|
50
|
+
return this.#terminal;
|
|
51
|
+
}
|
|
52
|
+
get view() {
|
|
53
|
+
return this.#view;
|
|
54
|
+
}
|
|
55
|
+
asScreen() {
|
|
56
|
+
// Cache the screen proxy so moveToScreen identity checks work
|
|
57
|
+
if (!this.#screenProxy) {
|
|
58
|
+
this.#screenProxy = {
|
|
59
|
+
requestModal: (parent, modal, onClose, rect) => {
|
|
60
|
+
return this.#modalManager.requestModal(parent, modal, onClose, rect);
|
|
61
|
+
},
|
|
62
|
+
registerHotKey: (view, key) => {
|
|
63
|
+
this.#focusManager.registerHotKey(view, key);
|
|
64
|
+
},
|
|
65
|
+
registerFocus: (view) => {
|
|
66
|
+
return this.#focusManager.registerFocus(view);
|
|
67
|
+
},
|
|
68
|
+
registerMouse: (view, offset, point, events) => {
|
|
69
|
+
this.#mouseManager.registerMouse(view, offset, point, events);
|
|
70
|
+
},
|
|
71
|
+
registerTick: (view) => {
|
|
72
|
+
this.#tickManager.registerTick(view);
|
|
73
|
+
},
|
|
74
|
+
checkMouse: (view, x, y) => {
|
|
75
|
+
this.#mouseManager.checkMouse(view, x, y);
|
|
76
|
+
},
|
|
77
|
+
needsRender: () => {
|
|
78
|
+
// In test mode, renders are explicit — ignore async render requests
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return this.#screenProxy;
|
|
83
|
+
}
|
|
84
|
+
render() {
|
|
85
|
+
this.#buffer.resize(this.#size);
|
|
86
|
+
this.#focusManager.reset(true);
|
|
87
|
+
this.#mouseManager.reset();
|
|
88
|
+
const renderSize = this.#view.naturalSize(this.#size).min(this.#size);
|
|
89
|
+
const viewport = new Viewport(this.asScreen(), this.#buffer, renderSize);
|
|
90
|
+
this.#view.render(viewport);
|
|
91
|
+
const focusNeedsRender = this.#focusManager.commit();
|
|
92
|
+
if (focusNeedsRender) {
|
|
93
|
+
this.#focusManager.reset(true);
|
|
94
|
+
this.#mouseManager.reset();
|
|
95
|
+
const viewport2 = new Viewport(this.asScreen(), this.#buffer, renderSize);
|
|
96
|
+
this.#view.render(viewport2);
|
|
97
|
+
this.#focusManager.commit();
|
|
98
|
+
}
|
|
99
|
+
this.#tickManager.endRender();
|
|
100
|
+
this.#terminal.reset();
|
|
101
|
+
this.#buffer.invalidate();
|
|
102
|
+
this.#buffer.flush(this.#terminal);
|
|
103
|
+
}
|
|
104
|
+
sendKey(key, mods = {}) {
|
|
105
|
+
const ctrl = mods.ctrl ?? false;
|
|
106
|
+
const meta = mods.meta ?? false;
|
|
107
|
+
const shift = mods.shift ?? false;
|
|
108
|
+
let full = '';
|
|
109
|
+
if (ctrl)
|
|
110
|
+
full += 'C-';
|
|
111
|
+
if (meta)
|
|
112
|
+
full += 'M-';
|
|
113
|
+
if (shift)
|
|
114
|
+
full += 'S-';
|
|
115
|
+
full += key;
|
|
116
|
+
const char = key === 'space' ? ' ' : key.length === 1 ? key : '';
|
|
117
|
+
const event = {
|
|
118
|
+
type: 'key',
|
|
119
|
+
name: key,
|
|
120
|
+
char,
|
|
121
|
+
full,
|
|
122
|
+
ctrl,
|
|
123
|
+
meta,
|
|
124
|
+
shift,
|
|
125
|
+
};
|
|
126
|
+
this.#focusManager.trigger(event);
|
|
127
|
+
this.render();
|
|
128
|
+
}
|
|
129
|
+
sendMouse(name, pos, mods = {}) {
|
|
130
|
+
const button = name.startsWith('mouse.wheel')
|
|
131
|
+
? 'wheel'
|
|
132
|
+
: name === 'mouse.move.in'
|
|
133
|
+
? 'unknown'
|
|
134
|
+
: 'left';
|
|
135
|
+
const event = {
|
|
136
|
+
type: 'mouse',
|
|
137
|
+
name,
|
|
138
|
+
x: pos.x,
|
|
139
|
+
y: pos.y,
|
|
140
|
+
ctrl: mods.ctrl ?? false,
|
|
141
|
+
meta: mods.meta ?? false,
|
|
142
|
+
shift: mods.shift ?? false,
|
|
143
|
+
button,
|
|
144
|
+
};
|
|
145
|
+
const system = new UnboundSystem(this.#focusManager);
|
|
146
|
+
this.#mouseManager.trigger(event, system);
|
|
147
|
+
this.render();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Render a component headlessly and return a test harness for interaction testing.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* const t = testRender(new Input({value: 'hello'}), {width: 20, height: 1})
|
|
156
|
+
* expect(t.terminal.textContent()).toContain('hello')
|
|
157
|
+
* t.sendKey('!') // type a character
|
|
158
|
+
* expect(t.terminal.textContent()).toContain('hello!')
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export function testRender(view, size) {
|
|
162
|
+
return new TestScreen(view, size);
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../lib/testing.ts"],"names":[],"mappings":"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"}
|
package/.dist/util.js
CHANGED
|
@@ -1,29 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.debug = debug;
|
|
4
|
-
exports.leftPad = leftPad;
|
|
5
|
-
exports.rightPad = rightPad;
|
|
6
|
-
exports.centerPad = centerPad;
|
|
7
|
-
exports.define = define;
|
|
8
|
-
exports.wrap = wrap;
|
|
9
|
-
const sys_1 = require("./sys");
|
|
1
|
+
import * as unicode from '@teaui/term';
|
|
10
2
|
let _debug = false;
|
|
11
3
|
/**
|
|
12
4
|
* A global function to turn debugging on/off, useful to test things that would
|
|
13
5
|
* otherwise output way too much, ie console in render()
|
|
14
6
|
*/
|
|
15
|
-
function debug(value) {
|
|
7
|
+
export function debug(value) {
|
|
16
8
|
return (_debug = value ?? _debug);
|
|
17
9
|
}
|
|
18
10
|
/**
|
|
19
11
|
* Left pads (with spaces) according to terminal width
|
|
20
12
|
*/
|
|
21
|
-
function leftPad(str, length) {
|
|
13
|
+
export function leftPad(str, length) {
|
|
22
14
|
const lines = str.split('\n');
|
|
23
15
|
if (lines.length > 1) {
|
|
24
16
|
return lines.map(line => leftPad(line, length)).join('\n');
|
|
25
17
|
}
|
|
26
|
-
const width =
|
|
18
|
+
const width = unicode.lineWidth(str);
|
|
27
19
|
if (width >= length) {
|
|
28
20
|
return str;
|
|
29
21
|
}
|
|
@@ -32,12 +24,12 @@ function leftPad(str, length) {
|
|
|
32
24
|
/**
|
|
33
25
|
* Right pads (with spaces) according to terminal width
|
|
34
26
|
*/
|
|
35
|
-
function rightPad(str, length) {
|
|
27
|
+
export function rightPad(str, length) {
|
|
36
28
|
const lines = str.split('\n');
|
|
37
29
|
if (lines.length > 1) {
|
|
38
30
|
return lines.map(line => rightPad(line, length)).join('\n');
|
|
39
31
|
}
|
|
40
|
-
const width =
|
|
32
|
+
const width = unicode.lineWidth(str);
|
|
41
33
|
if (width >= length) {
|
|
42
34
|
return str;
|
|
43
35
|
}
|
|
@@ -46,12 +38,12 @@ function rightPad(str, length) {
|
|
|
46
38
|
/**
|
|
47
39
|
* Center pads (with spaces) according to terminal width
|
|
48
40
|
*/
|
|
49
|
-
function centerPad(str, length) {
|
|
41
|
+
export function centerPad(str, length) {
|
|
50
42
|
const lines = str.split('\n');
|
|
51
43
|
if (lines.length > 1) {
|
|
52
44
|
return lines.map(line => centerPad(line, length)).join('\n');
|
|
53
45
|
}
|
|
54
|
-
const width =
|
|
46
|
+
const width = unicode.lineWidth(str);
|
|
55
47
|
if (width >= length) {
|
|
56
48
|
return str;
|
|
57
49
|
}
|
|
@@ -63,7 +55,7 @@ function centerPad(str, length) {
|
|
|
63
55
|
* Used to add {enumerable: true} to defined properties on Components, so they
|
|
64
56
|
* are picked up by inspect().
|
|
65
57
|
*/
|
|
66
|
-
function define(object, property, attributes) {
|
|
58
|
+
export function define(object, property, attributes) {
|
|
67
59
|
let kls = object;
|
|
68
60
|
do {
|
|
69
61
|
const descriptor = Object.getOwnPropertyDescriptor(kls, property);
|
|
@@ -88,7 +80,7 @@ function isStringAndWidthArray(input) {
|
|
|
88
80
|
* 1. Word wrapping is accomplished using unicode.words
|
|
89
81
|
* 2. ANSI codes are restored by scanning the segments, inserting the ANSI back where it belongs
|
|
90
82
|
*/
|
|
91
|
-
function wrap(input, contentWidth) {
|
|
83
|
+
export function wrap(input, contentWidth) {
|
|
92
84
|
if (contentWidth === 0) {
|
|
93
85
|
return [];
|
|
94
86
|
}
|
|
@@ -96,10 +88,10 @@ function wrap(input, contentWidth) {
|
|
|
96
88
|
if (typeof input === 'string') {
|
|
97
89
|
lines = input
|
|
98
90
|
.split('\n')
|
|
99
|
-
.map(line => [line,
|
|
91
|
+
.map(line => [line, unicode.lineWidth(line)]);
|
|
100
92
|
}
|
|
101
93
|
else if (isStringArray(input)) {
|
|
102
|
-
lines = input.map(line => [line,
|
|
94
|
+
lines = input.map(line => [line, unicode.lineWidth(line)]);
|
|
103
95
|
}
|
|
104
96
|
else if (isStringAndWidthArray(input)) {
|
|
105
97
|
lines = input;
|
|
@@ -120,9 +112,9 @@ function wrap(input, contentWidth) {
|
|
|
120
112
|
let currentChars = [];
|
|
121
113
|
let currentWidth = 0;
|
|
122
114
|
const STOP = [];
|
|
123
|
-
const words =
|
|
115
|
+
const words = unicode.words(line).concat([[STOP, 0]]);
|
|
124
116
|
for (const [wordChars] of words) {
|
|
125
|
-
let wordWidth =
|
|
117
|
+
let wordWidth = unicode.lineWidth(wordChars);
|
|
126
118
|
if ((!currentWidth || currentWidth + wordWidth <= contentWidth) &&
|
|
127
119
|
wordChars !== STOP) {
|
|
128
120
|
// 1) there's enough room on the line (and it's not the sentinel STOP)
|
|
@@ -149,7 +141,7 @@ function wrap(input, contentWidth) {
|
|
|
149
141
|
do {
|
|
150
142
|
let buffer = '', bufferWidth = 0, index = 0;
|
|
151
143
|
for (let char of currentChars) {
|
|
152
|
-
const charWidth =
|
|
144
|
+
const charWidth = unicode.charWidth(char);
|
|
153
145
|
if (bufferWidth && bufferWidth + charWidth > contentWidth) {
|
|
154
146
|
pushTrimmed(buffer, bufferWidth);
|
|
155
147
|
// Some delicate math here; remove the bufferWidth from currentWidth, and then
|
|
@@ -157,7 +149,7 @@ function wrap(input, contentWidth) {
|
|
|
157
149
|
// unicode.lineWidth())
|
|
158
150
|
currentWidth -= bufferWidth;
|
|
159
151
|
while (currentChars[index]?.match(/^\s+$/)) {
|
|
160
|
-
currentWidth -=
|
|
152
|
+
currentWidth -= unicode.charWidth(currentChars[index]);
|
|
161
153
|
index += 1;
|
|
162
154
|
}
|
|
163
155
|
currentChars = currentChars.slice(index);
|
|
@@ -192,7 +184,7 @@ function wrap(input, contentWidth) {
|
|
|
192
184
|
if (currentChars.length === 0) {
|
|
193
185
|
while (wordChars.length && wordChars[0].match(/^\s+$/)) {
|
|
194
186
|
const char = wordChars.shift();
|
|
195
|
-
wordWidth -=
|
|
187
|
+
wordWidth -= unicode.charWidth(char);
|
|
196
188
|
}
|
|
197
189
|
}
|
|
198
190
|
currentChars.push(...wordChars);
|
package/.dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../lib/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../lib/util.ts"],"names":[],"mappings":"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"}
|
package/LICENSE
CHANGED
|
@@ -2,9 +2,6 @@ TeaUI
|
|
|
2
2
|
Copyright (c) 2023, Colin T.A. Gray
|
|
3
3
|
https://github.com/colinta/teaui
|
|
4
4
|
|
|
5
|
-
With code from Blessed (see LICENSE-blessed)
|
|
6
|
-
https://github.com/chjj/blessed
|
|
7
|
-
|
|
8
5
|
With code from vangie/east-asian-width (see LICENSE-east-asian-width)
|
|
9
6
|
https://github.com/vangie/east-asian-width
|
|
10
7
|
|
package/package.json
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
"Shawn Chen <meishangchen@gmail.com>",
|
|
7
7
|
"npmjs.com/blessed"
|
|
8
8
|
],
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.4.8",
|
|
10
10
|
"license": "MIT",
|
|
11
|
+
"type": "module",
|
|
11
12
|
"preferGlobal": false,
|
|
12
13
|
"repository": {
|
|
13
14
|
"type": "git",
|
|
@@ -37,40 +38,17 @@
|
|
|
37
38
|
"engines": {
|
|
38
39
|
"node": ">= 18.12.0"
|
|
39
40
|
},
|
|
40
|
-
"dependencies": {
|
|
41
|
-
|
|
42
|
-
"ava": "^6.2.0",
|
|
43
|
-
"tsimp": "^2.0.12",
|
|
44
|
-
"@teaui/shared": "1.3.7"
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@teaui/term": "1.4.8"
|
|
45
43
|
},
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"extensions": {
|
|
49
|
-
"ts": "module"
|
|
50
|
-
},
|
|
51
|
-
"require": [
|
|
52
|
-
"tests/setup.ts"
|
|
53
|
-
],
|
|
54
|
-
"files": [
|
|
55
|
-
"tests/**/*.test.ts",
|
|
56
|
-
"tests/**/*.test.tsx",
|
|
57
|
-
"lib/**/*.test.ts",
|
|
58
|
-
"lib/**/*.test.tsx"
|
|
59
|
-
],
|
|
60
|
-
"concurrency": 5,
|
|
61
|
-
"failFast": true,
|
|
62
|
-
"failWithoutAssertions": false,
|
|
63
|
-
"verbose": true,
|
|
64
|
-
"nodeArguments": [
|
|
65
|
-
"--import=tsimp"
|
|
66
|
-
]
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@teaui/shared": "1.4.8"
|
|
67
46
|
},
|
|
68
47
|
"scripts": {
|
|
69
48
|
"gittag": "git tag $(node -e 'process.stdout.write(require(\"./package\").version)')",
|
|
70
49
|
"clean": "rm -rf .dist/",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"test": "
|
|
74
|
-
"test:watch": "ava --watch --clear-screen"
|
|
50
|
+
"build": "pnpm clean && pnpm tsc",
|
|
51
|
+
"test": "vitest run",
|
|
52
|
+
"test:watch": "vitest"
|
|
75
53
|
}
|
|
76
54
|
}
|