@363045841yyt/klinechart-core 0.8.1-alpha.4 → 0.8.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 (167) hide show
  1. package/dist/controllers/createChartController.d.ts.map +1 -1
  2. package/dist/controllers/createChartController.js +21 -1
  3. package/dist/controllers/createChartController.js.map +1 -1
  4. package/dist/controllers/types.d.ts +6 -1
  5. package/dist/controllers/types.d.ts.map +1 -1
  6. package/dist/data-fetchers/baostock.js +3 -3
  7. package/dist/data-fetchers/baostock.js.map +1 -1
  8. package/dist/data-fetchers/dataBuffer.d.ts +5 -1
  9. package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
  10. package/dist/data-fetchers/dataBuffer.js +85 -48
  11. package/dist/data-fetchers/dataBuffer.js.map +1 -1
  12. package/dist/data-fetchers/gotdx.d.ts +3 -0
  13. package/dist/data-fetchers/gotdx.d.ts.map +1 -0
  14. package/dist/data-fetchers/gotdx.js +101 -0
  15. package/dist/data-fetchers/gotdx.js.map +1 -0
  16. package/dist/data-fetchers/hundred-mock.d.ts.map +1 -1
  17. package/dist/data-fetchers/hundred-mock.js +28 -5
  18. package/dist/data-fetchers/hundred-mock.js.map +1 -1
  19. package/dist/data-fetchers/index.d.ts +1 -0
  20. package/dist/data-fetchers/index.d.ts.map +1 -1
  21. package/dist/data-fetchers/index.js +1 -0
  22. package/dist/data-fetchers/index.js.map +1 -1
  23. package/dist/data-fetchers/router.d.ts.map +1 -1
  24. package/dist/data-fetchers/router.js +3 -0
  25. package/dist/data-fetchers/router.js.map +1 -1
  26. package/dist/data-fetchers/thousand-mock.d.ts.map +1 -1
  27. package/dist/data-fetchers/thousand-mock.js +24 -14
  28. package/dist/data-fetchers/thousand-mock.js.map +1 -1
  29. package/dist/data-fetchers/tradingview.d.ts.map +1 -1
  30. package/dist/data-fetchers/tradingview.js +12 -6
  31. package/dist/data-fetchers/tradingview.js.map +1 -1
  32. package/dist/engine/chart.d.ts +29 -367
  33. package/dist/engine/chart.d.ts.map +1 -1
  34. package/dist/engine/chart.js +239 -1842
  35. package/dist/engine/chart.js.map +1 -1
  36. package/dist/engine/chartContext.d.ts +24 -0
  37. package/dist/engine/chartContext.d.ts.map +1 -0
  38. package/dist/engine/chartContext.js +19 -0
  39. package/dist/engine/chartContext.js.map +1 -0
  40. package/dist/engine/chartTypes.d.ts +77 -0
  41. package/dist/engine/chartTypes.d.ts.map +1 -0
  42. package/dist/engine/chartTypes.js +2 -0
  43. package/dist/engine/chartTypes.js.map +1 -0
  44. package/dist/engine/data/chartDataManager.d.ts +103 -0
  45. package/dist/engine/data/chartDataManager.d.ts.map +1 -0
  46. package/dist/engine/data/chartDataManager.js +593 -0
  47. package/dist/engine/data/chartDataManager.js.map +1 -0
  48. package/dist/engine/indicators/chartIndicatorManager.d.ts +102 -0
  49. package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -0
  50. package/dist/engine/indicators/chartIndicatorManager.js +437 -0
  51. package/dist/engine/indicators/chartIndicatorManager.js.map +1 -0
  52. package/dist/engine/layout/chartPaneLayout.d.ts +53 -0
  53. package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -0
  54. package/dist/engine/layout/chartPaneLayout.js +388 -0
  55. package/dist/engine/layout/chartPaneLayout.js.map +1 -0
  56. package/dist/engine/render/chartRenderer.d.ts +86 -0
  57. package/dist/engine/render/chartRenderer.d.ts.map +1 -0
  58. package/dist/engine/render/chartRenderer.js +440 -0
  59. package/dist/engine/render/chartRenderer.js.map +1 -0
  60. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
  61. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +73 -7
  62. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  63. package/dist/engine/renderers/comparisonLine.d.ts.map +1 -1
  64. package/dist/engine/renderers/comparisonLine.js +25 -11
  65. package/dist/engine/renderers/comparisonLine.js.map +1 -1
  66. package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
  67. package/dist/engine/renderers/timeAxis.js +1 -0
  68. package/dist/engine/renderers/timeAxis.js.map +1 -1
  69. package/dist/engine/subPaneManager.d.ts +27 -6
  70. package/dist/engine/subPaneManager.d.ts.map +1 -1
  71. package/dist/engine/subPaneManager.js +54 -56
  72. package/dist/engine/subPaneManager.js.map +1 -1
  73. package/dist/engine/utils/chartZoomController.d.ts +33 -0
  74. package/dist/engine/utils/chartZoomController.d.ts.map +1 -0
  75. package/dist/engine/utils/chartZoomController.js +66 -0
  76. package/dist/engine/utils/chartZoomController.js.map +1 -0
  77. package/dist/engine/viewport/chartViewportManager.d.ts +72 -0
  78. package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -0
  79. package/dist/engine/viewport/chartViewportManager.js +249 -0
  80. package/dist/engine/viewport/chartViewportManager.js.map +1 -0
  81. package/dist/index.d.ts +1 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +1 -0
  84. package/dist/index.js.map +1 -1
  85. package/dist/plugin/types.d.ts +3 -0
  86. package/dist/plugin/types.d.ts.map +1 -1
  87. package/dist/plugin/types.js.map +1 -1
  88. package/dist/semantic/index.d.ts +1 -1
  89. package/dist/semantic/index.d.ts.map +1 -1
  90. package/dist/semantic/index.js.map +1 -1
  91. package/dist/semantic/schema.json +1 -1
  92. package/dist/semantic/types.d.ts +2 -1
  93. package/dist/semantic/types.d.ts.map +1 -1
  94. package/dist/tokens/theme-china.d.ts.map +1 -1
  95. package/dist/tokens/theme-china.js +0 -4
  96. package/dist/tokens/theme-china.js.map +1 -1
  97. package/dist/tokens/theme-dark.d.ts.map +1 -1
  98. package/dist/tokens/theme-dark.js +0 -4
  99. package/dist/tokens/theme-dark.js.map +1 -1
  100. package/dist/tokens/theme-light.d.ts.map +1 -1
  101. package/dist/tokens/theme-light.js +1 -5
  102. package/dist/tokens/theme-light.js.map +1 -1
  103. package/dist/tokens/types.d.ts +0 -4
  104. package/dist/tokens/types.d.ts.map +1 -1
  105. package/dist/types/price.d.ts +2 -0
  106. package/dist/types/price.d.ts.map +1 -1
  107. package/dist/types/price.js.map +1 -1
  108. package/dist/utils/dateFormat.d.ts +25 -0
  109. package/dist/utils/dateFormat.d.ts.map +1 -1
  110. package/dist/utils/dateFormat.js +78 -0
  111. package/dist/utils/dateFormat.js.map +1 -1
  112. package/dist/utils/kLineDraw/axis.d.ts +2 -0
  113. package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
  114. package/dist/utils/kLineDraw/axis.js +11 -6
  115. package/dist/utils/kLineDraw/axis.js.map +1 -1
  116. package/dist/version.d.ts +1 -1
  117. package/dist/version.d.ts.map +1 -1
  118. package/dist/version.js +1 -1
  119. package/dist/version.js.map +1 -1
  120. package/package.json +1 -1
  121. package/src/controllers/createChartController.ts +39 -10
  122. package/src/controllers/types.ts +6 -1
  123. package/src/data-fetchers/__tests__/dataBuffer.test.ts +5 -2
  124. package/src/data-fetchers/baostock.ts +3 -3
  125. package/src/data-fetchers/dataBuffer.ts +70 -23
  126. package/src/data-fetchers/gotdx.ts +138 -0
  127. package/src/data-fetchers/hundred-mock.ts +35 -5
  128. package/src/data-fetchers/index.ts +1 -0
  129. package/src/data-fetchers/router.ts +3 -0
  130. package/src/data-fetchers/thousand-mock.ts +30 -14
  131. package/src/data-fetchers/tradingview.ts +12 -6
  132. package/src/engine/__tests__/subPaneManager.test.ts +154 -0
  133. package/src/engine/chart.ts +252 -2250
  134. package/src/engine/chartContext.ts +34 -0
  135. package/src/engine/chartTypes.ts +88 -0
  136. package/src/engine/data/chartDataManager.ts +695 -0
  137. package/src/engine/indicators/__tests__/chartIndicatorManager.test.ts +103 -0
  138. package/src/engine/indicators/chartIndicatorManager.ts +566 -0
  139. package/src/engine/layout/chartPaneLayout.ts +474 -0
  140. package/src/engine/render/chartRenderer.ts +581 -0
  141. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +99 -13
  142. package/src/engine/renderers/__tests__/boll.renderer.test.ts +1 -0
  143. package/src/engine/renderers/__tests__/ene.renderer.test.ts +1 -0
  144. package/src/engine/renderers/__tests__/expma.renderer.test.ts +1 -0
  145. package/src/engine/renderers/__tests__/ma.renderer.test.ts +1 -0
  146. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +1 -0
  147. package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +1 -0
  148. package/src/engine/renderers/comparisonLine.ts +25 -11
  149. package/src/engine/renderers/timeAxis.ts +1 -0
  150. package/src/engine/subPaneManager.ts +75 -59
  151. package/src/engine/utils/chartZoomController.ts +104 -0
  152. package/src/engine/viewport/chartViewportManager.ts +310 -0
  153. package/src/index.ts +1 -0
  154. package/src/plugin/types.ts +3 -0
  155. package/src/semantic/index.ts +1 -0
  156. package/src/semantic/schema.json +1 -1
  157. package/src/semantic/types.ts +3 -1
  158. package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +1 -9
  159. package/src/tokens/theme-china.ts +0 -4
  160. package/src/tokens/theme-dark.ts +0 -4
  161. package/src/tokens/theme-light.ts +2 -6
  162. package/src/tokens/types.ts +0 -4
  163. package/src/types/price.ts +2 -0
  164. package/src/utils/dateFormat.ts +85 -0
  165. package/src/utils/kLineDraw/axis.ts +13 -6
  166. package/src/version.ts +1 -1
  167. package/src/engine/chart.d.ts +0 -626
