@363045841yyt/klinechart-core 0.7.13 → 0.8.1-alpha.2

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 (93) hide show
  1. package/dist/config/chartSettings.d.ts +0 -6
  2. package/dist/config/chartSettings.d.ts.map +1 -1
  3. package/dist/config/chartSettings.js +0 -1
  4. package/dist/config/chartSettings.js.map +1 -1
  5. package/dist/controllers/createChartController.d.ts.map +1 -1
  6. package/dist/controllers/createChartController.js +26 -0
  7. package/dist/controllers/createChartController.js.map +1 -1
  8. package/dist/controllers/index.d.ts +5 -3
  9. package/dist/controllers/index.d.ts.map +1 -1
  10. package/dist/controllers/index.js +3 -1
  11. package/dist/controllers/index.js.map +1 -1
  12. package/dist/controllers/types.d.ts +22 -0
  13. package/dist/controllers/types.d.ts.map +1 -1
  14. package/dist/data-fetchers/baostock.d.ts +3 -0
  15. package/dist/data-fetchers/baostock.d.ts.map +1 -0
  16. package/dist/data-fetchers/baostock.js +34 -0
  17. package/dist/data-fetchers/baostock.js.map +1 -0
  18. package/dist/data-fetchers/dataBuffer.d.ts +28 -0
  19. package/dist/data-fetchers/dataBuffer.d.ts.map +1 -0
  20. package/dist/data-fetchers/dataBuffer.js +150 -0
  21. package/dist/data-fetchers/dataBuffer.js.map +1 -0
  22. package/dist/data-fetchers/hundred-mock.d.ts +3 -0
  23. package/dist/data-fetchers/hundred-mock.d.ts.map +1 -0
  24. package/dist/data-fetchers/hundred-mock.js +30 -0
  25. package/dist/data-fetchers/hundred-mock.js.map +1 -0
  26. package/dist/data-fetchers/index.d.ts +7 -0
  27. package/dist/data-fetchers/index.d.ts.map +1 -0
  28. package/dist/data-fetchers/index.js +6 -0
  29. package/dist/data-fetchers/index.js.map +1 -0
  30. package/dist/data-fetchers/router.d.ts +3 -0
  31. package/dist/data-fetchers/router.d.ts.map +1 -0
  32. package/dist/data-fetchers/router.js +16 -0
  33. package/dist/data-fetchers/router.js.map +1 -0
  34. package/dist/data-fetchers/thousand-mock.d.ts +3 -0
  35. package/dist/data-fetchers/thousand-mock.d.ts.map +1 -0
  36. package/dist/data-fetchers/thousand-mock.js +29 -0
  37. package/dist/data-fetchers/thousand-mock.js.map +1 -0
  38. package/dist/engine/chart.d.ts +21 -0
  39. package/dist/engine/chart.d.ts.map +1 -1
  40. package/dist/engine/chart.js +113 -3
  41. package/dist/engine/chart.js.map +1 -1
  42. package/dist/engine/renderers/Indicator/{indicatorData.d.ts → indicatorCatalog.d.ts} +1 -1
  43. package/dist/engine/renderers/Indicator/indicatorCatalog.d.ts.map +1 -0
  44. package/dist/engine/renderers/Indicator/{indicatorData.js → indicatorCatalog.js} +94 -406
  45. package/dist/engine/renderers/Indicator/indicatorCatalog.js.map +1 -0
  46. package/dist/engine/renderers/Indicator/structure.js +1 -1
  47. package/dist/engine/renderers/Indicator/structure.js.map +1 -1
  48. package/dist/engine/renderers/Indicator/supertrend.js +1 -1
  49. package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
  50. package/dist/engine/renderers/paneTitle.d.ts.map +1 -1
  51. package/dist/engine/renderers/paneTitle.js +3 -2
  52. package/dist/engine/renderers/paneTitle.js.map +1 -1
  53. package/dist/engine/subPaneManager.d.ts.map +1 -1
  54. package/dist/engine/subPaneManager.js +2 -1
  55. package/dist/engine/subPaneManager.js.map +1 -1
  56. package/dist/semantic/controller.d.ts +3 -14
  57. package/dist/semantic/controller.d.ts.map +1 -1
  58. package/dist/semantic/controller.js +9 -43
  59. package/dist/semantic/controller.js.map +1 -1
  60. package/dist/semantic/index.d.ts +3 -2
  61. package/dist/semantic/index.d.ts.map +1 -1
  62. package/dist/semantic/index.js +1 -1
  63. package/dist/semantic/index.js.map +1 -1
  64. package/dist/version.d.ts +1 -1
  65. package/dist/version.d.ts.map +1 -1
  66. package/dist/version.js +1 -1
  67. package/dist/version.js.map +1 -1
  68. package/package.json +4 -4
  69. package/src/config/chartSettings.ts +0 -1
  70. package/src/controllers/__tests__/indicatorSelector.test.ts +1 -1
  71. package/src/controllers/createChartController.ts +35 -1
  72. package/src/controllers/index.ts +8 -2
  73. package/src/controllers/types.ts +31 -0
  74. package/src/data-fetchers/__tests__/dataBuffer.test.ts +287 -0
  75. package/src/data-fetchers/baostock.ts +34 -0
  76. package/src/data-fetchers/dataBuffer.ts +176 -0
  77. package/src/data-fetchers/hundred-mock.ts +31 -0
  78. package/src/data-fetchers/index.ts +6 -0
  79. package/src/data-fetchers/router.ts +17 -0
  80. package/src/data-fetchers/thousand-mock.ts +30 -0
  81. package/src/engine/chart.ts +128 -3
  82. package/src/engine/renderers/Indicator/indicatorCatalog.ts +346 -0
  83. package/src/engine/renderers/Indicator/structure.ts +1 -1
  84. package/src/engine/renderers/Indicator/supertrend.ts +1 -1
  85. package/src/engine/renderers/paneTitle.ts +3 -2
  86. package/src/engine/subPaneManager.ts +2 -1
  87. package/src/semantic/__tests__/controller.test.ts +19 -7
  88. package/src/semantic/controller.ts +9 -57
  89. package/src/semantic/index.ts +3 -2
  90. package/src/version.ts +1 -1
  91. package/dist/engine/renderers/Indicator/indicatorData.d.ts.map +0 -1
  92. package/dist/engine/renderers/Indicator/indicatorData.js.map +0 -1
  93. package/src/engine/renderers/Indicator/indicatorData.ts +0 -650
