@tradecanvas/chart 1.3.0 → 1.4.0
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/LICENSE +21 -21
- package/README.md +858 -828
- package/dist/Chart.d.ts +124 -1
- package/dist/Chart.d.ts.map +1 -1
- package/dist/DragDropImporter-C5kgfbET.cjs +2 -0
- package/dist/DragDropImporter-C5kgfbET.cjs.map +1 -0
- package/dist/{DragDropImporter-cURSpfUb.js → DragDropImporter-Dd9Mud5J.js} +376 -160
- package/dist/DragDropImporter-Dd9Mud5J.js.map +1 -0
- package/dist/PaneManager.d.ts.map +1 -1
- package/dist/charts/ChartTypeStrategy.d.ts +6 -0
- package/dist/charts/ChartTypeStrategy.d.ts.map +1 -1
- package/dist/grid/ChartGrid.d.ts +1 -0
- package/dist/grid/ChartGrid.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -85
- package/dist/index.js.map +1 -1
- package/dist/widget/ChartWidget.d.ts +71 -7
- package/dist/widget/ChartWidget.d.ts.map +1 -1
- package/dist/widget/WidgetCommandPalette.d.ts +3 -1
- package/dist/widget/WidgetCommandPalette.d.ts.map +1 -1
- package/dist/widget/WidgetDrawingSidebar.d.ts +12 -0
- package/dist/widget/WidgetDrawingSidebar.d.ts.map +1 -1
- package/dist/widget/WidgetGoToDate.d.ts +45 -0
- package/dist/widget/WidgetGoToDate.d.ts.map +1 -0
- package/dist/widget/WidgetHotkeySheet.d.ts +3 -1
- package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
- package/dist/widget/WidgetIndicatorLegend.d.ts +68 -0
- package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -0
- package/dist/widget/WidgetLoadingOverlay.d.ts.map +1 -1
- package/dist/widget/WidgetReplayBar.d.ts +37 -7
- package/dist/widget/WidgetReplayBar.d.ts.map +1 -1
- package/dist/widget/WidgetSettings.d.ts +13 -1
- package/dist/widget/WidgetSettings.d.ts.map +1 -1
- package/dist/widget/WidgetStatusBar.d.ts +16 -1
- package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
- package/dist/widget/WidgetSymbolSearch.d.ts +3 -1
- package/dist/widget/WidgetSymbolSearch.d.ts.map +1 -1
- package/dist/widget/WidgetToolbar.d.ts +12 -3
- package/dist/widget/WidgetToolbar.d.ts.map +1 -1
- package/dist/widget/WidgetTooltip.d.ts +43 -0
- package/dist/widget/WidgetTooltip.d.ts.map +1 -0
- package/dist/widget/escapeHtml.d.ts +3 -0
- package/dist/widget/escapeHtml.d.ts.map +1 -0
- package/dist/widget/i18n.d.ts +26 -0
- package/dist/widget/i18n.d.ts.map +1 -1
- package/dist/widget/iconSet.d.ts +26 -0
- package/dist/widget/iconSet.d.ts.map +1 -0
- package/dist/widget/icons.d.ts +5 -0
- package/dist/widget/icons.d.ts.map +1 -1
- package/dist/widget/index.cjs +3035 -2561
- package/dist/widget/index.cjs.map +1 -1
- package/dist/widget/index.d.ts +3 -0
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +1546 -585
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/legendValues.d.ts +14 -0
- package/dist/widget/legendValues.d.ts.map +1 -0
- package/dist/widget/types.d.ts +34 -8
- package/dist/widget/types.d.ts.map +1 -1
- package/dist/widget/widgetConfig.d.ts +1 -5
- package/dist/widget/widgetConfig.d.ts.map +1 -1
- package/dist/widget/widgetTimeframes.d.ts +20 -0
- package/dist/widget/widgetTimeframes.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/DragDropImporter-BazeSQPD.cjs +0 -2
- package/dist/DragDropImporter-BazeSQPD.cjs.map +0 -1
- package/dist/DragDropImporter-cURSpfUb.js.map +0 -1
|
@@ -9,6 +9,19 @@ export declare class ChartWidget {
|
|
|
9
9
|
private sidebar;
|
|
10
10
|
private settings;
|
|
11
11
|
private statusBar;
|
|
12
|
+
private goToDate;
|
|
13
|
+
private readonly tooltip;
|
|
14
|
+
private indicatorLegend;
|
|
15
|
+
private legendFrame;
|
|
16
|
+
/**
|
|
17
|
+
* Modals (settings, search, command palette, hotkeys) mount here: it carries
|
|
18
|
+
* the theme tokens to `document.body`, and moves inside the widget while
|
|
19
|
+
* the widget is fullscreen, where nothing outside it is shown.
|
|
20
|
+
*/
|
|
21
|
+
private readonly portal;
|
|
22
|
+
private readonly overlayHost;
|
|
23
|
+
private readonly onRootPointerDown;
|
|
24
|
+
private readonly onFullscreenChange;
|
|
12
25
|
private commandPalette;
|
|
13
26
|
private symbolSearch;
|
|
14
27
|
private hotkeySheet;
|
|
@@ -23,16 +36,24 @@ export declare class ChartWidget {
|
|
|
23
36
|
private depthLadder;
|
|
24
37
|
private dataWindow;
|
|
25
38
|
private lastHoverIndex;
|
|
39
|
+
/** The bar the on-chart indicator values are read at; null = the latest. */
|
|
40
|
+
private legendHoverIndex;
|
|
26
41
|
private favoritesStore;
|
|
42
|
+
/** Timeframes pinned to the toolbar (same store shape as drawing favourites). */
|
|
43
|
+
private timeframeFavorites;
|
|
44
|
+
/** Timeframes on offer, shortest first. */
|
|
45
|
+
private timeframes;
|
|
27
46
|
private watchlist;
|
|
28
47
|
private watchlistSparkBuffer;
|
|
29
48
|
private sessionRefPrice;
|
|
30
49
|
/** Per-symbol refPrice explicitly pushed by the host via `setWatchlistEntry` — takes precedence over `sessionRefPrice`. */
|
|
31
50
|
private hostWatchlistRefPrice;
|
|
32
51
|
private watchlistInterval;
|
|
33
|
-
private replayOriginalData;
|
|
34
52
|
private replayPollInterval;
|
|
53
|
+
/** Bars revealed per second. */
|
|
35
54
|
private replaySpeed;
|
|
55
|
+
/** While picking the start bar: shades the bars right of the pointer. */
|
|
56
|
+
private replayShade;
|
|
36
57
|
private layoutKeyPrefix;
|
|
37
58
|
private layoutDebounceMs;
|
|
38
59
|
private activeLayoutKey;
|
|
@@ -70,12 +91,22 @@ export declare class ChartWidget {
|
|
|
70
91
|
*/
|
|
71
92
|
setWatchlistEntry(symbol: string, entry: Partial<WatchlistEntry>): void;
|
|
72
93
|
private tickWatchlist;
|
|
94
|
+
/** Ignored when the chart's `features.timeframes` whitelist leaves `tf` out. */
|
|
73
95
|
setTimeframe(tf: TimeFrame): Promise<void>;
|
|
74
96
|
setTheme(theme: import('@tradecanvas/commons').ThemeName | Theme): void;
|
|
75
97
|
getChart(): Chart;
|
|
76
98
|
destroy(): void;
|
|
77
99
|
private handleSymbolClick;
|
|
78
100
|
private handleTimeframe;
|
|
101
|
+
/** Fill the screen with the widget, or leave fullscreen. */
|
|
102
|
+
toggleFullscreen(): void;
|
|
103
|
+
/** The display timezone from the settings: minutes east of UTC, null = local. */
|
|
104
|
+
private displayTzOffset;
|
|
105
|
+
private toggleGoToDate;
|
|
106
|
+
private goToWallTime;
|
|
107
|
+
/** Pinned timeframes that are still on offer, shortest first. */
|
|
108
|
+
private pinnedTimeframes;
|
|
109
|
+
private handleToggleTimeframeFavorite;
|
|
79
110
|
/**
|
|
80
111
|
* Load the widget's base series. Prefer this over `getChart().setData()` so
|
|
81
112
|
* client-side timeframe resampling has a finest-resolution source to
|
|
@@ -125,6 +156,10 @@ export declare class ChartWidget {
|
|
|
125
156
|
private getAlertChannelValue;
|
|
126
157
|
private formatAlertPrice;
|
|
127
158
|
private handleChartType;
|
|
159
|
+
/**
|
|
160
|
+
* Add another instance — picking EMA twice gives two EMAs (e.g. 20 and 50
|
|
161
|
+
* once their settings are changed). Remove one from its chip.
|
|
162
|
+
*/
|
|
128
163
|
private handleAddIndicator;
|
|
129
164
|
private handleRemoveIndicator;
|
|
130
165
|
private toggleCommandPalette;
|
|
@@ -132,6 +167,7 @@ export declare class ChartWidget {
|
|
|
132
167
|
private handleAction;
|
|
133
168
|
private handleDrawingTool;
|
|
134
169
|
private handleCancelDrawing;
|
|
170
|
+
private handleToggleStayInDrawing;
|
|
135
171
|
private handleToggleMagnet;
|
|
136
172
|
private handleToggleTheme;
|
|
137
173
|
private openSettings;
|
|
@@ -148,22 +184,50 @@ export declare class ChartWidget {
|
|
|
148
184
|
clearSavedLayout(symbol?: string): void;
|
|
149
185
|
private applySymbolLayout;
|
|
150
186
|
private flushActiveLayout;
|
|
151
|
-
/**
|
|
152
|
-
|
|
153
|
-
* `state.activeIndicators` map (used to render the chip strip) is stale.
|
|
154
|
-
* Rebuild it from the live `getActiveIndicators` list.
|
|
155
|
-
*/
|
|
156
|
-
private rebuildActiveIndicatorsMapFromChart;
|
|
187
|
+
/** Rebuild the chip strip from the chart's indicator instances. */
|
|
188
|
+
private syncIndicatorsFromChart;
|
|
157
189
|
/** Open (or close) bar replay with its scrubber — what the toolbar's Replay button does. */
|
|
158
190
|
toggleReplay(): void;
|
|
191
|
+
/**
|
|
192
|
+
* Open replay in "pick a start bar" mode: the bars right of the pointer
|
|
193
|
+
* are shaded, and a click cuts the chart there and waits paused. Play
|
|
194
|
+
* starts from a default point; "random bar" picks one.
|
|
195
|
+
*/
|
|
159
196
|
private enterReplay;
|
|
197
|
+
private readonly hideReplayShade;
|
|
198
|
+
/**
|
|
199
|
+
* Open replay (if it isn't open) and start it at bar `index` — paused, or
|
|
200
|
+
* playing when `play` is set — skipping the pick-a-bar step.
|
|
201
|
+
*/
|
|
202
|
+
replayFrom(index: number, play?: boolean): void;
|
|
203
|
+
/** Cut the chart at `index` and wait paused (or play at once). */
|
|
204
|
+
private startReplayAt;
|
|
205
|
+
/** Bars available to replay: the whole series, not the slice on screen. */
|
|
206
|
+
private replayTotal;
|
|
207
|
+
/** Mirror the replay engine in the bar; close it if the session ended elsewhere. */
|
|
208
|
+
private syncReplayBar;
|
|
209
|
+
private stepReplay;
|
|
210
|
+
/** Replay shortcuts: Shift+←/→ step one bar; Escape cancels picking a start bar. */
|
|
211
|
+
private handleReplayKey;
|
|
212
|
+
private positionReplayShade;
|
|
213
|
+
/** Leave replay and return to the live series (with updates that arrived meanwhile). */
|
|
160
214
|
private exitReplay;
|
|
215
|
+
private teardownReplayUi;
|
|
161
216
|
private applySettings;
|
|
162
217
|
private resetSettings;
|
|
163
218
|
private connectStream;
|
|
219
|
+
/** Redraw the on-chart indicator list on the next frame (coalesced). */
|
|
220
|
+
private scheduleLegend;
|
|
221
|
+
private renderLegend;
|
|
164
222
|
private updateUI;
|
|
165
223
|
private resolveIsDark;
|
|
166
224
|
private resolveTheme;
|
|
167
225
|
private isColorDark;
|
|
168
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* "EMA 20", "BB 20 2", "MACD 12 26 9": the short name plus up to three
|
|
229
|
+
* numeric parameters, in the indicator's own order, so two instances of the
|
|
230
|
+
* same indicator can be told apart.
|
|
231
|
+
*/
|
|
232
|
+
export declare function indicatorChipLabel(id: string, params: Record<string, unknown>, defaults?: Record<string, unknown>): string;
|
|
169
233
|
//# sourceMappingURL=ChartWidget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartWidget.d.ts","sourceRoot":"","sources":["../../src/widget/ChartWidget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ChartWidget.d.ts","sourceRoot":"","sources":["../../src/widget/ChartWidget.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export interface CommandPaletteCallbacks {
|
|
|
15
15
|
onClose: () => void;
|
|
16
16
|
}
|
|
17
17
|
export declare class WidgetCommandPalette {
|
|
18
|
+
private readonly host;
|
|
18
19
|
private backdrop;
|
|
19
20
|
private modal;
|
|
20
21
|
private input;
|
|
@@ -24,7 +25,8 @@ export declare class WidgetCommandPalette {
|
|
|
24
25
|
private selectedIndex;
|
|
25
26
|
private callbacks;
|
|
26
27
|
private boundKeydown;
|
|
27
|
-
|
|
28
|
+
/** Where the overlay mounts (the widget's portal: themed, and inside it when fullscreen). */
|
|
29
|
+
constructor(callbacks: CommandPaletteCallbacks, host?: () => HTMLElement);
|
|
28
30
|
open(items: CommandItem[]): void;
|
|
29
31
|
close(): void;
|
|
30
32
|
isOpen(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetCommandPalette.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetCommandPalette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"WidgetCommandPalette.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetCommandPalette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,oBAAoB;IAc7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAbvB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAA6B;IAEjD,6FAA6F;gBAE3F,SAAS,EAAE,uBAAuB,EACjB,IAAI,GAAE,MAAM,WAAiC;IAMhE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAmDhC,KAAK,IAAI,IAAI;IAWb,MAAM,IAAI,OAAO;IAIjB,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,UAAU;IA2DlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,MAAM;IAwBd,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,aAAa;IAWrB,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -5,9 +5,15 @@ export declare class WidgetDrawingSidebar {
|
|
|
5
5
|
private el;
|
|
6
6
|
private groupWraps;
|
|
7
7
|
private groupButtons;
|
|
8
|
+
/** Per group, the icon holder in its button and the tool it stands for (the last one used). */
|
|
9
|
+
private groupIcons;
|
|
10
|
+
private groupTools;
|
|
8
11
|
private cursorBtn;
|
|
9
12
|
private magnetBtn;
|
|
13
|
+
private stayBtn;
|
|
10
14
|
private flyoutEl;
|
|
15
|
+
private flyoutIdx;
|
|
16
|
+
private flyoutHideTimer;
|
|
11
17
|
private favoritesEl;
|
|
12
18
|
private favoritesDivider;
|
|
13
19
|
private favorites;
|
|
@@ -17,6 +23,12 @@ export declare class WidgetDrawingSidebar {
|
|
|
17
23
|
setFavorites(favorites: string[]): void;
|
|
18
24
|
private renderFavorites;
|
|
19
25
|
private showFlyout;
|
|
26
|
+
/**
|
|
27
|
+
* Close a moment after the pointer leaves, so one that slips off the menu
|
|
28
|
+
* on its way to an item (a diagonal move) doesn't lose it.
|
|
29
|
+
*/
|
|
30
|
+
private scheduleHideFlyout;
|
|
31
|
+
private cancelHideFlyout;
|
|
20
32
|
private hideFlyout;
|
|
21
33
|
update(state: WidgetState): void;
|
|
22
34
|
private divider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetDrawingSidebar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingSidebar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WidgetDrawingSidebar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingSidebar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAkB/E,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,YAAY,CAA2B;IAC/C,+FAA+F;IAC/F,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,SAAS,CAAgB;gBAErB,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB;IASjF,OAAO,CAAC,KAAK;IA8Hb,qCAAqC;IACrC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAKvC,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,UAAU;IAqDlB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;IASlB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAwChC,OAAO,CAAC,OAAO;IAMf,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A wall-clock date ("2026-03-01") and time ("14:30", empty = midnight) in the
|
|
3
|
+
* display timezone (`tzOffsetMinutes` east of UTC; null = the browser's) as a
|
|
4
|
+
* UTC timestamp. Null when the date or time is not valid.
|
|
5
|
+
*/
|
|
6
|
+
export declare function wallTimeToUtc(date: string, time: string, tzOffsetMinutes: number | null): number | null;
|
|
7
|
+
/** The date and time fields' values for `ts` in the display timezone. */
|
|
8
|
+
export declare function utcToWallTime(ts: number, tzOffsetMinutes: number | null): {
|
|
9
|
+
date: string;
|
|
10
|
+
time: string;
|
|
11
|
+
};
|
|
12
|
+
export interface GoToDateLabels {
|
|
13
|
+
title: string;
|
|
14
|
+
date: string;
|
|
15
|
+
time: string;
|
|
16
|
+
submit: string;
|
|
17
|
+
cancel: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* "Go to date" popover: a date and an optional time. Enter submits, Escape or
|
|
21
|
+
* a click outside closes it, and focus returns to whatever opened it.
|
|
22
|
+
*/
|
|
23
|
+
export declare class WidgetGoToDate {
|
|
24
|
+
private readonly host;
|
|
25
|
+
private readonly labels;
|
|
26
|
+
private readonly onSubmit;
|
|
27
|
+
private form;
|
|
28
|
+
private returnFocus;
|
|
29
|
+
/** The button that opened it: pressing it again toggles, so it's not "outside". */
|
|
30
|
+
private opener;
|
|
31
|
+
private readonly onOutside;
|
|
32
|
+
constructor(host: HTMLElement, labels: GoToDateLabels, onSubmit: (value: {
|
|
33
|
+
date: string;
|
|
34
|
+
time: string;
|
|
35
|
+
}) => void);
|
|
36
|
+
isOpen(): boolean;
|
|
37
|
+
open(initial: {
|
|
38
|
+
date: string;
|
|
39
|
+
time: string;
|
|
40
|
+
}, opener?: Element | null): void;
|
|
41
|
+
close(): void;
|
|
42
|
+
destroy(): void;
|
|
43
|
+
private field;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=WidgetGoToDate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetGoToDate.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetGoToDate.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAavG;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAcxG;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,cAAc;IAWvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ3B,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGxB;gBAGiB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;IAG5E,MAAM,IAAI,OAAO;IAIjB,IAAI,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,GAAE,OAAO,GAAG,IAAW,GAAG,IAAI;IAmDlF,KAAK,IAAI,IAAI;IAUb,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK;CAad"}
|
|
@@ -8,12 +8,14 @@ export interface HotkeySheetCallbacks {
|
|
|
8
8
|
onClose: () => void;
|
|
9
9
|
}
|
|
10
10
|
export declare class WidgetHotkeySheet {
|
|
11
|
+
private readonly host;
|
|
11
12
|
private backdrop;
|
|
12
13
|
private modal;
|
|
13
14
|
private callbacks;
|
|
14
15
|
private t;
|
|
15
16
|
private boundKeydown;
|
|
16
|
-
|
|
17
|
+
/** Where the overlay mounts (the widget's portal: themed, and inside it when fullscreen). */
|
|
18
|
+
constructor(callbacks: HotkeySheetCallbacks, t: Translator, host?: () => HTMLElement);
|
|
17
19
|
open(): void;
|
|
18
20
|
close(): void;
|
|
19
21
|
isOpen(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetHotkeySheet.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetHotkeySheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"WidgetHotkeySheet.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetHotkeySheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAkFD,qBAAa,iBAAiB;IAW1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,YAAY,CAA6B;IAEjD,6FAA6F;gBAE3F,SAAS,EAAE,oBAAoB,EAC/B,CAAC,EAAE,UAAU,EACI,IAAI,GAAE,MAAM,WAAiC;IAYhE,IAAI,IAAI,IAAI;IAsFZ,KAAK,IAAI,IAAI;IASb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export interface IndicatorLegendRow {
|
|
2
|
+
instanceId: string;
|
|
3
|
+
/** "EMA 50", "MACD 12 26 9". */
|
|
4
|
+
label: string;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
/** The values at the bar in view; `color` null = the neutral text colour. */
|
|
7
|
+
values: readonly {
|
|
8
|
+
text: string;
|
|
9
|
+
color: string | null;
|
|
10
|
+
}[];
|
|
11
|
+
/**
|
|
12
|
+
* Where the row sits inside its own pane (container px, `width` = the room
|
|
13
|
+
* it may take); null = stacked under the OHLCV legend.
|
|
14
|
+
*/
|
|
15
|
+
pane: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
width: number;
|
|
19
|
+
} | null;
|
|
20
|
+
}
|
|
21
|
+
export interface IndicatorLegendCallbacks {
|
|
22
|
+
onToggleVisible: (instanceId: string, visible: boolean) => void;
|
|
23
|
+
onSettings: (instanceId: string) => void;
|
|
24
|
+
onRemove: (instanceId: string) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface IndicatorLegendLabels {
|
|
27
|
+
show: string;
|
|
28
|
+
hide: string;
|
|
29
|
+
settings: string;
|
|
30
|
+
remove: string;
|
|
31
|
+
collapse: string;
|
|
32
|
+
expand: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The indicators on the chart itself, instead of chips in the toolbar: price
|
|
36
|
+
* pane indicators stack under the OHLCV legend, pane indicators sit at the
|
|
37
|
+
* top of their pane. Each row reads "EMA 50 123.45" and, on hover or focus,
|
|
38
|
+
* offers show/hide, settings and remove. A long stack can be collapsed.
|
|
39
|
+
*
|
|
40
|
+
* `update()` is cheap to call every frame: rows are kept by instance id and
|
|
41
|
+
* only changed text and positions are written.
|
|
42
|
+
*/
|
|
43
|
+
export declare class WidgetIndicatorLegend {
|
|
44
|
+
private readonly host;
|
|
45
|
+
private readonly callbacks;
|
|
46
|
+
private readonly labels;
|
|
47
|
+
private readonly stack;
|
|
48
|
+
private readonly toggle;
|
|
49
|
+
private readonly rows;
|
|
50
|
+
private collapsed;
|
|
51
|
+
private toggleKey;
|
|
52
|
+
private stackKey;
|
|
53
|
+
constructor(host: HTMLElement, callbacks: IndicatorLegendCallbacks, labels: IndicatorLegendLabels);
|
|
54
|
+
update(rows: readonly IndicatorLegendRow[], overlay: {
|
|
55
|
+
left: number;
|
|
56
|
+
top: number;
|
|
57
|
+
}): void;
|
|
58
|
+
destroy(): void;
|
|
59
|
+
private createRow;
|
|
60
|
+
private fill;
|
|
61
|
+
/** Pane rows are placed in their pane; stacked rows flow in the stack. */
|
|
62
|
+
private place;
|
|
63
|
+
private setCollapsed;
|
|
64
|
+
private overlayCount;
|
|
65
|
+
/** Written only when something changed: `update()` runs every frame. */
|
|
66
|
+
private renderToggle;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=WidgetIndicatorLegend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetIndicatorLegend.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorLegend.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAS9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAM;gBAGH,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,wBAAwB,EACnC,MAAM,EAAE,qBAAqB;IAehD,MAAM,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiCzF,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,IAAI;IAwBZ,0EAA0E;IAC1E,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;IAIpB,wEAAwE;IACxE,OAAO,CAAC,YAAY;CAcrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetLoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLoadingOverlay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAkBzC;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAOE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAN7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA8C;IAE/D,OAAO,CAAC,KAAK,CAA4C;gBAE7C,MAAM,EAAE,WAAW,EAAmB,WAAW,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"WidgetLoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLoadingOverlay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAkBzC;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAOE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAN7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA8C;IAE/D,OAAO,CAAC,KAAK,CAA4C;gBAE7C,MAAM,EAAE,WAAW,EAAmB,WAAW,EAAE,MAAM;IA0CrE;;;OAGG;IACH,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,UAAQ,GAAG,IAAI;IAgBnD,8EAA8E;IAC9E,GAAG,IAAI,IAAI;IAMX,wEAAwE;IACxE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B,8EAA8E;IAC9E,QAAQ,IAAI,OAAO;IAInB,iEAAiE;IACjE,SAAS,IAAI,OAAO;IAIpB,uDAAuD;IACvD,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -1,37 +1,67 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Replay
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Replay control bar. Surfaces the chart's replay engine as a floating
|
|
3
|
+
* bottom-of-chart control and reports user intent through callbacks (no
|
|
4
|
+
* chart coupling — the host calls chart.replayStart() / replayPause() / …).
|
|
5
|
+
*
|
|
6
|
+
* Two modes: `select` (pick the start bar: a hint, "random bar", play from a
|
|
7
|
+
* default start) and `replay` (step, play/pause, scrub, speed). "Back to
|
|
8
|
+
* realtime" is always there and is highlighted once the replay reaches the
|
|
9
|
+
* last bar.
|
|
6
10
|
*/
|
|
7
11
|
export interface ReplayBarCallbacks {
|
|
8
12
|
onPlay: () => void;
|
|
9
13
|
onPause: () => void;
|
|
10
|
-
onStop: () => void;
|
|
11
14
|
onStepBack: () => void;
|
|
12
15
|
onStepForward: () => void;
|
|
13
16
|
onSeek: (index: number) => void;
|
|
17
|
+
/** Bars revealed per second. */
|
|
14
18
|
onSpeedChange: (barsPerSecond: number) => void;
|
|
19
|
+
onRandomStart: () => void;
|
|
15
20
|
onClose: () => void;
|
|
16
21
|
}
|
|
22
|
+
export interface ReplayBarLabels {
|
|
23
|
+
selectHint: string;
|
|
24
|
+
random: string;
|
|
25
|
+
realtime: string;
|
|
26
|
+
barsPerSecond: string;
|
|
27
|
+
play: string;
|
|
28
|
+
pause: string;
|
|
29
|
+
stepBack: string;
|
|
30
|
+
stepForward: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const DEFAULT_REPLAY_LABELS: ReplayBarLabels;
|
|
17
33
|
export type ReplayBarState = 'playing' | 'paused' | 'stopped';
|
|
34
|
+
export type ReplayBarMode = 'select' | 'replay';
|
|
35
|
+
/** Replay speeds, in bars revealed per second. */
|
|
36
|
+
export declare const REPLAY_SPEEDS: readonly [1, 2, 3, 5, 10, 25, 50];
|
|
37
|
+
export declare const DEFAULT_REPLAY_SPEED = 5;
|
|
18
38
|
export declare class WidgetReplayBar {
|
|
39
|
+
private readonly callbacks;
|
|
19
40
|
private root;
|
|
20
41
|
private scrubber;
|
|
21
42
|
private progressLabel;
|
|
22
43
|
private playBtn;
|
|
44
|
+
private realtimeBtn;
|
|
23
45
|
private state;
|
|
46
|
+
private mode;
|
|
47
|
+
private ended;
|
|
24
48
|
private total;
|
|
25
49
|
private speed;
|
|
26
|
-
private
|
|
27
|
-
constructor(callbacks: ReplayBarCallbacks);
|
|
50
|
+
private readonly labels;
|
|
51
|
+
constructor(callbacks: ReplayBarCallbacks, labels?: Partial<ReplayBarLabels>);
|
|
28
52
|
mount(host: HTMLElement, opts: {
|
|
29
53
|
total: number;
|
|
30
54
|
speed?: number;
|
|
55
|
+
mode?: ReplayBarMode;
|
|
31
56
|
}): void;
|
|
32
57
|
unmount(): void;
|
|
33
58
|
isMounted(): boolean;
|
|
59
|
+
getMode(): ReplayBarMode;
|
|
60
|
+
setMode(mode: ReplayBarMode): void;
|
|
34
61
|
setState(state: ReplayBarState): void;
|
|
62
|
+
/** The replay sits on its last bar: nothing left to play. */
|
|
63
|
+
setEnded(ended: boolean): void;
|
|
64
|
+
/** `current`: index of the bar on screen. */
|
|
35
65
|
setProgress(current: number, total: number): void;
|
|
36
66
|
destroy(): void;
|
|
37
67
|
private markup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetReplayBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetReplayBar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WidgetReplayBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetReplayBar.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gCAAgC;IAChC,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,eASnC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,kDAAkD;AAClD,eAAO,MAAM,aAAa,mCAAoC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,qBAAa,eAAe;IAad,OAAO,CAAC,QAAQ,CAAC,SAAS;IAZtC,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAEZ,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAIjG,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI;IAkB7F,OAAO,IAAI,IAAI;IAWf,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,aAAa;IAIxB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IASlC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKrC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM9B,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWjD,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,MAAM;IAsBd,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,MAAM;CAiBf"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ChartSettingsState, SettingsCallbacks } from './types.js';
|
|
2
2
|
import { Translator } from './i18n.js';
|
|
3
3
|
export declare class WidgetSettings {
|
|
4
|
+
private readonly available;
|
|
5
|
+
/** Where the panel mounts (the widget's portal: themed, and inside it when fullscreen). */
|
|
6
|
+
private readonly host;
|
|
4
7
|
private callbacks;
|
|
5
8
|
private t;
|
|
6
9
|
private backdrop;
|
|
@@ -9,7 +12,16 @@ export declare class WidgetSettings {
|
|
|
9
12
|
private currentSettings;
|
|
10
13
|
private bodyEl;
|
|
11
14
|
private tabButtons;
|
|
12
|
-
|
|
15
|
+
/**
|
|
16
|
+
* `barCountdown` / `logScale` false leave out the controls for features the
|
|
17
|
+
* chart has switched off.
|
|
18
|
+
*/
|
|
19
|
+
constructor(callbacks: SettingsCallbacks, t: Translator, available?: {
|
|
20
|
+
barCountdown?: boolean;
|
|
21
|
+
logScale?: boolean;
|
|
22
|
+
},
|
|
23
|
+
/** Where the panel mounts (the widget's portal: themed, and inside it when fullscreen). */
|
|
24
|
+
host?: () => HTMLElement);
|
|
13
25
|
open(currentSettings: ChartSettingsState): void;
|
|
14
26
|
close(): void;
|
|
15
27
|
private buildModal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"WidgetSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,qBAAa,cAAc;IAiBvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlBvB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,UAAU,CAA2B;IAE7C;;;OAGG;gBAED,SAAS,EAAE,iBAAiB,EAC5B,CAAC,EAAE,UAAU,EACI,SAAS,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO;IAC/E,2FAA2F;IAC1E,IAAI,GAAE,MAAM,WAAiC;IAMhE,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,IAAI;IAM/C,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,UAAU;IAuFlB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;IA2DxB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,QAAQ;IA+BhB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,QAAQ;IA2ChB,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
import { RangePreset } from '@tradecanvas/core';
|
|
2
|
+
export interface StatusBarRange {
|
|
3
|
+
presets: readonly RangePreset[];
|
|
4
|
+
/** Button text per preset; the preset itself when missing. */
|
|
5
|
+
presetLabels?: Partial<Record<RangePreset, string>>;
|
|
6
|
+
groupLabel: string;
|
|
7
|
+
goToLabel: string;
|
|
8
|
+
onPreset: (preset: RangePreset) => void;
|
|
9
|
+
onGoTo: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Bottom bar: range presets and "go to date" on the left (when `range` is
|
|
13
|
+
* given), connection state and symbol on the right.
|
|
14
|
+
*/
|
|
1
15
|
export declare class WidgetStatusBar {
|
|
2
16
|
private el;
|
|
3
17
|
private dotEl;
|
|
4
18
|
private messageEl;
|
|
5
19
|
private infoEl;
|
|
6
|
-
constructor(host: HTMLElement);
|
|
20
|
+
constructor(host: HTMLElement, range?: StatusBarRange);
|
|
7
21
|
update(state: {
|
|
8
22
|
connectionState: string;
|
|
9
23
|
message: string;
|
|
@@ -11,5 +25,6 @@ export declare class WidgetStatusBar {
|
|
|
11
25
|
timeframe: string;
|
|
12
26
|
}): void;
|
|
13
27
|
destroy(): void;
|
|
28
|
+
private buildRange;
|
|
14
29
|
}
|
|
15
30
|
//# sourceMappingURL=WidgetStatusBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetStatusBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStatusBar.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,IAAI,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"WidgetStatusBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStatusBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc;IA6BrD,MAAM,CAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYpG,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,UAAU;CA2BnB"}
|
|
@@ -8,6 +8,7 @@ export interface SymbolSearchCallbacks {
|
|
|
8
8
|
onClose: () => void;
|
|
9
9
|
}
|
|
10
10
|
export declare class WidgetSymbolSearch {
|
|
11
|
+
private readonly host;
|
|
11
12
|
private backdrop;
|
|
12
13
|
private modal;
|
|
13
14
|
private input;
|
|
@@ -20,7 +21,8 @@ export declare class WidgetSymbolSearch {
|
|
|
20
21
|
private boundKeydown;
|
|
21
22
|
/** One-shot pick override — when set, this open() routes picks here instead. */
|
|
22
23
|
private pickOverride;
|
|
23
|
-
|
|
24
|
+
/** Where the overlay mounts (the widget's portal: themed, and inside it when fullscreen). */
|
|
25
|
+
constructor(callbacks: SymbolSearchCallbacks, host?: () => HTMLElement);
|
|
24
26
|
open(symbols: string[], current: string, onPick?: (symbol: string) => void): void;
|
|
25
27
|
close(): void;
|
|
26
28
|
isOpen(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetSymbolSearch.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSymbolSearch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WidgetSymbolSearch.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSymbolSearch.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,qBAAa,kBAAkB;IAiB3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAhBvB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAA6B;IACjD,gFAAgF;IAChF,OAAO,CAAC,YAAY,CAA2C;IAE/D,6FAA6F;gBAE3F,SAAS,EAAE,qBAAqB,EACf,IAAI,GAAE,MAAM,WAAiC;IAMhE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAuDjF,KAAK,IAAI,IAAI;IAYb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,UAAU;IA0ClB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,aAAa;CA0BtB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TimeFrame } from '@tradecanvas/commons';
|
|
1
2
|
import { ToolbarConfig, ToolbarCallbacks, WidgetState } from './types.js';
|
|
2
3
|
import { Translator } from './i18n.js';
|
|
3
4
|
export declare class WidgetToolbar {
|
|
@@ -7,16 +8,24 @@ export declare class WidgetToolbar {
|
|
|
7
8
|
private el;
|
|
8
9
|
private chartTypeDropdown;
|
|
9
10
|
private indicatorDropdown;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
11
|
+
private tfGroup;
|
|
12
|
+
private tfDropdown;
|
|
13
|
+
private tfFavorites;
|
|
14
|
+
private tfRendered;
|
|
12
15
|
private themeBtn;
|
|
16
|
+
private fullscreenBtn;
|
|
13
17
|
constructor(host: HTMLElement, config: ToolbarConfig, callbacks: ToolbarCallbacks, t: Translator);
|
|
14
18
|
private build;
|
|
19
|
+
/** Swap the fullscreen button between enter and exit. */
|
|
20
|
+
setFullscreen(on: boolean): void;
|
|
15
21
|
private chartTypeLabel;
|
|
16
22
|
private buildChartTypeMenu;
|
|
23
|
+
/** Re-pin after the user starred or unstarred a timeframe. */
|
|
24
|
+
setTimeframeFavorites(favorites: TimeFrame[]): void;
|
|
25
|
+
private buildTimeframeMenu;
|
|
26
|
+
private renderTimeframes;
|
|
17
27
|
private buildIndicatorMenu;
|
|
18
28
|
update(state: WidgetState): void;
|
|
19
|
-
private getActiveIndicatorList;
|
|
20
29
|
private sep;
|
|
21
30
|
private spacer;
|
|
22
31
|
private iconBtn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetToolbar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WidgetToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,aAAa,CAAkC;gBAE3C,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU;IAUhG,OAAO,CAAC,KAAK;IA2Hb,yDAAyD;IACzD,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAQhC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,kBAAkB;IAkB1B,8DAA8D;IAC9D,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI;IAMnD,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,kBAAkB;IA4B1B,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAiChC,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,OAAO;IASf,OAAO,IAAI,IAAI;CAKhB"}
|