@tradecanvas/chart 1.3.0 → 1.7.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.
Files changed (205) hide show
  1. package/README.md +131 -49
  2. package/dist/Chart.d.ts +724 -18
  3. package/dist/Chart.d.ts.map +1 -1
  4. package/dist/DataManager.d.ts +5 -0
  5. package/dist/DataManager.d.ts.map +1 -1
  6. package/dist/HistoryPager.d.ts +58 -0
  7. package/dist/HistoryPager.d.ts.map +1 -0
  8. package/dist/LayoutSession-CTZB90NX.cjs +2 -0
  9. package/dist/LayoutSession-CTZB90NX.cjs.map +1 -0
  10. package/dist/LayoutSession-CWn3sdbs.js +3967 -0
  11. package/dist/LayoutSession-CWn3sdbs.js.map +1 -0
  12. package/dist/PaneManager.d.ts.map +1 -1
  13. package/dist/ThemeManager.d.ts +5 -1
  14. package/dist/ThemeManager.d.ts.map +1 -1
  15. package/dist/chartA11y.d.ts +59 -0
  16. package/dist/chartA11y.d.ts.map +1 -0
  17. package/dist/charts/ChartTypeStrategy.d.ts +11 -4
  18. package/dist/charts/ChartTypeStrategy.d.ts.map +1 -1
  19. package/dist/grid/ChartGrid.d.ts +7 -1
  20. package/dist/grid/ChartGrid.d.ts.map +1 -1
  21. package/dist/i18n-CiQ8EDVs.js +1469 -0
  22. package/dist/i18n-CiQ8EDVs.js.map +1 -0
  23. package/dist/i18n-WsLA9SmD.cjs +2 -0
  24. package/dist/i18n-WsLA9SmD.cjs.map +1 -0
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.ts +24 -3
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +74 -89
  30. package/dist/index.js.map +1 -1
  31. package/dist/indicatorLabel.d.ts +7 -0
  32. package/dist/indicatorLabel.d.ts.map +1 -0
  33. package/dist/layout/LayoutManager.d.ts +50 -0
  34. package/dist/layout/LayoutManager.d.ts.map +1 -1
  35. package/dist/layout/priceAxisWidth.d.ts +2 -0
  36. package/dist/layout/priceAxisWidth.d.ts.map +1 -1
  37. package/dist/regularHours.d.ts +10 -0
  38. package/dist/regularHours.d.ts.map +1 -0
  39. package/dist/state/LayoutSession.d.ts +101 -0
  40. package/dist/state/LayoutSession.d.ts.map +1 -0
  41. package/dist/state/layoutStorage.d.ts +46 -0
  42. package/dist/state/layoutStorage.d.ts.map +1 -0
  43. package/dist/trading/wireExecution.d.ts +7 -3
  44. package/dist/trading/wireExecution.d.ts.map +1 -1
  45. package/dist/widget/ChartWidget.d.ts +283 -10
  46. package/dist/widget/ChartWidget.d.ts.map +1 -1
  47. package/dist/widget/ChartWidgetGrid.d.ts +166 -0
  48. package/dist/widget/ChartWidgetGrid.d.ts.map +1 -0
  49. package/dist/widget/DrawingTemplateStore.d.ts +29 -8
  50. package/dist/widget/DrawingTemplateStore.d.ts.map +1 -1
  51. package/dist/widget/WatchlistStore.d.ts +65 -0
  52. package/dist/widget/WatchlistStore.d.ts.map +1 -0
  53. package/dist/widget/WidgetAccountPanel.d.ts +72 -0
  54. package/dist/widget/WidgetAccountPanel.d.ts.map +1 -0
  55. package/dist/widget/WidgetAlertsPanel.d.ts +50 -3
  56. package/dist/widget/WidgetAlertsPanel.d.ts.map +1 -1
  57. package/dist/widget/WidgetBracketBar.d.ts +3 -1
  58. package/dist/widget/WidgetBracketBar.d.ts.map +1 -1
  59. package/dist/widget/WidgetChartNav.d.ts +36 -0
  60. package/dist/widget/WidgetChartNav.d.ts.map +1 -0
  61. package/dist/widget/WidgetCommandPalette.d.ts +5 -1
  62. package/dist/widget/WidgetCommandPalette.d.ts.map +1 -1
  63. package/dist/widget/WidgetContextMenu.d.ts +40 -0
  64. package/dist/widget/WidgetContextMenu.d.ts.map +1 -0
  65. package/dist/widget/WidgetDataWindow.d.ts +3 -1
  66. package/dist/widget/WidgetDataWindow.d.ts.map +1 -1
  67. package/dist/widget/WidgetDepthLadder.d.ts +3 -1
  68. package/dist/widget/WidgetDepthLadder.d.ts.map +1 -1
  69. package/dist/widget/WidgetDrawingSettings.d.ts +108 -0
  70. package/dist/widget/WidgetDrawingSettings.d.ts.map +1 -0
  71. package/dist/widget/WidgetDrawingSidebar.d.ts +26 -1
  72. package/dist/widget/WidgetDrawingSidebar.d.ts.map +1 -1
  73. package/dist/widget/WidgetDrawingStyle.d.ts +3 -1
  74. package/dist/widget/WidgetDrawingStyle.d.ts.map +1 -1
  75. package/dist/widget/WidgetDropdown.d.ts.map +1 -1
  76. package/dist/widget/WidgetGoToDate.d.ts +46 -0
  77. package/dist/widget/WidgetGoToDate.d.ts.map +1 -0
  78. package/dist/widget/WidgetHistoryPill.d.ts +23 -0
  79. package/dist/widget/WidgetHistoryPill.d.ts.map +1 -0
  80. package/dist/widget/WidgetHotkeySheet.d.ts +3 -1
  81. package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
  82. package/dist/widget/WidgetIndicatorLegend.d.ts +98 -0
  83. package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -0
  84. package/dist/widget/WidgetIndicatorSettings.d.ts +62 -7
  85. package/dist/widget/WidgetIndicatorSettings.d.ts.map +1 -1
  86. package/dist/widget/WidgetIntervalInput.d.ts +34 -0
  87. package/dist/widget/WidgetIntervalInput.d.ts.map +1 -0
  88. package/dist/widget/WidgetLayoutsDialog.d.ts +39 -0
  89. package/dist/widget/WidgetLayoutsDialog.d.ts.map +1 -0
  90. package/dist/widget/WidgetLayoutsUI.d.ts +37 -0
  91. package/dist/widget/WidgetLayoutsUI.d.ts.map +1 -0
  92. package/dist/widget/WidgetLoadingOverlay.d.ts.map +1 -1
  93. package/dist/widget/WidgetNamePrompt.d.ts +31 -0
  94. package/dist/widget/WidgetNamePrompt.d.ts.map +1 -0
  95. package/dist/widget/WidgetObjectTree.d.ts +21 -3
  96. package/dist/widget/WidgetObjectTree.d.ts.map +1 -1
  97. package/dist/widget/WidgetOrderTicket.d.ts +49 -0
  98. package/dist/widget/WidgetOrderTicket.d.ts.map +1 -0
  99. package/dist/widget/WidgetReplayBar.d.ts +52 -7
  100. package/dist/widget/WidgetReplayBar.d.ts.map +1 -1
  101. package/dist/widget/WidgetSettings.d.ts +26 -2
  102. package/dist/widget/WidgetSettings.d.ts.map +1 -1
  103. package/dist/widget/WidgetStatusBar.d.ts +19 -1
  104. package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
  105. package/dist/widget/WidgetStyles.d.ts +3 -1
  106. package/dist/widget/WidgetStyles.d.ts.map +1 -1
  107. package/dist/widget/WidgetSymbolInfo.d.ts +64 -0
  108. package/dist/widget/WidgetSymbolInfo.d.ts.map +1 -0
  109. package/dist/widget/WidgetSymbolSearch.d.ts +28 -5
  110. package/dist/widget/WidgetSymbolSearch.d.ts.map +1 -1
  111. package/dist/widget/WidgetToolbar.d.ts +42 -4
  112. package/dist/widget/WidgetToolbar.d.ts.map +1 -1
  113. package/dist/widget/WidgetTooltip.d.ts +43 -0
  114. package/dist/widget/WidgetTooltip.d.ts.map +1 -0
  115. package/dist/widget/WidgetWatchlist.d.ts +53 -13
  116. package/dist/widget/WidgetWatchlist.d.ts.map +1 -1
  117. package/dist/widget/chartMenu.d.ts +40 -0
  118. package/dist/widget/chartMenu.d.ts.map +1 -0
  119. package/dist/widget/drawingMenu.d.ts +21 -0
  120. package/dist/widget/drawingMenu.d.ts.map +1 -0
  121. package/dist/widget/escapeHtml.d.ts +3 -0
  122. package/dist/widget/escapeHtml.d.ts.map +1 -0
  123. package/dist/widget/focusTrap.d.ts +8 -0
  124. package/dist/widget/focusTrap.d.ts.map +1 -0
  125. package/dist/widget/i18n.d.ts +20 -63
  126. package/dist/widget/i18n.d.ts.map +1 -1
  127. package/dist/widget/iconSet.d.ts +26 -0
  128. package/dist/widget/iconSet.d.ts.map +1 -0
  129. package/dist/widget/icons.d.ts +5 -0
  130. package/dist/widget/icons.d.ts.map +1 -1
  131. package/dist/widget/index.cjs +2145 -405
  132. package/dist/widget/index.cjs.map +1 -1
  133. package/dist/widget/index.d.ts +18 -1
  134. package/dist/widget/index.d.ts.map +1 -1
  135. package/dist/widget/index.js +7376 -1274
  136. package/dist/widget/index.js.map +1 -1
  137. package/dist/widget/indicatorTemplates.d.ts +24 -0
  138. package/dist/widget/indicatorTemplates.d.ts.map +1 -0
  139. package/dist/widget/keyTarget.d.ts +11 -0
  140. package/dist/widget/keyTarget.d.ts.map +1 -0
  141. package/dist/widget/legendValues.d.ts +19 -0
  142. package/dist/widget/legendValues.d.ts.map +1 -0
  143. package/dist/widget/locales/ar.d.ts +4 -0
  144. package/dist/widget/locales/ar.d.ts.map +1 -0
  145. package/dist/widget/locales/de.d.ts +4 -0
  146. package/dist/widget/locales/de.d.ts.map +1 -0
  147. package/dist/widget/locales/en.d.ts +722 -0
  148. package/dist/widget/locales/en.d.ts.map +1 -0
  149. package/dist/widget/locales/es.d.ts +4 -0
  150. package/dist/widget/locales/es.d.ts.map +1 -0
  151. package/dist/widget/locales/fr.d.ts +4 -0
  152. package/dist/widget/locales/fr.d.ts.map +1 -0
  153. package/dist/widget/locales/he.d.ts +4 -0
  154. package/dist/widget/locales/he.d.ts.map +1 -0
  155. package/dist/widget/locales/id.d.ts +4 -0
  156. package/dist/widget/locales/id.d.ts.map +1 -0
  157. package/dist/widget/locales/index.cjs +2 -0
  158. package/dist/widget/locales/index.cjs.map +1 -0
  159. package/dist/widget/locales/index.d.ts +33 -0
  160. package/dist/widget/locales/index.d.ts.map +1 -0
  161. package/dist/widget/locales/index.js +10089 -0
  162. package/dist/widget/locales/index.js.map +1 -0
  163. package/dist/widget/locales/ja.d.ts +4 -0
  164. package/dist/widget/locales/ja.d.ts.map +1 -0
  165. package/dist/widget/locales/ko.d.ts +4 -0
  166. package/dist/widget/locales/ko.d.ts.map +1 -0
  167. package/dist/widget/locales/pt.d.ts +4 -0
  168. package/dist/widget/locales/pt.d.ts.map +1 -0
  169. package/dist/widget/locales/ru.d.ts +4 -0
  170. package/dist/widget/locales/ru.d.ts.map +1 -0
  171. package/dist/widget/locales/th.d.ts +4 -0
  172. package/dist/widget/locales/th.d.ts.map +1 -0
  173. package/dist/widget/locales/tr.d.ts +4 -0
  174. package/dist/widget/locales/tr.d.ts.map +1 -0
  175. package/dist/widget/locales/vi.d.ts +4 -0
  176. package/dist/widget/locales/vi.d.ts.map +1 -0
  177. package/dist/widget/locales/zh.d.ts +4 -0
  178. package/dist/widget/locales/zh.d.ts.map +1 -0
  179. package/dist/widget/locales/zhHant.d.ts +4 -0
  180. package/dist/widget/locales/zhHant.d.ts.map +1 -0
  181. package/dist/widget/orderTicket.d.ts +27 -0
  182. package/dist/widget/orderTicket.d.ts.map +1 -0
  183. package/dist/widget/settingsControls.d.ts +24 -0
  184. package/dist/widget/settingsControls.d.ts.map +1 -0
  185. package/dist/widget/types.d.ts +215 -13
  186. package/dist/widget/types.d.ts.map +1 -1
  187. package/dist/widget/widgetConfig.d.ts +1 -5
  188. package/dist/widget/widgetConfig.d.ts.map +1 -1
  189. package/dist/widget/widgetLayout.d.ts +22 -0
  190. package/dist/widget/widgetLayout.d.ts.map +1 -0
  191. package/dist/widget/widgetLocales.d.ts +17 -0
  192. package/dist/widget/widgetLocales.d.ts.map +1 -0
  193. package/dist/widget/widgetTimeframes.d.ts +28 -0
  194. package/dist/widget/widgetTimeframes.d.ts.map +1 -0
  195. package/dist/widget/widgetTimezones.d.ts +32 -0
  196. package/dist/widget/widgetTimezones.d.ts.map +1 -0
  197. package/dist/widget/widgetUI.d.ts +126 -0
  198. package/dist/widget/widgetUI.d.ts.map +1 -0
  199. package/package.json +8 -3
  200. package/dist/DragDropImporter-BazeSQPD.cjs +0 -2
  201. package/dist/DragDropImporter-BazeSQPD.cjs.map +0 -1
  202. package/dist/DragDropImporter-cURSpfUb.js +0 -1883
  203. package/dist/DragDropImporter-cURSpfUb.js.map +0 -1
  204. package/dist/charts/IndicatorPriceRange.d.ts +0 -20
  205. package/dist/charts/IndicatorPriceRange.d.ts.map +0 -1
