@tradecanvas/chart 1.2.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.
Files changed (74) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +858 -824
  3. package/dist/Chart.d.ts +142 -2
  4. package/dist/Chart.d.ts.map +1 -1
  5. package/dist/DragDropImporter-C5kgfbET.cjs +2 -0
  6. package/dist/DragDropImporter-C5kgfbET.cjs.map +1 -0
  7. package/dist/{DragDropImporter-BcTzFeRP.js → DragDropImporter-Dd9Mud5J.js} +423 -159
  8. package/dist/DragDropImporter-Dd9Mud5J.js.map +1 -0
  9. package/dist/PaneManager.d.ts.map +1 -1
  10. package/dist/charts/ChartTypeStrategy.d.ts +6 -0
  11. package/dist/charts/ChartTypeStrategy.d.ts.map +1 -1
  12. package/dist/grid/ChartGrid.d.ts +1 -0
  13. package/dist/grid/ChartGrid.d.ts.map +1 -1
  14. package/dist/index.cjs +1 -1
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.ts +5 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +74 -89
  19. package/dist/index.js.map +1 -1
  20. package/dist/interaction/verticalPanGate.d.ts +22 -0
  21. package/dist/interaction/verticalPanGate.d.ts.map +1 -0
  22. package/dist/widget/ChartWidget.d.ts +71 -7
  23. package/dist/widget/ChartWidget.d.ts.map +1 -1
  24. package/dist/widget/WidgetCommandPalette.d.ts +3 -1
  25. package/dist/widget/WidgetCommandPalette.d.ts.map +1 -1
  26. package/dist/widget/WidgetDrawingSidebar.d.ts +12 -0
  27. package/dist/widget/WidgetDrawingSidebar.d.ts.map +1 -1
  28. package/dist/widget/WidgetGoToDate.d.ts +45 -0
  29. package/dist/widget/WidgetGoToDate.d.ts.map +1 -0
  30. package/dist/widget/WidgetHotkeySheet.d.ts +4 -2
  31. package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
  32. package/dist/widget/WidgetIndicatorLegend.d.ts +68 -0
  33. package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -0
  34. package/dist/widget/WidgetLoadingOverlay.d.ts +3 -1
  35. package/dist/widget/WidgetLoadingOverlay.d.ts.map +1 -1
  36. package/dist/widget/WidgetObjectTree.d.ts +1 -1
  37. package/dist/widget/WidgetReplayBar.d.ts +37 -7
  38. package/dist/widget/WidgetReplayBar.d.ts.map +1 -1
  39. package/dist/widget/WidgetSettings.d.ts +13 -1
  40. package/dist/widget/WidgetSettings.d.ts.map +1 -1
  41. package/dist/widget/WidgetStatusBar.d.ts +16 -1
  42. package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
  43. package/dist/widget/WidgetSymbolSearch.d.ts +3 -1
  44. package/dist/widget/WidgetSymbolSearch.d.ts.map +1 -1
  45. package/dist/widget/WidgetToolbar.d.ts +12 -3
  46. package/dist/widget/WidgetToolbar.d.ts.map +1 -1
  47. package/dist/widget/WidgetTooltip.d.ts +43 -0
  48. package/dist/widget/WidgetTooltip.d.ts.map +1 -0
  49. package/dist/widget/escapeHtml.d.ts +3 -0
  50. package/dist/widget/escapeHtml.d.ts.map +1 -0
  51. package/dist/widget/i18n.d.ts +26 -0
  52. package/dist/widget/i18n.d.ts.map +1 -1
  53. package/dist/widget/iconSet.d.ts +26 -0
  54. package/dist/widget/iconSet.d.ts.map +1 -0
  55. package/dist/widget/icons.d.ts +5 -0
  56. package/dist/widget/icons.d.ts.map +1 -1
  57. package/dist/widget/index.cjs +3035 -2465
  58. package/dist/widget/index.cjs.map +1 -1
  59. package/dist/widget/index.d.ts +3 -0
  60. package/dist/widget/index.d.ts.map +1 -1
  61. package/dist/widget/index.js +1636 -606
  62. package/dist/widget/index.js.map +1 -1
  63. package/dist/widget/legendValues.d.ts +14 -0
  64. package/dist/widget/legendValues.d.ts.map +1 -0
  65. package/dist/widget/types.d.ts +34 -8
  66. package/dist/widget/types.d.ts.map +1 -1
  67. package/dist/widget/widgetConfig.d.ts +1 -5
  68. package/dist/widget/widgetConfig.d.ts.map +1 -1
  69. package/dist/widget/widgetTimeframes.d.ts +20 -0
  70. package/dist/widget/widgetTimeframes.d.ts.map +1 -0
  71. package/package.json +3 -3
  72. package/dist/DragDropImporter-BcTzFeRP.js.map +0 -1
  73. package/dist/DragDropImporter-DZBrretS.cjs +0 -2
  74. package/dist/DragDropImporter-DZBrretS.cjs.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { IndicatorValue } from '@tradecanvas/commons';
