@tradecanvas/chart 1.51.0 → 1.53.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 (119) hide show
  1. package/dist/Chart.d.ts +275 -10
  2. package/dist/Chart.d.ts.map +1 -1
  3. package/dist/DataManager.d.ts +24 -0
  4. package/dist/DataManager.d.ts.map +1 -1
  5. package/dist/HistoryPager.d.ts +12 -2
  6. package/dist/HistoryPager.d.ts.map +1 -1
  7. package/dist/{LayoutSession-Qkx1huV-.js → LayoutSession-D7uQq3jX.js} +1225 -474
  8. package/dist/LayoutSession-D7uQq3jX.js.map +1 -0
  9. package/dist/LayoutSession-nlhT-EH7.cjs +2 -0
  10. package/dist/LayoutSession-nlhT-EH7.cjs.map +1 -0
  11. package/dist/SeriesStore.d.ts +58 -4
  12. package/dist/SeriesStore.d.ts.map +1 -1
  13. package/dist/charts/ChartTypeStrategy.d.ts +32 -5
  14. package/dist/charts/ChartTypeStrategy.d.ts.map +1 -1
  15. package/dist/frameworks/feedBars.d.ts +22 -6
  16. package/dist/frameworks/feedBars.d.ts.map +1 -1
  17. package/dist/{i18n-DFTQ73Cz.js → i18n-CwCzRLKW.js} +39 -1
  18. package/dist/i18n-CwCzRLKW.js.map +1 -0
  19. package/dist/i18n-D7B7uFrN.cjs +2 -0
  20. package/dist/i18n-D7B7uFrN.cjs.map +1 -0
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.ts +6 -6
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +124 -101
  26. package/dist/index.js.map +1 -1
  27. package/dist/io/resampleOHLCV.d.ts +10 -4
  28. package/dist/io/resampleOHLCV.d.ts.map +1 -1
  29. package/dist/replay/ReplayStepLoader.d.ts +52 -0
  30. package/dist/replay/ReplayStepLoader.d.ts.map +1 -0
  31. package/dist/replay/intrabarPath.d.ts +44 -0
  32. package/dist/replay/intrabarPath.d.ts.map +1 -0
  33. package/dist/replay/replayStep.d.ts +18 -0
  34. package/dist/replay/replayStep.d.ts.map +1 -0
  35. package/dist/widget/ChartWidget.d.ts +329 -13
  36. package/dist/widget/ChartWidget.d.ts.map +1 -1
  37. package/dist/widget/ChartWidgetGrid.d.ts.map +1 -1
  38. package/dist/widget/WidgetDataWindow.d.ts +7 -0
  39. package/dist/widget/WidgetDataWindow.d.ts.map +1 -1
  40. package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
  41. package/dist/widget/WidgetIndicatorLegend.d.ts +21 -3
  42. package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -1
  43. package/dist/widget/WidgetIndicatorSettings.d.ts.map +1 -1
  44. package/dist/widget/WidgetObjectTree.d.ts +7 -1
  45. package/dist/widget/WidgetObjectTree.d.ts.map +1 -1
  46. package/dist/widget/WidgetReplayBar.d.ts +101 -23
  47. package/dist/widget/WidgetReplayBar.d.ts.map +1 -1
  48. package/dist/widget/WidgetSettings.d.ts +11 -3
  49. package/dist/widget/WidgetSettings.d.ts.map +1 -1
  50. package/dist/widget/chartSettingsStore.d.ts +76 -0
  51. package/dist/widget/chartSettingsStore.d.ts.map +1 -0
  52. package/dist/widget/chartTemplates.d.ts.map +1 -1
  53. package/dist/widget/compareLegend.d.ts +20 -0
  54. package/dist/widget/compareLegend.d.ts.map +1 -0
  55. package/dist/widget/index.cjs +382 -166
  56. package/dist/widget/index.cjs.map +1 -1
  57. package/dist/widget/index.d.ts +1 -1
  58. package/dist/widget/index.d.ts.map +1 -1
  59. package/dist/widget/index.js +2947 -2041
  60. package/dist/widget/index.js.map +1 -1
  61. package/dist/widget/indicatorInputWords.d.ts +19 -0
  62. package/dist/widget/indicatorInputWords.d.ts.map +1 -0
  63. package/dist/widget/locales/ar.d.ts.map +1 -1
  64. package/dist/widget/locales/cs.d.ts.map +1 -1
  65. package/dist/widget/locales/da.d.ts.map +1 -1
  66. package/dist/widget/locales/de.d.ts.map +1 -1
  67. package/dist/widget/locales/el.d.ts.map +1 -1
  68. package/dist/widget/locales/en.d.ts +20 -0
  69. package/dist/widget/locales/en.d.ts.map +1 -1
  70. package/dist/widget/locales/es.d.ts.map +1 -1
  71. package/dist/widget/locales/et.d.ts.map +1 -1
  72. package/dist/widget/locales/fa.d.ts.map +1 -1
  73. package/dist/widget/locales/fr.d.ts.map +1 -1
  74. package/dist/widget/locales/he.d.ts.map +1 -1
  75. package/dist/widget/locales/hu.d.ts.map +1 -1
  76. package/dist/widget/locales/id.d.ts.map +1 -1
  77. package/dist/widget/locales/index.cjs +1 -1
  78. package/dist/widget/locales/index.cjs.map +1 -1
  79. package/dist/widget/locales/index.js +533 -1
  80. package/dist/widget/locales/index.js.map +1 -1
  81. package/dist/widget/locales/it.d.ts.map +1 -1
  82. package/dist/widget/locales/ja.d.ts.map +1 -1
  83. package/dist/widget/locales/ko.d.ts.map +1 -1
  84. package/dist/widget/locales/ms.d.ts.map +1 -1
  85. package/dist/widget/locales/nb.d.ts.map +1 -1
  86. package/dist/widget/locales/nl.d.ts.map +1 -1
  87. package/dist/widget/locales/pl.d.ts.map +1 -1
  88. package/dist/widget/locales/pt.d.ts.map +1 -1
  89. package/dist/widget/locales/ro.d.ts.map +1 -1
  90. package/dist/widget/locales/ru.d.ts.map +1 -1
  91. package/dist/widget/locales/sk.d.ts.map +1 -1
  92. package/dist/widget/locales/sv.d.ts.map +1 -1
  93. package/dist/widget/locales/th.d.ts.map +1 -1
  94. package/dist/widget/locales/tr.d.ts.map +1 -1
  95. package/dist/widget/locales/vi.d.ts.map +1 -1
  96. package/dist/widget/locales/zh.d.ts.map +1 -1
  97. package/dist/widget/locales/zhHant.d.ts.map +1 -1
  98. package/dist/widget/settingsRows.d.ts +12 -3
  99. package/dist/widget/settingsRows.d.ts.map +1 -1
  100. package/dist/widget/symbolInfoView.d.ts.map +1 -1
  101. package/dist/widget/types.d.ts +75 -7
  102. package/dist/widget/types.d.ts.map +1 -1
  103. package/dist/widget/widgetCompare.d.ts +18 -0
  104. package/dist/widget/widgetCompare.d.ts.map +1 -1
  105. package/dist/widget/widgetLayout.d.ts +13 -1
  106. package/dist/widget/widgetLayout.d.ts.map +1 -1
  107. package/dist/widget/widgetSettingsLook.d.ts +3 -1
  108. package/dist/widget/widgetSettingsLook.d.ts.map +1 -1
  109. package/dist/widget/widgetShareState.d.ts +8 -0
  110. package/dist/widget/widgetShareState.d.ts.map +1 -1
  111. package/dist/widget/widgetTimezones.d.ts +4 -1
  112. package/dist/widget/widgetTimezones.d.ts.map +1 -1
  113. package/package.json +3 -3
  114. package/dist/LayoutSession-DuV9kpdQ.cjs +0 -2
  115. package/dist/LayoutSession-DuV9kpdQ.cjs.map +0 -1
  116. package/dist/LayoutSession-Qkx1huV-.js.map +0 -1
  117. package/dist/i18n-Bg_UJSNs.cjs +0 -2
  118. package/dist/i18n-Bg_UJSNs.cjs.map +0 -1
  119. package/dist/i18n-DFTQ73Cz.js.map +0 -1
