@opentui/core 0.1.19 → 0.1.21
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/Renderable.d.ts +28 -6
- package/{index-0h2r5adk.js → index-8sac0sgm.js} +150 -97
- package/{index-0h2r5adk.js.map → index-8sac0sgm.js.map} +8 -7
- package/index.js +56 -31
- package/index.js.map +5 -5
- package/lib/objects-in-viewport.d.ts +10 -0
- package/lib/styled-text.d.ts +4 -0
- package/package.json +7 -7
- package/renderables/Text.d.ts +4 -2
- package/renderables/TextNode.d.ts +3 -2
- package/renderables/composition/vnode.d.ts +1 -1
package/3d.js
CHANGED
package/Renderable.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { TrackedNode } from "./lib/TrackedNode";
|
|
|
5
5
|
import type { ParsedKey } from "./lib/parse.keypress";
|
|
6
6
|
import { type AlignString, type FlexDirectionString, type JustifyString, type OverflowString, type PositionTypeString, type WrapString } from "./lib/yoga.options";
|
|
7
7
|
import type { MouseEvent } from "./renderer";
|
|
8
|
-
import type { RenderContext
|
|
8
|
+
import type { RenderContext } from "./types";
|
|
9
9
|
import { type VNode } from "./renderables/composition/vnode";
|
|
10
10
|
import type { Selection } from "./lib/selection";
|
|
11
11
|
declare const BrandedRenderable: unique symbol;
|
|
@@ -145,11 +145,13 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
145
145
|
parent: Renderable | null;
|
|
146
146
|
private childrenPrimarySortDirty;
|
|
147
147
|
private childrenSortedByPrimaryAxis;
|
|
148
|
+
private _newChildren;
|
|
148
149
|
renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
149
150
|
renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
150
151
|
constructor(ctx: RenderContext, options: RenderableOptions<any>);
|
|
151
152
|
get ctx(): RenderContext;
|
|
152
153
|
get visible(): boolean;
|
|
154
|
+
get primaryAxis(): "row" | "column";
|
|
153
155
|
set visible(value: boolean);
|
|
154
156
|
hasSelection(): boolean;
|
|
155
157
|
onSelectionChanged(selection: Selection | null): boolean;
|
|
@@ -189,8 +191,7 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
189
191
|
set zIndex(value: number);
|
|
190
192
|
private requestZIndexSort;
|
|
191
193
|
private ensureZIndexSorted;
|
|
192
|
-
|
|
193
|
-
protected getChildrenSortedByPrimaryAxis(): Renderable[];
|
|
194
|
+
getChildrenSortedByPrimaryAxis(): Renderable[];
|
|
194
195
|
private setupYogaProperties;
|
|
195
196
|
private setupMarginAndPadding;
|
|
196
197
|
set position(positionType: PositionTypeString);
|
|
@@ -227,13 +228,14 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
227
228
|
protected createFrameBuffer(): void;
|
|
228
229
|
protected onResize(width: number, height: number): void;
|
|
229
230
|
private replaceParent;
|
|
230
|
-
add(obj: Renderable | VNode<any, any[]
|
|
231
|
-
insertBefore(obj: Renderable | VNode<any, any[]
|
|
231
|
+
add(obj: Renderable | VNode<any, any[]> | unknown, index?: number): number;
|
|
232
|
+
insertBefore(obj: Renderable | VNode<any, any[]> | unknown, anchor?: Renderable | unknown): number;
|
|
232
233
|
getRenderable(id: string): Renderable | undefined;
|
|
233
234
|
remove(id: string): void;
|
|
234
235
|
protected onRemove(): void;
|
|
235
236
|
getChildren(): Renderable[];
|
|
236
237
|
getChildrenCount(): number;
|
|
238
|
+
updateLayout(deltaTime: number, renderList?: RenderCommand[]): void;
|
|
237
239
|
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
238
240
|
protected _getChildren(): Renderable[];
|
|
239
241
|
protected onUpdate(deltaTime: number): void;
|
|
@@ -266,13 +268,33 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
266
268
|
get onSizeChange(): (() => void) | undefined;
|
|
267
269
|
private applyEventOptions;
|
|
268
270
|
}
|
|
271
|
+
interface RenderCommandBase {
|
|
272
|
+
action: "render" | "pushScissorRect" | "popScissorRect";
|
|
273
|
+
}
|
|
274
|
+
interface RenderCommandPushScissorRect extends RenderCommandBase {
|
|
275
|
+
action: "pushScissorRect";
|
|
276
|
+
x: number;
|
|
277
|
+
y: number;
|
|
278
|
+
width: number;
|
|
279
|
+
height: number;
|
|
280
|
+
}
|
|
281
|
+
interface RenderCommandPopScissorRect extends RenderCommandBase {
|
|
282
|
+
action: "popScissorRect";
|
|
283
|
+
}
|
|
284
|
+
interface RenderCommandRender extends RenderCommandBase {
|
|
285
|
+
action: "render";
|
|
286
|
+
renderable: Renderable;
|
|
287
|
+
}
|
|
288
|
+
export type RenderCommand = RenderCommandPushScissorRect | RenderCommandPopScissorRect | RenderCommandRender;
|
|
269
289
|
export declare class RootRenderable extends Renderable {
|
|
270
290
|
private yogaConfig;
|
|
291
|
+
private renderList;
|
|
271
292
|
constructor(ctx: RenderContext);
|
|
293
|
+
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
272
294
|
protected propagateLiveCount(delta: number): void;
|
|
273
295
|
calculateLayout(): void;
|
|
274
296
|
resize(width: number, height: number): void;
|
|
275
|
-
protected onUpdate(): void;
|
|
297
|
+
protected onUpdate(deltaTime: number): void;
|
|
276
298
|
protected destroySelf(): void;
|
|
277
299
|
}
|
|
278
300
|
export {};
|
|
@@ -3938,7 +3938,13 @@ function createTextAttributes({
|
|
|
3938
3938
|
}
|
|
3939
3939
|
|
|
3940
3940
|
// src/lib/styled-text.ts
|
|
3941
|
+
var BrandedStyledText = Symbol.for("@opentui/core/StyledText");
|
|
3942
|
+
function isStyledText(obj) {
|
|
3943
|
+
return obj && obj[BrandedStyledText];
|
|
3944
|
+
}
|
|
3945
|
+
|
|
3941
3946
|
class StyledText {
|
|
3947
|
+
[BrandedStyledText] = true;
|
|
3942
3948
|
chunks;
|
|
3943
3949
|
textRenderable;
|
|
3944
3950
|
constructor(chunks) {
|
|
@@ -5926,6 +5932,7 @@ class Renderable extends BaseRenderable {
|
|
|
5926
5932
|
parent = null;
|
|
5927
5933
|
childrenPrimarySortDirty = true;
|
|
5928
5934
|
childrenSortedByPrimaryAxis = [];
|
|
5935
|
+
_newChildren = [];
|
|
5929
5936
|
renderBefore;
|
|
5930
5937
|
renderAfter;
|
|
5931
5938
|
constructor(ctx, options) {
|
|
@@ -5962,6 +5969,10 @@ class Renderable extends BaseRenderable {
|
|
|
5962
5969
|
get visible() {
|
|
5963
5970
|
return this._visible;
|
|
5964
5971
|
}
|
|
5972
|
+
get primaryAxis() {
|
|
5973
|
+
const dir = this.layoutNode.yogaNode.getFlexDirection();
|
|
5974
|
+
return dir === 2 || dir === 3 ? "row" : "column";
|
|
5975
|
+
}
|
|
5965
5976
|
set visible(value) {
|
|
5966
5977
|
if (this._visible === value)
|
|
5967
5978
|
return;
|
|
@@ -6163,80 +6174,6 @@ class Renderable extends BaseRenderable {
|
|
|
6163
6174
|
this.needsZIndexSort = false;
|
|
6164
6175
|
}
|
|
6165
6176
|
}
|
|
6166
|
-
getChildrenInViewport(viewport, padding = 10, minTriggerSize = 16) {
|
|
6167
|
-
if (this.renderableArray.length < minTriggerSize)
|
|
6168
|
-
return this.renderableArray;
|
|
6169
|
-
const viewportTop = viewport.y - padding;
|
|
6170
|
-
const viewportBottom = viewport.y + viewport.height + padding;
|
|
6171
|
-
const viewportLeft = viewport.x - padding;
|
|
6172
|
-
const viewportRight = viewport.x + viewport.width + padding;
|
|
6173
|
-
const dir = this.layoutNode.yogaNode.getFlexDirection();
|
|
6174
|
-
const isRow = dir === 2 || dir === 3;
|
|
6175
|
-
const children = this.getChildrenSortedByPrimaryAxis();
|
|
6176
|
-
const totalChildren = children.length;
|
|
6177
|
-
if (totalChildren === 0)
|
|
6178
|
-
return [];
|
|
6179
|
-
const vpStart = isRow ? viewportLeft : viewportTop;
|
|
6180
|
-
const vpEnd = isRow ? viewportRight : viewportBottom;
|
|
6181
|
-
let lo = 0;
|
|
6182
|
-
let hi = totalChildren - 1;
|
|
6183
|
-
let candidate = -1;
|
|
6184
|
-
while (lo <= hi) {
|
|
6185
|
-
const mid = lo + hi >> 1;
|
|
6186
|
-
const c = children[mid];
|
|
6187
|
-
const start = isRow ? c.x : c.y;
|
|
6188
|
-
const end = isRow ? c.x + c.width : c.y + c.height;
|
|
6189
|
-
if (end < vpStart) {
|
|
6190
|
-
lo = mid + 1;
|
|
6191
|
-
} else if (start > vpEnd) {
|
|
6192
|
-
hi = mid - 1;
|
|
6193
|
-
} else {
|
|
6194
|
-
candidate = mid;
|
|
6195
|
-
break;
|
|
6196
|
-
}
|
|
6197
|
-
}
|
|
6198
|
-
const visibleChildren = [];
|
|
6199
|
-
if (candidate === -1) {
|
|
6200
|
-
return visibleChildren;
|
|
6201
|
-
}
|
|
6202
|
-
let left = candidate;
|
|
6203
|
-
while (left - 1 >= 0) {
|
|
6204
|
-
const prev = children[left - 1];
|
|
6205
|
-
if ((isRow ? prev.x + prev.width : prev.y + prev.height) < vpStart)
|
|
6206
|
-
break;
|
|
6207
|
-
left--;
|
|
6208
|
-
}
|
|
6209
|
-
let right = candidate + 1;
|
|
6210
|
-
while (right < totalChildren) {
|
|
6211
|
-
const next = children[right];
|
|
6212
|
-
if ((isRow ? next.x : next.y) > vpEnd)
|
|
6213
|
-
break;
|
|
6214
|
-
right++;
|
|
6215
|
-
}
|
|
6216
|
-
for (let i = left;i < right; i++) {
|
|
6217
|
-
const child = children[i];
|
|
6218
|
-
if (isRow) {
|
|
6219
|
-
const childBottom = child.y + child.height;
|
|
6220
|
-
if (childBottom < viewportTop)
|
|
6221
|
-
continue;
|
|
6222
|
-
const childTop = child.y;
|
|
6223
|
-
if (childTop > viewportBottom)
|
|
6224
|
-
continue;
|
|
6225
|
-
} else {
|
|
6226
|
-
const childRight = child.x + child.width;
|
|
6227
|
-
if (childRight < viewportLeft)
|
|
6228
|
-
continue;
|
|
6229
|
-
const childLeft = child.x;
|
|
6230
|
-
if (childLeft > viewportRight)
|
|
6231
|
-
continue;
|
|
6232
|
-
}
|
|
6233
|
-
visibleChildren.push(child);
|
|
6234
|
-
}
|
|
6235
|
-
if (visibleChildren.length > 1) {
|
|
6236
|
-
visibleChildren.sort((a, b) => a.zIndex > b.zIndex ? 1 : a.zIndex < b.zIndex ? -1 : 0);
|
|
6237
|
-
}
|
|
6238
|
-
return visibleChildren;
|
|
6239
|
-
}
|
|
6240
6177
|
getChildrenSortedByPrimaryAxis() {
|
|
6241
6178
|
if (!this.childrenPrimarySortDirty && this.childrenSortedByPrimaryAxis.length === this.renderableArray.length) {
|
|
6242
6179
|
return this.childrenSortedByPrimaryAxis;
|
|
@@ -6639,6 +6576,7 @@ class Renderable extends BaseRenderable {
|
|
|
6639
6576
|
this.needsZIndexSort = true;
|
|
6640
6577
|
this.childrenPrimarySortDirty = true;
|
|
6641
6578
|
this.renderableMap.set(renderable.id, renderable);
|
|
6579
|
+
this._newChildren.push(renderable);
|
|
6642
6580
|
if (renderable._liveCount > 0) {
|
|
6643
6581
|
this.propagateLiveCount(renderable._liveCount);
|
|
6644
6582
|
}
|
|
@@ -6656,6 +6594,9 @@ class Renderable extends BaseRenderable {
|
|
|
6656
6594
|
if (!anchor) {
|
|
6657
6595
|
return this.add(renderable);
|
|
6658
6596
|
}
|
|
6597
|
+
if (!isRenderable(anchor)) {
|
|
6598
|
+
throw new Error("Anchor must be a Renderable");
|
|
6599
|
+
}
|
|
6659
6600
|
if (!this.renderableMap.has(anchor.id)) {
|
|
6660
6601
|
throw new Error("Anchor does not exist");
|
|
6661
6602
|
}
|
|
@@ -6699,11 +6640,38 @@ class Renderable extends BaseRenderable {
|
|
|
6699
6640
|
getChildrenCount() {
|
|
6700
6641
|
return this.renderableArray.length;
|
|
6701
6642
|
}
|
|
6702
|
-
|
|
6643
|
+
updateLayout(deltaTime, renderList = []) {
|
|
6703
6644
|
if (!this.visible)
|
|
6704
6645
|
return;
|
|
6705
|
-
this.onUpdate(deltaTime);
|
|
6706
6646
|
this.updateFromLayout();
|
|
6647
|
+
this.onUpdate(deltaTime);
|
|
6648
|
+
renderList.push({ action: "render", renderable: this });
|
|
6649
|
+
if (this._newChildren.length > 0) {
|
|
6650
|
+
for (const child of this._newChildren) {
|
|
6651
|
+
child.updateFromLayout();
|
|
6652
|
+
}
|
|
6653
|
+
this._newChildren = [];
|
|
6654
|
+
}
|
|
6655
|
+
this.ensureZIndexSorted();
|
|
6656
|
+
const shouldPushScissor = this._overflow !== "visible" && this.width > 0 && this.height > 0;
|
|
6657
|
+
if (shouldPushScissor) {
|
|
6658
|
+
const scissorRect = this.getScissorRect();
|
|
6659
|
+
renderList.push({
|
|
6660
|
+
action: "pushScissorRect",
|
|
6661
|
+
x: scissorRect.x,
|
|
6662
|
+
y: scissorRect.y,
|
|
6663
|
+
width: scissorRect.width,
|
|
6664
|
+
height: scissorRect.height
|
|
6665
|
+
});
|
|
6666
|
+
}
|
|
6667
|
+
for (const child of this._getChildren()) {
|
|
6668
|
+
child.updateLayout(deltaTime, renderList);
|
|
6669
|
+
}
|
|
6670
|
+
if (shouldPushScissor) {
|
|
6671
|
+
renderList.push({ action: "popScissorRect" });
|
|
6672
|
+
}
|
|
6673
|
+
}
|
|
6674
|
+
render(buffer, deltaTime) {
|
|
6707
6675
|
let renderBuffer = buffer;
|
|
6708
6676
|
if (this.buffered && this.frameBuffer) {
|
|
6709
6677
|
renderBuffer = this.frameBuffer;
|
|
@@ -6717,18 +6685,6 @@ class Renderable extends BaseRenderable {
|
|
|
6717
6685
|
}
|
|
6718
6686
|
this.markClean();
|
|
6719
6687
|
this._ctx.addToHitGrid(this.x, this.y, this.width, this.height, this.num);
|
|
6720
|
-
this.ensureZIndexSorted();
|
|
6721
|
-
const shouldPushScissor = this._overflow !== "visible" && this.width > 0 && this.height > 0;
|
|
6722
|
-
if (shouldPushScissor) {
|
|
6723
|
-
const scissorRect = this.getScissorRect();
|
|
6724
|
-
renderBuffer.pushScissorRect(scissorRect.x, scissorRect.y, scissorRect.width, scissorRect.height);
|
|
6725
|
-
}
|
|
6726
|
-
for (const child of this._getChildren()) {
|
|
6727
|
-
child.render(renderBuffer, deltaTime);
|
|
6728
|
-
}
|
|
6729
|
-
if (shouldPushScissor) {
|
|
6730
|
-
renderBuffer.popScissorRect();
|
|
6731
|
-
}
|
|
6732
6688
|
if (this.buffered && this.frameBuffer) {
|
|
6733
6689
|
buffer.drawFrameBuffer(this.x, this.y, this.frameBuffer);
|
|
6734
6690
|
}
|
|
@@ -6881,6 +6837,7 @@ class Renderable extends BaseRenderable {
|
|
|
6881
6837
|
|
|
6882
6838
|
class RootRenderable extends Renderable {
|
|
6883
6839
|
yogaConfig;
|
|
6840
|
+
renderList = [];
|
|
6884
6841
|
constructor(ctx) {
|
|
6885
6842
|
super(ctx, { id: "__root__", zIndex: 0, visible: true, width: ctx.width, height: ctx.height, enableLayout: true });
|
|
6886
6843
|
this.yogaConfig = src_default.Config.create();
|
|
@@ -6895,6 +6852,29 @@ class RootRenderable extends Renderable {
|
|
|
6895
6852
|
this.layoutNode.yogaNode.setFlexDirection(FlexDirection.Column);
|
|
6896
6853
|
this.calculateLayout();
|
|
6897
6854
|
}
|
|
6855
|
+
render(buffer, deltaTime) {
|
|
6856
|
+
if (!this.visible)
|
|
6857
|
+
return;
|
|
6858
|
+
if (this.layoutNode.yogaNode.isDirty()) {
|
|
6859
|
+
this.calculateLayout();
|
|
6860
|
+
}
|
|
6861
|
+
this.renderList.length = 0;
|
|
6862
|
+
this.updateLayout(deltaTime, this.renderList);
|
|
6863
|
+
for (let i = 1;i < this.renderList.length; i++) {
|
|
6864
|
+
const command = this.renderList[i];
|
|
6865
|
+
switch (command.action) {
|
|
6866
|
+
case "render":
|
|
6867
|
+
command.renderable.render(buffer, deltaTime);
|
|
6868
|
+
break;
|
|
6869
|
+
case "pushScissorRect":
|
|
6870
|
+
buffer.pushScissorRect(command.x, command.y, command.width, command.height);
|
|
6871
|
+
break;
|
|
6872
|
+
case "popScissorRect":
|
|
6873
|
+
buffer.popScissorRect();
|
|
6874
|
+
break;
|
|
6875
|
+
}
|
|
6876
|
+
}
|
|
6877
|
+
}
|
|
6898
6878
|
propagateLiveCount(delta) {
|
|
6899
6879
|
const oldCount = this._liveCount;
|
|
6900
6880
|
this._liveCount += delta;
|
|
@@ -6913,11 +6893,7 @@ class RootRenderable extends Renderable {
|
|
|
6913
6893
|
this.height = height;
|
|
6914
6894
|
this.emit("resized" /* RESIZED */, { width, height });
|
|
6915
6895
|
}
|
|
6916
|
-
onUpdate() {
|
|
6917
|
-
if (this.layoutNode.yogaNode.isDirty()) {
|
|
6918
|
-
this.calculateLayout();
|
|
6919
|
-
}
|
|
6920
|
-
}
|
|
6896
|
+
onUpdate(deltaTime) {}
|
|
6921
6897
|
destroySelf() {
|
|
6922
6898
|
if (this.layoutNode) {
|
|
6923
6899
|
this.layoutNode.destroy();
|
|
@@ -7782,6 +7758,83 @@ var ANSI = {
|
|
|
7782
7758
|
|
|
7783
7759
|
// src/renderer.ts
|
|
7784
7760
|
import { EventEmitter as EventEmitter6 } from "events";
|
|
7761
|
+
|
|
7762
|
+
// src/lib/objects-in-viewport.ts
|
|
7763
|
+
function getObjectsInViewport(viewport, objects, direction = "column", padding = 10, minTriggerSize = 16) {
|
|
7764
|
+
if (objects.length < minTriggerSize)
|
|
7765
|
+
return objects;
|
|
7766
|
+
const viewportTop = viewport.y - padding;
|
|
7767
|
+
const viewportBottom = viewport.y + viewport.height + padding;
|
|
7768
|
+
const viewportLeft = viewport.x - padding;
|
|
7769
|
+
const viewportRight = viewport.x + viewport.width + padding;
|
|
7770
|
+
const isRow = direction === "row";
|
|
7771
|
+
const children = objects;
|
|
7772
|
+
const totalChildren = children.length;
|
|
7773
|
+
if (totalChildren === 0)
|
|
7774
|
+
return [];
|
|
7775
|
+
const vpStart = isRow ? viewportLeft : viewportTop;
|
|
7776
|
+
const vpEnd = isRow ? viewportRight : viewportBottom;
|
|
7777
|
+
let lo = 0;
|
|
7778
|
+
let hi = totalChildren - 1;
|
|
7779
|
+
let candidate = -1;
|
|
7780
|
+
while (lo <= hi) {
|
|
7781
|
+
const mid = lo + hi >> 1;
|
|
7782
|
+
const c = children[mid];
|
|
7783
|
+
const start = isRow ? c.x : c.y;
|
|
7784
|
+
const end = isRow ? c.x + c.width : c.y + c.height;
|
|
7785
|
+
if (end < vpStart) {
|
|
7786
|
+
lo = mid + 1;
|
|
7787
|
+
} else if (start > vpEnd) {
|
|
7788
|
+
hi = mid - 1;
|
|
7789
|
+
} else {
|
|
7790
|
+
candidate = mid;
|
|
7791
|
+
break;
|
|
7792
|
+
}
|
|
7793
|
+
}
|
|
7794
|
+
const visibleChildren = [];
|
|
7795
|
+
if (candidate === -1) {
|
|
7796
|
+
return visibleChildren;
|
|
7797
|
+
}
|
|
7798
|
+
let left = candidate;
|
|
7799
|
+
while (left - 1 >= 0) {
|
|
7800
|
+
const prev = children[left - 1];
|
|
7801
|
+
if ((isRow ? prev.x + prev.width : prev.y + prev.height) < vpStart)
|
|
7802
|
+
break;
|
|
7803
|
+
left--;
|
|
7804
|
+
}
|
|
7805
|
+
let right = candidate + 1;
|
|
7806
|
+
while (right < totalChildren) {
|
|
7807
|
+
const next = children[right];
|
|
7808
|
+
if ((isRow ? next.x : next.y) > vpEnd)
|
|
7809
|
+
break;
|
|
7810
|
+
right++;
|
|
7811
|
+
}
|
|
7812
|
+
for (let i = left;i < right; i++) {
|
|
7813
|
+
const child = children[i];
|
|
7814
|
+
if (isRow) {
|
|
7815
|
+
const childBottom = child.y + child.height;
|
|
7816
|
+
if (childBottom < viewportTop)
|
|
7817
|
+
continue;
|
|
7818
|
+
const childTop = child.y;
|
|
7819
|
+
if (childTop > viewportBottom)
|
|
7820
|
+
continue;
|
|
7821
|
+
} else {
|
|
7822
|
+
const childRight = child.x + child.width;
|
|
7823
|
+
if (childRight < viewportLeft)
|
|
7824
|
+
continue;
|
|
7825
|
+
const childLeft = child.x;
|
|
7826
|
+
if (childLeft > viewportRight)
|
|
7827
|
+
continue;
|
|
7828
|
+
}
|
|
7829
|
+
visibleChildren.push(child);
|
|
7830
|
+
}
|
|
7831
|
+
if (visibleChildren.length > 1) {
|
|
7832
|
+
visibleChildren.sort((a, b) => a.zIndex > b.zIndex ? 1 : a.zIndex < b.zIndex ? -1 : 0);
|
|
7833
|
+
}
|
|
7834
|
+
return visibleChildren;
|
|
7835
|
+
}
|
|
7836
|
+
|
|
7837
|
+
// src/renderer.ts
|
|
7785
7838
|
class MouseEvent {
|
|
7786
7839
|
type;
|
|
7787
7840
|
button;
|
|
@@ -8818,7 +8871,7 @@ Error details:
|
|
|
8818
8871
|
}
|
|
8819
8872
|
}
|
|
8820
8873
|
walkSelectableRenderables(container, selectionBounds, selectedRenderables, touchedRenderables) {
|
|
8821
|
-
const children = container.
|
|
8874
|
+
const children = getObjectsInViewport(selectionBounds, container.getChildrenSortedByPrimaryAxis(), container.primaryAxis, 0);
|
|
8822
8875
|
for (const child of children) {
|
|
8823
8876
|
if (child.selectable) {
|
|
8824
8877
|
const hasSelection = child.onSelectionChanged(this.currentSelection);
|
|
@@ -8834,7 +8887,7 @@ Error details:
|
|
|
8834
8887
|
}
|
|
8835
8888
|
}
|
|
8836
8889
|
|
|
8837
|
-
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, 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, BaseRenderable, Renderable, RootRenderable, capture, ConsolePosition, TerminalConsole, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, CliRenderer };
|
|
8890
|
+
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, isStyledText, 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, 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, BaseRenderable, Renderable, RootRenderable, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, CliRenderer };
|
|
8838
8891
|
|
|
8839
|
-
//# debugId=
|
|
8840
|
-
//# sourceMappingURL=index-
|
|
8892
|
+
//# debugId=C46E0EF37C964E9E64756E2164756E21
|
|
8893
|
+
//# sourceMappingURL=index-8sac0sgm.js.map
|