@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.
Files changed (70) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +858 -828
  3. package/dist/Chart.d.ts +124 -1
  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-cURSpfUb.js → DragDropImporter-Dd9Mud5J.js} +376 -160
  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 +2 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +70 -85
  19. package/dist/index.js.map +1 -1
  20. package/dist/widget/ChartWidget.d.ts +71 -7
  21. package/dist/widget/ChartWidget.d.ts.map +1 -1
  22. package/dist/widget/WidgetCommandPalette.d.ts +3 -1
  23. package/dist/widget/WidgetCommandPalette.d.ts.map +1 -1
  24. package/dist/widget/WidgetDrawingSidebar.d.ts +12 -0
  25. package/dist/widget/WidgetDrawingSidebar.d.ts.map +1 -1
  26. package/dist/widget/WidgetGoToDate.d.ts +45 -0
  27. package/dist/widget/WidgetGoToDate.d.ts.map +1 -0
  28. package/dist/widget/WidgetHotkeySheet.d.ts +3 -1
  29. package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
  30. package/dist/widget/WidgetIndicatorLegend.d.ts +68 -0
  31. package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -0
  32. package/dist/widget/WidgetLoadingOverlay.d.ts.map +1 -1
  33. package/dist/widget/WidgetReplayBar.d.ts +37 -7
  34. package/dist/widget/WidgetReplayBar.d.ts.map +1 -1
  35. package/dist/widget/WidgetSettings.d.ts +13 -1
  36. package/dist/widget/WidgetSettings.d.ts.map +1 -1
  37. package/dist/widget/WidgetStatusBar.d.ts +16 -1
  38. package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
  39. package/dist/widget/WidgetSymbolSearch.d.ts +3 -1
  40. package/dist/widget/WidgetSymbolSearch.d.ts.map +1 -1
  41. package/dist/widget/WidgetToolbar.d.ts +12 -3
  42. package/dist/widget/WidgetToolbar.d.ts.map +1 -1
  43. package/dist/widget/WidgetTooltip.d.ts +43 -0
  44. package/dist/widget/WidgetTooltip.d.ts.map +1 -0
  45. package/dist/widget/escapeHtml.d.ts +3 -0
  46. package/dist/widget/escapeHtml.d.ts.map +1 -0
  47. package/dist/widget/i18n.d.ts +26 -0
  48. package/dist/widget/i18n.d.ts.map +1 -1
  49. package/dist/widget/iconSet.d.ts +26 -0
  50. package/dist/widget/iconSet.d.ts.map +1 -0
  51. package/dist/widget/icons.d.ts +5 -0
  52. package/dist/widget/icons.d.ts.map +1 -1
  53. package/dist/widget/index.cjs +3035 -2561
  54. package/dist/widget/index.cjs.map +1 -1
  55. package/dist/widget/index.d.ts +3 -0
  56. package/dist/widget/index.d.ts.map +1 -1
  57. package/dist/widget/index.js +1546 -585
  58. package/dist/widget/index.js.map +1 -1
  59. package/dist/widget/legendValues.d.ts +14 -0
  60. package/dist/widget/legendValues.d.ts.map +1 -0
  61. package/dist/widget/types.d.ts +34 -8
  62. package/dist/widget/types.d.ts.map +1 -1
  63. package/dist/widget/widgetConfig.d.ts +1 -5
  64. package/dist/widget/widgetConfig.d.ts.map +1 -1
  65. package/dist/widget/widgetTimeframes.d.ts +20 -0
  66. package/dist/widget/widgetTimeframes.d.ts.map +1 -0
  67. package/package.json +3 -3
  68. package/dist/DragDropImporter-BazeSQPD.cjs +0 -2
  69. package/dist/DragDropImporter-BazeSQPD.cjs.map +0 -1
  70. package/dist/DragDropImporter-cURSpfUb.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ /** Pause before the first tooltip shows. */
