@363045841yyt/klinechart-core 0.9.0-alpha.2 → 0.9.0-alpha.3

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 (190) hide show
  1. package/dist/controllers/createChartController.d.ts.map +1 -1
  2. package/dist/controllers/createChartController.js +9 -8
  3. package/dist/controllers/createChartController.js.map +1 -1
  4. package/dist/controllers/index.d.ts +1 -0
  5. package/dist/controllers/index.d.ts.map +1 -1
  6. package/dist/controllers/index.js.map +1 -1
  7. package/dist/controllers/types.d.ts +5 -0
  8. package/dist/controllers/types.d.ts.map +1 -1
  9. package/dist/data/binance.d.ts +1 -1
  10. package/dist/data/binance.d.ts.map +1 -1
  11. package/dist/data/binance.js +1 -1
  12. package/dist/data/binance.js.map +1 -1
  13. package/dist/engine/chart.d.ts +9 -9
  14. package/dist/engine/chart.d.ts.map +1 -1
  15. package/dist/engine/chart.js +69 -96
  16. package/dist/engine/chart.js.map +1 -1
  17. package/dist/engine/chartTypes.d.ts +5 -0
  18. package/dist/engine/chartTypes.d.ts.map +1 -1
  19. package/dist/engine/controller/interaction.d.ts +4 -2
  20. package/dist/engine/controller/interaction.d.ts.map +1 -1
  21. package/dist/engine/controller/interaction.js +18 -10
  22. package/dist/engine/controller/interaction.js.map +1 -1
  23. package/dist/engine/data/chartDataManager.d.ts +12 -18
  24. package/dist/engine/data/chartDataManager.d.ts.map +1 -1
  25. package/dist/engine/data/chartDataManager.js +46 -37
  26. package/dist/engine/data/chartDataManager.js.map +1 -1
  27. package/dist/engine/data/incrementalLoadHint.d.ts +2 -4
  28. package/dist/engine/data/incrementalLoadHint.d.ts.map +1 -1
  29. package/dist/engine/data/incrementalLoadHint.js +5 -2
  30. package/dist/engine/data/incrementalLoadHint.js.map +1 -1
  31. package/dist/engine/data/scrollCompensator.d.ts +3 -13
  32. package/dist/engine/data/scrollCompensator.d.ts.map +1 -1
  33. package/dist/engine/data/scrollCompensator.js +13 -14
  34. package/dist/engine/data/scrollCompensator.js.map +1 -1
  35. package/dist/engine/indicators/chartIndicatorManager.d.ts +16 -17
  36. package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
  37. package/dist/engine/indicators/chartIndicatorManager.js +37 -37
  38. package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
  39. package/dist/engine/layout/chartPaneLayout.d.ts +11 -7
  40. package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -1
  41. package/dist/engine/layout/chartPaneLayout.js +58 -16
  42. package/dist/engine/layout/chartPaneLayout.js.map +1 -1
  43. package/dist/engine/paneRenderer.d.ts +2 -0
  44. package/dist/engine/paneRenderer.d.ts.map +1 -1
  45. package/dist/engine/paneRenderer.js +15 -5
  46. package/dist/engine/paneRenderer.js.map +1 -1
  47. package/dist/engine/render/chartRenderer.d.ts +28 -22
  48. package/dist/engine/render/chartRenderer.d.ts.map +1 -1
  49. package/dist/engine/render/chartRenderer.js +117 -69
  50. package/dist/engine/render/chartRenderer.js.map +1 -1
  51. package/dist/engine/render/layers/leftYAxisLayer.d.ts +9 -2
  52. package/dist/engine/render/layers/leftYAxisLayer.d.ts.map +1 -1
  53. package/dist/engine/render/layers/leftYAxisLayer.js +11 -2
  54. package/dist/engine/render/layers/leftYAxisLayer.js.map +1 -1
  55. package/dist/engine/render/layers/mainIndicatorLegendLayer.d.ts +6 -4
  56. package/dist/engine/render/layers/mainIndicatorLegendLayer.d.ts.map +1 -1
  57. package/dist/engine/render/layers/mainIndicatorLegendLayer.js +6 -9
  58. package/dist/engine/render/layers/mainIndicatorLegendLayer.js.map +1 -1
  59. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.d.ts +2 -0
  60. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.d.ts.map +1 -0
  61. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.js +19 -0
  62. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.js.map +1 -0
  63. package/dist/engine/render/layers/yAxisLayer.d.ts +9 -2
  64. package/dist/engine/render/layers/yAxisLayer.d.ts.map +1 -1
  65. package/dist/engine/render/layers/yAxisLayer.js +11 -2
  66. package/dist/engine/render/layers/yAxisLayer.js.map +1 -1
  67. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts +7 -3
  68. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
  69. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +234 -330
  70. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  71. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts +72 -0
  72. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts.map +1 -0
  73. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js +177 -0
  74. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js.map +1 -0
  75. package/dist/engine/renderers/leftYAxis.d.ts +15 -2
  76. package/dist/engine/renderers/leftYAxis.d.ts.map +1 -1
  77. package/dist/engine/renderers/leftYAxis.js +56 -16
  78. package/dist/engine/renderers/leftYAxis.js.map +1 -1
  79. package/dist/engine/renderers/yAxis.d.ts +16 -6
  80. package/dist/engine/renderers/yAxis.d.ts.map +1 -1
  81. package/dist/engine/renderers/yAxis.js +49 -16
  82. package/dist/engine/renderers/yAxis.js.map +1 -1
  83. package/dist/engine/state/viewportState.d.ts +4 -1
  84. package/dist/engine/state/viewportState.d.ts.map +1 -1
  85. package/dist/engine/state/viewportState.js +40 -8
  86. package/dist/engine/state/viewportState.js.map +1 -1
  87. package/dist/engine/subPaneManager.d.ts +5 -3
  88. package/dist/engine/subPaneManager.d.ts.map +1 -1
  89. package/dist/engine/subPaneManager.js +3 -2
  90. package/dist/engine/subPaneManager.js.map +1 -1
  91. package/dist/engine/utils/chartZoomController.d.ts +9 -7
  92. package/dist/engine/utils/chartZoomController.d.ts.map +1 -1
  93. package/dist/engine/utils/chartZoomController.js +13 -12
  94. package/dist/engine/utils/chartZoomController.js.map +1 -1
  95. package/dist/engine/viewport/chartViewportManager.d.ts +5 -16
  96. package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
  97. package/dist/engine/viewport/chartViewportManager.js +7 -48
  98. package/dist/engine/viewport/chartViewportManager.js.map +1 -1
  99. package/dist/engine/viewport/viewport.d.ts +14 -0
  100. package/dist/engine/viewport/viewport.d.ts.map +1 -1
  101. package/dist/engine/viewport/viewport.js +10 -0
  102. package/dist/engine/viewport/viewport.js.map +1 -1
  103. package/dist/foundation/plugin/rendererPluginManager.test.js +15 -0
  104. package/dist/foundation/plugin/rendererPluginManager.test.js.map +1 -1
  105. package/dist/foundation/plugin/types.d.ts +3 -0
  106. package/dist/foundation/plugin/types.d.ts.map +1 -1
  107. package/dist/foundation/plugin/types.js.map +1 -1
  108. package/dist/foundation/reactivity/frameTransaction.d.ts +11 -0
  109. package/dist/foundation/reactivity/frameTransaction.d.ts.map +1 -1
  110. package/dist/foundation/reactivity/frameTransaction.js +17 -2
  111. package/dist/foundation/reactivity/frameTransaction.js.map +1 -1
  112. package/dist/rendering/render/Renderer.d.ts +58 -74
  113. package/dist/rendering/render/Renderer.d.ts.map +1 -1
  114. package/dist/rendering/render/Renderer.js +8 -18
  115. package/dist/rendering/render/Renderer.js.map +1 -1
  116. package/dist/rendering/render/createWebGPURenderer.d.ts.map +1 -1
  117. package/dist/rendering/render/createWebGPURenderer.js +30 -17
  118. package/dist/rendering/render/createWebGPURenderer.js.map +1 -1
  119. package/dist/rendering/render/createWebGPUSurfaceBackend.js +3 -3
  120. package/dist/rendering/render/createWebGPUSurfaceBackend.js.map +1 -1
  121. package/dist/rendering/render/physicalLine.d.ts +4 -0
  122. package/dist/rendering/render/physicalLine.d.ts.map +1 -0
  123. package/dist/rendering/render/physicalLine.js +37 -0
  124. package/dist/rendering/render/physicalLine.js.map +1 -0
  125. package/dist/rendering/render/physicalRegion.d.ts +14 -0
  126. package/dist/rendering/render/physicalRegion.d.ts.map +1 -0
  127. package/dist/rendering/render/physicalRegion.js +15 -0
  128. package/dist/rendering/render/physicalRegion.js.map +1 -0
  129. package/dist/rendering/scene/createLayerFromPlugin.d.ts.map +1 -1
  130. package/dist/rendering/scene/createLayerFromPlugin.js +8 -3
  131. package/dist/rendering/scene/createLayerFromPlugin.js.map +1 -1
  132. package/dist/rendering/scene/createScene.d.ts.map +1 -1
  133. package/dist/rendering/scene/createScene.js +4 -3
  134. package/dist/rendering/scene/createScene.js.map +1 -1
  135. package/dist/version.d.ts +1 -1
  136. package/dist/version.js +1 -1
  137. package/package.json +1 -1
  138. package/src/__tests__/stateKernel.test.ts +1 -0
  139. package/src/controllers/createChartController.ts +9 -8
  140. package/src/controllers/index.ts +11 -0
  141. package/src/controllers/types.ts +7 -0
  142. package/src/data/binance.ts +1 -1
  143. package/src/engine/__tests__/chart.dpr.test.ts +3 -2
  144. package/src/engine/__tests__/paneRenderer.resize.test.ts +52 -54
  145. package/src/engine/__tests__/subPaneManager.test.ts +5 -3
  146. package/src/engine/chart.ts +76 -109
  147. package/src/engine/chartTypes.ts +5 -0
  148. package/src/engine/controller/__tests__/interaction.dpr.test.ts +39 -2
  149. package/src/engine/controller/interaction.ts +18 -10
  150. package/src/engine/data/__tests__/chartDataManager.incrementalLoad.test.ts +37 -17
  151. package/src/engine/data/__tests__/scrollCompensator.geometry.test.ts +87 -75
  152. package/src/engine/data/chartDataManager.ts +54 -59
  153. package/src/engine/data/incrementalLoadHint.ts +8 -7
  154. package/src/engine/data/scrollCompensator.ts +16 -24
  155. package/src/engine/indicators/__tests__/chartIndicatorManager.test.ts +18 -26
  156. package/src/engine/indicators/chartIndicatorManager.ts +62 -62
  157. package/src/engine/layout/chartPaneLayout.ts +73 -21
  158. package/src/engine/paneRenderer.ts +17 -10
  159. package/src/engine/render/chartRenderer.ts +187 -129
  160. package/src/engine/render/layers/leftYAxisLayer.ts +29 -7
  161. package/src/engine/render/layers/mainIndicatorLegendLayer.test.ts +26 -0
  162. package/src/engine/render/layers/mainIndicatorLegendLayer.ts +13 -10
  163. package/src/engine/render/layers/yAxisLayer.ts +29 -7
  164. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +270 -403
  165. package/src/engine/renderers/Indicator/mainIndicatorLegendContext.ts +282 -0
  166. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +73 -2
  167. package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +10 -6
  168. package/src/engine/renderers/leftYAxis.ts +60 -18
  169. package/src/engine/renderers/yAxis.ts +57 -22
  170. package/src/engine/state/viewportState.ts +44 -8
  171. package/src/engine/subPaneManager.ts +8 -5
  172. package/src/engine/utils/chartZoomController.ts +22 -19
  173. package/src/engine/viewport/__tests__/visibleRange.clamp.test.ts +50 -0
  174. package/src/engine/viewport/chartViewportManager.ts +9 -60
  175. package/src/engine/viewport/viewport.ts +14 -0
  176. package/src/foundation/plugin/rendererPluginManager.test.ts +18 -0
  177. package/src/foundation/plugin/types.ts +3 -0
  178. package/src/foundation/reactivity/frameTransaction.ts +20 -6
  179. package/src/rendering/render/Renderer.ts +69 -85
  180. package/src/rendering/render/__tests__/physicalLine.test.ts +51 -0
  181. package/src/rendering/render/__tests__/physicalRegion.test.ts +23 -0
  182. package/src/rendering/render/__tests__/webgpuRenderer.test.ts +31 -1
  183. package/src/rendering/render/__tests__/webgpuSurfaceBackend.test.ts +11 -0
  184. package/src/rendering/render/createWebGPURenderer.ts +30 -17
  185. package/src/rendering/render/createWebGPUSurfaceBackend.ts +3 -3
  186. package/src/rendering/render/physicalLine.ts +45 -0
  187. package/src/rendering/render/physicalRegion.ts +32 -0
  188. package/src/rendering/scene/createLayerFromPlugin.ts +8 -3
  189. package/src/rendering/scene/createScene.ts +4 -3
  190. package/src/version.ts +1 -1
