@opentui/core 0.1.17 → 0.1.19-snapshot4-010c3be8
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/3d.js +1 -1
- package/README.md +1 -1
- package/Renderable.d.ts +2 -0
- package/{index-vg0fxf54.js → index-grak7z0n.js} +55 -28
- package/{index-vg0fxf54.js.map → index-grak7z0n.js.map} +5 -5
- package/index.js +7 -7
- package/index.js.map +3 -3
- package/package.json +7 -7
- package/renderables/Input.d.ts +1 -1
- package/renderables/composition/vnode.d.ts +3 -2
package/3d.js
CHANGED
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ import { createCliRenderer, TextRenderable } from "@opentui/core"
|
|
|
37
37
|
|
|
38
38
|
const renderer = await createCliRenderer()
|
|
39
39
|
|
|
40
|
-
const obj = new TextRenderable("my-obj",
|
|
40
|
+
const obj = new TextRenderable(renderer, { id: "my-obj", content: "Hello, world!" })
|
|
41
41
|
|
|
42
42
|
renderer.root.add(obj)
|
|
43
43
|
```
|
package/Renderable.d.ts
CHANGED
|
@@ -95,6 +95,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
95
95
|
static renderablesByNumber: Map<number, Renderable>;
|
|
96
96
|
readonly id: string;
|
|
97
97
|
readonly num: number;
|
|
98
|
+
private _isDestroyed;
|
|
98
99
|
protected _ctx: RenderContext;
|
|
99
100
|
protected _translateX: number;
|
|
100
101
|
protected _translateY: number;
|
|
@@ -231,6 +232,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
231
232
|
height: number;
|
|
232
233
|
};
|
|
233
234
|
protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
235
|
+
get isDestroyed(): boolean;
|
|
234
236
|
destroy(): void;
|
|
235
237
|
destroyRecursively(): void;
|
|
236
238
|
protected destroySelf(): void;
|
|
@@ -5823,6 +5823,7 @@ class Renderable extends EventEmitter3 {
|
|
|
5823
5823
|
static renderablesByNumber = new Map;
|
|
5824
5824
|
id;
|
|
5825
5825
|
num;
|
|
5826
|
+
_isDestroyed = false;
|
|
5826
5827
|
_ctx;
|
|
5827
5828
|
_translateX = 0;
|
|
5828
5829
|
_translateY = 0;
|
|
@@ -6552,26 +6553,35 @@ class Renderable extends EventEmitter3 {
|
|
|
6552
6553
|
if (!obj) {
|
|
6553
6554
|
return -1;
|
|
6554
6555
|
}
|
|
6555
|
-
|
|
6556
|
-
if (
|
|
6557
|
-
|
|
6558
|
-
|
|
6556
|
+
const renderable = maybeMakeRenderable(this._ctx, obj);
|
|
6557
|
+
if (!renderable) {
|
|
6558
|
+
return -1;
|
|
6559
|
+
}
|
|
6560
|
+
if (renderable.isDestroyed) {
|
|
6561
|
+
if (true) {
|
|
6562
|
+
console.warn(`Renderable with id ${renderable.id} was already destroyed, skipping add`);
|
|
6563
|
+
}
|
|
6564
|
+
return -1;
|
|
6559
6565
|
}
|
|
6560
|
-
this.
|
|
6561
|
-
|
|
6566
|
+
if (this.renderableMap.has(renderable.id)) {
|
|
6567
|
+
console.warn(`A renderable with id ${renderable.id} already exists in ${this.id}, removing it`);
|
|
6568
|
+
this.remove(renderable.id);
|
|
6569
|
+
}
|
|
6570
|
+
this.replaceParent(renderable);
|
|
6571
|
+
const childLayoutNode = renderable.getLayoutNode();
|
|
6562
6572
|
let insertedIndex;
|
|
6563
6573
|
if (index !== undefined) {
|
|
6564
|
-
this.renderableArray.splice(index, 0,
|
|
6574
|
+
this.renderableArray.splice(index, 0, renderable);
|
|
6565
6575
|
insertedIndex = this.layoutNode.insertChild(childLayoutNode, index);
|
|
6566
6576
|
} else {
|
|
6567
|
-
this.renderableArray.push(
|
|
6577
|
+
this.renderableArray.push(renderable);
|
|
6568
6578
|
insertedIndex = this.layoutNode.addChild(childLayoutNode);
|
|
6569
6579
|
}
|
|
6570
6580
|
this.needsZIndexSort = true;
|
|
6571
6581
|
this.childrenPrimarySortDirty = true;
|
|
6572
|
-
this.renderableMap.set(
|
|
6573
|
-
if (
|
|
6574
|
-
this.propagateLiveCount(
|
|
6582
|
+
this.renderableMap.set(renderable.id, renderable);
|
|
6583
|
+
if (renderable._liveCount > 0) {
|
|
6584
|
+
this.propagateLiveCount(renderable._liveCount);
|
|
6575
6585
|
}
|
|
6576
6586
|
this.requestRender();
|
|
6577
6587
|
return insertedIndex;
|
|
@@ -6580,9 +6590,12 @@ class Renderable extends EventEmitter3 {
|
|
|
6580
6590
|
if (!obj) {
|
|
6581
6591
|
return -1;
|
|
6582
6592
|
}
|
|
6583
|
-
|
|
6593
|
+
const renderable = maybeMakeRenderable(this._ctx, obj);
|
|
6594
|
+
if (!renderable) {
|
|
6595
|
+
return -1;
|
|
6596
|
+
}
|
|
6584
6597
|
if (!anchor) {
|
|
6585
|
-
return this.add(
|
|
6598
|
+
return this.add(renderable);
|
|
6586
6599
|
}
|
|
6587
6600
|
if (!this.renderableMap.has(anchor.id)) {
|
|
6588
6601
|
throw new Error("Anchor does not exist");
|
|
@@ -6591,7 +6604,7 @@ class Renderable extends EventEmitter3 {
|
|
|
6591
6604
|
if (anchorIndex === -1) {
|
|
6592
6605
|
throw new Error("Anchor does not exist");
|
|
6593
6606
|
}
|
|
6594
|
-
return this.add(
|
|
6607
|
+
return this.add(renderable, anchorIndex);
|
|
6595
6608
|
}
|
|
6596
6609
|
getRenderable(id) {
|
|
6597
6610
|
return this.renderableMap.get(id);
|
|
@@ -6674,7 +6687,14 @@ class Renderable extends EventEmitter3 {
|
|
|
6674
6687
|
};
|
|
6675
6688
|
}
|
|
6676
6689
|
renderSelf(buffer, deltaTime) {}
|
|
6690
|
+
get isDestroyed() {
|
|
6691
|
+
return this._isDestroyed;
|
|
6692
|
+
}
|
|
6677
6693
|
destroy() {
|
|
6694
|
+
if (this._isDestroyed) {
|
|
6695
|
+
return;
|
|
6696
|
+
}
|
|
6697
|
+
this._isDestroyed = true;
|
|
6678
6698
|
if (this.parent) {
|
|
6679
6699
|
this.parent.remove(this.id);
|
|
6680
6700
|
}
|
|
@@ -6683,16 +6703,15 @@ class Renderable extends EventEmitter3 {
|
|
|
6683
6703
|
this.frameBuffer = null;
|
|
6684
6704
|
}
|
|
6685
6705
|
for (const child of this.renderableArray) {
|
|
6686
|
-
child.
|
|
6687
|
-
child.destroy();
|
|
6706
|
+
this.remove(child.id);
|
|
6688
6707
|
}
|
|
6689
6708
|
this.renderableArray = [];
|
|
6690
6709
|
this.renderableMap.clear();
|
|
6691
6710
|
Renderable.renderablesByNumber.delete(this.num);
|
|
6692
|
-
this.layoutNode.destroy();
|
|
6693
6711
|
this.blur();
|
|
6694
6712
|
this.removeAllListeners();
|
|
6695
6713
|
this.destroySelf();
|
|
6714
|
+
this.layoutNode.destroy();
|
|
6696
6715
|
}
|
|
6697
6716
|
destroyRecursively() {
|
|
6698
6717
|
this.destroy();
|
|
@@ -6847,11 +6866,12 @@ class RootRenderable extends Renderable {
|
|
|
6847
6866
|
try {
|
|
6848
6867
|
this.yogaConfig.free();
|
|
6849
6868
|
} catch (error) {}
|
|
6850
|
-
super.destroySelf();
|
|
6851
6869
|
}
|
|
6852
6870
|
}
|
|
6853
6871
|
|
|
6854
6872
|
// src/renderables/composition/vnode.ts
|
|
6873
|
+
import util from "util";
|
|
6874
|
+
var BrandedVNode = Symbol.for("@opentui/core/VNode");
|
|
6855
6875
|
function isRenderableConstructor(value) {
|
|
6856
6876
|
return typeof value === "function" && value.prototype && Renderable.prototype.isPrototypeOf(value.prototype);
|
|
6857
6877
|
}
|
|
@@ -6871,7 +6891,7 @@ function h(type, props, ...children) {
|
|
|
6871
6891
|
throw new TypeError("h() received an invalid vnode type");
|
|
6872
6892
|
}
|
|
6873
6893
|
const vnode = {
|
|
6874
|
-
|
|
6894
|
+
[BrandedVNode]: true,
|
|
6875
6895
|
type,
|
|
6876
6896
|
props,
|
|
6877
6897
|
children: flattenChildren(children),
|
|
@@ -6913,12 +6933,17 @@ function h(type, props, ...children) {
|
|
|
6913
6933
|
return vnode;
|
|
6914
6934
|
}
|
|
6915
6935
|
function isVNode(node) {
|
|
6916
|
-
return node && node
|
|
6936
|
+
return node && node[BrandedVNode];
|
|
6917
6937
|
}
|
|
6918
|
-
function
|
|
6938
|
+
function maybeMakeRenderable(ctx, node) {
|
|
6919
6939
|
if (isRenderable(node))
|
|
6920
6940
|
return node;
|
|
6921
|
-
|
|
6941
|
+
if (isVNode(node))
|
|
6942
|
+
return instantiate(ctx, node);
|
|
6943
|
+
if (true) {
|
|
6944
|
+
console.warn("maybeMakeRenderable received an invalid node", util.inspect(node, { depth: 2 }));
|
|
6945
|
+
}
|
|
6946
|
+
return null;
|
|
6922
6947
|
}
|
|
6923
6948
|
function wrapWithDelegates(instance, delegateMap) {
|
|
6924
6949
|
if (!delegateMap || Object.keys(delegateMap).length === 0)
|
|
@@ -7015,7 +7040,7 @@ import { EventEmitter as EventEmitter5 } from "events";
|
|
|
7015
7040
|
import { Console } from "console";
|
|
7016
7041
|
import fs from "fs";
|
|
7017
7042
|
import path from "path";
|
|
7018
|
-
import
|
|
7043
|
+
import util2 from "util";
|
|
7019
7044
|
|
|
7020
7045
|
// src/lib/output.capture.ts
|
|
7021
7046
|
import { Writable } from "stream";
|
|
@@ -7431,13 +7456,13 @@ class TerminalConsole extends EventEmitter5 {
|
|
|
7431
7456
|
}
|
|
7432
7457
|
if (typeof arg === "object" && arg !== null) {
|
|
7433
7458
|
try {
|
|
7434
|
-
return
|
|
7459
|
+
return util2.inspect(arg, { depth: 2 });
|
|
7435
7460
|
} catch (e) {
|
|
7436
7461
|
return String(arg);
|
|
7437
7462
|
}
|
|
7438
7463
|
}
|
|
7439
7464
|
try {
|
|
7440
|
-
return
|
|
7465
|
+
return util2.inspect(arg, { depth: 2 });
|
|
7441
7466
|
} catch (e) {
|
|
7442
7467
|
return String(arg);
|
|
7443
7468
|
}
|
|
@@ -7911,6 +7936,8 @@ class CliRenderer extends EventEmitter6 {
|
|
|
7911
7936
|
}, 100);
|
|
7912
7937
|
}).then(() => {
|
|
7913
7938
|
this.realStdoutWrite.call(this.stdout, `
|
|
7939
|
+
`.repeat(this._terminalHeight));
|
|
7940
|
+
this.realStdoutWrite.call(this.stdout, `
|
|
7914
7941
|
=== FATAL ERROR OCCURRED ===
|
|
7915
7942
|
`);
|
|
7916
7943
|
this.realStdoutWrite.call(this.stdout, `Console cache:
|
|
@@ -8744,7 +8771,7 @@ Error details:
|
|
|
8744
8771
|
}
|
|
8745
8772
|
}
|
|
8746
8773
|
|
|
8747
|
-
export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, TrackedNode, createTrackedNode, nonAlphanumericKeys, parseKeypress, KeyHandler, getKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, tn, t, SyntaxStyle, hastToStyledText, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode,
|
|
8774
|
+
export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, TrackedNode, createTrackedNode, nonAlphanumericKeys, parseKeypress, KeyHandler, getKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, tn, t, SyntaxStyle, hastToStyledText, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, LayoutEvents, RenderableEvents, isValidPercentage, isMarginType, isPaddingType, isPositionType, isPositionTypeType, isOverflowType, isDimensionType, isFlexBasisType, isSizeType, isRenderable, Renderable, RootRenderable, capture, ConsolePosition, TerminalConsole, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, CliRenderer };
|
|
8748
8775
|
|
|
8749
|
-
//# debugId=
|
|
8750
|
-
//# sourceMappingURL=index-
|
|
8776
|
+
//# debugId=5CD4CD088CC2988464756E2164756E21
|
|
8777
|
+
//# sourceMappingURL=index-grak7z0n.js.map
|