2
+ export declare const TOOLTIP_DELAY_MS = 300;
3
+ /** After one hides, the next shows at once within this window (moving along a toolbar). */
4
+ export declare const TOOLTIP_WARM_MS = 500;
5
+ /**
6
+ * Quick, styled tooltips for the widget's controls, in place of the
7
+ * browser's `title` tooltip (a fixed ~1 s wait, unstyled). Any element in
8
+ * the widget with a `title` gets one. While the pointer is on it, its title
9
+ * is lifted into `data-tip` so the browser's own tooltip can't appear, and
10
+ * put back when the pointer leaves — so the title keeps doing its other jobs
11
+ * (accessible description, selectors). Keyboard focus shows the tooltip too,
12
+ * leaving the title in place. `data-tip-side` picks a side.
13
+ */
14
+ export declare class WidgetTooltip {
15
+ private readonly root;
16
+ private readonly el;
17
+ private target;
18
+ private source;
19
+ /** The control just pressed (or keyed): no tooltip on it until the pointer leaves. */
20
+ private pressed;
21
+ private showTimer;
22
+ private watchFrame;
23
+ private warmUntil;
24
+ private readonly observer;
25
+ constructor(root: HTMLElement);
26
+ destroy(): void;
27
+ private readonly onOver;
28
+ private readonly onOut;
29
+ private readonly onPress;
30
+ private readonly onFocus;
31
+ private readonly onBlur;
32
+ private readonly hide;
33
+ private tipTarget;
34
+ private schedule;
35
+ private show;
36
+ /** While shown, follow the control: gone, hidden or disabled takes the tooltip with it. */
37
+ private watch;
38
+ /** Beside the control on its preferred side, flipped and clamped to stay inside the widget. */
39
+ private place;
40
+ private isVisible;
41
+ private clearTimer;
42
+ }
43
+ //# sourceMappingURL=WidgetTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetTooltip.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetTooltip.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,2FAA2F;AAC3F,eAAO,MAAM,eAAe,MAAM,CAAC;AAQnC;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAWZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAoC;IAClD,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAEf,IAAI,EAAE,WAAW;IA2B9C,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOrB;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAQpB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAYtB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAKtB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAKrB;IAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAQnB;IAEF,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,IAAI;IAWZ,2FAA2F;IAC3F,OAAO,CAAC,KAAK;IASb,+FAA+F;IAC/F,OAAO,CAAC,KAAK;IAgCb,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;CAKnB"}
@@ -0,0 +1,3 @@
1
+ /** Text made safe to put in HTML markup, attribute values included. */
2
+ export declare function escapeHtml(text: string): string;
3
+ //# sourceMappingURL=escapeHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeHtml.d.ts","sourceRoot":"","sources":["../../src/widget/escapeHtml.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -14,6 +14,14 @@ export declare const EN_MESSAGES: {
14
14
  readonly 'indicatorType.overlay': "overlay";
15
15
  readonly 'indicatorType.panel': "panel";
16
16
  readonly 'toolbar.replay': "Bar replay";
17
+ readonly 'replay.selectHint': "Click a bar to start the replay";
18
+ readonly 'replay.random': "Random bar";
19
+ readonly 'replay.realtime': "Back to realtime";
20
+ readonly 'replay.barsPerSecond': "bars/s";
21
+ readonly 'replay.play': "Play";
22
+ readonly 'replay.pause': "Pause";
23
+ readonly 'replay.stepBack': "Step back (Shift+←)";
24
+ readonly 'replay.stepForward': "Step forward (Shift+→)";
17
25
  readonly 'toolbar.longBracket': "Long bracket";
18
26
  readonly 'toolbar.shortBracket': "Short bracket";
19
27
  readonly 'toolbar.depthLadder': "Depth ladder";