@@ -0,0 +1,30 @@
1
+ export const hundredMockDataFetcher = async (_source, config) => {
2
+ console.log(`[hundred-mock] generating ${config.symbol} ${config.period}`);
3
+ const start = new Date(config.startDate).getTime();
4
+ const end = new Date(config.endDate).getTime();
5
+ const dayMs = 86400000;
6
+ const totalDays = Math.floor((end - start) / dayMs) + 1;
7
+ const data = [];
8
+ let price = 10 + Math.random() * 5;
9
+ for (let i = 0; i < totalDays; i++) {
10
+ const ts = start + i * dayMs;
11
+ const change = (Math.random() - 0.48) * price * 0.06;
12
+ const open = price;
13
+ const close = Math.round((open + change) * 100) / 100;
14
+ const high = Math.round(Math.max(open, close) * (1 + Math.random() * 0.03) * 100) / 100;
15
+ const low = Math.round(Math.min(open, close) * (1 - Math.random() * 0.03) * 100) / 100;
16
+ const volume = Math.round(Math.random() * 10000000 + 1000000);
17
+ data.push({
18
+ timestamp: ts,
19
+ open,
20
+ high,
21
+ low,
22
+ close,
23
+ volume,
24
+ turnover: Math.round((volume * (open + close)) / 2),
25
+ });
26
+ price = close;
27
+ }
28
+ return data;
29
+ };
30
+ //# sourceMappingURL=hundred-mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hundred-mock.js","sourceRoot":"","sources":["../../src/data-fetchers/hundred-mock.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAgB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC3E,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;IAClD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACvD,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,IAAI,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA;QACpD,MAAM,IAAI,GAAG,KAAK,CAAA;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACvF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;QAC7D,IAAI,CAAC,IAAI,CAAC;YACR,SAAS,EAAE,EAAE;YACb,IAAI;YACJ,IAAI;YACJ,GAAG;YACH,KAAK;YACL,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SACpD,CAAC,CAAA;QACF,KAAK,GAAG,KAAK,CAAA;IACf,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export { thousandMockDataFetcher } from './thousand-mock';
2
+ export { hundredMockDataFetcher } from './hundred-mock';
3
+ export { baostockDataFetcher } from './baostock';
4
+ export { routerDataFetcher } from './router';
5
+ export { DataBuffer } from './dataBuffer';
6
+ export type { DataWindow } from './dataBuffer';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { thousandMockDataFetcher } from './thousand-mock';
2
+ export { hundredMockDataFetcher } from './hundred-mock';
3
+ export { baostockDataFetcher } from './baostock';
4
+ export { routerDataFetcher } from './router';
5
+ export { DataBuffer } from './dataBuffer';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-fetchers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DataFetcher } from '../controllers/types';
2
+ export declare const routerDataFetcher: DataFetcher;
3
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKvD,eAAO,MAAM,iBAAiB,EAAE,WAW/B,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { baostockDataFetcher } from './baostock';
2
+ import { hundredMockDataFetcher } from './hundred-mock';
3
+ import { thousandMockDataFetcher } from './thousand-mock';
4
+ export const routerDataFetcher = (source, config) => {
5
+ switch (source) {
6
+ case 'baostock':
7
+ return baostockDataFetcher(source, config);
8
+ case 'mock-100':
9
+ return hundredMockDataFetcher(source, config);
10
+ case 'mock-10000':
11
+ return thousandMockDataFetcher(source, config);
12
+ default:
13
+ return hundredMockDataFetcher(source, config);
14
+ }
15
+ };
16
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/data-fetchers/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IAC/D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5C,KAAK,UAAU;YACb,OAAO,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,KAAK,YAAY;YACf,OAAO,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChD;YACE,OAAO,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DataFetcher } from '../controllers/types';
2
+ export declare const thousandMockDataFetcher: DataFetcher;
3
+ //# sourceMappingURL=thousand-mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thousand-mock.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/thousand-mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,sBAAsB,CAAA;AAElE,eAAO,MAAM,uBAAuB,EAAE,WA2BrC,CAAA"}
@@ -0,0 +1,29 @@
1
+ export const thousandMockDataFetcher = async (_source, _config) => {
2
+ console.log('[thousand-mock] generating 10k K-lines');
3
+ const data = [];
4
+ const startTime = new Date('2020-01-01').getTime();
5
+ const dayMs = 24 * 60 * 60 * 1000;
6
+ let lastClose = 3000;
7
+ for (let i = 0; i < 10000; i++) {
8
+ const timestamp = startTime + i * dayMs;
9
+ const volatility = 0.02;
10
+ const trend = 0.0001;
11
+ const change = (Math.random() - 0.5) * 2 * volatility + trend;
12
+ const open = lastClose;
13
+ const close = open * (1 + change);
14
+ const high = Math.max(open, close) * (1 + Math.random() * 0.01);
15
+ const low = Math.min(open, close) * (1 - Math.random() * 0.01);
16
+ const volume = Math.floor(1000000 + Math.random() * 5000000);
17
+ data.push({
18
+ timestamp,
19
+ open: parseFloat(open.toFixed(2)),
20
+ high: parseFloat(high.toFixed(2)),
21
+ low: parseFloat(low.toFixed(2)),
22
+ close: parseFloat(close.toFixed(2)),
23
+ volume,
24
+ });
25
+ lastClose = close;
26
+ }
27
+ return data;
28
+ };
29
+ //# sourceMappingURL=thousand-mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thousand-mock.js","sourceRoot":"","sources":["../../src/data-fetchers/thousand-mock.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAgB,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC7E,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACrD,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;IAClD,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACjC,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,CAAA;QACvC,MAAM,UAAU,GAAG,IAAI,CAAA;QACvB,MAAM,KAAK,GAAG,MAAM,CAAA;QACpB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,KAAK,CAAA;QAC7D,MAAM,IAAI,GAAG,SAAS,CAAA;QACtB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI,CAAC;YACR,SAAS;YACT,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM;SACP,CAAC,CAAA;QACF,SAAS,GAAG,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import type { KLineData } from '../types/price';
2
2
  import type { ChartSettings } from '../config/chartSettings';