@@ -1,6 +1,23 @@
1
1
  import { OHLCBar, DataSeries } from '@tradecanvas/commons';
2
2
  /** Whether a bar is one the chart takes: its time and prices numbers, none below zero, its high not under its low, its volume (if any) not below zero. */
3
3
  export declare function isValidBar(bar: OHLCBar): boolean;
4
+ /** Sanitize a bar: clamp high/low to envelope OHLC values, a missing volume 0. */
5
+ export declare function sanitizeBar(bar: OHLCBar): OHLCBar;
6
+ /** Whether two bars have the same time, prices and volume. */
7
+ export declare function sameBar(a: OHLCBar, b: OHLCBar): boolean;
8
+ /**
9
+ * The index of the bar at `time` in `series` (in its unit), looking back from
10
+ * the newest: corrections are to recent bars, so this costs their distance
11
+ * from the end. -1 when no bar has that time.
12
+ */
13
+ export declare function lastIndexOfTime(series: readonly {
14
+ time: number;
15
+ }[], time: number): number;
16
+ /** What `DataManager.replaceBar` did: the bar's index (-1: not loaded, or a bar it can't take), and whether its values changed. */
17
+ export interface BarReplacement {
18
+ readonly index: number;
19
+ readonly changed: boolean;
20
+ }
4
21
  /**
5
22
  * `time` in the unit of `series`. A series has one unit, read off its newest
6
23
  * bar; a bar or tick arriving in the other (a stream in milliseconds on a
@@ -29,6 +46,13 @@ export declare class DataManager {
29
46
  prependBars(bars: readonly OHLCBar[]): number;
30
47
  appendBar(bar: OHLCBar): void;
31
48
  updateLastBar(bar: OHLCBar): void;
49
+ /**
50
+ * The loaded bar with the same time, given new values, repaired as
51
+ * `setData` repairs a bar. A bar that, repaired, is the one loaded is
52
+ * not written (`changed: false`): a feed sending its closed bars again,
53
+ * without volume or with a high under its close, costs nothing.
54
+ */
55
+ replaceBar(bar: OHLCBar): BarReplacement;
32
56
  updateLastBarFromTick(tick: {
33
57
  price: number;
34
58
  volume?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../src/DataManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGhE,0JAA0J;AAC1J,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAYhD;AAmBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAItF;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAGtG;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAkB;IAE9B,OAAO,CAAC,cAAc;IAItB,OAAO,IAAI,UAAU;IAIrB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAe/B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM;IAqB7C,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAK7B,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAUjC,qBAAqB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOnF,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../src/DataManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGhE,0JAA0J;AAC1J,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAYhD;AASD,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOjD;AAED,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzF;AAED,mIAAmI;AACnI,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAItF;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAGtG;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAkB;IAE9B,OAAO,CAAC,cAAc;IAItB,OAAO,IAAI,UAAU;IAIrB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAe/B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM;IAqB7C,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAK7B,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAUjC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc;IAWxC,qBAAqB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOnF,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI,IAAI;CAGd"}
@@ -38,18 +38,28 @@ export declare class HistoryPager {
38
38
  private retryAt;
39
39
  /** Bumped whenever an in-flight page must be dropped. */
40
40
  private seq;
41
+ /** The page on its way: a loadMore meanwhile waits for it rather than finding none. */
42
+ private inFlight;
41
43
  constructor(host: HistoryPagerHost);
42
44
  setLoader(loader: HistoryLoader | null, pageSize?: number): void;
43
45
  hasLoader(): boolean;
44
- /** A new series: drop any page in flight and allow paging again. */
46
+ /**
47
+ * A new series: drop any page in flight and allow paging again. A page
48
+ * dropped is reported as loaded with no bars, so a 'loading' told for it
49
+ * doesn't stay open.
50
+ */
45
51
  reset(): void;
46
52
  isLoading(): boolean;
47
53
  /** False once a page came back empty. */
48
54
  hasMore(): boolean;
49
55
  /** Load a page when fewer than `ahead` bars are left of the first visible one. */
50
56
  maybeLoad(firstVisible: number, ahead: number): void;
51
- /** Load one page now, whatever the wait after a failure. Resolves to the number of bars added. */
57
+ /**
58
+ * Load one page now, whatever the wait after a failure. Resolves to the
59
+ * number of bars added; while a page is on its way, to that page's.
60
+ */
52
61
  loadMore(): Promise<number>;
62
+ private loadPage;
53
63
  private canLoad;
54
64
  /** A listener that throws must not stall the paging: report it and go on. */
55
65
  private emit;
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryPager.d.ts","sourceRoot":"","sources":["../src/HistoryPager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAExE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAElF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAEtC,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC;IAC5B,uEAAuE;IACvE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,IAAI,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IAUX,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAK;IACpB,yDAAyD;IACzD,OAAO,CAAC,GAAG,CAAK;gBAEa,IAAI,EAAE,gBAAgB;IAEnD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,SAA4B,GAAG,IAAI;IAMnF,SAAS,IAAI,OAAO;IAIpB,oEAAoE;IACpE,KAAK,IAAI,IAAI;IAQb,SAAS,IAAI,OAAO;IAIpB,yCAAyC;IACzC,OAAO,IAAI,OAAO;IAIlB,kFAAkF;IAClF,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMpD,kGAAkG;IAC5F,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAiCjC,OAAO,CAAC,OAAO;IAIf,6EAA6E;IAC7E,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,GAAG;CAGZ"}
1
+ {"version":3,"file":"HistoryPager.d.ts","sourceRoot":"","sources":["../src/HistoryPager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAExE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAElF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAEtC,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC;IAC5B,uEAAuE;IACvE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,IAAI,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IAYX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAK;IACpB,yDAAyD;IACzD,OAAO,CAAC,GAAG,CAAK;IAChB,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAgC;gBAEnB,IAAI,EAAE,gBAAgB;IAEnD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,SAA4B,GAAG,IAAI;IAMnF,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAUb,SAAS,IAAI,OAAO;IAIpB,yCAAyC;IACzC,OAAO,IAAI,OAAO;IAIlB,kFAAkF;IAClF,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMpD;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;YAOb,QAAQ;IAiCtB,OAAO,CAAC,OAAO;IAIf,6EAA6E;IAC7E,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,GAAG;CAGZ"}