@luxalgo/vela 0.6.9 → 0.6.11
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/{DataProvider-8Z95Q-RJ.d.cts → DataProvider-BBf-jc6W.d.ts} +49 -1
- package/dist/{DataProvider-DExJrfut.d.ts → DataProvider-p0TEyhlX.d.cts} +49 -1
- package/dist/{chunk-6WDDVMBJ.js → chunk-73PEA4MU.js} +707 -353
- package/dist/{chunk-62SVGONC.js → chunk-G77Y7LK2.js} +2 -2
- package/dist/{chunk-STHSKXOR.js → chunk-IO3NYSQV.js} +650 -157
- package/dist/{chunk-WFSZBX3R.js → chunk-KG4YT3TI.js} +3 -1
- package/dist/{chunk-FCVIG7JG.js → chunk-MHY7MVXH.js} +5 -1
- package/dist/{chunk-EQCHJZOT.js → chunk-MTLJKZDZ.js} +10 -2
- package/dist/{contributions-D7PVZO2i.d.ts → contributions-Bbe2R-mQ.d.ts} +20 -6
- package/dist/{contributions-C1U2Krwg.d.cts → contributions-CO01zWve.d.cts} +20 -6
- package/dist/index.cjs +719 -350
- package/dist/index.d.cts +37 -10
- package/dist/index.d.ts +37 -10
- package/dist/index.js +5 -5
- package/dist/{options-FM0peknS.d.ts → options-yp7sA96q.d.cts} +14 -7
- package/dist/{options-FM0peknS.d.cts → options-yp7sA96q.d.ts} +14 -7
- package/dist/{plugin-DfVqBz9p.d.cts → plugin-CkkH8QnX.d.cts} +3 -3
- package/dist/{plugin-7bkF32Rk.d.ts → plugin-DwxjM3Ni.d.ts} +3 -3
- package/dist/plugin.cjs +12 -1
- package/dist/plugin.d.cts +4 -4
- package/dist/plugin.d.ts +4 -4
- package/dist/plugin.js +3 -3
- package/dist/providers/binance.d.cts +2 -2
- package/dist/providers/binance.d.ts +2 -2
- package/dist/providers/coinbase.d.cts +2 -2
- package/dist/providers/coinbase.d.ts +2 -2
- package/dist/providers/hyperliquid.d.cts +2 -2
- package/dist/providers/hyperliquid.d.ts +2 -2
- package/dist/{statusline-DOPiT6I6.d.cts → statusline-CHPDuKNp.d.ts} +13 -5
- package/dist/{statusline-zdF4eZLr.d.ts → statusline-DTHZUFqK.d.cts} +13 -5
- package/dist/ui.cjs +7 -1
- package/dist/ui.d.cts +3 -1
- package/dist/ui.d.ts +3 -1
- package/dist/ui.js +3 -3
- package/dist/vela.global.js +719 -350
- package/dist/vela.global.min.js +51 -49
- package/dist/widget.cjs +1249 -388
- package/dist/widget.d.cts +17 -6
- package/dist/widget.d.ts +17 -6
- package/dist/widget.js +7 -7
- package/dist/workspace.cjs +1249 -388
- package/dist/workspace.d.cts +103 -10
- package/dist/workspace.d.ts +103 -10
- package/dist/workspace.js +6 -6
- package/package.json +1 -1
- /package/dist/{chunk-AOGZBKUE.js → chunk-H26BEHF4.js} +0 -0
package/dist/workspace.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { O as OHLCV, V as VisibleRangePreset, a as VisibleRange, b as VelaOptions, c as VelaTheme, N as NativeBackend, d as MarketSession } from './options-
|
|
2
|
-
import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-
|
|
3
|
-
export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-
|
|
1
|
+
import { O as OHLCV, V as VisibleRangePreset, a as VisibleRange, b as VelaOptions, I as InputValue, c as VelaTheme, N as NativeBackend, d as MarketSession } from './options-yp7sA96q.cjs';
|
|
2
|
+
import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-DTHZUFqK.cjs';
|
|
3
|
+
export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-DTHZUFqK.cjs';
|
|
4
4
|
import { K as KeymapManager } from './keymap-CGOz5F5f.cjs';
|
|
5
|
-
import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-
|
|
6
|
-
import { M as MarketDataFeed } from './DataProvider-
|
|
5
|
+
import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-CO01zWve.cjs';
|
|
6
|
+
import { M as MarketDataFeed } from './DataProvider-p0TEyhlX.cjs';
|
|
7
7
|
|
|
8
8
|
/** The cells that follow `originId` under `setting` — PURE (never includes the origin). */
|
|
9
9
|
declare function syncTargets(originId: string, setting: SyncSetting | undefined, cellIds: readonly string[]): string[];
|
|
@@ -101,6 +101,19 @@ interface CellDeps {
|
|
|
101
101
|
manifestSettled(): boolean;
|
|
102
102
|
/** Report a pointer-down/focus in this cell (the workspace sets it active). */
|
|
103
103
|
activate(id: string): void;
|
|
104
|
+
/** Whether the grid holds more than one cell — gates the cluster's maximize
|
|
105
|
+
* button and its drag handle (a lone chart has neither use). */
|
|
106
|
+
multiCell(): boolean;
|
|
107
|
+
/** Is this cell the one the workspace currently maximizes over the grid? */
|
|
108
|
+
isMaximized(id: string): boolean;
|
|
109
|
+
/** Maximize this cell over the whole grid, or restore the grid when it already is. */
|
|
110
|
+
toggleMaximize(id: string): void;
|
|
111
|
+
/** Drag-handle hit-test: the OTHER live cell under a viewport point (never `id`). */
|
|
112
|
+
cellDragTarget(id: string, x: number, y: number): string | null;
|
|
113
|
+
/** Live drop-target highlight while a grip drag is underway (null clears). */
|
|
114
|
+
previewDropTarget(id: string | null): void;
|
|
115
|
+
/** Commit a grip drag: the two cells trade slots in the grid. */
|
|
116
|
+
dropCell(id: string, targetId: string): void;
|
|
104
117
|
/** The cell's market changed in place (chrome/retention refresh upstream). */
|
|
105
118
|
onMarketChanged(id: string): void;
|
|
106
119
|
/** The cell's price style changed in place (topbar icon/menu refresh upstream). */
|
|
@@ -115,6 +128,17 @@ interface CellDeps {
|
|
|
115
128
|
/** The shell's toast surface (unresolved-symbol notices land there). */
|
|
116
129
|
toast(message: string, kind: 'info' | 'success' | 'error', durationMs?: number): void;
|
|
117
130
|
}
|
|
131
|
+
/** One live manifest/external instance and, when it deviates from declaration
|
|
132
|
+
* defaults, the values it was restored with or dropped holding. */
|
|
133
|
+
interface CellInstance {
|
|
134
|
+
entry: ResolvedIndicator;
|
|
135
|
+
handle: IndicatorHandle | null;
|
|
136
|
+
external?: boolean;
|
|
137
|
+
values?: {
|
|
138
|
+
inputs?: Record<string, InputValue>;
|
|
139
|
+
props?: Record<string, InputValue>;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
118
142
|
declare class ChartCell {
|
|
119
143
|
readonly id: string;
|
|
120
144
|
private readonly deps;
|
|
@@ -127,11 +151,7 @@ declare class ChartCell {
|
|
|
127
151
|
* rather than the shell manifest — they share the undo/redo and picker plumbing
|
|
128
152
|
* but stay OUT of the persisted ledger (their names would never resolve against
|
|
129
153
|
* the manifest); persisting them is their plugin's job (`registerStatePersistence`). */
|
|
130
|
-
readonly instances:
|
|
131
|
-
entry: ResolvedIndicator;
|
|
132
|
-
handle: IndicatorHandle | null;
|
|
133
|
-
external?: boolean;
|
|
134
|
-
}>;
|
|
154
|
+
readonly instances: CellInstance[];
|
|
135
155
|
/** The native-indicator catalog with this cell's live supported/present flags. */
|
|
136
156
|
nativeCatalog: CellNativeInfo[];
|
|
137
157
|
/** Last crosshair position in this cell (the alt+H/alt+V shortcuts anchor here). */
|
|
@@ -151,6 +171,8 @@ declare class ChartCell {
|
|
|
151
171
|
/** Keeps the pre/post-market shading on the symbol's real calendar (see {@link SessionShadingTracker}). */
|
|
152
172
|
private readonly sessionShading;
|
|
153
173
|
private readonly watermark;
|
|
174
|
+
/** Bottom-center hover cluster, pinned to the price plot: drag handle, zoom in/out, maximize/restore, reset view. */
|
|
175
|
+
private readonly cellControls;
|
|
154
176
|
private readonly contextMenu;
|
|
155
177
|
private readonly offMarket;
|
|
156
178
|
/** The cell's durable market state — the seed vocabulary plus the venue mirror the
|
|
@@ -266,6 +288,13 @@ declare class ChartCell {
|
|
|
266
288
|
* needs, and keep it framed (re-asserted once the deeper history is painted).
|
|
267
289
|
*/
|
|
268
290
|
applyRange(preset: RangePreset): void;
|
|
291
|
+
/** Reset this cell's view: re-enable auto scale and frame the full history —
|
|
292
|
+
* the same action the chart context menu offers. */
|
|
293
|
+
resetView(): void;
|
|
294
|
+
/** Rebuild the view-controls cluster (the maximize gate or state changed). */
|
|
295
|
+
refreshControls(): void;
|
|
296
|
+
/** Mobile flips the per-cell cluster off (the shell's mobile bar replaces it). */
|
|
297
|
+
setControlsSuspended(on: boolean): void;
|
|
269
298
|
/** Make this cell the active one and put keyboard focus on its chart surface. */
|
|
270
299
|
focus(): void;
|
|
271
300
|
/** Download this cell's chart as a PNG (named after its market). */
|
|
@@ -317,6 +346,8 @@ declare class ChartCell {
|
|
|
317
346
|
addManifestInstance(entry: ResolvedIndicator, opts?: {
|
|
318
347
|
record?: boolean;
|
|
319
348
|
external?: boolean;
|
|
349
|
+
inputs?: Record<string, InputValue>;
|
|
350
|
+
props?: Record<string, InputValue>;
|
|
320
351
|
}): void;
|
|
321
352
|
private removeInstance;
|
|
322
353
|
private dropInstance;
|
|
@@ -518,6 +549,10 @@ interface WorkspaceEventMap extends Record<string, unknown> {
|
|
|
518
549
|
'layout:changed': {
|
|
519
550
|
layout: string;
|
|
520
551
|
};
|
|
552
|
+
/** A cell was maximized over the whole grid, or the grid restored (`id: null`). */
|
|
553
|
+
'cell:maximized': {
|
|
554
|
+
id: string | null;
|
|
555
|
+
};
|
|
521
556
|
'cell:created': {
|
|
522
557
|
id: string;
|
|
523
558
|
};
|
|
@@ -547,6 +582,9 @@ declare class VelaWorkspace {
|
|
|
547
582
|
* slots beyond the list get auto identities. Grows, never reorders. */
|
|
548
583
|
private order;
|
|
549
584
|
private activeId;
|
|
585
|
+
/** The cell maximized over the whole grid (null = normal grid). TRANSIENT view
|
|
586
|
+
* state — never persisted; any structural change (layout, applyState) restores. */
|
|
587
|
+
private maximizedId;
|
|
550
588
|
private cellBackend;
|
|
551
589
|
/** `layout: false` — the grid is pinned to the one-cell layout, the layout picker
|
|
552
590
|
* and sync switches never render, and `setLayout` no-ops. */
|
|
@@ -714,6 +752,32 @@ declare class VelaWorkspace {
|
|
|
714
752
|
* the pool so the backend stays uniform.
|
|
715
753
|
*/
|
|
716
754
|
setLayout(layout: string | LayoutDefinition): void;
|
|
755
|
+
/** The identity of the cell maximized over the whole grid, or null. */
|
|
756
|
+
get maximizedCell(): string | null;
|
|
757
|
+
/**
|
|
758
|
+
* Maximize one cell over the whole grid, or restore the layout with `null`. Pure
|
|
759
|
+
* presentation: the other cells stay alive underneath — charts, subscriptions and
|
|
760
|
+
* state untouched — so restoring is instant. The maximized cell becomes the active
|
|
761
|
+
* one. Transient view state (also reachable from each cell's bottom-center view
|
|
762
|
+
* cluster): switching layouts or applying a state document restores the grid.
|
|
763
|
+
*/
|
|
764
|
+
maximizeCell(id: string | null): void;
|
|
765
|
+
/** The mobile bar's maximize stop: one press isolates the ACTIVE chart over the
|
|
766
|
+
* grid; while something is already isolated — the chart, or a pane inside it
|
|
767
|
+
* (mobile's double-tap) — the press restores that instead. Every branch re-syncs
|
|
768
|
+
* the stop on its own (`maximizeCell` directly, `panes.maximize` via its
|
|
769
|
+
* synchronous `pane:changed`). */
|
|
770
|
+
private toggleMobileMaximize;
|
|
771
|
+
/** Keep the mobile bar's maximize stop truthful: lit (inverse chip, restore
|
|
772
|
+
* glyph) while the active chart covers the grid OR one of its panes is
|
|
773
|
+
* maximized — the state a double-tap toggles is otherwise invisible on mobile. */
|
|
774
|
+
private syncMobileMaximize;
|
|
775
|
+
/**
|
|
776
|
+
* Trade the SLOTS of two live cells — the grid arrangement changes, the cells
|
|
777
|
+
* themselves (charts, indicators, drawings, the active flag) stay untouched.
|
|
778
|
+
* What each cell's drag handle commits; also callable directly by hosts.
|
|
779
|
+
*/
|
|
780
|
+
swapCells(a: string, b: string): void;
|
|
717
781
|
resize(): void;
|
|
718
782
|
/** Show a toast over the grid — the same surface the shell's own notices use
|
|
719
783
|
* (alerts, script errors) and the one contributions reach via `ctx.toast`. */
|
|
@@ -738,6 +802,35 @@ declare class VelaWorkspace {
|
|
|
738
802
|
* Geometry is keyed by SLOT (`perCell[slot.id]`); the cell living there is
|
|
739
803
|
* `order[i]` — the identity/position decoupling in one line. */
|
|
740
804
|
private applyGrid;
|
|
805
|
+
/** Overlay the maximize presentation on the freshly applied grid: EVERY cell spans
|
|
806
|
+
* the full track grid — the maximized one on top, the siblings invisible beneath
|
|
807
|
+
* it (their charts stay alive — restoring is instant). The siblings must span too:
|
|
808
|
+
* left in their slots they would auto-flow into implicit zero-height rows, whose
|
|
809
|
+
* gaps steal height from the maximized cell and collapse their renderers to 0.
|
|
810
|
+
* The splitter strips and the active ring hide via the `data-maximized` rules. */
|
|
811
|
+
private applyMaximizePresentation;
|
|
812
|
+
/** Rebuild every cell's view cluster (the maximize gate or state changed). */
|
|
813
|
+
private refreshCellControls;
|
|
814
|
+
/** Drop the transient maximize on a structural change (layout switch, state
|
|
815
|
+
* document) — WITH the event, so hosts tracking `cell:maximized` never drift
|
|
816
|
+
* from `maximizedCell`. The caller's own grid re-apply paints the restore. */
|
|
817
|
+
private clearMaximized;
|
|
818
|
+
/** The live cell under a viewport point, excluding `excludeId` and any host a
|
|
819
|
+
* maximize has hidden — the drag handle's hit-test. */
|
|
820
|
+
private cellAtPoint;
|
|
821
|
+
/** Mark one cell as the live drop target of a grip drag (null clears all) —
|
|
822
|
+
* the `data-drop-target` stylesheet rule paints the dashed preview ring. */
|
|
823
|
+
private setDropTarget;
|
|
824
|
+
/** The cell whose bottom-left corner the grid's attribution mark floats in — the
|
|
825
|
+
* maximized cell while one covers the grid, else the bottom-left slot's cell. */
|
|
826
|
+
private bottomLeftCell;
|
|
827
|
+
/** Keep the shared attribution mark inside the BOTTOM-LEFT visible cell: its
|
|
828
|
+
* offsets ride that cell's renderer-published `--vela-bottom-gutter` /
|
|
829
|
+
* `--vela-toolbar-gutter`, so collapsed pane strips push the mark up without any
|
|
830
|
+
* bookkeeping here. Re-run after anything that changes which host that is
|
|
831
|
+
* (layout switch, maximize, cell rebuild); a destroyed host drops the mark from
|
|
832
|
+
* the DOM, and this re-mount brings it back. */
|
|
833
|
+
private mountAttributionMark;
|
|
741
834
|
/** Create the cells the current layout wants but don't exist yet (pool-first).
|
|
742
835
|
* A slot's CELL IDENTITY is `order[i]` (declaration order — never the slot's own
|
|
743
836
|
* positional id); slots past the declared list mint an auto identity once. */
|
package/dist/workspace.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { O as OHLCV, V as VisibleRangePreset, a as VisibleRange, b as VelaOptions, c as VelaTheme, N as NativeBackend, d as MarketSession } from './options-
|
|
2
|
-
import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-
|
|
3
|
-
export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-
|
|
1
|
+
import { O as OHLCV, V as VisibleRangePreset, a as VisibleRange, b as VelaOptions, I as InputValue, c as VelaTheme, N as NativeBackend, d as MarketSession } from './options-yp7sA96q.js';
|
|
2
|
+
import { S as SyncSetting, V as VelaStorage, C as CellState, W as WidgetHistory, R as ResolvedIndicator, a as StatuslinePart, b as RangePreset, T as TrackSizes, c as VelaShellOptions, d as SyncOptions, e as SyncKind, f as WorkspaceState } from './statusline-CHPDuKNp.js';
|
|
3
|
+
export { g as ChartState, P as PanelsState, h as decodeState, i as encodeState, s as sanitizeState } from './statusline-CHPDuKNp.js';
|
|
4
4
|
import { K as KeymapManager } from './keymap-CGOz5F5f.js';
|
|
5
|
-
import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-
|
|
6
|
-
import { M as MarketDataFeed } from './DataProvider-
|
|
5
|
+
import { I as IndicatorHandle, S as ScriptingEngine, W as WidgetContext, V as Vela, E as ExternalIndicatorEntry, a as ScriptRun } from './contributions-Bbe2R-mQ.js';
|
|
6
|
+
import { M as MarketDataFeed } from './DataProvider-BBf-jc6W.js';
|
|
7
7
|
|
|
8
8
|
/** The cells that follow `originId` under `setting` — PURE (never includes the origin). */
|
|
9
9
|
declare function syncTargets(originId: string, setting: SyncSetting | undefined, cellIds: readonly string[]): string[];
|
|
@@ -101,6 +101,19 @@ interface CellDeps {
|
|
|
101
101
|
manifestSettled(): boolean;
|
|
102
102
|
/** Report a pointer-down/focus in this cell (the workspace sets it active). */
|
|
103
103
|
activate(id: string): void;
|
|
104
|
+
/** Whether the grid holds more than one cell — gates the cluster's maximize
|
|
105
|
+
* button and its drag handle (a lone chart has neither use). */
|
|
106
|
+
multiCell(): boolean;
|
|
107
|
+
/** Is this cell the one the workspace currently maximizes over the grid? */
|
|
108
|
+
isMaximized(id: string): boolean;
|
|
109
|
+
/** Maximize this cell over the whole grid, or restore the grid when it already is. */
|
|
110
|
+
toggleMaximize(id: string): void;
|
|
111
|
+
/** Drag-handle hit-test: the OTHER live cell under a viewport point (never `id`). */
|
|
112
|
+
cellDragTarget(id: string, x: number, y: number): string | null;
|
|
113
|
+
/** Live drop-target highlight while a grip drag is underway (null clears). */
|
|
114
|
+
previewDropTarget(id: string | null): void;
|
|
115
|
+
/** Commit a grip drag: the two cells trade slots in the grid. */
|
|
116
|
+
dropCell(id: string, targetId: string): void;
|
|
104
117
|
/** The cell's market changed in place (chrome/retention refresh upstream). */
|
|
105
118
|
onMarketChanged(id: string): void;
|
|
106
119
|
/** The cell's price style changed in place (topbar icon/menu refresh upstream). */
|
|
@@ -115,6 +128,17 @@ interface CellDeps {
|
|
|
115
128
|
/** The shell's toast surface (unresolved-symbol notices land there). */
|
|
116
129
|
toast(message: string, kind: 'info' | 'success' | 'error', durationMs?: number): void;
|
|
117
130
|
}
|
|
131
|
+
/** One live manifest/external instance and, when it deviates from declaration
|
|
132
|
+
* defaults, the values it was restored with or dropped holding. */
|
|
133
|
+
interface CellInstance {
|
|
134
|
+
entry: ResolvedIndicator;
|
|
135
|
+
handle: IndicatorHandle | null;
|
|
136
|
+
external?: boolean;
|
|
137
|
+
values?: {
|
|
138
|
+
inputs?: Record<string, InputValue>;
|
|
139
|
+
props?: Record<string, InputValue>;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
118
142
|
declare class ChartCell {
|
|
119
143
|
readonly id: string;
|
|
120
144
|
private readonly deps;
|
|
@@ -127,11 +151,7 @@ declare class ChartCell {
|
|
|
127
151
|
* rather than the shell manifest — they share the undo/redo and picker plumbing
|
|
128
152
|
* but stay OUT of the persisted ledger (their names would never resolve against
|
|
129
153
|
* the manifest); persisting them is their plugin's job (`registerStatePersistence`). */
|
|
130
|
-
readonly instances:
|
|
131
|
-
entry: ResolvedIndicator;
|
|
132
|
-
handle: IndicatorHandle | null;
|
|
133
|
-
external?: boolean;
|
|
134
|
-
}>;
|
|
154
|
+
readonly instances: CellInstance[];
|
|
135
155
|
/** The native-indicator catalog with this cell's live supported/present flags. */
|
|
136
156
|
nativeCatalog: CellNativeInfo[];
|
|
137
157
|
/** Last crosshair position in this cell (the alt+H/alt+V shortcuts anchor here). */
|
|
@@ -151,6 +171,8 @@ declare class ChartCell {
|
|
|
151
171
|
/** Keeps the pre/post-market shading on the symbol's real calendar (see {@link SessionShadingTracker}). */
|
|
152
172
|
private readonly sessionShading;
|
|
153
173
|
private readonly watermark;
|
|
174
|
+
/** Bottom-center hover cluster, pinned to the price plot: drag handle, zoom in/out, maximize/restore, reset view. */
|
|
175
|
+
private readonly cellControls;
|
|
154
176
|
private readonly contextMenu;
|
|
155
177
|
private readonly offMarket;
|
|
156
178
|
/** The cell's durable market state — the seed vocabulary plus the venue mirror the
|
|
@@ -266,6 +288,13 @@ declare class ChartCell {
|
|
|
266
288
|
* needs, and keep it framed (re-asserted once the deeper history is painted).
|
|
267
289
|
*/
|
|
268
290
|
applyRange(preset: RangePreset): void;
|
|
291
|
+
/** Reset this cell's view: re-enable auto scale and frame the full history —
|
|
292
|
+
* the same action the chart context menu offers. */
|
|
293
|
+
resetView(): void;
|
|
294
|
+
/** Rebuild the view-controls cluster (the maximize gate or state changed). */
|
|
295
|
+
refreshControls(): void;
|
|
296
|
+
/** Mobile flips the per-cell cluster off (the shell's mobile bar replaces it). */
|
|
297
|
+
setControlsSuspended(on: boolean): void;
|
|
269
298
|
/** Make this cell the active one and put keyboard focus on its chart surface. */
|
|
270
299
|
focus(): void;
|
|
271
300
|
/** Download this cell's chart as a PNG (named after its market). */
|
|
@@ -317,6 +346,8 @@ declare class ChartCell {
|
|
|
317
346
|
addManifestInstance(entry: ResolvedIndicator, opts?: {
|
|
318
347
|
record?: boolean;
|
|
319
348
|
external?: boolean;
|
|
349
|
+
inputs?: Record<string, InputValue>;
|
|
350
|
+
props?: Record<string, InputValue>;
|
|
320
351
|
}): void;
|
|
321
352
|
private removeInstance;
|
|
322
353
|
private dropInstance;
|
|
@@ -518,6 +549,10 @@ interface WorkspaceEventMap extends Record<string, unknown> {
|
|
|
518
549
|
'layout:changed': {
|
|
519
550
|
layout: string;
|
|
520
551
|
};
|
|
552
|
+
/** A cell was maximized over the whole grid, or the grid restored (`id: null`). */
|
|
553
|
+
'cell:maximized': {
|
|
554
|
+
id: string | null;
|
|
555
|
+
};
|
|
521
556
|
'cell:created': {
|
|
522
557
|
id: string;
|
|
523
558
|
};
|
|
@@ -547,6 +582,9 @@ declare class VelaWorkspace {
|
|
|
547
582
|
* slots beyond the list get auto identities. Grows, never reorders. */
|
|
548
583
|
private order;
|
|
549
584
|
private activeId;
|
|
585
|
+
/** The cell maximized over the whole grid (null = normal grid). TRANSIENT view
|
|
586
|
+
* state — never persisted; any structural change (layout, applyState) restores. */
|
|
587
|
+
private maximizedId;
|
|
550
588
|
private cellBackend;
|
|
551
589
|
/** `layout: false` — the grid is pinned to the one-cell layout, the layout picker
|
|
552
590
|
* and sync switches never render, and `setLayout` no-ops. */
|
|
@@ -714,6 +752,32 @@ declare class VelaWorkspace {
|
|
|
714
752
|
* the pool so the backend stays uniform.
|
|
715
753
|
*/
|
|
716
754
|
setLayout(layout: string | LayoutDefinition): void;
|
|
755
|
+
/** The identity of the cell maximized over the whole grid, or null. */
|
|
756
|
+
get maximizedCell(): string | null;
|
|
757
|
+
/**
|
|
758
|
+
* Maximize one cell over the whole grid, or restore the layout with `null`. Pure
|
|
759
|
+
* presentation: the other cells stay alive underneath — charts, subscriptions and
|
|
760
|
+
* state untouched — so restoring is instant. The maximized cell becomes the active
|
|
761
|
+
* one. Transient view state (also reachable from each cell's bottom-center view
|
|
762
|
+
* cluster): switching layouts or applying a state document restores the grid.
|
|
763
|
+
*/
|
|
764
|
+
maximizeCell(id: string | null): void;
|
|
765
|
+
/** The mobile bar's maximize stop: one press isolates the ACTIVE chart over the
|
|
766
|
+
* grid; while something is already isolated — the chart, or a pane inside it
|
|
767
|
+
* (mobile's double-tap) — the press restores that instead. Every branch re-syncs
|
|
768
|
+
* the stop on its own (`maximizeCell` directly, `panes.maximize` via its
|
|
769
|
+
* synchronous `pane:changed`). */
|
|
770
|
+
private toggleMobileMaximize;
|
|
771
|
+
/** Keep the mobile bar's maximize stop truthful: lit (inverse chip, restore
|
|
772
|
+
* glyph) while the active chart covers the grid OR one of its panes is
|
|
773
|
+
* maximized — the state a double-tap toggles is otherwise invisible on mobile. */
|
|
774
|
+
private syncMobileMaximize;
|
|
775
|
+
/**
|
|
776
|
+
* Trade the SLOTS of two live cells — the grid arrangement changes, the cells
|
|
777
|
+
* themselves (charts, indicators, drawings, the active flag) stay untouched.
|
|
778
|
+
* What each cell's drag handle commits; also callable directly by hosts.
|
|
779
|
+
*/
|
|
780
|
+
swapCells(a: string, b: string): void;
|
|
717
781
|
resize(): void;
|
|
718
782
|
/** Show a toast over the grid — the same surface the shell's own notices use
|
|
719
783
|
* (alerts, script errors) and the one contributions reach via `ctx.toast`. */
|
|
@@ -738,6 +802,35 @@ declare class VelaWorkspace {
|
|
|
738
802
|
* Geometry is keyed by SLOT (`perCell[slot.id]`); the cell living there is
|
|
739
803
|
* `order[i]` — the identity/position decoupling in one line. */
|
|
740
804
|
private applyGrid;
|
|
805
|
+
/** Overlay the maximize presentation on the freshly applied grid: EVERY cell spans
|
|
806
|
+
* the full track grid — the maximized one on top, the siblings invisible beneath
|
|
807
|
+
* it (their charts stay alive — restoring is instant). The siblings must span too:
|
|
808
|
+
* left in their slots they would auto-flow into implicit zero-height rows, whose
|
|
809
|
+
* gaps steal height from the maximized cell and collapse their renderers to 0.
|
|
810
|
+
* The splitter strips and the active ring hide via the `data-maximized` rules. */
|
|
811
|
+
private applyMaximizePresentation;
|
|
812
|
+
/** Rebuild every cell's view cluster (the maximize gate or state changed). */
|
|
813
|
+
private refreshCellControls;
|
|
814
|
+
/** Drop the transient maximize on a structural change (layout switch, state
|
|
815
|
+
* document) — WITH the event, so hosts tracking `cell:maximized` never drift
|
|
816
|
+
* from `maximizedCell`. The caller's own grid re-apply paints the restore. */
|
|
817
|
+
private clearMaximized;
|
|
818
|
+
/** The live cell under a viewport point, excluding `excludeId` and any host a
|
|
819
|
+
* maximize has hidden — the drag handle's hit-test. */
|
|
820
|
+
private cellAtPoint;
|
|
821
|
+
/** Mark one cell as the live drop target of a grip drag (null clears all) —
|
|
822
|
+
* the `data-drop-target` stylesheet rule paints the dashed preview ring. */
|
|
823
|
+
private setDropTarget;
|
|
824
|
+
/** The cell whose bottom-left corner the grid's attribution mark floats in — the
|
|
825
|
+
* maximized cell while one covers the grid, else the bottom-left slot's cell. */
|
|
826
|
+
private bottomLeftCell;
|
|
827
|
+
/** Keep the shared attribution mark inside the BOTTOM-LEFT visible cell: its
|
|
828
|
+
* offsets ride that cell's renderer-published `--vela-bottom-gutter` /
|
|
829
|
+
* `--vela-toolbar-gutter`, so collapsed pane strips push the mark up without any
|
|
830
|
+
* bookkeeping here. Re-run after anything that changes which host that is
|
|
831
|
+
* (layout switch, maximize, cell rebuild); a destroyed host drops the mark from
|
|
832
|
+
* the DOM, and this re-mount brings it back. */
|
|
833
|
+
private mountAttributionMark;
|
|
741
834
|
/** Create the cells the current layout wants but don't exist yet (pool-first).
|
|
742
835
|
* A slot's CELL IDENTITY is `order[i]` (declaration order — never the slot's own
|
|
743
836
|
* positional id); slots past the declared list mint an auto identity once. */
|
package/dist/workspace.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { ChartCell, GRID_PICKER_MAX, VelaWorkspace, activeAfterLayout, decodeState, encodeState, ensureLayout, evenTracks, gridStyles, layoutDefinition, layoutForGrid, layoutShape, layouts, memoryStorageAdapter, rangesWithin, registerBuiltinLayouts, registerLayout, resizeTracks, sanitizeState, syncTargets, trackOffsets, unregisterLayout } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
1
|
+
export { ChartCell, GRID_PICKER_MAX, VelaWorkspace, activeAfterLayout, decodeState, encodeState, ensureLayout, evenTracks, gridStyles, layoutDefinition, layoutForGrid, layoutShape, layouts, memoryStorageAdapter, rangesWithin, registerBuiltinLayouts, registerLayout, resizeTracks, sanitizeState, syncTargets, trackOffsets, unregisterLayout } from './chunk-IO3NYSQV.js';
|
|
2
|
+
import './chunk-73PEA4MU.js';
|
|
3
|
+
import './chunk-MTLJKZDZ.js';
|
|
4
|
+
import './chunk-G77Y7LK2.js';
|
|
5
|
+
import './chunk-MHY7MVXH.js';
|
|
6
|
+
import './chunk-KG4YT3TI.js';
|
|
7
7
|
import './chunk-W4EJWLEO.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luxalgo/vela",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11",
|
|
4
4
|
"description": "Open-source charting library with a native high-performance renderer, drawing tools, pluggable chart types and pluggable scripting engines.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://luxalgo.com/vela",
|
|
File without changes
|