2
+ /** The finite line values of one indicator output point, in output order. */
3
+ export declare function legendNumbers(id: string, point: IndicatorValue | null | undefined): number[];
4
+ /**
5
+ * The colour a one-line indicator is drawn in at `point`, so its value reads
6
+ * as part of the line; null = the neutral text colour.
7
+ */
8
+ export declare function legendLineColor(id: string, colors: readonly string[], point: IndicatorValue | null | undefined): string | null;
9
+ /**
10
+ * A pane indicator's value (RSI 54.32, MACD 0.0012, OBV 1.23M): the decimals
11
+ * follow its size, and big ones are shortened.
12
+ */
13
+ export declare function formatIndicatorValue(value: number, locale?: string): string;
14
+ //# sourceMappingURL=legendValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legendValues.d.ts","sourceRoot":"","sources":["../../src/widget/legendValues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAqC3D,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAS5F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GACvC,MAAM,GAAG,IAAI,CAMf;AAcD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAU,GAAG,MAAM,CAK5E"}
@@ -19,6 +19,19 @@ export interface ChartWidgetOptions {
19
19
  settings?: boolean;
20
20
  trading?: boolean;
21
21
  statusBar?: boolean;
22
+ /**
23
+ * Range presets (1D, 5D, 1M … All) and "go to date" (also Alt+G) on the
24
+ * status bar. Default `true`; needs the status bar.
25
+ */
26
+ rangeBar?: boolean;
27
+ /**
28
+ * The indicators on the chart, under the OHLCV legend and at the top of
29
+ * their panes, with show / settings / remove. Default `true`; `false`
30
+ * leaves only the toolbar's indicator count.
31
+ */
32
+ indicatorLegend?: boolean;
33
+ /** Fullscreen button in the toolbar, where the browser allows it. Default `true`. */
34
+ fullscreen?: boolean;
22
35
  /**
23
36
  * Price-alerts UI — a bell button in the toolbar that opens a floating panel
24
37
  * to add / list / delete price alerts, plus a toast when one triggers.
@@ -93,23 +106,34 @@ export interface ChartWidgetOptions {
93
106
  onTimeframeChange?: (tf: TimeFrame) => void;
94
107
  onReady?: (chart: Chart) => void;
95
108
  }
109
+ export interface ActiveIndicatorInfo {
110
+ id: string;
111
+ /** Chip label: short name plus the main parameters, e.g. "EMA 20". */
112
+ label: string;
113
+ }
96
114
  export interface WidgetState {
97
115
  symbol: string;
98
116
  timeframe: TimeFrame;
99
117
  chartType: ChartType;
100
118
  isDark: boolean;
101
- activeIndicators: Map<string, string>;
119
+ /** One entry per indicator instance (several EMAs can be on at once). */
120
+ activeIndicators: Map<string, ActiveIndicatorInfo>;
102
121
  activeTool: DrawingToolType | null;
103
122
  magnetEnabled: boolean;
123
+ /** Keep the drawing tool after each drawing. */
124
+ stayInDrawing: boolean;
104
125
  connectionState: string;
105
126
  connectionMessage: string;
106
127
  }