@@ -22,6 +30,24 @@ export declare const EN_MESSAGES: {
22
30
  readonly 'toolbar.screenshot': "Screenshot";
23
31
  readonly 'toolbar.settings': "Chart Settings";
24
32
  readonly 'toolbar.toggleTheme': "Toggle theme";
33
+ readonly 'toolbar.timeframes': "Timeframes";
34
+ readonly 'toolbar.timeframes.pin': "Pin to toolbar";
35
+ readonly 'toolbar.fullscreen': "Fullscreen";
36
+ readonly 'legend.show': "Show";
37
+ readonly 'legend.hide': "Hide";
38
+ readonly 'legend.settings': "Settings";
39
+ readonly 'legend.remove': "Remove";
40
+ readonly 'legend.collapse': "Collapse indicators";
41
+ readonly 'legend.expand': "Show indicators";
42
+ readonly 'toolbar.exitFullscreen': "Exit fullscreen";
43
+ readonly 'range.presets': "Visible range";
44
+ readonly 'range.all': "All";
45
+ readonly 'range.goTo': "Go to date";
46
+ readonly 'range.goToSubmit': "Go to";
47
+ readonly 'range.date': "Date";
48
+ readonly 'range.time': "Time";
49
+ readonly 'range.cancel': "Cancel";
50
+ readonly 'range.beforeData': "Showing the earliest loaded bar";
25
51
  readonly 'chartType.candlestick': "Candlestick";
26
52
  readonly 'chartType.line': "Line";
27
53
  readonly 'chartType.area': "Area";
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/widget/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Dd,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAqD3D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAG/E,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACzD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAM5B;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,UAAU,CAEjF"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/widget/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFd,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CA+E3D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAG/E,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACzD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAM5B;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,UAAU,CAEjF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The TradeCanvas icon set, as in the "TradeCanvas Icons" Figma file: a 24 px
3
+ * grid with 2 px padding, 1.75 px strokes with round caps and joins. Drawing
4
+ * tools mark their anchor points (where you click to draw) with filled dots.
5
+ */
6
+ export interface IconDef {
7
+ /** Stroked path data. */
8
+ d?: string;
9
+ /** Dashed stroke, for guides. */
10
+ dash?: string;
11
+ /** Solid shapes, such as filled candle bodies. */
12
+ fills?: readonly string[];
13
+ /** An area filled at 22%. */
14
+ soft?: string;
15
+ /** Filled dots: [cx, cy, r = 1.75]. */
16
+ dots?: readonly (readonly number[])[];
17
+ }
18
+ /** Toolbar, sidebar and panel glyphs. */
19
+ export declare const UI_ICONS: Readonly<Record<string, IconDef>>;
20
+ /** One per drawing tool, keyed by tool type. */
21
+ export declare const DRAWING_TOOL_ICONS: Readonly<Record<string, IconDef>>;
22
+ /** One per chart type, keyed by chart type. */
23
+ export declare const CHART_TYPE_ICONS: Readonly<Record<string, IconDef>>;
24
+ /** The icon as an inline SVG string at `size` px, coloured by `currentColor`. */
25
+ export declare function iconSvg(icon: IconDef, size: number): string;
26
+ //# sourceMappingURL=iconSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iconSet.d.ts","sourceRoot":"","sources":["../../src/widget/iconSet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,yBAAyB;IACzB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CACvC;AAED,yCAAyC;AACzC,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2CtD,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyChE,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa9D,CAAC;AAoBF,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -1,2 +1,7 @@
1
+ /** An interface icon (toolbar, sidebar, panels) as inline SVG; '' for an unknown name. */
1
2
  export declare function createIcon(name: string, size?: number): string;
3
+ /** A drawing tool's own icon; a pen for a tool without one (e.g. from a plugin). */
4
+ export declare function createToolIcon(tool: string, size?: number): string;
5
+ /** A chart type's icon; the generic chart glyph for a type without one. */
6
+ export declare function createChartTypeIcon(type: string, size?: number): string;
2
7
  //# sourceMappingURL=icons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/widget/icons.ts"],"names":[],"mappings":"AAwCA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAI1D"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/widget/icons.ts"],"names":[],"mappings":"AAKA,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAG1D;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAE9D;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAEnE"}