3
3
  import { type Signal, type Computed } from '../reactivity/signal';
4
+ import type { SymbolSpec, DataFetcher } from '../controllers/types';
5
+ import { DataBuffer } from '../data-fetchers/dataBuffer';
4
6
  import { type VisibleRange, UpdateLevel } from './layout/pane';
5
7
  import { InteractionController, type InteractionSnapshot } from './controller/interaction';
6
8
  export type { InteractionSnapshot };
@@ -95,6 +97,9 @@ export declare class Chart {
95
97
  private dom;
96
98
  private opt;
97
99
  private _internalData;
100
+ private _dataFetcher;
101
+ private _dataBuffer;
102
+ private _dataBufferUnsub;
98
103
  private raf;
99
104
  private pendingUpdateLevel;
100
105
  private _internalViewport;
@@ -244,6 +249,7 @@ export declare class Chart {
244
249
  */
245
250
  draw(level?: UpdateLevel): void;
246
251
  private prepareFrameData;
252
+ private clearAllCanvases;
247
253
  private renderPanes;
248
254
  private renderXAxis;
249
255
  /**
@@ -395,6 +401,8 @@ export declare class Chart {
395
401
  getLogicalIndexAtX(mouseX: number): number | null;
396
402
  /** 根据视口内 X 坐标反查数据索引(用于绘图落点) */
397
403
  getDataIndexAtX(mouseX: number): number | null;
404
+ private static readonly LEADING_SLOTS;
405
+ private static readonly TRAILING_DRAWING_SLOTS;
398
406
  /** 获取内容总宽度(用于外部 scroll-content 撑开 scrollWidth) */
399
407
  getContentWidth(): number;
400
408
  /** 容器尺寸变化时调用 */
@@ -418,6 +426,7 @@ export declare class Chart {
418
426
  private computeViewport;
419
427
  private _viewportSignal;
420
428
  private _dataSignal;
429
+ private _symbolsSignal;
421
430
  private _themeSignal;
422
431
  private _drawingToolSignal;
423
432
  private _drawingsSignal;
@@ -430,6 +439,8 @@ export declare class Chart {
430
439
  get viewport(): Signal<ViewportState>;
431
440
  /** 数据信号 */
432
441
  get data(): Signal<ReadonlyArray<KLineData>>;
442
+ /** 符号信号 */
443
+ get symbols(): Signal<ReadonlyArray<SymbolSpec>>;
433
444
  /** 主题信号 */
434
445
  get theme(): Signal<'light' | 'dark'>;
435
446
  /** 指标实例列表信号(派生信号,自动随主/副图状态更新) */
@@ -455,6 +466,16 @@ export declare class Chart {
455
466
  * 合并现有数据并更新
456
467
  */
457
468
  appendData(newData: KLineData[]): void;
469
+ /**
470
+ * 设置数据获取器适配器
471
+ */
472
+ setDataFetcher(fetcher: DataFetcher | null): void;
473
+ get dataBuffer(): DataBuffer;
474
+ checkVisibleRangeGap(): void;
475
+ /**
476
+ * 设置当前符号并触发数据加载
477
+ */
478
+ setSymbols(specs: ReadonlyArray<SymbolSpec>): void;
458
479
  /**
459
480
  * 设置主题(高层 API)
460
481
  */
@@ -1 +1 @@
1
- {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/engine/chart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/engine/chart.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { createSignal, computed } from '../reactivity/signal';
2
+ import { DataBuffer } from '../data-fetchers/dataBuffer';
2
3
  import { getVisibleRange } from './viewport/viewport';
3
4
  import { Pane, UpdateLevel } from './layout/pane';
4
5
  import { InteractionController } from './controller/interaction';
@@ -30,6 +31,9 @@ export class Chart {
30
31
  dom;
31
32
  opt;
32
33
  _internalData = [];
34
+ _dataFetcher = null;
35
+ _dataBuffer = new DataBuffer();
36
+ _dataBufferUnsub = null;
33
37
  raf = null;
34
38
  pendingUpdateLevel = UpdateLevel.All;
35
39
  _internalViewport = null;
@@ -513,8 +517,11 @@ export class Chart {
513
517
  this.markerManager.clear();
514
518
  // 2. 准备帧数据(视口 / 可见范围 / K 线坐标,优先走缓存)
515
519
  const frame = this.prepareFrameData(level);
516
- if (!frame)
520
+ if (!frame) {
521
+ if (this._internalData.length === 0)
522
+ this.clearAllCanvases();
517
523
  return;
524
+ }
518
525
  const { vp, range, kLinePositions, kLineCenters, kBarRects, kWidthPx, useCachedFrame } = frame;
519
526
  // 3. 更新交互控制器坐标映射
520
527
  this.interaction.setKLinePositions(kLinePositions, range, kWidthPx);
@@ -545,6 +552,7 @@ export class Chart {
545
552
  if (!useCachedFrame && (range.start !== this.lastVisibleRange.start || range.end !== this.lastVisibleRange.end)) {
546
553
  this.indicatorScheduler.updateVisibleRange(range);
547
554
  this.lastVisibleRange = range;
555
+ this.checkVisibleRangeGap();
548
556
  }
549
557
  const kLinePositions = useCachedFrame
550
558
  ? this.cachedDrawFrame.kLinePositions
@@ -584,6 +592,24 @@ export class Chart {
584
592
  }
585
593
  return { vp, range, kLinePositions, kLineCenters, kBarRects, kWidthPx, useCachedFrame };
586
594
  }
595
+ clearAllCanvases() {
596
+ const vp = this.computeViewport();
597
+ if (!vp)
598
+ return;
599
+ for (const r of this.paneRenderers) {
600
+ const { mainCtx, overlayCtx, yAxisCtx } = r.getContexts();
601
+ const pane = r.getPane();
602
+ mainCtx?.clearRect(0, 0, vp.plotWidth + 1, pane.height + 2 / vp.dpr);
603
+ overlayCtx?.clearRect(0, 0, vp.plotWidth + 1, pane.height + 2 / vp.dpr);
604
+ yAxisCtx?.clearRect(0, 0, vp.plotWidth + 1, pane.height + 2 / vp.dpr);
605
+ }
606
+ const xCtx = this.xAxisCtx;
607
+ if (xCtx) {
608
+ const xW = xCtx.canvas.width;
609
+ const xH = xCtx.canvas.height;
610
+ xCtx.clearRect(0, 0, xW, xH);
611
+ }
612
+ }
587
613
  renderPanes(vp, range, kLinePositions, kLineCenters, kBarRects, kWidthPx, mainIndicatorRange, hasCrosshair, useCachedFrame, level) {
588
614
  const sharedYAxisLabels = [];
589
615
  const sharedXAxisLabels = [];
@@ -1286,6 +1312,8 @@ export class Chart {
1286
1312
  return null;
1287
1313
  return index;
1288
1314
  }
1315
+ static LEADING_SLOTS = 60;
1316
+ static TRAILING_DRAWING_SLOTS = 24;
1289
1317
  /** 获取内容总宽度(用于外部 scroll-content 撑开 scrollWidth) */
1290
1318
  getContentWidth() {
1291
1319
  const dataLength = this._internalData.length;
@@ -1295,9 +1323,8 @@ export class Chart {
1295
1323
  const kGap = this.opt.kGap;
1296
1324
  const viewWidth = this._internalViewport?.plotWidth ?? 0;
1297
1325
  const dpr = this.getEffectiveDpr();
1298
- const TRAILING_DRAWING_SLOTS = 24;
1299
1326
  const { startXPx, unitPx } = getPhysicalKLineConfig(kWidth, kGap, dpr);
1300
- const dataPlotWidth = (startXPx + (dataLength + TRAILING_DRAWING_SLOTS) * unitPx) / dpr;
1327
+ const dataPlotWidth = (startXPx + (Chart.LEADING_SLOTS + dataLength + Chart.TRAILING_DRAWING_SLOTS) * unitPx) / dpr;
1301
1328
  return Math.max(dataPlotWidth, viewWidth);
1302
1329
  }
1303
1330
  /** 容器尺寸变化时调用 */
@@ -1351,6 +1378,11 @@ export class Chart {
1351
1378
  cancelAnimationFrame(this.raf);
1352
1379
  this.raf = null;
1353
1380
  }
1381
+ if (this._dataBufferUnsub) {
1382
+ this._dataBufferUnsub();
1383
+ this._dataBufferUnsub = null;
1384
+ }
1385
+ this._dataBuffer.dispose();
1354
1386
  // 清理尺寸观察器
1355
1387
  this.resizeObserver?.disconnect();
1356
1388
  this.resizeObserver = undefined;
@@ -1666,6 +1698,7 @@ export class Chart {
1666
1698
  kGap: 1,
1667
1699
  });
1668
1700
  _dataSignal = createSignal([]);
1701
+ _symbolsSignal = createSignal([]);
1669
1702
  _themeSignal = createSignal('light');
1670
1703
  _drawingToolSignal = createSignal(null);
1671
1704
  _drawingsSignal = createSignal([]);
@@ -1724,6 +1757,10 @@ export class Chart {
1724
1757
  get data() {
1725
1758
  return this._dataSignal;
1726
1759
  }
1760
+ /** 符号信号 */
1761
+ get symbols() {
1762
+ return this._symbolsSignal;
1763
+ }
1727
1764
  /** 主题信号 */
1728
1765
  get theme() {
1729
1766
  return this._themeSignal;
@@ -1771,6 +1808,79 @@ export class Chart {
1771
1808
  const merged = [...this._internalData, ...newData];
1772
1809
  this.setData(merged);
1773
1810
  }
1811
+ /**
1812
+ * 设置数据获取器适配器
1813
+ */
1814
+ setDataFetcher(fetcher) {
1815
+ this._dataFetcher = fetcher;
1816
+ this._dataBuffer.setFetcher(fetcher);
1817
+ }
1818
+ get dataBuffer() {
1819
+ return this._dataBuffer;
1820
+ }
1821
+ checkVisibleRangeGap() {
1822
+ if (this._internalData.length === 0)
1823
+ return;
1824
+ const window = this._dataBuffer.loadedWindow;
1825
+ if (!window)
1826
+ return;
1827
+ const range = this.lastVisibleRange;
1828
+ if (range.start <= 5 && this._dataFetcher) {
1829
+ const MS_PER_DAY = 86_400_000;
1830
+ const earlierThanEarliest = window.earliestTs - 90 * MS_PER_DAY;
1831
+ this._dataBuffer.ensureRange(earlierThanEarliest, window.earliestTs);
1832
+ return;
1833
+ }
1834
+ if (range.start >= this._internalData.length)
1835
+ return;
1836
+ const firstVisibleTs = this._internalData[Math.max(0, range.start)]?.timestamp;
1837
+ if (firstVisibleTs === undefined)
1838
+ return;
1839
+ if (firstVisibleTs < window.earliestTs) {
1840
+ this._dataBuffer.ensureRange(firstVisibleTs, window.earliestTs);
1841
+ }
1842
+ }
1843
+ /**
1844
+ * 设置当前符号并触发数据加载
1845
+ */
1846
+ setSymbols(specs) {
1847
+ this._symbolsSignal.set(specs);
1848
+ if (specs.length === 0)
1849
+ return;
1850
+ const spec = specs[0];
1851
+ if (!this._dataFetcher)
1852
+ return;
1853
+ this._dataBuffer.setFetcher(this._dataFetcher);
1854
+ this._dataBuffer.onPrepend = (count) => {
1855
+ const dpr = this.getEffectiveDpr();
1856
+ const { unitPx } = getPhysicalKLineConfig(this.opt.kWidth, this.opt.kGap, dpr);
1857
+ const compensation = (count * unitPx) / dpr;
1858
+ const container = this.dom.container;
1859
+ if (container) {
1860
+ container.scrollLeft += compensation;
1861
+ this.cachedScrollLeft = container.scrollLeft;
1862
+ }
1863
+ };
1864
+ if (!this._dataBufferUnsub) {
1865
+ this._dataBufferUnsub = this._dataBuffer.data.subscribe(() => {
1866
+ const bufferData = this._dataBuffer.data.peek();
1867
+ this._internalData = [...bufferData];
1868
+ this._dataSignal.set([...this._internalData]);
1869
+ this.interaction.reset();
1870
+ if (this.lastVisibleRange.start === 0 && this.lastVisibleRange.end === 0 && this._internalData.length > 0) {
1871
+ const plotWidth = this.observedSize.width > 0
1872
+ ? this.observedSize.width
1873
+ : Math.max(1, Math.round(this.dom.container?.clientWidth ?? 800));
1874
+ const dpr = this.getEffectiveDpr();
1875
+ const { start, end } = getVisibleRange(this.cachedScrollLeft, plotWidth, this.opt.kWidth, this.opt.kGap, this._internalData.length, dpr);
1876
+ this.lastVisibleRange = { start, end };
1877
+ }
1878
+ this.indicatorScheduler.update(this._internalData, this.lastVisibleRange);
1879
+ this.scheduleDraw();
1880
+ });
1881
+ }
1882
+ this._dataBuffer.setSymbol(spec);
1883
+ }
1774
1884
  // ---------- Theme ----------
1775
1885
  /**
1776
1886
  * 设置主题(高层 API)