@@ -1,7 +1,12 @@
1
- import { Theme, TimeFrame, DepthData, DataSeries } from '@tradecanvas/commons';
1
+ import { Quote, Theme, TimeFrame, DepthData, DataSeries } from '@tradecanvas/commons';
2
2
  import { Chart } from '../Chart.js';
3
3
  import { ChartWidgetOptions } from './types.js';
4
4
  import { WatchlistEntry } from './WidgetWatchlist.js';
5
+ import { WatchlistList } from './WatchlistStore.js';
6
+ import { indicatorChipLabel } from '../indicatorLabel.js';
7
+ import { ResolvedWidgetUI, WidgetUIPreset, WidgetUITheme } from './widgetUI.js';
8
+ import { WidgetLayoutContent } from './widgetLayout.js';
9
+ import { LayoutSession } from '../state/LayoutSession.js';
5
10
  export declare class ChartWidget {
6
11
  private chart;
7
12
  private state;
@@ -9,6 +14,20 @@ export declare class ChartWidget {
9
14
  private sidebar;
10
15
  private settings;
11
16
  private statusBar;
17
+ private goToDate;
18
+ private readonly tooltip;
19
+ private indicatorLegend;
20
+ private legendFrame;
21
+ /**
22
+ * Modals (settings, search, command palette, hotkeys) mount here: it carries
23
+ * the theme tokens to `document.body`, and moves inside the widget while
24
+ * the widget is fullscreen, where nothing outside it is shown.
25
+ */
26
+ private readonly portal;
27
+ private readonly overlayHost;
28
+ /** Stops following presses for the page's shortcuts (see keyTarget). */
29
+ private unregisterKeys;
30
+ private readonly onFullscreenChange;
12
31
  private commandPalette;
13
32
  private symbolSearch;
14
33
  private hotkeySheet;
@@ -18,27 +37,84 @@ export declare class ChartWidget {
18
37
  private objectTree;
19
38
  private indicatorSettings;
20
39
  private drawingStyle;
40
+ private drawingSettings;
41
+ private drawingMenu;
42
+ private chartMenu;
43
+ /** The pane a chart menu was opened on (its scale switches act on it). */
44
+ private menuPane;
45
+ /** Whether the chart menu offers a download of the data. */
46
+ private canExport;
47
+ /** The latest fetch of each symbol the chart's indicators read. */
48
+ private symbolLoads;
49
+ /** The widget's look. */
50
+ private ui;
51
+ /** The legend row's "more" menu: move the indicator to another pane. */
52
+ private legendMenu;
53
+ private templates;
54
+ private templatePrompt;
55
+ private intervalInput;
56
+ /** The note shown over a signal marker under the pointer. */
57
+ private markerTip;
58
+ private accountPanel;
59
+ private orderTicket;
60
+ private accountFrame;
61
+ private layoutSession;
62
+ private layoutsUI;
21
63
  private bracketBar;
22
64
  private alertNotifier;
23
65
  private depthLadder;
24
66
  private dataWindow;
25
67
  private lastHoverIndex;
68
+ /** The bar the on-chart indicator values are read at; null = the latest. */
69
+ private legendHoverIndex;
26
70
  private favoritesStore;
71
+ /** Timeframes pinned to the toolbar (same store shape as drawing favourites). */
72
+ private timeframeFavorites;
73
+ /** Intervals the user typed in the timeframe menu. */
74
+ private customTimeframes;
75
+ /** Timeframes on offer, shortest first. */
76
+ private timeframes;
27
77
  private watchlist;
28
78
  private watchlistSparkBuffer;
29
79
  private sessionRefPrice;
30
80
  /** Per-symbol refPrice explicitly pushed by the host via `setWatchlistEntry` — takes precedence over `sessionRefPrice`. */
31
81
  private hostWatchlistRefPrice;
32
82
  private watchlistInterval;
33
- private replayOriginalData;
83
+ private watchlistStore;
84
+ /** The list follows `setSymbols` (no lists given, none kept). */
85
+ private watchlistFromSymbols;
86
+ private quoteSource;
87
+ private stopQuotes;
88
+ /** The symbols quotes are coming for, joined. */
89
+ private quotedKey;
90
+ /** The latest quote of each symbol. */
91
+ private quotes;
92
+ private symbolInfoPanel;
93
+ /** Bumped by each news request: a late answer for an earlier symbol is dropped. */
94
+ private newsRequest;
95
+ /** Headlines per symbol, kept a few minutes. */
96
+ private newsCache;
97
+ private marketTimer;
98
+ private chartNav;
99
+ /** Bars on screen, for the navigation's scroll step. */
100
+ private visibleBarCount;
34
101
  private replayPollInterval;
102
+ /** Bars revealed per second. */
35
103
  private replaySpeed;
104
+ /** `'bar'`, or the finer interval a replay steps through. */
105
+ private replayStep;
106
+ private replayStartSeq;
107
+ /** Finer bars fetched or built for the last replay in steps. */
108
+ private replayStepsCache;
109
+ /** While picking the start bar: shades the bars right of the pointer. */
110
+ private replayShade;
36
111
  private layoutKeyPrefix;
37
112
  private layoutDebounceMs;
38
113
  private activeLayoutKey;
39
114
  private root;
40
115
  private chartContainer;
41
116
  private loading;
117
+ private historyPill;
42
118
  /** Bumped per stream connect; a connect that is no longer the latest leaves the UI to the newer one. */
43
119
  private connectSeq;
44
120
  /** Bumped per local resample and widget.setData; a deferred local switch that is no longer the latest is skipped. */
@@ -49,6 +125,8 @@ export declare class ChartWidget {
49
125
  private options;
50
126
  private symbols;
51
127
  private settingsState;
128
+ /** What Reset in the settings panel goes back to: the defaults, as the host's features set them. */
129
+ private settingsDefaults;
52
130
  private t;
53
131
  private adapter;
54
132
  private boundGlobalKeydown;
@@ -58,6 +136,39 @@ export declare class ChartWidget {
58
136
  constructor(container: HTMLElement, options?: ChartWidgetOptions);
59
137
  /** Replace the searchable symbol catalog. Does not change the active symbol. */
60
138
  setSymbols(symbols: string[]): void;
139
+ /** Every watchlist, in order. */
140
+ getWatchlists(): WatchlistList[];
141
+ /** The shown watchlist's id, or null without a watchlist. */
142
+ getActiveWatchlist(): string | null;
143
+ /** Replace every watchlist (and which one shows). */
144
+ setWatchlists(lists: WatchlistList[], activeList?: string): void;
145
+ setActiveWatchlist(id: string): void;
146
+ /** Add a symbol to a watchlist (the shown one by default). */
147
+ addToWatchlist(symbol: string, listId?: string): void;
148
+ removeFromWatchlist(symbol: string, listId?: string): void;
149
+ /**
150
+ * Quotes for the watchlist's rows (and `getQuote`), from your own feed.
151
+ * What isn't a quote (no symbol, no finite last price) is left out.
152
+ */
153
+ setQuotes(quotes: readonly Quote[]): void;
154
+ /** The latest quote of a symbol, from the quote source or `setQuotes`. */
155
+ getQuote(symbol: string): Quote | null;
156
+ /** Open or close the symbol info panel (toggle when `open` is left out). */
157
+ toggleSymbolInfo(open?: boolean): void;
158
+ /** The market's status in the status bar, and the panel when it's open. */
159
+ private refreshMarket;
160
+ private refreshSymbolInfo;
161
+ private symbolInfoView;
162
+ /** Headlines for the chart's symbol into the open panel; cached a few minutes. */
163
+ private loadNews;
164
+ /** The BCP 47 tag numbers in the panels are written in. */
165
+ private intlLocale;
166
+ /** The language words in the panels are written in ("in 3 hours", weekday names): the widget's. */
167
+ private textLocale;
168
+ private createWatchlist;
169
+ /** Quotes for the shown list's symbols: a new subscription when they change. */
170
+ private followQuotes;
171
+ private takeQuotes;
61
172
  setSymbol(symbol: string): Promise<void>;
62
173
  /**
63
174
  * Push an entry into the watchlist (e.g., from your own WebSocket).
@@ -70,12 +181,77 @@ export declare class ChartWidget {
70
181
  */
71
182
  setWatchlistEntry(symbol: string, entry: Partial<WatchlistEntry>): void;
72
183
  private tickWatchlist;
184
+ /** Ignored when the chart's `features.timeframes` whitelist leaves `tf` out. */
73
185
  setTimeframe(tf: TimeFrame): Promise<void>;
74
186
  setTheme(theme: import('@tradecanvas/commons').ThemeName | Theme): void;
75
187
  getChart(): Chart;
188
+ /**
189
+ * Change the widget's look: a preset (`'studio'`, `'terminal'`,
190
+ * `'capsule'`) or your theme over one. Colours stay with `setTheme`.
191
+ */
192
+ setUI(theme: WidgetUIPreset | WidgetUITheme): void;
193
+ /** The widget's look, every token set. */
194
+ getUI(): ResolvedWidgetUI;
195
+ /** The chart's own tags and pills take the look's corners. */
196
+ private applyChartShapes;
76
197
  destroy(): void;
77
198
  private handleSymbolClick;
199
+ /** The host's symbol search, else the adapter's; none filters `symbols`. */
200
+ private symbolSearchFn;
78
201
  private handleTimeframe;
202
+ /** Fill the screen with the widget, or leave fullscreen. */
203
+ toggleFullscreen(): void;
204
+ /** A drawing tool's name in the widget's language. */
205
+ private drawingToolName;
206
+ /** Open a drawing's settings (double-click on it, or the object tree's settings button). */
207
+ private openDrawingSettings;
208
+ /** Add a "price crosses this drawing" alert and say so. */
209
+ private addDrawingAlert;
210
+ /** The menu of a right-clicked drawing; the chart has selected it (and its group) by now. */
211
+ private openDrawingMenu;
212
+ private runDrawingMenuAction;
213
+ /** What the chart's menus can offer here, and how the chart is set now. */
214
+ private chartMenuContext;
215
+ /**
216
+ * Open a chart menu at (x, y) in the chart's pixels, the host's own entries
217
+ * last; nothing when it has no entries.
218
+ */
219
+ private openChartMenu;
220
+ /**
221
+ * A button of your own on the toolbar: an icon (built-in or yours), text,
222
+ * a switch. `null` without a toolbar.
223
+ */
224
+ addToolbarButton(spec: import('./types.js').ToolbarButtonSpec): import('./types.js').ToolbarButtonHandle | null;
225
+ private runChartMenuAction;
226
+ /** Open or close the account panel (no argument: the other way from now). */
227
+ toggleAccountPanel(open?: boolean): void;
228
+ /** The order ticket, at a price from the chart (or the market). */
229
+ private openOrderTicket;
230
+ /** Redraw the account panel once a frame at most (ticks, fills and order changes come in bursts). */
231
+ private refreshAccountSoon;
232
+ private refreshAccount;
233
+ /** Ask for a limit or stop order at `price` (one unit), and say so. */
234
+ private placeOrderAt;
235
+ /** The display timezone from the settings; 'exchange' is the zone the chart resolved it to. */
236
+ private displayTimezone;
237
+ private toggleGoToDate;
238
+ private goToWallTime;
239
+ /** Pinned timeframes that are still on offer, shortest first. */
240
+ private pinnedTimeframes;
241
+ /** The timeframe menu's rows, typed intervals marked so they can be removed. */
242
+ private timeframeMenu;
243
+ /** A typed interval: switch to it, adding and pinning it when it is new. False when it isn't one. */
244
+ private handleAddTimeframe;
245
+ /** A note by a signal marker: its source or label, side, confidence, price and time; null hides it. */
246
+ private showMarkerTip;
247
+ /** A typed interval: one on offer is picked; another joins the menu (not the toolbar's pins). */
248
+ private selectTypedTimeframe;
249
+ /** Put a template's indicators in place of the chart's (one undo step). */
250
+ private applyIndicatorTemplate;
251
+ /** Save the chart's indicators as a template, asking for its name. */
252
+ private promptSaveIndicatorTemplate;
253
+ private handleRemoveTimeframe;
254
+ private handleToggleTimeframeFavorite;
79
255
  /**
80
256
  * Load the widget's base series. Prefer this over `getChart().setData()` so
81
257
  * client-side timeframe resampling has a finest-resolution source to
@@ -113,25 +289,49 @@ export declare class ChartWidget {
113
289
  private openIndicatorSettings;
114
290
  private refreshObjects;
115
291
  private handleAddCompare;
116
- /** Overlay another symbol's normalized series. Fetches history via the adapter. */
117
- addCompareSymbol(symbol: string): Promise<void>;
292
+ /** How to compare with `symbol`: a menu by the chart's top left. */
293
+ private pickCompareWay;
294
+ /**
295
+ * Compare with another symbol: its percent change on the price scale
296
+ * (`'percent'`, the default), its price on a scale of its own (`'scale'`)
297
+ * or in a pane of its own (`'pane'`), or the spread or ratio of this
298
+ * symbol to it (`'spread'`, `'ratio'`). Its bars come through the adapter.
299
+ */
300
+ addCompareSymbol(symbol: string, way?: CompareWay): Promise<void>;
118
301
  private handleRemoveCompare;
302
+ /**
303
+ * Bars of a symbol the chart's indicators read (a compare on its own
304
+ * scale, a spread), at the chart's interval. A later interval wins.
305
+ */
306
+ private loadSymbolSeries;
119
307
  /** Refetch every comparison overlay at the current symbol/timeframe. */
120
308
  private refetchCompares;
121
309
  private refreshAlerts;
310
+ private alertListItem;
311
+ /** An alert in words, for a toast or a notification: "Price crossing EMA 20", "RSI greater than 70". */
312
+ private alertText;
122
313
  /** Price + every active indicator line, as selectable alert sources. */
123
314
  private buildAlertSources;
124
315
  /** Latest value for an alert source channel (price or indicator line). */
125
316
  private getAlertChannelValue;
126
317
  private formatAlertPrice;
318
+ /** The user picked a chart type: applied, and undoable. */
127
319
  private handleChartType;
320
+ private applyChartType;
321
+ /**
322
+ * Add another instance — picking EMA twice gives two EMAs (e.g. 20 and 50
323
+ * once their settings are changed). Remove one from its chip.
324
+ */
128
325
  private handleAddIndicator;
129
326
  private handleRemoveIndicator;
130
327
  private toggleCommandPalette;
131
328
  private buildCommandItems;
132
329
  private handleAction;
133
330
  private handleDrawingTool;
331
+ /** The cursor button: no tool, no eraser, no zoom box. */
134
332
  private handleCancelDrawing;
333
+ private handleToggleStayInDrawing;
334
+ /** The magnet button goes off → weak → strong → off. */
135
335
  private handleToggleMagnet;
136
336
  private handleToggleTheme;
137
337
  private openSettings;
@@ -141,6 +341,25 @@ export declare class ChartWidget {
141
341
  * exposed so apps can post their own (e.g. "alert triggered at 64,200").
142
342
  */
143
343
  toast(message: string, kind?: 'info' | 'error'): void;
344
+ /** Named layouts: save, open, rename, delete, auto-save. `null` with `layouts: false`. */
345
+ getLayoutSession(): LayoutSession | null;
346
+ /** The symbol showing. */
347
+ getSymbol(): string;
348
+ /** The interval showing. */
349
+ getTimeframe(): TimeFrame;
350
+ /** This chart as a layout: symbol, interval, scale and the chart's state (no theme). A copy, free to keep. */
351
+ captureLayout(): WidgetLayoutContent;
352
+ /** Show a layout from `captureLayout()`. */
353
+ restoreLayout(content: WidgetLayoutContent): Promise<void>;
354
+ /** `captureLayout()` as JSON. */
355
+ getLayoutContent(): string;
356
+ /** Show a layout from `getLayoutContent()`; `false` when it is not one. */
357
+ applyLayoutContent(content: string): Promise<boolean>;
358
+ private setupLayouts;
359
+ /** Save into the open layout, or ask for a name when there is none. */
360
+ saveLayout(): Promise<void>;
361
+ /** Open a saved layout by id; `false` when it could not be. */
362
+ openLayout(id: string): Promise<boolean>;
144
363
  /**
145
364
  * Wipe the layout saved for `symbol` (or the active symbol if omitted).
146
365
  * Useful as an "Reset layout" command in user-facing menus.
@@ -148,22 +367,76 @@ export declare class ChartWidget {
148
367
  clearSavedLayout(symbol?: string): void;
149
368
  private applySymbolLayout;
150
369
  private flushActiveLayout;
151
- /**
152
- * After loading a layout, the chart restores indicator instances but our
153
- * `state.activeIndicators` map (used to render the chip strip) is stale.
154
- * Rebuild it from the live `getActiveIndicators` list.
155
- */
156
- private rebuildActiveIndicatorsMapFromChart;
370
+ /** Rebuild the chip strip from the chart's indicator instances. */
371
+ private syncIndicatorsFromChart;
157
372
  /** Open (or close) bar replay with its scrubber — what the toolbar's Replay button does. */
158
373
  toggleReplay(): void;
374
+ /**
375
+ * Open replay in "pick a start bar" mode: the bars right of the pointer
376
+ * are shaded, and a click cuts the chart there and waits paused. Play
377
+ * starts from a default point; "random bar" picks one.
378
+ */
159
379
  private enterReplay;
380
+ private readonly hideReplayShade;
381
+ /**
382
+ * Open replay (if it isn't open) and start it at bar `index` — paused, or
383
+ * playing when `play` is set — skipping the pick-a-bar step.
384
+ */
385
+ replayFrom(index: number, play?: boolean): void;
386
+ /** Cut the chart at `index` and wait paused (or play at once). */
387
+ private startReplayAt;
388
+ /** Finer intervals a replay can step through: they divide the chart's, and the feed (or the bars loaded) has them. */
389
+ private replayStepOptions;
390
+ /** The finer bars for a replay in `tf` steps: from the feed, or built from the bars loaded. Null when there are none. */
391
+ private replayStepsFor;
392
+ /** Bars available to replay: the whole series, not the slice on screen. */
393
+ private replayTotal;
394
+ /** Mirror the replay engine in the bar; close it if the session ended elsewhere. */
395
+ private syncReplayBar;
396
+ private stepReplay;
397
+ /** Replay shortcuts: Shift+←/→ step one bar; Escape cancels picking a start bar. */
398
+ private handleReplayKey;
399
+ private positionReplayShade;
400
+ /** Leave replay and return to the live series (with updates that arrived meanwhile). */
160
401
  private exitReplay;
402
+ private teardownReplayUi;
161
403
  private applySettings;
162
404
  private resetSettings;
405
+ /**
406
+ * A settings change the user made: applied, and put in the chart's undo
407
+ * history with its drawings and indicators. A burst on the same settings
408
+ * (a colour dragged across the picker) is one step.
409
+ */
410
+ private changeSettings;
411
+ /** Settings back as they were (an undo or redo), shown in the settings if they're open. */
412
+ private restoreSettings;
163
413
  private connectStream;
414
+ /** Redraw the on-chart indicator list on the next frame (coalesced). */
415
+ private scheduleLegend;
416
+ private renderLegend;
417
+ /** A pane's button on the chart. */
418
+ private runPaneAction;
419
+ /**
420
+ * An indicator's "more" menu: into the pane above or below it (the price
421
+ * pane at the top), a pane of its own, back to the price pane; then its
422
+ * settings and remove.
423
+ */
424
+ private openLegendMenu;
164
425
  private updateUI;
165
426
  private resolveIsDark;
166
427
  private resolveTheme;
167
428
  private isColorDark;
168
429
  }
430
+ export { indicatorChipLabel };
431
+ type ActiveIndicator = ReturnType<Chart['getActiveIndicators']>[number];
432
+ /** How `addCompareSymbol` compares: percent change on the price scale, its own scale or pane, spread, ratio. */
433
+ export type CompareWay = 'percent' | 'scale' | 'pane' | 'spread' | 'ratio';
434
+ /**
435
+ * The lines `instanceId` can be computed from: every drawn line of the other
436
+ * indicators, except those that already read from it (that would be a loop).
437
+ */
438
+ export declare function lineSourcesFor(instanceId: string, active: readonly ActiveIndicator[]): {
439
+ value: string;
440
+ label: string;
441
+ }[];
169
442
  //# sourceMappingURL=ChartWidget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWidget.d.ts","sourceRoot":"","sources":["../../src/widget/ChartWidget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartWidget.d.ts","sourceRoot":"","sources":["../../src/widget/ChartWidget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import { DataAdapter, Theme, ThemeName } from '@tradecanvas/commons';
2
+ import { ChartWidget } from './ChartWidget.js';
3
+ import { ChartWidgetOptions, WidgetLayoutsOptions } from './types.js';
4
+ import { GridLayout } from '../grid/ChartGrid.js';
5
+ import { LayoutSession } from '../state/LayoutSession.js';
6
+ import { WidgetLayoutContent } from './widgetLayout.js';
7
+ import { ResolvedWidgetUI, WidgetUIPreset, WidgetUITheme } from './widgetUI.js';
8
+ /** What the charts of a grid follow from each other. */
9
+ export interface WidgetGridSync {
10
+ /** A new symbol on one chart goes to all. */
11
+ symbol: boolean;
12
+ /** A new interval on one chart goes to all. */
13
+ interval: boolean;
14
+ /** The crosshair's time shows on every chart. */
15
+ crosshair: boolean;
16
+ /** Scrolling and zooming one chart moves the others to the same times. */
17
+ time: boolean;
18
+ /** Drawings are copied to the charts showing the same symbol. */
19
+ drawings: boolean;
20
+ /** A replay on one chart replays the others to the same time. */
21
+ replay: boolean;
22
+ }
23
+ export declare const DEFAULT_GRID_SYNC: Readonly<WidgetGridSync>;
24
+ /** Columns and rows of each arrangement. */
25
+ export declare const GRID_SHAPES: Readonly<Record<GridLayout, {
26
+ cols: number;
27
+ rows: number;
28
+ }>>;
29
+ export interface ChartWidgetGridOptions {
30
+ /** How the charts are arranged. Default `'1x2'` (two side by side). */
31
+ layout?: GridLayout;
32
+ /** The arrangements the bar offers. Default all of them. */
33
+ layoutChoices?: readonly GridLayout[];
34
+ /**
35
+ * Options for every chart. Leave `adapter` out of these when there is more
36
+ * than one chart: an adapter keeps one stream, so each chart needs its own
37
+ * (see `adapter`).
38
+ */
39
+ widget?: ChartWidgetOptions;
40
+ /** Makes each chart's data adapter, `new BinanceAdapter()` say; called once per chart. */
41
+ adapter?: (index: number) => DataAdapter;
42
+ /** Each chart's own options, by position (its symbol and interval, say), over `widget`. */
43
+ cells?: readonly ChartWidgetOptions[];
44
+ /** What the charts follow from each other; see {@link DEFAULT_GRID_SYNC}. */
45
+ sync?: Partial<WidgetGridSync>;
46
+ /** Named layouts of the whole grid (arrangement, sync and every chart). Default `true`. */
47
+ layouts?: boolean | WidgetLayoutsOptions;
48
+ /** The bar above the charts: arrangement, sync, layouts. Default `true`. */
49
+ bar?: boolean;
50
+ /** The chart in use changed (pressed, or the grid shrank). */
51
+ onActiveChange?: (index: number, widget: ChartWidget) => void;
52
+ /** A chart was made: at the start, and when the grid grows. Feed it data, add indicators… */
53
+ onChartAdd?: (widget: ChartWidget, index: number) => void;
54
+ }
55
+ /** What a grid's named layout holds. */
56
+ export interface WidgetGridLayoutContent {
57
+ v: 1;
58
+ kind: 'grid';
59
+ layout: GridLayout;
60
+ sync: WidgetGridSync;
61
+ active: number;
62
+ cells: WidgetLayoutContent[];
63
+ }
64
+ /** An arrangement the grid knows (own keys only: a stored `"constructor"` is not one). */
65
+ export declare function isGridLayout(value: unknown): value is GridLayout;
66
+ /** A grid's layout read back from storage, or `null` when it is not one. */
67
+ export declare function readGridLayout(value: unknown): WidgetGridLayoutContent | null;
68
+ /**
69
+ * Several chart widgets side by side, each with its own symbol, interval,
70
+ * indicators and drawings. A bar above them picks the arrangement, links them
71
+ * (symbol, interval, crosshair, time, drawings) and saves the whole grid as a
72
+ * named layout. The chart pressed last is the active one.
73
+ */
74
+ export declare class ChartWidgetGrid {
75
+ private readonly options;
76
+ private root;
77
+ private cellsEl;
78
+ private cells;
79
+ private layout;
80
+ private sync;
81
+ private active;
82
+ /** The chart under the pointer: scrolling there moves the others. */
83
+ private hovered;
84
+ /** Above 0 while the grid itself changes charts (a relay, a restore), so they don't pass it back. */
85
+ private relayDepth;
86
+ /** The look given to setUI, for charts added later. */
87
+ private uiTheme;
88
+ /** Charts the grid shrank away from, by position: growing again brings them back as they were. */
89
+ private parked;
90
+ private drawingFrame;
91
+ private drawingSource;
92
+ private layoutButtons;
93
+ private syncButtons;
94
+ private layoutsButton;
95
+ private session;
96
+ private layoutsUI;
97
+ private readonly t;
98
+ private destroyed;
99
+ private unregisterKeys;
100
+ private readonly onKeyDown;
101
+ constructor(container: HTMLElement, options?: ChartWidgetGridOptions);
102
+ private get relaying();
103
+ /** Run `change` as the grid's own (the charts it changes don't pass it on). */
104
+ private quietly;
105
+ getWidget(index: number): ChartWidget | null;
106
+ getWidgets(): ChartWidget[];
107
+ getActiveIndex(): number;
108
+ getActiveWidget(): ChartWidget;
109
+ setActive(index: number): void;
110
+ getLayout(): GridLayout;
111
+ /**
112
+ * Arrange the charts. Charts that no longer fit are put away (kept in the
113
+ * saved layout too) and come back as they were when the grid grows again;
114
+ * brand-new ones open on the active chart's symbol and interval when those
115
+ * are synced.
116
+ */
117
+ setLayout(layout: GridLayout): void;
118
+ getSync(): WidgetGridSync;
119
+ /** Every chart's look, and the bar's (see `ChartWidget.setUI`). */
120
+ setUI(theme: WidgetUIPreset | WidgetUITheme): void;
121
+ /** The grid's look, every token set. */
122
+ getUI(): ResolvedWidgetUI;
123
+ setSync(patch: Partial<WidgetGridSync>): void;
124
+ /** Every chart's theme. */
125
+ setTheme(theme: ThemeName | Theme): void;
126
+ /** Named layouts of the grid. `null` with `layouts: false`. */
127
+ getLayoutSession(): LayoutSession | null;
128
+ /** The grid as a layout: arrangement, sync and every chart, those put away included. */
129
+ captureLayout(): WidgetGridLayoutContent;
130
+ /**
131
+ * Show a layout from `captureLayout()`. Rejects when a chart could not take
132
+ * its part (the others still finish). For a saved layout, open it through
133
+ * `getLayoutSession()`, so an auto-save can't catch it half shown.
134
+ */
135
+ restoreLayout(content: WidgetGridLayoutContent): Promise<void>;
136
+ getLayoutContent(): string;
137
+ /** Show a layout from `getLayoutContent()`; `false` when it is not one. */
138
+ applyLayoutContent(content: string): Promise<boolean>;
139
+ destroy(): void;
140
+ private shapeCount;
141
+ private applyShape;
142
+ private createCell;
143
+ /** The chart's links to the others (its listeners go with it when the widget is destroyed). */
144
+ private wireCell;
145
+ private destroyCell;
146
+ /** Pass a change from `source` on to the other charts, without it coming back. */
147
+ private relay;
148
+ /** A chart that was put away comes back at `index`, as it was (on the synced symbol and interval). */
149
+ private unpark;
150
+ /** Drawings move in bursts (a drag): copy them once a frame. */
151
+ private copyDrawingsSoon;
152
+ /** `source`'s drawings onto the charts showing its symbol (copies: charts change drawings in place). */
153
+ private copyDrawings;
154
+ /** Drawings sync switched on: each symbol's charts get all their drawings put together (none lost). */
155
+ private mergeDrawings;
156
+ /** Dark or light, as `source` (or the active chart) now is, for the bar and every chart. */
157
+ private followTheme;
158
+ private markActive;
159
+ private buildBar;
160
+ private sep;
161
+ private renderBar;
162
+ private renderLayoutsButton;
163
+ private setupLayouts;
164
+ private toast;
165
+ }
166
+ //# sourceMappingURL=ChartWidgetGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartWidgetGrid.d.ts","sourceRoot":"","sources":["../../src/widget/ChartWidgetGrid.ts"],"names":[],"mappings":"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"}