@@ -1,5 +1,5 @@
1
1
  import { RENDERER_PRIORITY } from '../../plugin';
2
- const COMPARISON_COLORS = ['#f59e0b', '#8b5cf6', '#06b6d4', '#ec4899', '#84cc16', '#f97316'];
2
+ const DEFAULT_COMPARISON_COLOR = '#f59e0b';
3
3
  export function createComparisonLineRenderer() {
4
4
  return {
5
5
  name: 'comparisonLine',
@@ -17,10 +17,11 @@ export function createComparisonLineRenderer() {
17
17
  if (context.pane.id !== 'main')
18
18
  return;
19
19
  const baseIndex = Math.max(0, context.range.start);
20
- const mainBase = mainData[baseIndex]?.close;
21
- const baseTimestamp = mainData[baseIndex]?.timestamp;
22
- if (!Number.isFinite(mainBase) || mainBase <= 0 || baseTimestamp === undefined)
20
+ const baseItem = mainData[baseIndex];
21
+ if (!baseItem || !Number.isFinite(baseItem.close) || baseItem.close <= 0)
23
22
  return;
23
+ const mainBase = baseItem.close;
24
+ const baseDate = baseItem.date ?? '';
24
25
  const ctx = context.ctx;
25
26
  ctx.save();
26
27
  ctx.translate(-context.scrollLeft, 0);
@@ -30,14 +31,19 @@ export function createComparisonLineRenderer() {
30
31
  const data = comparisonData.get(spec.symbol);
31
32
  if (!data?.length)
32
33
  continue;
33
- const baseline = findBaseline(data, baseTimestamp);
34
+ const baseline = baseDate ? findBaselineByDate(data, baseDate) : findBaselineByTimestamp(data, baseItem.timestamp);
34
35
  if (!baseline || baseline.close <= 0)
35
36
  continue;
36
- const byTimestamp = new Map();
37
- for (const item of data)
38
- byTimestamp.set(item.timestamp, item);
37
+ const byDate = new Map();
38
+ for (const item of data) {
39
+ if (item.date)
40
+ byDate.set(item.date, item);
41
+ else
42
+ byDate.set(String(item.timestamp), item);
43
+ }
44
+ const colors = context.comparisonColors;
39
45
  ctx.beginPath();
40
- ctx.strokeStyle = COMPARISON_COLORS[symbolIndex % COMPARISON_COLORS.length];
46
+ ctx.strokeStyle = colors?.get(spec.symbol) ?? DEFAULT_COMPARISON_COLOR;
41
47
  let hasPath = false;
42
48
  let previousHadPoint = false;
43
49
  for (let i = context.range.start; i < context.range.end && i < mainData.length; i++) {
@@ -46,7 +52,8 @@ export function createComparisonLineRenderer() {
46
52
  previousHadPoint = false;
47
53
  continue;
48
54
  }
49
- const item = byTimestamp.get(mainItem.timestamp);
55
+ const key = mainItem.date ?? String(mainItem.timestamp);
56
+ const item = byDate.get(key);
50
57
  const x = context.kLineCenters[i - context.range.start];
51
58
  if (!item || x === undefined || !Number.isFinite(item.close)) {
52
59
  previousHadPoint = false;
@@ -73,7 +80,14 @@ export function createComparisonLineRenderer() {
73
80
  },
74
81
  };
75
82
  }
76
- function findBaseline(data, timestamp) {
83
+ function findBaselineByDate(data, date) {
84
+ for (const item of data) {
85
+ if (item.date && item.date >= date)
86
+ return item;
87
+ }
88
+ return null;
89
+ }
90
+ function findBaselineByTimestamp(data, timestamp) {
77
91
  for (const item of data) {
78
92
  if (item.timestamp >= timestamp)
79
93
  return item;
@@ -1 +1 @@
1
- {"version":3,"file":"comparisonLine.js","sourceRoot":"","sources":["../../../src/engine/renderers/comparisonLine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparisonLine.js","sourceRoot":"","sources":["../../../src/engine/renderers/comparisonLine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeAxis.d.ts","sourceRoot":"","sources":["../../../src/engine/renderers/timeAxis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAA;AAKjE,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,eAAsB,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACzD,GAAG,cAAc,CAwGjB"}
1
+ {"version":3,"file":"timeAxis.d.ts","sourceRoot":"","sources":["../../../src/engine/renderers/timeAxis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAA;AAKjE,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,eAAsB,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACzD,GAAG,cAAc,CAyGjB"}
@@ -44,6 +44,7 @@ export function createTimeAxisRendererPlugin(options) {
44
44
  lineColor: colors.border.dark,
45
45
  drawTopBorder: false,
46
46
  drawBottomBorder: false,
47
+ period: context.period,
47
48
  }, context.theme, context.isAsiaMarket, context.colorPresetSettings);
48
49
  // 绘制来自 xAxisRanges 的时间范围带(先于标签绘制)
49
50
  if (context.xAxisRanges) {
@@ -1 +1 @@
1
- {"version":3,"file":"timeAxis.js","sourceRoot":"","sources":["../../../src/engine/renderers/timeAxis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeAxis.js","sourceRoot":"","sources":["../../../src/engine/renderers/timeAxis.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import type { Chart } from './chart';
2
1
  import type { SubIndicatorType } from './renderers/Indicator';
3
2
  import { type Signal } from '../reactivity/signal';
3
+ import type { IndicatorScheduler } from './indicators/scheduler';
4
+ import type { RendererPlugin, RendererPluginWithHost } from '../plugin';
5
+ import type { PaneSpec } from './chartTypes';
4
6
  export interface SubPaneEntry {
5
7
  paneId: string;
6
8
  indicatorId: SubIndicatorType;
@@ -9,20 +11,39 @@ export interface SubPaneEntry {
9
11
  scaleRendererName: string;
10
12
  paneTitleRendererName: string;
11
13
  }
14
+ export interface SubPaneContext {
15
+ getIndicatorScheduler: () => IndicatorScheduler;
16
+ hasPane: (paneId: string) => boolean;
17
+ upsertPane: (def: PaneSpec) => void;
18
+ getRenderer: <T extends RendererPlugin = RendererPlugin>(name: string) => T | undefined;
19
+ useRenderer: (plugin: RendererPlugin | RendererPluginWithHost, config?: Record<string, unknown>) => void;
20
+ removeRenderer: (name: string) => void;
21
+ removePaneDefinition: (paneId: string) => void;
22
+ updateRendererConfig: (name: string, config: Record<string, unknown>) => void;
23
+ getRightAxisWidth: () => number;
24
+ getPriceLabelWidth: () => number;
25
+ getYPaddingPx: () => number;
26
+ getCrosshairPos: () => {
27
+ x: number;
28
+ y: number;
29
+ } | null;
30
+ getCrosshairPrice: () => number | null;
31
+ getActivePaneId: () => string | null;
32
+ }
12
33
  export declare class SubPaneManager {
13
34
  private entries;
14
35
  private _entriesSignal;
15
36
  get entriesSignal(): Signal<ReadonlyArray<SubPaneEntry>>;
16
37
  private syncEntriesSignal;
17
- create(chart: Chart, paneId: string, indicatorId: SubIndicatorType, params: Record<string, unknown>): boolean;
18
- remove(chart: Chart, paneId: string): void;
19
- replaceIndicator(chart: Chart, paneId: string, newIndicatorId: SubIndicatorType, newParams: Record<string, unknown>): void;
20
- updateParams(chart: Chart, paneId: string, params: Record<string, unknown>): void;
38
+ create(ctx: SubPaneContext, paneId: string, indicatorId: SubIndicatorType, params: Record<string, unknown>): boolean;
39
+ remove(ctx: SubPaneContext, paneId: string): void;
40
+ replaceIndicator(ctx: SubPaneContext, paneId: string, newIndicatorId: SubIndicatorType, newParams: Record<string, unknown>): void;
41
+ updateParams(ctx: SubPaneContext, paneId: string, params: Record<string, unknown>): void;
21
42
  getByPaneId(paneId: string): SubPaneEntry | undefined;
22
43
  private createIndicatorRenderer;
23
44
  getAll(): SubPaneEntry[];
24
45
  getPaneIds(): string[];
25
- clear(chart: Chart): void;
46
+ clear(ctx: SubPaneContext): void;
26
47
  private syncSchedulerConfig;
27
48
  private mountScaleRenderer;
28
49
  private mountPaneTitleRenderer;
@@ -1 +1 @@
1
- {"version":3,"file":"subPaneManager.d.ts","sourceRoot":"","sources":["../../src/engine/subPaneManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAMhE,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;CAChC;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,cAAc,CAAgD;IAEtE,IAAI,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAEvD;IAED,OAAO,CAAC,iBAAiB;IAIzB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAoC7G,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkB1C,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAoC1H,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAYjF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD,OAAO,CAAC,uBAAuB;IAa/B,MAAM,IAAI,YAAY,EAAE;IAIxB,UAAU,IAAI,MAAM,EAAE;IAItB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAWzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,sBAAsB;CAgBjC"}
1
+ {"version":3,"file":"subPaneManager.d.ts","sourceRoot":"","sources":["../../src/engine/subPaneManager.ts"],"names":[],"mappings":"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"}
@@ -12,66 +12,63 @@ export class SubPaneManager {
12
12
  syncEntriesSignal() {
13
13
  this._entriesSignal.set(this.getAll());
14
14
  }
15
- create(chart, paneId, indicatorId, params) {
15
+ create(ctx, paneId, indicatorId, params) {
16
16
  if (this.entries.has(paneId)) {
17
17
  return true;
18
18
  }
19
19
  const scaleRendererName = `${indicatorId.toLowerCase()}_scale_${paneId}`;
20
20
  const paneTitleRendererName = `paneTitle_${paneId}`;
21
- const renderer = this.createIndicatorRenderer(chart, paneId, indicatorId, params);
21
+ const renderer = this.createIndicatorRenderer(ctx, paneId, indicatorId, params);
22
22
  if (!renderer)
23
23
  return false;
24
24
  const rendererName = renderer.name;
25
- const paneExists = chart.hasPane(paneId);
25
+ const paneExists = ctx.hasPane(paneId);
26
26
  if (!paneExists) {
27
- chart.upsertPane({ id: paneId, ratio: 1, visible: true, role: 'indicator' });
27
+ ctx.upsertPane({ id: paneId, ratio: 1, visible: true, role: 'indicator' });
28
28
  }
29
- const existingRenderer = chart.getRenderer(rendererName);
29
+ const existingRenderer = ctx.getRenderer(rendererName);
30
30
  if (!existingRenderer) {
31
- chart.useRenderer(renderer, params);
31
+ ctx.useRenderer(renderer, params);
32
32
  }
33
- this.mountScaleRenderer(chart, paneId, indicatorId, scaleRendererName);
34
- this.mountPaneTitleRenderer(chart, paneId, indicatorId, params);
35
- // 必须在 syncSchedulerConfig 之前注册 entry,
36
- // 否则 scheduler 的 buildActiveConfig 读不到新 paneId,会将新指标的 show* 标志置为 false
33
+ this.mountScaleRenderer(ctx, paneId, indicatorId, scaleRendererName);
34
+ this.mountPaneTitleRenderer(ctx, paneId, indicatorId, params);
37
35
  this.entries.set(paneId, { paneId, indicatorId, params, rendererName, scaleRendererName, paneTitleRendererName });
38
- this.syncSchedulerConfig(chart, paneId, indicatorId, params);
39
- chart.getIndicatorScheduler().onSubPaneChanged();
36
+ this.syncSchedulerConfig(ctx, paneId, indicatorId, params);
37
+ ctx.getIndicatorScheduler().onSubPaneChanged();
40
38
  this.syncEntriesSignal();
41
39
  return true;
42
40
  }
43
- remove(chart, paneId) {
41
+ remove(ctx, paneId) {
44
42
  const entry = this.entries.get(paneId);
45
43
  if (!entry)
46
44
  return;
47
- chart.removeRenderer(entry.rendererName);
48
- chart.removeRenderer(entry.scaleRendererName);
49
- chart.removeRenderer(entry.paneTitleRendererName);
45
+ ctx.removeRenderer(entry.rendererName);
46
+ ctx.removeRenderer(entry.scaleRendererName);
47
+ ctx.removeRenderer(entry.paneTitleRendererName);
50
48
  this.entries.delete(paneId);
51
- if (chart.hasPane(paneId)) {
52
- chart.removePaneDefinition(paneId);
49
+ if (ctx.hasPane(paneId)) {
50
+ ctx.removePaneDefinition(paneId);
53
51
  }
54
- chart.getIndicatorScheduler().onSubPaneChanged();
52
+ ctx.getIndicatorScheduler().onSubPaneChanged();
55
53
  this.syncEntriesSignal();
56
54
  }
57
- replaceIndicator(chart, paneId, newIndicatorId, newParams) {
55
+ replaceIndicator(ctx, paneId, newIndicatorId, newParams) {
58
56
  const entry = this.entries.get(paneId);
59
57
  if (!entry)
60
58
  return;
61
- const oldIndicatorId = entry.indicatorId;
62
- chart.removeRenderer(entry.rendererName);
63
- chart.removeRenderer(entry.scaleRendererName);
64
- chart.removeRenderer(entry.paneTitleRendererName);
59
+ ctx.removeRenderer(entry.rendererName);
60
+ ctx.removeRenderer(entry.scaleRendererName);
61
+ ctx.removeRenderer(entry.paneTitleRendererName);
65
62
  const newScaleRendererName = `${newIndicatorId.toLowerCase()}_scale_${paneId}`;
66
63
  const newPaneTitleRendererName = `paneTitle_${paneId}`;
67
- const renderer = this.createIndicatorRenderer(chart, paneId, newIndicatorId, newParams);
64
+ const renderer = this.createIndicatorRenderer(ctx, paneId, newIndicatorId, newParams);
68
65
  if (!renderer)
69
66
  return;
70
67
  const newRendererName = renderer.name;
71
- chart.useRenderer(renderer, newParams);
72
- this.mountScaleRenderer(chart, paneId, newIndicatorId, newScaleRendererName);
73
- this.mountPaneTitleRenderer(chart, paneId, newIndicatorId, newParams);
74
- this.syncSchedulerConfig(chart, paneId, newIndicatorId, newParams);
68
+ ctx.useRenderer(renderer, newParams);
69
+ this.mountScaleRenderer(ctx, paneId, newIndicatorId, newScaleRendererName);
70
+ this.mountPaneTitleRenderer(ctx, paneId, newIndicatorId, newParams);
71
+ this.syncSchedulerConfig(ctx, paneId, newIndicatorId, newParams);
75
72
  this.entries.set(paneId, {
76
73
  paneId,
77
74
  indicatorId: newIndicatorId,
@@ -80,23 +77,24 @@ export class SubPaneManager {
80
77
  scaleRendererName: newScaleRendererName,
81
78
  paneTitleRendererName: newPaneTitleRendererName,
82
79
  });
83
- chart.getIndicatorScheduler().onSubPaneChanged();
80
+ ctx.getIndicatorScheduler().onSubPaneChanged();
84
81
  this.syncEntriesSignal();
85
82
  }
86
- updateParams(chart, paneId, params) {
83
+ updateParams(ctx, paneId, params) {
87
84
  const entry = this.entries.get(paneId);
88
85
  if (!entry)
89
86
  return;
90
87
  entry.params = { ...params };
91
- chart.updateRendererConfig(entry.rendererName, params);
92
- this.syncSchedulerConfig(chart, paneId, entry.indicatorId, entry.params);
88
+ ctx.updateRendererConfig(entry.rendererName, params);
89
+ ctx.updateRendererConfig(entry.paneTitleRendererName, { params: entry.params, indicatorId: entry.indicatorId });
90
+ this.syncSchedulerConfig(ctx, paneId, entry.indicatorId, entry.params);
93
91
  this.syncEntriesSignal();
94
92
  }
95
93
  getByPaneId(paneId) {
96
94
  return this.entries.get(paneId);
97
95
  }
98
- createIndicatorRenderer(chart, paneId, indicatorId, params) {
99
- const definition = chart.getIndicatorScheduler().getIndicatorMetadata(indicatorId);
96
+ createIndicatorRenderer(ctx, paneId, indicatorId, params) {
97
+ const definition = ctx.getIndicatorScheduler().getIndicatorMetadata(indicatorId);
100
98
  if (!definition) {
101
99
  throw new Error(`[SubPaneManager] Unknown indicator: ${indicatorId}`);
102
100
  }
@@ -108,44 +106,44 @@ export class SubPaneManager {
108
106
  getPaneIds() {
109
107
  return Array.from(this.entries.keys());
110
108
  }
111
- clear(chart) {
109
+ clear(ctx) {
112
110
  for (const entry of this.entries.values()) {
113
- chart.removeRenderer(entry.rendererName);
114
- chart.removeRenderer(entry.scaleRendererName);
115
- chart.removeRenderer(entry.paneTitleRendererName);
111
+ ctx.removeRenderer(entry.rendererName);
112
+ ctx.removeRenderer(entry.scaleRendererName);
113
+ ctx.removeRenderer(entry.paneTitleRendererName);
116
114
  }
117
115
  this.entries.clear();
118
- chart.getIndicatorScheduler().onSubPaneChanged();
116
+ ctx.getIndicatorScheduler().onSubPaneChanged();
119
117
  this.syncEntriesSignal();
120
118
  }
121
- syncSchedulerConfig(chart, paneId, indicatorId, params) {
122
- const scheduler = chart.getIndicatorScheduler();
119
+ syncSchedulerConfig(ctx, paneId, indicatorId, params) {
120
+ const scheduler = ctx.getIndicatorScheduler();
123
121
  const definition = scheduler.getIndicatorMetadata(indicatorId);
124
122
  definition?.updateConfig?.(scheduler, params, paneId);
125
123
  }
126
- mountScaleRenderer(chart, paneId, indicatorId, scaleRendererName) {
127
- const existing = chart.getRenderer(scaleRendererName);
124
+ mountScaleRenderer(ctx, paneId, indicatorId, scaleRendererName) {
125
+ const existing = ctx.getRenderer(scaleRendererName);
128
126
  if (existing)
129
127
  return;
130
- const axisWidth = chart.getOption().rightAxisWidth + (chart.getOption().priceLabelWidth ?? 60);
131
- const yPaddingPx = chart.getOption().yPaddingPx;
128
+ const axisWidth = ctx.getRightAxisWidth() + (ctx.getPriceLabelWidth() ?? 60);
129
+ const yPaddingPx = ctx.getYPaddingPx();
132
130
  const getCrosshair = () => {
133
- const pos = chart.interaction.crosshairPos;
134
- const price = chart.interaction.crosshairPrice;
135
- const activePaneId = chart.interaction.activePaneId;
131
+ const pos = ctx.getCrosshairPos();
132
+ const price = ctx.getCrosshairPrice();
133
+ const activePaneId = ctx.getActivePaneId();
136
134
  if (pos && price !== null) {
137
135
  return { y: pos.y, price, activePaneId };
138
136
  }
139
137
  return null;
140
138
  };
141
139
  const opts = { axisWidth, paneId, yPaddingPx, getCrosshair };
142
- const definition = chart.getIndicatorScheduler().getIndicatorMetadata(indicatorId);
140
+ const definition = ctx.getIndicatorScheduler().getIndicatorMetadata(indicatorId);
143
141
  if (definition?.scaleRendererFactory) {
144
- chart.useRenderer(definition.scaleRendererFactory({ ...opts, indicatorId }));
142
+ ctx.useRenderer(definition.scaleRendererFactory({ ...opts, indicatorId }));
145
143
  return;
146
144
  }
147
145
  if (definition?.scale) {
148
- chart.useRenderer(createIndicatorScaleRendererPlugin({
146
+ ctx.useRenderer(createIndicatorScaleRendererPlugin({
149
147
  ...opts,
150
148
  indicatorKey: definition.scale.indicatorKey ?? definition.name,
151
149
  label: definition.scale.label ?? definition.displayName,
@@ -154,11 +152,11 @@ export class SubPaneManager {
154
152
  return;
155
153
  }
156
154
  }
157
- mountPaneTitleRenderer(chart, paneId, indicatorId, params) {
155
+ mountPaneTitleRenderer(ctx, paneId, indicatorId, params) {
158
156
  const rendererName = `paneTitle_${paneId}`;
159
- const existing = chart.getRenderer(rendererName);
157
+ const existing = ctx.getRenderer(rendererName);
160
158
  if (existing) {
161
- chart.updateRendererConfig(rendererName, { params, indicatorId });
159
+ ctx.updateRendererConfig(rendererName, { params, indicatorId });
162
160
  return;
163
161
  }
164
162
  const renderer = createPaneTitleRendererPlugin({
@@ -167,7 +165,7 @@ export class SubPaneManager {
167
165
  indicatorId,
168
166
  params,
169
167
  });
170
- chart.useRenderer(renderer);
168
+ ctx.useRenderer(renderer);
171
169
  }
172
170
  }
173
171
  //# sourceMappingURL=subPaneManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subPaneManager.js","sourceRoot":"","sources":["../../src/engine/subPaneManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subPaneManager.js","sourceRoot":"","sources":["../../src/engine/subPaneManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export interface ZoomCommittedResult {
2
+ kWidth: number;
3
+ kGap: number;
4
+ zoomLevel: number;
5
+ }
6
+ export interface ZoomDependencies {
7
+ getLogicalScrollLeft: () => number;
8
+ getCurrentDpr: () => number;
9
+ getLeftLoadBufferWidth: () => number;
10
+ setScrollLeft: (v: number) => void;
11
+ onZoomCommitted: (result: ZoomCommittedResult) => void;
12
+ getKWidth: () => number;
13
+ getKGap: () => number;
14
+ getMinKWidth: () => number;
15
+ getMaxKWidth: () => number;
16
+ zoomLevelCount: number;
17
+ initialZoomLevel: number;
18
+ }
19
+ export declare class ChartZoomController {
20
+ private _currentZoomLevel;
21
+ private readonly deps;
22
+ constructor(deps: ZoomDependencies);
23
+ get currentZoomLevel(): number;
24
+ get zoomLevelCount(): number;
25
+ setZoomLevel(level: number): void;
26
+ zoomToLevel(level: number, anchorX?: number): void;
27
+ zoomIn(anchorX?: number): void;
28
+ zoomOut(anchorX?: number): void;
29
+ handleWheel(deltaY: number, viewportX: number): void;
30
+ handlePinch(delta: number, centerClientX: number): void;
31
+ private applyZoom;
32
+ }
33
+ //# sourceMappingURL=chartZoomController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartZoomController.d.ts","sourceRoot":"","sources":["../../../src/engine/utils/chartZoomController.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,EAAE,MAAM,MAAM,CAAA;IAClC,aAAa,EAAE,MAAM,MAAM,CAAA;IAC3B,sBAAsB,EAAE,MAAM,MAAM,CAAA;IACpC,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACtD,SAAS,EAAE,MAAM,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;gBAE3B,IAAI,EAAE,gBAAgB;IAMlC,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlD,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOpD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAMvD,OAAO,CAAC,SAAS;CAiClB"}
@@ -0,0 +1,66 @@
1
+ import { computeZoom } from './zoom';
2
+ export class ChartZoomController {
3
+ _currentZoomLevel;
4
+ deps;
5
+ constructor(deps) {
6
+ this.deps = deps;
7
+ const clamped = Math.max(1, Math.min(deps.zoomLevelCount, deps.initialZoomLevel ?? 1));
8
+ this._currentZoomLevel = clamped;
9
+ }
10
+ get currentZoomLevel() {
11
+ return this._currentZoomLevel;
12
+ }
13
+ get zoomLevelCount() {
14
+ return this.deps.zoomLevelCount;
15
+ }
16
+ setZoomLevel(level) {
17
+ this._currentZoomLevel = Math.max(1, Math.min(this.deps.zoomLevelCount, level));
18
+ }
19
+ zoomToLevel(level, anchorX) {
20
+ const clamped = Math.max(1, Math.min(this.deps.zoomLevelCount, Math.round(level)));
21
+ this.applyZoom(clamped, anchorX);
22
+ }
23
+ zoomIn(anchorX) {
24
+ this.zoomToLevel(this._currentZoomLevel + 1, anchorX);
25
+ }
26
+ zoomOut(anchorX) {
27
+ this.zoomToLevel(this._currentZoomLevel - 1, anchorX);
28
+ }
29
+ handleWheel(deltaY, viewportX) {
30
+ const delta = deltaY > 0 ? -1 : 1;
31
+ const targetLevel = Math.max(1, Math.min(this.deps.zoomLevelCount, this._currentZoomLevel + delta));
32
+ if (targetLevel === this._currentZoomLevel)
33
+ return;
34
+ this.applyZoom(targetLevel, viewportX);
35
+ }
36
+ handlePinch(delta, centerClientX) {
37
+ const targetLevel = Math.max(1, Math.min(this.deps.zoomLevelCount, this._currentZoomLevel + delta));
38
+ if (targetLevel === this._currentZoomLevel)
39
+ return;
40
+ this.applyZoom(targetLevel, centerClientX);
41
+ }
42
+ applyZoom(targetLevel, anchorViewportX) {
43
+ if (targetLevel === this._currentZoomLevel)
44
+ return;
45
+ const delta = targetLevel - this._currentZoomLevel;
46
+ const logicalScrollLeft = this.deps.getLogicalScrollLeft();
47
+ const dpr = this.deps.getCurrentDpr();
48
+ const result = computeZoom(delta, anchorViewportX ?? 0, logicalScrollLeft, this._currentZoomLevel, this.deps.getKWidth(), this.deps.getKGap(), {
49
+ minKWidth: this.deps.getMinKWidth(),
50
+ maxKWidth: this.deps.getMaxKWidth(),
51
+ zoomLevelCount: this.deps.zoomLevelCount,
52
+ dpr,
53
+ });
54
+ if (!result)
55
+ return;
56
+ const domScrollLeft = result.newScrollLeft + this.deps.getLeftLoadBufferWidth();
57
+ this._currentZoomLevel = result.targetLevel;
58
+ this.deps.setScrollLeft(domScrollLeft);
59
+ this.deps.onZoomCommitted({
60
+ kWidth: result.newKWidth,
61
+ kGap: result.newKGap,
62
+ zoomLevel: result.targetLevel,
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=chartZoomController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartZoomController.js","sourceRoot":"","sources":["../../../src/engine/utils/chartZoomController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAsBpC,MAAM,OAAO,mBAAmB;IACtB,iBAAiB,CAAQ;IAChB,IAAI,CAAkB;IAEvC,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAA;QACtF,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAA;IAClC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA;IACjC,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,OAAgB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,OAAgB;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,CAAC,OAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,SAAiB;QAC3C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAA;QACnG,IAAI,WAAW,KAAK,IAAI,CAAC,iBAAiB;YAAE,OAAM;QAClD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,aAAqB;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAA;QACnG,IAAI,WAAW,KAAK,IAAI,CAAC,iBAAiB;YAAE,OAAM;QAClD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC5C,CAAC;IAEO,SAAS,CAAC,WAAmB,EAAE,eAAwB;QAC7D,IAAI,WAAW,KAAK,IAAI,CAAC,iBAAiB;YAAE,OAAM;QAElD,MAAM,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAA;QAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA;QAErC,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EACL,eAAe,IAAI,CAAC,EACpB,iBAAiB,EACjB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EACnB;YACE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,GAAG;SACJ,CACF,CAAA;QAED,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC/E,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,SAAS;YACxB,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,SAAS,EAAE,MAAM,CAAC,WAAW;SAC9B,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,72 @@
1
+ import type { ChartDom, Viewport, ViewportState } from '../chartTypes';
2
+ import type { VisibleRange, UpdateLevel } from '../layout/pane';
3
+ import { type Signal } from '../../reactivity/signal';
4
+ export interface ViewportDependencies {
5
+ getDom: () => ChartDom;
6
+ getBottomAxisHeight: () => number;
7
+ getLeftLoadBufferWidth: () => number;
8
+ getZoomLevel: () => number;
9
+ getLastVisibleRange: () => VisibleRange;
10
+ getKWidth: () => number;
11
+ getKGap: () => number;
12
+ scheduleDraw: (level?: UpdateLevel) => void;
13
+ onResizeCompleted: () => void;
14
+ resizeSharedWebGLSurface: (plotWidth: number, plotHeight: number, dpr: number) => void;
15
+ }
16
+ export declare class ChartViewportManager {
17
+ private deps;
18
+ /** 精确 DPR(来自 ResizeObserver 的 devicePixelContentBoxSize) */
19
+ private preciseDpr;
20
+ /** 统一监听容器尺寸与 DPR 变化 */
21
+ private resizeObserver?;
22
+ /** scroll 事件处理器引用(用于 cleanup) */
23
+ private onScroll?;
24
+ /** 最近一次观测到的容器尺寸 */
25
+ private observedSize;
26
+ /** 缓存的 scrollLeft(通过 scroll 事件同步,避免每帧读取 DOM 触发强制回流) */
27
+ private cachedScrollLeft;
28
+ /** 待写入 DOM 的 scrollLeft(在 RAF 回调中应用,确保 Vue 已完成 DOM 更新) */
29
+ private _pendingScrollLeft;
30
+ /** 内部视口状态 */
31
+ private _internalViewport;
32
+ /** 视口状态信号 */
33
+ private _viewportSignal;
34
+ constructor(deps: ViewportDependencies);
35
+ /** 视口状态信号 */
36
+ get viewportSignal(): Signal<ViewportState>;
37
+ /** 获取缓存的 scrollLeft(避免读取 DOM 触发强制回流) */
38
+ getCachedScrollLeft(): number;
39
+ /** 获取逻辑 scrollLeft(减去左侧加载缓冲宽度,可为负值) */
40
+ getLogicalScrollLeft(): number;
41
+ /** 获取当前视口 */
42
+ getViewport(): Viewport | null;
43
+ /** 获取有效 DPR */
44
+ getEffectiveDpr(): number;
45
+ /** 获取观测到的容器尺寸 */
46
+ getObservedSize(): {
47
+ width: number;
48
+ height: number;
49
+ };
50
+ /** 设置滚动位置(缓存 + 待写入) */
51
+ setScrollLeft(v: number): void;
52
+ /** 仅设置缓存 scrollLeft(由 DataManager 内部使用) */
53
+ setCachedScrollLeft(v: number): void;
54
+ /** 仅设置待写入 scrollLeft(由 DataManager 内部使用) */
55
+ setPendingScrollLeft(v: number): void;
56
+ /** 在 RAF 回调中应用待写入的 scrollLeft */
57
+ applyPendingScrollLeft(container: HTMLElement): void;
58
+ /** 初始化 ResizeObserver 和 scroll 监听 */
59
+ init(): void;
60
+ /** 销毁 */
61
+ destroy(): void;
62
+ /**
63
+ * 计算视口
64
+ */
65
+ computeViewport(): Viewport | null;
66
+ /**
67
+ * 更新 viewport signal(用于滚动事件/缩放后的信号同步)
68
+ */
69
+ updateViewportSignal(): void;
70
+ private updateObservedMetrics;
71
+ }
72
+ //# sourceMappingURL=chartViewportManager.d.ts.map