@@ -76,10 +76,10 @@ export class ChartIndicatorManager {
76
76
  getIndicatorScheduler: () => this.indicatorScheduler,
77
77
  };
78
78
  // 注册副图活跃列表提供者
79
- this.indicatorScheduler.setActiveSubPaneProvider(() => this.deps.subPanes$.peek().map((entry) => entry.paneId));
79
+ this.indicatorScheduler.setActiveSubPaneProvider(() => this.deps.subPaneOps.entries.peek().map((entry) => entry.paneId));
80
80
  // 派生信号
81
81
  this._indicatorsComputed = computed(() => {
82
- const mainIndicators = [...this.deps.mainIndicators$().entries()].map(([id, entry]) => ({
82
+ const mainIndicators = [...this.deps.indicator.readonly.mainIndicators().entries()].map(([id, entry]) => ({
83
83
  id,
84
84
  definitionId: id,
85
85
  label: id,
@@ -87,7 +87,7 @@ export class ChartIndicatorManager {
87
87
  role: 'main',
88
88
  params: { ...entry.params },
89
89
  }));
90
- const subIndicators = this.deps.subPanes$().map((entry) => ({
90
+ const subIndicators = this.deps.subPaneOps.entries().map((entry) => ({
91
91
  id: entry.paneId,
92
92
  definitionId: entry.indicatorId,
93
93
  label: entry.indicatorId,
@@ -99,8 +99,8 @@ export class ChartIndicatorManager {
99
99
  return [...mainIndicators, ...subIndicators];
100
100
  });
101
101
  this._subPanesComputed = computed(() => {
102
- const ratios = deps.getPaneRatiosSignal()();
103
- return this.deps.subPanes$().map((entry) => ({
102
+ const ratios = deps.paneRatios$();
103
+ return this.deps.subPaneOps.entries().map((entry) => ({
104
104
  paneId: entry.paneId,
105
105
  indicatorId: entry.indicatorId,
106
106
  params: { ...entry.params },
@@ -119,12 +119,12 @@ export class ChartIndicatorManager {
119
119
  });
120
120
  }
121
121
  this.projectedPaneSpecs = this.deps.paneSpecs$.peek();
122
- this.projectedPaneRatios = this.deps.getPaneRatiosSignal().peek();
122
+ this.projectedPaneRatios = this.deps.paneRatios$.peek();
123
123
  this.disposeProjection = effect(() => {
124
124
  const paneSpecs = this.deps.paneSpecs$();
125
- const paneRatios = this.deps.getPaneRatiosSignal()();
126
- const mainIndicators = this.deps.mainIndicators$();
127
- const subPanes = this.deps.subPanes$();
125
+ const paneRatios = this.deps.paneRatios$();
126
+ const mainIndicators = this.deps.indicator.readonly.mainIndicators();
127
+ const subPanes = this.deps.subPaneOps.entries();
128
128
  this.deps.runRendererTransaction(() => {
129
129
  let paneChanged = false;
130
130
  if (paneSpecs !== this.projectedPaneSpecs || paneRatios !== this.projectedPaneRatios) {
@@ -147,7 +147,7 @@ export class ChartIndicatorManager {
147
147
  return this.subPaneManager;
148
148
  }
149
149
  get mainIndicatorsSignalPeek() {
150
- return this.deps.mainIndicators$.peek();
150
+ return this.deps.indicator.readonly.mainIndicators.peek();
151
151
  }
152
152
  get indicatorsComputed() {
153
153
  return this._indicatorsComputed;
@@ -162,23 +162,23 @@ export class ChartIndicatorManager {
162
162
  console.warn(`[Chart] 未知的主图指标: ${indicatorId}`);
163
163
  return false;
164
164
  }
165
- const existing = this.deps.mainIndicators$.peek().get(id);
165
+ const existing = this.deps.indicator.readonly.mainIndicators.peek().get(id);
166
166
  if (existing) {
167
167
  if (params) {
168
- this.deps.upsertMainIndicator(id, params);
168
+ this.deps.indicator.actions.upsert(id, params);
169
169
  }
170
170
  return true;
171
171
  }
172
172
  const defaults = ChartIndicatorManager.DEFAULT_MAIN_PARAMS[id] ?? {};
173
173
  const merged = params ? { ...defaults, ...params } : defaults;
174
- this.deps.upsertMainIndicator(id, merged);
174
+ this.deps.indicator.actions.upsert(id, merged);
175
175
  return true;
176
176
  }
177
177
  disableMainIndicator(indicatorId) {
178
178
  const id = indicatorId.toUpperCase();
179
- if (!this.deps.mainIndicators$.peek().has(id))
179
+ if (!this.deps.indicator.readonly.mainIndicators.peek().has(id))
180
180
  return false;
181
- this.deps.removeMainIndicator(id);
181
+ this.deps.indicator.actions.remove(id);
182
182
  return true;
183
183
  }
184
184
  toggleMainIndicator(indicatorId, enabled) {
@@ -190,23 +190,23 @@ export class ChartIndicatorManager {
190
190
  }
191
191
  }
192
192
  getActiveMainIndicators() {
193
- return [...this.deps.mainIndicators$.peek().keys()];
193
+ return [...this.deps.indicator.readonly.mainIndicators.peek().keys()];
194
194
  }
195
195
  isMainIndicatorActive(indicatorId) {
196
- return this.deps.mainIndicators$.peek().has(indicatorId.toUpperCase());
196
+ return this.deps.indicator.readonly.mainIndicators.peek().has(indicatorId.toUpperCase());
197
197
  }
198
198
  updateMainIndicatorParams(indicatorId, params) {
199
199
  const id = indicatorId.toUpperCase();
200
- if (!this.deps.mainIndicators$.peek().has(id))
200
+ if (!this.deps.indicator.readonly.mainIndicators.peek().has(id))
201
201
  return;
202
- this.deps.setMainIndicatorParams(id, params);
202
+ this.deps.indicator.actions.setParams(id, params);
203
203
  }
204
204
  getMainIndicatorParams(indicatorId) {
205
- const params = this.deps.mainIndicators$.peek().get(indicatorId.toUpperCase())?.params;
205
+ const params = this.deps.indicator.readonly.mainIndicators.peek().get(indicatorId.toUpperCase())?.params;
206
206
  return params ? { ...params } : null;
207
207
  }
208
208
  clearMainIndicators() {
209
- this.deps.clearMainIndicators();
209
+ this.deps.indicator.actions.clear();
210
210
  }
211
211
  reconcileMainIndicators(desired) {
212
212
  let changed = false;
@@ -269,7 +269,7 @@ export class ChartIndicatorManager {
269
269
  }
270
270
  }
271
271
  updateIndicatorSchedulerConfig(indicatorId) {
272
- const entry = this.deps.mainIndicators$.peek().get(indicatorId);
272
+ const entry = this.deps.indicator.readonly.mainIndicators.peek().get(indicatorId);
273
273
  const isActive = entry !== undefined;
274
274
  const params = entry?.params ?? {};
275
275
  const definition = this.indicatorScheduler.getIndicatorMetadata(indicatorId);
@@ -289,7 +289,7 @@ export class ChartIndicatorManager {
289
289
  const newIds = indicators
290
290
  .map((i) => i.toUpperCase())
291
291
  .filter((id) => ChartIndicatorManager.ENABLE_MAIN_INDICATORS.includes(id));
292
- const prev = this.deps.mainIndicators$.peek();
292
+ const prev = this.deps.indicator.readonly.mainIndicators.peek();
293
293
  const next = new Map();
294
294
  for (const id of newIds) {
295
295
  const existing = prev.get(id);
@@ -302,7 +302,7 @@ export class ChartIndicatorManager {
302
302
  });
303
303
  }
304
304
  }
305
- this.deps.replaceMainIndicators(next);
305
+ this.deps.indicator.actions.replaceAll(next);
306
306
  }
307
307
  // ========== 副图管理 API ==========
308
308
  bindIndicatorToPane(paneId, indicatorId, params) {
@@ -310,53 +310,53 @@ export class ChartIndicatorManager {
310
310
  if (!definition) {
311
311
  throw new KLineChartError('NOT_REGISTERED', `[Chart] Unknown indicator: ${indicatorId}`);
312
312
  }
313
- this.deps.createSubPaneState(paneId, indicatorId, params ?? this.getDefaultSubPaneParams(indicatorId));
313
+ this.deps.subPaneOps.create(paneId, indicatorId, params ?? this.getDefaultSubPaneParams(indicatorId));
314
314
  }
315
315
  createSubPane(paneId, indicatorId, params) {
316
- const existing = this.deps.subPanes$.peek().find((entry) => entry.paneId === paneId);
316
+ const existing = this.deps.subPaneOps.entries.peek().find((entry) => entry.paneId === paneId);
317
317
  if (existing) {
318
318
  if (existing.indicatorId === indicatorId &&
319
319
  !this.subPaneManager.getMountedResources(paneId)) {
320
- this.deps.replaceSubPaneState(paneId, existing.indicatorId, existing.params);
320
+ this.deps.subPaneOps.replace(paneId, existing.indicatorId, existing.params);
321
321
  }
322
322
  return true;
323
323
  }
324
324
  if (!this.indicatorScheduler.getIndicatorMetadata(indicatorId)) {
325
325
  throw new KLineChartError('NOT_REGISTERED', `[Chart] Unknown indicator: ${indicatorId}`);
326
326
  }
327
- this.deps.createSubPaneState(paneId, indicatorId, params ?? this.getDefaultSubPaneParams(indicatorId));
327
+ this.deps.subPaneOps.create(paneId, indicatorId, params ?? this.getDefaultSubPaneParams(indicatorId));
328
328
  return true;
329
329
  }
330
330
  removeSubPane(paneId) {
331
- this.deps.removeSubPaneState(paneId);
331
+ this.deps.subPaneOps.remove(paneId);
332
332
  }
333
333
  replaceSubPaneIndicator(paneId, newIndicatorId, params) {
334
334
  if (!this.indicatorScheduler.getIndicatorMetadata(newIndicatorId)) {
335
335
  throw new KLineChartError('NOT_REGISTERED', `[Chart] Unknown indicator: ${newIndicatorId}`);
336
336
  }
337
- this.deps.replaceSubPaneState(paneId, newIndicatorId, params ?? this.getDefaultSubPaneParams(newIndicatorId));
337
+ this.deps.subPaneOps.replace(paneId, newIndicatorId, params ?? this.getDefaultSubPaneParams(newIndicatorId));
338
338
  }
339
339
  updateSubPaneParams(paneId, params) {
340
- this.deps.updateSubPaneStateParams(paneId, params);
340
+ this.deps.subPaneOps.setParams(paneId, params);
341
341
  }
342
342
  clearSubPanes() {
343
- this.deps.clearSubPaneState();
343
+ this.deps.subPaneOps.clear();
344
344
  }
345
345
  /**
346
346
  * @deprecated 使用 getSubPaneEntries 获取完整信息
347
347
  */
348
348
  getSubPaneIndicators() {
349
- return this.deps.subPanes$.peek().map((entry) => entry.indicatorId);
349
+ return this.deps.subPaneOps.entries.peek().map((entry) => entry.indicatorId);
350
350
  }
351
351
  getSubPaneEntries() {
352
- return this.deps.subPanes$.peek().map((entry) => ({
352
+ return this.deps.subPaneOps.entries.peek().map((entry) => ({
353
353
  ...entry,
354
354
  params: { ...entry.params },
355
355
  ...this.subPaneManager.getMountedResources(entry.paneId),
356
356
  }));
357
357
  }
358
358
  getSubPaneEntry(paneId) {
359
- const entry = this.deps.subPanes$.peek().find((candidate) => candidate.paneId === paneId);
359
+ const entry = this.deps.subPaneOps.entries.peek().find((candidate) => candidate.paneId === paneId);
360
360
  if (!entry)
361
361
  return undefined;
362
362
  return {
@@ -387,7 +387,7 @@ export class ChartIndicatorManager {
387
387
  }
388
388
  removeIndicator(instanceId) {
389
389
  const id = instanceId.toUpperCase();
390
- if (this.deps.mainIndicators$.peek().has(id)) {
390
+ if (this.deps.indicator.readonly.mainIndicators.peek().has(id)) {
391
391
  return this.disableMainIndicator(instanceId);
392
392
  }
393
393
  const subPaneEntry = this.getSubPaneEntry(instanceId);
@@ -399,7 +399,7 @@ export class ChartIndicatorManager {
399
399
  }
400
400
  updateIndicatorParams(instanceId, params) {
401
401
  const id = instanceId.toUpperCase();
402
- if (this.deps.mainIndicators$.peek().has(id)) {
402
+ if (this.deps.indicator.readonly.mainIndicators.peek().has(id)) {
403
403
  this.updateMainIndicatorParams(instanceId, params);
404
404
  return true;
405
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chartIndicatorManager.js","sourceRoot":"","sources":["../../../src/engine/indicators/chartIndicatorManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chartIndicatorManager.js","sourceRoot":"","sources":["../../../src/engine/indicators/chartIndicatorManager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { ChartDom, PaneSpec, Viewport } from '../chartTypes';
1
+ import type { ChartDom, PaneSpec } from '../chartTypes';
2
2
  import { PaneRenderer } from '../paneRenderer';
3
- import type { ScaleType } from '../utils/tickPosition';
3
+ import type { PaneStateModule } from '../state/paneState';
4
+ import type { ViewportStateModule } from '../state/viewportState';
4
5
  import { Pane, UpdateLevel } from './pane';
5
6
  export interface PaneLayoutDependencies {
6
7
  getDom: () => ChartDom;
@@ -12,14 +13,15 @@ export interface PaneLayoutDependencies {
12
13
  paneGap?: number;
13
14
  defaultPaneMinHeightPx?: number;
14
15
  };
15
- getViewport: () => Viewport | null;
16
+ /** scroll / plot 几何 SSOT */
17
+ viewport: ViewportStateModule;
16
18
  setKnownPaneIds: (ids: string[]) => void;
17
19
  notifyPaneResize: (paneId: string, pane: Pane) => void;
18
20
  scheduleDraw: (level?: UpdateLevel) => void;
19
- getPaneRatios: () => Record<string, number>;
20
- /** kernel.paneScaleTypes 投影源;initPanes 优先于此 */
21
- getPaneScaleTypes: () => ReadonlyMap<string, ScaleType>;
22
- commitLayout: (ratios: Record<string, number>, specs: PaneSpec[]) => void;
21
+ /** pane ratios / specs / scaleTypes SSOT */
22
+ pane: PaneStateModule;
23
+ /** commitLayout 写入 kernel 后的副作用(如 ensurePaneScaleTypes) */
24
+ afterCommitLayout?: () => void;
23
25
  }
24
26
  /**
25
27
  * Pane DOM / PaneRenderer 投影器 + 布局算法。
@@ -57,6 +59,8 @@ export declare class ChartPaneLayout {
57
59
  private normalizeVisiblePaneRatios;
58
60
  private getPaneMinHeight;
59
61
  private computePaneHeightsByRatio;
62
+ /** viewWidth 为 0 表示尚未完成首帧尺寸 */
63
+ private peekViewport;
60
64
  layoutPanes(options?: {
61
65
  commit?: boolean;
62
66
  }): void;
@@ -1 +1 @@
1
- {"version":3,"file":"chartPaneLayout.d.ts","sourceRoot":"","sources":["../../../src/engine/layout/chartPaneLayout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAG1C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,QAAQ,CAAA;IACtB,SAAS,EAAE,MAAM;QACf,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAChC,CAAA;IACD,WAAW,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACxC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACtD,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IAC3C,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,+CAA+C;IAC/C,iBAAiB,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAA;CAC1E;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,UAAU,CAAY;gBAElB,gBAAgB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,sBAAsB;IAatE,gBAAgB,IAAI,YAAY,EAAE;IAIlC;;OAEG;IACH,YAAY,IAAI,QAAQ,EAAE;IAS1B;;OAEG;IACH,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C,OAAO,CAAC,oBAAoB;IAK5B,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzD,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM7C,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,SAAS;IA8FjB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,yBAAyB;IAmDjC,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IA2D1C,4DAA4D;IAC5D,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;IAwB5F;;;OAGG;IACH,kBAAkB,IAAI,QAAQ,EAAE;IAIhC,6CAA6C;IAC7C,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,YAAY;IAQpB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAgB3F,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIzC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;IAK1C,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAa/B,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO1C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAc7B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAShC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIhC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IA0EhE,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"chartPaneLayout.d.ts","sourceRoot":"","sources":["../../../src/engine/layout/chartPaneLayout.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export class ChartPaneLayout {
35
35
  * 公共读:specs 结构来自工作副本定义,ratio 字段取自 kernel(不写工作副本)。
36
36
  */
37
37
  getPaneSpecs() {
38
- const kernelRatios = this.deps.getPaneRatios();
38
+ const kernelRatios = this.deps.pane.readonly.paneRatios.peek();
39
39
  return this._paneSpecs.map((spec) => ({
40
40
  ...spec,
41
41
  ratio: kernelRatios[spec.id] ?? spec.ratio,
@@ -46,10 +46,10 @@ export class ChartPaneLayout {
46
46
  * 公共读:直接返回 kernel paneRatios 副本,不触碰算法工作副本。
47
47
  */
48
48
  getInternalPaneRatios() {
49
- return new Map(Object.entries(this.deps.getPaneRatios()));
49
+ return new Map(Object.entries(this.deps.pane.readonly.paneRatios.peek()));
50
50
  }
51
51
  syncRatiosFromKernel() {
52
- const kernelRatios = this.deps.getPaneRatios();
52
+ const kernelRatios = this.deps.pane.readonly.paneRatios.peek();
53
53
  this._internalPaneRatios = new Map(Object.entries(kernelRatios));
54
54
  }
55
55
  setInternalPaneRatio(paneId, ratio) {
@@ -67,16 +67,32 @@ export class ChartPaneLayout {
67
67
  return spec.role;
68
68
  return index === 0 ? 'price' : 'indicator';
69
69
  }
70
- createAxisCanvas(spec, pane, side) {
70
+ createAxisCanvas(spec, side, kind = 'base') {
71
71
  const canvas = document.createElement('canvas');
72
- canvas.id = `${spec.id}-${side}Axis`;
73
- canvas.className = side === 'right' ? 'right-axis' : 'left-axis';
72
+ const isRight = side === 'right';
73
+ const isOverlay = kind === 'overlay';
74
+ canvas.id = `${spec.id}-${side}Axis${isOverlay ? 'Overlay' : ''}`;
75
+ canvas.className = isRight
76
+ ? isOverlay
77
+ ? 'right-axis-overlay'
78
+ : 'right-axis'
79
+ : isOverlay
80
+ ? 'left-axis-overlay'
81
+ : 'left-axis';
74
82
  canvas.style.position = 'absolute';
75
83
  canvas.style.left = '0';
84
+ if (isOverlay) {
85
+ canvas.style.pointerEvents = 'none';
86
+ canvas.style.backgroundColor = 'transparent';
87
+ canvas.style.zIndex = '1';
88
+ }
89
+ else {
90
+ canvas.style.zIndex = '0';
91
+ }
76
92
  return canvas;
77
93
  }
78
94
  initPanes() {
79
- const kernelScaleTypes = this.deps.getPaneScaleTypes();
95
+ const kernelScaleTypes = this.deps.pane.readonly.paneScaleTypes.peek();
80
96
  const prevScaleTypes = new Map();
81
97
  for (const r of this.paneRenderers) {
82
98
  prevScaleTypes.set(r.getPane().id, r.getPane().yAxis.getScaleType());
@@ -91,7 +107,8 @@ export class ChartPaneLayout {
91
107
  pane.yAxis.setScaleType(scaleType);
92
108
  const mainCanvas = document.createElement('canvas');
93
109
  const overlayCanvas = document.createElement('canvas');
94
- const yAxisCanvas = this.createAxisCanvas(spec, pane, 'right');
110
+ const yAxisCanvas = this.createAxisCanvas(spec, 'right', 'base');
111
+ const yAxisOverlayCanvas = this.createAxisCanvas(spec, 'right', 'overlay');
95
112
  const isMain = pane.role === 'price';
96
113
  mainCanvas.id = `${spec.id}-main`;
97
114
  mainCanvas.className = isMain ? 'main-canvas main' : 'main-canvas sub';
@@ -107,8 +124,16 @@ export class ChartPaneLayout {
107
124
  overlayCanvas.style.pointerEvents = 'none';
108
125
  overlayCanvas.style.backgroundColor = 'transparent';
109
126
  overlayCanvas.style.zIndex = '2';
110
- const leftYAxisCanvas = this.createAxisCanvas(spec, pane, 'left');
111
- const renderer = new PaneRenderer({ mainCanvas, overlayCanvas, yAxisCanvas, leftYAxisCanvas }, pane, {
127
+ const leftYAxisCanvas = this.createAxisCanvas(spec, 'left', 'base');
128
+ const leftYAxisOverlayCanvas = this.createAxisCanvas(spec, 'left', 'overlay');
129
+ const renderer = new PaneRenderer({
130
+ mainCanvas,
131
+ overlayCanvas,
132
+ yAxisCanvas,
133
+ yAxisOverlayCanvas,
134
+ leftYAxisCanvas,
135
+ leftYAxisOverlayCanvas,
136
+ }, pane, {
112
137
  rightAxisWidth: this.deps.getOption().rightAxisWidth,
113
138
  leftAxisWidth: this.deps.getOption().leftAxisWidth ?? 0,
114
139
  yPaddingPx: this.deps.getOption().yPaddingPx,
@@ -126,11 +151,11 @@ export class ChartPaneLayout {
126
151
  existingCanvases.forEach((canvas) => canvas.remove());
127
152
  }
128
153
  if (rightAxisLayer) {
129
- const existingAxisCanvases = rightAxisLayer.querySelectorAll('canvas.right-axis');
154
+ const existingAxisCanvases = rightAxisLayer.querySelectorAll('canvas.right-axis, canvas.right-axis-overlay');
130
155
  existingAxisCanvases.forEach((canvas) => canvas.remove());
131
156
  }
132
157
  if (leftAxisLayer) {
133
- const existingLeftAxisCanvases = leftAxisLayer.querySelectorAll('canvas.left-axis');
158
+ const existingLeftAxisCanvases = leftAxisLayer.querySelectorAll('canvas.left-axis, canvas.left-axis-overlay');
134
159
  existingLeftAxisCanvases.forEach((canvas) => canvas.remove());
135
160
  }
136
161
  this.paneRenderers.forEach((renderer) => {
@@ -138,8 +163,12 @@ export class ChartPaneLayout {
138
163
  canvasLayer.appendChild(domEls.mainCanvas);
139
164
  canvasLayer.appendChild(domEls.overlayCanvas);
140
165
  rightAxisLayer.appendChild(domEls.yAxisCanvas);
166
+ rightAxisLayer.appendChild(domEls.yAxisOverlayCanvas);
141
167
  if (leftAxisLayer && domEls.leftYAxisCanvas) {
142
168
  leftAxisLayer.appendChild(domEls.leftYAxisCanvas);
169
+ if (domEls.leftYAxisOverlayCanvas) {
170
+ leftAxisLayer.appendChild(domEls.leftYAxisOverlayCanvas);
171
+ }
143
172
  }
144
173
  });
145
174
  this.deps.setKnownPaneIds(this.paneRenderers.map((renderer) => renderer.getPane().id));
@@ -225,9 +254,15 @@ export class ChartPaneLayout {
225
254
  }
226
255
  return heights;
227
256
  }
257
+ /** viewWidth 为 0 表示尚未完成首帧尺寸 */
258
+ peekViewport() {
259
+ if (this.deps.viewport.readonly.viewWidth.peek() === 0)
260
+ return null;
261
+ return this.deps.viewport.readonly.viewport.peek();
262
+ }
228
263
  layoutPanes(options) {
229
264
  this.syncRatiosFromKernel();
230
- const vp = this.deps.getViewport();
265
+ const vp = this.peekViewport();
231
266
  if (!vp)
232
267
  return;
233
268
  const visibleSpecs = this._paneSpecs.filter((p) => p.visible !== false);
@@ -258,10 +293,16 @@ export class ChartPaneLayout {
258
293
  domEls.overlayCanvas.style.top = `${y}px`;
259
294
  domEls.yAxisCanvas.style.top = `${y}px`;
260
295
  domEls.yAxisCanvas.style.left = '0px';
296
+ domEls.yAxisOverlayCanvas.style.top = `${y}px`;
297
+ domEls.yAxisOverlayCanvas.style.left = '0px';
261
298
  if (domEls.leftYAxisCanvas) {
262
299
  domEls.leftYAxisCanvas.style.top = `${y}px`;
263
300
  domEls.leftYAxisCanvas.style.left = '0px';
264
301
  }
302
+ if (domEls.leftYAxisOverlayCanvas) {
303
+ domEls.leftYAxisOverlayCanvas.style.top = `${y}px`;
304
+ domEls.leftYAxisOverlayCanvas.style.left = '0px';
305
+ }
265
306
  y += h + gap;
266
307
  }
267
308
  const finalAvailable = Math.max(1, availableH);
@@ -303,7 +344,7 @@ export class ChartPaneLayout {
303
344
  * commitLayout 走 buildLayoutSpecsFromWorkingCopy,避免公共读污染算法中间态。
304
345
  */
305
346
  getPaneLayoutSpecs() {
306
- return this.buildLayoutSpecs(this.deps.getPaneRatios());
347
+ return this.buildLayoutSpecs(this.deps.pane.readonly.paneRatios.peek());
307
348
  }
308
349
  /** 仅算法/commit 使用:读当前工作副本 ratios,不读 kernel */
309
350
  buildLayoutSpecsFromWorkingCopy() {
@@ -334,7 +375,8 @@ export class ChartPaneLayout {
334
375
  this._internalPaneRatios.forEach((ratio, id) => {
335
376
  ratios[id] = ratio;
336
377
  });
337
- this.deps.commitLayout(ratios, this.buildLayoutSpecsFromWorkingCopy());
378
+ this.deps.pane.actions.commitLayout(ratios, this.buildLayoutSpecsFromWorkingCopy());
379
+ this.deps.afterCommitLayout?.();
338
380
  }
339
381
  applyPaneLayoutSpecs(panes, options) {
340
382
  if (options?.preferIncomingRatios) {
@@ -401,7 +443,7 @@ export class ChartPaneLayout {
401
443
  resizePaneBoundary(upperPaneId, deltaY) {
402
444
  if (!Number.isFinite(deltaY) || deltaY === 0)
403
445
  return false;
404
- const vp = this.deps.getViewport();
446
+ const vp = this.peekViewport();
405
447
  if (!vp)
406
448
  return false;
407
449
  this.syncRatiosFromKernel();