107
128
  export interface ToolbarConfig {
108
129
  symbols: string[];
130
+ /** Every timeframe on offer, shortest first; the menu lists them all. */
109
131
  timeframes: {
110
132
  label: string;
111
133
  value: TimeFrame;
112
134
  }[];
135
+ /** The ones shown as buttons. Defaults to all of `timeframes`. */
136
+ timeframeFavorites?: TimeFrame[];
113
137
  chartTypes: {
114
138
  label: string;
115
139
  value: ChartType;
@@ -120,9 +144,10 @@ export interface ToolbarConfig {
120
144
  export interface ToolbarCallbacks {
121
145
  onSymbolClick: () => void;
122
146
  onTimeframe: (tf: TimeFrame) => void;
147
+ /** Pin or unpin a timeframe; enables the timeframe menu. */
148
+ onToggleTimeframeFavorite?: (tf: TimeFrame) => void;
123
149
  onChartType: (type: ChartType) => void;
124
150
  onAddIndicator: (id: string) => void;
125
- onRemoveIndicator: (instanceId: string) => void;
126
151
  onScreenshot: () => void;
127
152
  onSettings: () => void;
128
153
  onToggleTheme: () => void;
@@ -131,6 +156,8 @@ export interface ToolbarCallbacks {
131
156
  onToggleObjects?: () => void;
132
157
  onBracket?: (side: 'buy' | 'sell') => void;
133
158
  onToggleLadder?: () => void;
159
+ /** Shown only when given (and the browser allows fullscreen). */
160
+ onToggleFullscreen?: () => void;
134
161
  }
135
162
  export interface SidebarConfig {
136
163
  drawingToolGroups: DrawingToolGroupDef[];
@@ -140,12 +167,14 @@ export interface SidebarConfig {
140
167
  export interface SidebarCallbacks {
141
168
  onDrawingTool: (tool: DrawingToolType) => void;
142
169
  onCancelDrawing: () => void;
143
- onToggleMagnet: () => void;
170
+ /** Omitted when the magnet is switched off (`features.drawingMagnet: false`). */
171
+ onToggleMagnet?: () => void;
144
172
  onToggleFavorite?: (tool: DrawingToolType) => void;
145
173
  onUndo: () => void;
146
174
  onRedo: () => void;
147
175
  onClearDrawings: () => void;
148
176
  onToggleStyle?: () => void;
177
+ onToggleStayInDrawing?: () => void;
149
178
  }
150
179
  export interface SettingsCallbacks {
151
180
  onChange: (patch: Partial<ChartSettingsState>) => void;
@@ -180,6 +209,8 @@ export interface ChartSettingsState {
180
209
  logScale: boolean;
181
210
  scaleMode: PriceScaleMode;
182
211
  autoScale: boolean;
212
+ /** Price scale upside down. */
213
+ invertScale: boolean;
183
214
  crosshairMode: 'normal' | 'magnet' | 'hidden';
184
215
  numberLocale: string;
185
216
  /** 'local' = browser timezone, otherwise a fixed UTC offset in minutes (as a string). */
@@ -197,9 +228,4 @@ export interface DrawingToolGroupDef {
197
228
  value: DrawingToolType;
198
229
  }[];
199
230
  }
200
- export interface ActiveIndicator {
201
- instanceId: string;
202
- id: string;
203
- label: string;
204
- }
205
231
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/widget/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/widget/types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,5 @@
1
- import { ChartType, TimeFrame } from '@tradecanvas/commons';
1
+ import { ChartType } from '@tradecanvas/commons';
2
2
  import { IndicatorDef, DrawingToolGroupDef, ChartSettingsState } from './types.js';
3
- export declare const TIMEFRAMES: {
4
- label: string;
5
- value: TimeFrame;
6
- }[];
7
3
  export declare const CHART_TYPES: {
8
4
  label: string;
9
5
  value: ChartType;
@@ -1 +1 @@
1
- {"version":3,"file":"widgetConfig.d.ts","sourceRoot":"","sources":["../../src/widget/widgetConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAO3D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAa5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EA2FpD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAAY,EAuEpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAG9B,CAAC;AAEF,eAAO,MAAM,eAAe,UAE3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,kBA+B9B,CAAC"}
1
+ {"version":3,"file":"widgetConfig.d.ts","sourceRoot":"","sources":["../../src/widget/widgetConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,WAAW,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,EAa5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EA2FpD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAAY,EAuEpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAG9B,CAAC;AAEF,eAAO,MAAM,eAAe,UAE3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,kBAgC9B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { TimeFrame } from '@tradecanvas/commons';
2
+ /** The timeframe menu when the host offers no list of its own. */
3
+ export declare const WIDGET_TIMEFRAMES: TimeFrame[];
4
+ /** On the toolbar until the user pins others. */
5
+ export declare const WIDGET_TIMEFRAME_FAVORITES: TimeFrame[];
6
+ /** "1m", "1H", "1D", "1W"; minutes and months keep their case ("1m" vs "1M"). */
7
+ export declare function timeframeLabel(tf: TimeFrame): string;
8
+ /**
9
+ * The timeframes to offer, shortest first: the widget's own list (or the
10
+ * default menu), less any that the chart's `features.timeframes` whitelist
11
+ * leaves out.
12
+ */
13
+ export declare function availableTimeframes(widgetList?: TimeFrame[], whitelist?: TimeFrame[]): TimeFrame[];
14
+ /**
15
+ * The toolbar's first favourites: the host's defaults; else, when the host
16
+ * chose the list, all of it (so a short custom list shows as before); else
17
+ * the standard set; else the first few offered.
18
+ */
19
+ export declare function initialTimeframeFavorites(available: TimeFrame[], hostDefaults?: TimeFrame[], hostChoseList?: boolean): TimeFrame[];
20
+ //# sourceMappingURL=widgetTimeframes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetTimeframes.d.ts","sourceRoot":"","sources":["../../src/widget/widgetTimeframes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,EAAE,SAAS,EAAyE,CAAC;AAEnH,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,EAAE,SAAS,EAA0C,CAAC;AAI7F,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAGpD;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAMlG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,EAAE,EACtB,YAAY,CAAC,EAAE,SAAS,EAAE,EAC1B,aAAa,UAAQ,GACpB,SAAS,EAAE,CAKb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tradecanvas/chart",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "description": "High-performance canvas trading chart with built-in indicators, drawing tools, and real-time streaming. Zero external dependencies.",
6
6
  "license": "MIT",
@@ -49,8 +49,8 @@
49
49
  "README.md"
50
50
  ],
51
51
  "dependencies": {
52
- "@tradecanvas/commons": "1.2.0",
53
- "@tradecanvas/core": "1.2.0"
52
+ "@tradecanvas/commons": "1.4.0",
53
+ "@tradecanvas/core": "1.4.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "jsdom": "^25.0.1",