@363045841yyt/klinechart-core 0.7.5-alpha.2 → 0.7.5

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.
@@ -1,3 +1,4 @@
1
1
  export type { KLineData, IndicatorPaneRole, IndicatorRole, IndicatorParamDef, IndicatorDefinition, IndicatorInstance, SubPaneInfo, DrawingToolType, DrawingObject, InteractionSnapshot, DrawingControllerCallbacks, ChartMountOptions, ChartViewport, ChartController, ChartControllerFactory, } from './types';
2
2
  export { createChartController } from './createChartController';
3
+ export { createIndicatorSelectorController } from './createIndicatorSelectorController';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,GACzB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,GACzB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export { createChartController } from './createChartController';
2
+ export { createIndicatorSelectorController } from './createIndicatorSelectorController';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { KLineData } from '../types/price';
2
2
  import type { ChartSettings } from '../config/chartSettings';
3
- import { type Signal } from '../reactivity/signal';
3
+ import { type Signal, type Computed } from '../reactivity/signal';
4
4
  import { type VisibleRange, UpdateLevel } from './layout/pane';
5
5
  import { InteractionController, type InteractionSnapshot } from './controller/interaction';
6
6
  export type { InteractionSnapshot };
@@ -146,10 +146,10 @@ export declare class Chart {
146
146
  private cachedDrawFrame;
147
147
  /** 副图管理器 */
148
148
  private subPaneManager;
149
- /** 当前激活的主图指标列表(如 ['boll', 'ma']) */
150
- private activeMainIndicators;
151
- /** 主图指标参数配置 */
152
- private mainIndicatorParams;
149
+ /** 主图指标激活状态与参数(存在即激活,默认参数在 enable 时初始化) */
150
+ private _mainIndicatorsSignal;
151
+ /** 主图指标默认参数 */
152
+ private static DEFAULT_MAIN_PARAMS;
153
153
  /**
154
154
  * 启用主图指标
155
155
  * @param indicatorId 指标ID
@@ -427,22 +427,22 @@ export declare class Chart {
427
427
  private _viewportSignal;
428
428
  private _dataSignal;
429
429
  private _themeSignal;
430
- private _indicatorsSignal;
431
- private _subPanesSignal;
432
430
  private _drawingToolSignal;
433
431
  private _drawingsSignal;
434
432
  private _paneRatiosSignal;
435
433
  private _interactionSignal;
434
+ private _indicatorsComputed;
435
+ private _subPanesComputed;
436
436
  /** 视口状态信号 */
437
437
  get viewport(): Signal<ViewportState>;
438
438
  /** 数据信号 */
439
439
  get data(): Signal<ReadonlyArray<KLineData>>;
440
440
  /** 主题信号 */
441
441
  get theme(): Signal<'light' | 'dark'>;
442
- /** 指标实例列表信号 */
443
- get indicators(): Signal<ReadonlyArray<IndicatorInstance>>;
444
- /** 子图信息信号 */
445
- get subPanes(): Signal<ReadonlyArray<SubPaneInfo>>;
442
+ /** 指标实例列表信号(派生信号,自动随主/副图状态更新) */
443
+ get indicators(): Computed<ReadonlyArray<IndicatorInstance>>;
444
+ /** 子图信息信号(派生信号,自动随副图条目/比例更新) */
445
+ get subPanes(): Computed<ReadonlyArray<SubPaneInfo>>;
446
446
  /** 当前绘图工具信号 */
447
447
  get drawingTool(): Signal<DrawingToolType | null>;
448
448
  /** 绘图对象列表信号 */
@@ -543,14 +543,6 @@ export declare class Chart {
543
543
  * @returns 是否成功
544
544
  */
545
545
  reorderIndicators(orderedInstanceIds: string[]): boolean;
546
- /**
547
- * 同步 indicators signal
548
- */
549
- private syncIndicatorsSignal;
550
- /**
551
- * 同步 sub panes signal
552
- */
553
- private syncSubPanesSignal;
554
546
  /**
555
547
  * 调整子图大小(高层 API)
556
548
  * @param paneId 面板 ID
@@ -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,4 @@
1
- import { createSignal } from '../reactivity/signal';
1
+ import { createSignal, computed } from '../reactivity/signal';
2
2
  import { getVisibleRange } from './viewport/viewport';
3
3
  import { Pane, UpdateLevel } from './layout/pane';
4
4
  import { InteractionController } from './controller/interaction';
@@ -97,11 +97,11 @@ export class Chart {
97
97
  /** Overlay 帧复用的最近主渲染结果 */
98
98
  cachedDrawFrame = null;
99
99
  /** 副图管理器 */
100
- subPaneManager;
101
- /** 当前激活的主图指标列表(如 ['boll', 'ma']) */
102
- activeMainIndicators = new Set();
103
- /** 主图指标参数配置 */
104
- mainIndicatorParams = {
100
+ subPaneManager = new SubPaneManager();
101
+ /** 主图指标激活状态与参数(存在即激活,默认参数在 enable 时初始化) */
102
+ _mainIndicatorsSignal = createSignal(new Map());
103
+ /** 主图指标默认参数 */
104
+ static DEFAULT_MAIN_PARAMS = {
105
105
  MA: { ma5: true, ma10: true, ma20: true, ma30: true, ma60: true },
106
106
  BOLL: { period: 20, multiplier: 2, showUpper: true, showMiddle: true, showLower: true, showBand: true },
107
107
  EXPMA: { fastPeriod: 12, slowPeriod: 50 },
@@ -133,26 +133,29 @@ export class Chart {
133
133
  console.warn(`[Chart] 未知的主图指标: ${indicatorId}`);
134
134
  return false;
135
135
  }
136
- if (this.activeMainIndicators.has(id)) {
136
+ const map = this._mainIndicatorsSignal.peek();
137
+ const existing = map.get(id);
138
+ if (existing) {
137
139
  // 已启用,更新参数
138
140
  if (params) {
139
- this.mainIndicatorParams[id] = { ...this.mainIndicatorParams[id], ...params };
141
+ const next = new Map(map);
142
+ next.set(id, { params: { ...existing.params, ...params } });
143
+ this._mainIndicatorsSignal.set(next);
140
144
  this.updateIndicatorSchedulerConfig(id);
141
- this.syncIndicatorsSignal();
142
145
  }
143
146
  return true;
144
147
  }
145
- this.activeMainIndicators.add(id);
146
148
  // 合并默认参数和传入参数
147
- if (params) {
148
- this.mainIndicatorParams[id] = { ...this.mainIndicatorParams[id], ...params };
149
- }
149
+ const defaults = Chart.DEFAULT_MAIN_PARAMS[id] ?? {};
150
+ const merged = params ? { ...defaults, ...params } : defaults;
151
+ const next = new Map(map);
152
+ next.set(id, { params: merged });
153
+ this._mainIndicatorsSignal.set(next);
150
154
  // 启用对应的渲染器
151
155
  this.enableMainIndicatorRenderer(id);
152
156
  // 更新调度器配置
153
157
  this.updateIndicatorSchedulerConfig(id);
154
158
  this.scheduleDraw();
155
- this.syncIndicatorsSignal();
156
159
  return true;
157
160
  }
158
161
  /**
@@ -162,15 +165,17 @@ export class Chart {
162
165
  */
163
166
  disableMainIndicator(indicatorId) {
164
167
  const id = indicatorId.toUpperCase();
165
- if (!this.activeMainIndicators.has(id))
168
+ const map = this._mainIndicatorsSignal.peek();
169
+ if (!map.has(id))
166
170
  return false;
167
- this.activeMainIndicators.delete(id);
171
+ const next = new Map(map);
172
+ next.delete(id);
173
+ this._mainIndicatorsSignal.set(next);
168
174
  // 禁用对应的渲染器
169
175
  this.disableMainIndicatorRenderer(id);
170
176
  // 更新调度器配置
171
177
  this.updateIndicatorSchedulerConfig(id);
172
178
  this.scheduleDraw();
173
- this.syncIndicatorsSignal();
174
179
  return true;
175
180
  }
176
181
  /**
@@ -191,14 +196,14 @@ export class Chart {
191
196
  * @returns 激活的指标ID数组
192
197
  */
193
198
  getActiveMainIndicators() {
194
- return Array.from(this.activeMainIndicators);
199
+ return [...this._mainIndicatorsSignal.peek().keys()];
195
200
  }
196
201
  /**
197
202
  * 检查主图指标是否激活
198
203
  * @param indicatorId 指标ID
199
204
  */
200
205
  isMainIndicatorActive(indicatorId) {
201
- return this.activeMainIndicators.has(indicatorId.toUpperCase());
206
+ return this._mainIndicatorsSignal.peek().has(indicatorId.toUpperCase());
202
207
  }
203
208
  /**
204
209
  * 更新主图指标参数
@@ -207,38 +212,41 @@ export class Chart {
207
212
  */
208
213
  updateMainIndicatorParams(indicatorId, params) {
209
214
  const id = indicatorId.toUpperCase();
210
- if (!this.mainIndicatorParams[id]) {
211
- this.mainIndicatorParams[id] = {};
212
- }
213
- this.mainIndicatorParams[id] = { ...this.mainIndicatorParams[id], ...params };
215
+ const map = this._mainIndicatorsSignal.peek();
216
+ const entry = map.get(id);
217
+ if (!entry)
218
+ return;
219
+ const merged = { ...entry.params, ...params };
220
+ const next = new Map(map);
221
+ next.set(id, { params: merged });
222
+ this._mainIndicatorsSignal.set(next);
214
223
  // 同步更新渲染器配置
215
224
  const rendererName = id.toLowerCase();
216
225
  const renderer = this.getRenderer(rendererName);
217
226
  if (renderer && renderer.setConfig) {
218
- renderer.setConfig(this.mainIndicatorParams[id]);
227
+ renderer.setConfig(merged);
219
228
  }
220
229
  // 更新调度器
221
230
  this.updateIndicatorSchedulerConfig(id);
222
231
  this.scheduleDraw();
223
- this.syncIndicatorsSignal();
224
232
  }
225
233
  /**
226
234
  * 获取主图指标参数
227
235
  * @param indicatorId 指标ID
228
236
  */
229
237
  getMainIndicatorParams(indicatorId) {
230
- return this.mainIndicatorParams[indicatorId.toUpperCase()] ?? null;
238
+ return this._mainIndicatorsSignal.peek().get(indicatorId.toUpperCase())?.params ?? null;
231
239
  }
232
240
  /**
233
241
  * 清除所有主图指标
234
242
  */
235
243
  clearMainIndicators() {
236
- for (const id of this.activeMainIndicators) {
244
+ const map = this._mainIndicatorsSignal.peek();
245
+ for (const id of map.keys()) {
237
246
  this.disableMainIndicatorRenderer(id);
238
247
  }
239
- this.activeMainIndicators.clear();
248
+ this._mainIndicatorsSignal.set(new Map());
240
249
  this.scheduleDraw();
241
- this.syncIndicatorsSignal();
242
250
  }
243
251
  /**
244
252
  * 启用主图指标渲染器(内部方法)
@@ -395,8 +403,9 @@ export class Chart {
395
403
  * 更新调度器配置(内部方法)
396
404
  */
397
405
  updateIndicatorSchedulerConfig(indicatorId) {
398
- const isActive = this.activeMainIndicators.has(indicatorId);
399
- const params = this.mainIndicatorParams[indicatorId] || {};
406
+ const entry = this._mainIndicatorsSignal.peek().get(indicatorId);
407
+ const isActive = entry !== undefined;
408
+ const params = entry?.params ?? {};
400
409
  switch (indicatorId) {
401
410
  case 'MA':
402
411
  this.indicatorScheduler.updateMAConfig({
@@ -475,7 +484,7 @@ export class Chart {
475
484
  setActiveMainIndicators(indicators) {
476
485
  // 计算需要启用和禁用的指标
477
486
  const newSet = new Set(indicators.map(i => i.toUpperCase()));
478
- const currentSet = new Set(this.activeMainIndicators);
487
+ const currentSet = new Set(this._mainIndicatorsSignal.peek().keys());
479
488
  // 禁用不再激活的
480
489
  for (const id of currentSet) {
481
490
  if (!newSet.has(id)) {
@@ -523,11 +532,20 @@ export class Chart {
523
532
  this.indicatorScheduler.registerIndicator(definition);
524
533
  }
525
534
  this.indicatorScheduler.setInvalidateCallback(() => this.scheduleDraw());
526
- // 初始化副图管理器
527
- this.subPaneManager = new SubPaneManager();
528
535
  // 注册副图活跃列表提供者,调度器据此只计算启用的副图
529
536
  this.indicatorScheduler.setActiveSubPaneProvider(() => this.subPaneManager.getPaneIds());
530
537
  this.initPanes();
538
+ // dev: 主副图状态变更日志
539
+ if (import.meta.env?.MODE !== 'production') {
540
+ this._indicatorsComputed.subscribe(() => {
541
+ const instances = this._indicatorsComputed.peek();
542
+ console.log('[Chart] indicators signal changed:', instances);
543
+ });
544
+ this._subPanesComputed.subscribe(() => {
545
+ const subPanes = this._subPanesComputed.peek();
546
+ console.log('[Chart] subPanes signal changed:', subPanes);
547
+ });
548
+ }
531
549
  // 注册绘图主插件(负责绘制 shape,layer: 'main')
532
550
  this.useRenderer(createDrawingRendererPlugin({ store: this.drawingStore }));
533
551
  // 注册绘图标签插件(负责推送选中绘图的轴标签,layer: 'overlay')
@@ -707,7 +725,7 @@ export class Chart {
707
725
  // 3. 更新交互控制器坐标映射
708
726
  this.interaction.setKLinePositions(kLinePositions, range, kWidthPx);
709
727
  // 4. 通知调度器当前活跃主图指标 + 获取价格范围
710
- this.indicatorScheduler.setActiveMainIndicators(Array.from(this.activeMainIndicators));
728
+ this.indicatorScheduler.setActiveMainIndicators([...this._mainIndicatorsSignal.peek().keys()]);
711
729
  const mainIndicatorRange = useCachedFrame ? null : this.indicatorScheduler.getMainIndicatorPriceRange();
712
730
  const hasCrosshair = this.interaction.getCrosshairIndex() !== null;
713
731
  // 5. 遍历所有 Pane 渲染主层 / overlay / Y 轴
@@ -1101,7 +1119,6 @@ export class Chart {
1101
1119
  ratios[id] = ratio;
1102
1120
  });
1103
1121
  this._paneRatiosSignal.set(ratios);
1104
- this.syncSubPanesSignal();
1105
1122
  this.onPaneLayoutChange?.(this.getPaneLayoutSpecs());
1106
1123
  }
1107
1124
  applyPaneLayoutSpecs(panes) {
@@ -1257,8 +1274,6 @@ export class Chart {
1257
1274
  }
1258
1275
  this.upsertPane({ id: paneId, ratio: this._internalPaneRatios.get(paneId) ?? 1, visible: true, role: 'indicator' });
1259
1276
  const success = this.subPaneManager.create(this, paneId, indicatorId, params ?? this.getDefaultSubPaneParams(indicatorId));
1260
- this.syncIndicatorsSignal();
1261
- this.syncSubPanesSignal();
1262
1277
  return success;
1263
1278
  }
1264
1279
  /**
@@ -1267,9 +1282,6 @@ export class Chart {
1267
1282
  */
1268
1283
  removeSubPane(paneId) {
1269
1284
  this.subPaneManager.remove(this, paneId);
1270
- this._internalPaneRatios.delete(paneId);
1271
- this.syncIndicatorsSignal();
1272
- this.syncSubPanesSignal();
1273
1285
  }
1274
1286
  /**
1275
1287
  * 替换副图的指标类型
@@ -1279,8 +1291,6 @@ export class Chart {
1279
1291
  */
1280
1292
  replaceSubPaneIndicator(paneId, newIndicatorId, params) {
1281
1293
  this.subPaneManager.replaceIndicator(this, paneId, newIndicatorId, params ?? this.getDefaultSubPaneParams(newIndicatorId));
1282
- this.syncIndicatorsSignal();
1283
- this.syncSubPanesSignal();
1284
1294
  }
1285
1295
  /**
1286
1296
  * 更新副图指标参数
@@ -1289,7 +1299,6 @@ export class Chart {
1289
1299
  */
1290
1300
  updateSubPaneParams(paneId, params) {
1291
1301
  this.subPaneManager.updateParams(this, paneId, params);
1292
- this.syncIndicatorsSignal();
1293
1302
  }
1294
1303
  /**
1295
1304
  * 清除所有副图面板
@@ -1307,8 +1316,6 @@ export class Chart {
1307
1316
  }
1308
1317
  // 更新布局,移除所有副图 pane
1309
1318
  this.applyPaneLayoutSpecs(this.opt.panes.filter((spec) => !subPaneIds.includes(spec.id)));
1310
- this.syncIndicatorsSignal();
1311
- this.syncSubPanesSignal();
1312
1319
  }
1313
1320
  /**
1314
1321
  * 获取当前所有副图指标类型
@@ -1848,8 +1855,6 @@ export class Chart {
1848
1855
  });
1849
1856
  _dataSignal = createSignal([]);
1850
1857
  _themeSignal = createSignal('light');
1851
- _indicatorsSignal = createSignal([]);
1852
- _subPanesSignal = createSignal([]);
1853
1858
  _drawingToolSignal = createSignal(null);
1854
1859
  _drawingsSignal = createSignal([]);
1855
1860
  _paneRatiosSignal = createSignal({});
@@ -1869,6 +1874,35 @@ export class Chart {
1869
1874
  hoveredPaneBoundaryId: null,
1870
1875
  isHoveringRightAxis: false,
1871
1876
  });
1877
+ _indicatorsComputed = computed(() => {
1878
+ const mainIndicators = [...this._mainIndicatorsSignal().entries()].map(([id, entry]) => ({
1879
+ id,
1880
+ definitionId: id,
1881
+ label: id,
1882
+ name: id,
1883
+ role: 'main',
1884
+ params: { ...entry.params },
1885
+ }));
1886
+ const subIndicators = this.subPaneManager.entriesSignal().map(entry => ({
1887
+ id: entry.paneId,
1888
+ definitionId: entry.indicatorId,
1889
+ label: entry.indicatorId,
1890
+ name: entry.indicatorId,
1891
+ role: 'sub',
1892
+ paneId: entry.paneId,
1893
+ params: { ...entry.params },
1894
+ }));
1895
+ return [...mainIndicators, ...subIndicators];
1896
+ });
1897
+ _subPanesComputed = computed(() => {
1898
+ const ratios = this._paneRatiosSignal();
1899
+ return this.subPaneManager.entriesSignal().map(entry => ({
1900
+ paneId: entry.paneId,
1901
+ indicatorId: entry.indicatorId,
1902
+ params: { ...entry.params },
1903
+ ratio: ratios[entry.paneId] ?? 1,
1904
+ }));
1905
+ });
1872
1906
  /** 视口状态信号 */
1873
1907
  get viewport() {
1874
1908
  return this._viewportSignal;
@@ -1881,13 +1915,13 @@ export class Chart {
1881
1915
  get theme() {
1882
1916
  return this._themeSignal;
1883
1917
  }
1884
- /** 指标实例列表信号 */
1918
+ /** 指标实例列表信号(派生信号,自动随主/副图状态更新) */
1885
1919
  get indicators() {
1886
- return this._indicatorsSignal;
1920
+ return this._indicatorsComputed;
1887
1921
  }
1888
- /** 子图信息信号 */
1922
+ /** 子图信息信号(派生信号,自动随副图条目/比例更新) */
1889
1923
  get subPanes() {
1890
- return this._subPanesSignal;
1924
+ return this._subPanesComputed;
1891
1925
  }
1892
1926
  /** 当前绘图工具信号 */
1893
1927
  get drawingTool() {
@@ -2120,8 +2154,6 @@ export class Chart {
2120
2154
  const success = this.enableMainIndicator(definitionId, params);
2121
2155
  if (!success)
2122
2156
  return null;
2123
- // 更新 indicators signal
2124
- this.syncIndicatorsSignal();
2125
2157
  return definitionId.toUpperCase();
2126
2158
  }
2127
2159
  else {
@@ -2130,9 +2162,6 @@ export class Chart {
2130
2162
  const success = this.createSubPane(paneId, definitionId, params);
2131
2163
  if (!success)
2132
2164
  return null;
2133
- // 更新 signals
2134
- this.syncIndicatorsSignal();
2135
- this.syncSubPanesSignal();
2136
2165
  return paneId;
2137
2166
  }
2138
2167
  }
@@ -2143,23 +2172,16 @@ export class Chart {
2143
2172
  */
2144
2173
  removeIndicator(instanceId) {
2145
2174
  const id = instanceId.toUpperCase();
2146
- // 先尝试作为主图指标移除(直接检查内部状态,不依赖 signal)
2147
- if (this.activeMainIndicators.has(id)) {
2148
- const success = this.disableMainIndicator(instanceId);
2149
- if (success) {
2150
- this.syncIndicatorsSignal();
2151
- }
2152
- return success;
2175
+ // 先尝试作为主图指标移除
2176
+ if (this._mainIndicatorsSignal.peek().has(id)) {
2177
+ return this.disableMainIndicator(instanceId);
2153
2178
  }
2154
- // 再尝试作为副图指标移除(检查 sub pane 是否存在)
2179
+ // 再尝试作为副图指标移除
2155
2180
  const subPaneEntry = this.getSubPaneEntry(instanceId);
2156
2181
  if (subPaneEntry) {
2157
2182
  this.removeSubPane(instanceId);
2158
- this.syncIndicatorsSignal();
2159
- this.syncSubPanesSignal();
2160
2183
  return true;
2161
2184
  }
2162
- // 都没找到,返回 false
2163
2185
  return false;
2164
2186
  }
2165
2187
  /**
@@ -2170,20 +2192,17 @@ export class Chart {
2170
2192
  */
2171
2193
  updateIndicatorParams(instanceId, params) {
2172
2194
  const id = instanceId.toUpperCase();
2173
- // 先尝试作为主图指标更新(直接检查内部状态)
2174
- if (this.activeMainIndicators.has(id)) {
2195
+ // 先尝试作为主图指标更新
2196
+ if (this._mainIndicatorsSignal.peek().has(id)) {
2175
2197
  this.updateMainIndicatorParams(instanceId, params);
2176
- this.syncIndicatorsSignal();
2177
2198
  return true;
2178
2199
  }
2179
2200
  // 再尝试作为副图指标更新
2180
2201
  const subPaneEntry = this.getSubPaneEntry(instanceId);
2181
2202
  if (subPaneEntry) {
2182
2203
  this.updateSubPaneParams(instanceId, params);
2183
- this.syncIndicatorsSignal();
2184
2204
  return true;
2185
2205
  }
2186
- // 都没找到
2187
2206
  return false;
2188
2207
  }
2189
2208
  /**
@@ -2197,42 +2216,6 @@ export class Chart {
2197
2216
  console.warn('[Chart] reorderIndicators not fully implemented yet');
2198
2217
  return false;
2199
2218
  }
2200
- /**
2201
- * 同步 indicators signal
2202
- */
2203
- syncIndicatorsSignal() {
2204
- const mainIndicators = this.getActiveMainIndicators().map(id => ({
2205
- id,
2206
- definitionId: id,
2207
- label: id,
2208
- name: id,
2209
- role: 'main',
2210
- params: this.getMainIndicatorParams(id) ?? {},
2211
- }));
2212
- const subIndicators = this.getSubPaneEntries().map(entry => ({
2213
- id: entry.paneId,
2214
- definitionId: entry.indicatorId,
2215
- label: entry.indicatorId,
2216
- name: entry.indicatorId,
2217
- role: 'sub',
2218
- paneId: entry.paneId,
2219
- params: entry.params,
2220
- }));
2221
- this._indicatorsSignal.set([...mainIndicators, ...subIndicators]);
2222
- }
2223
- /**
2224
- * 同步 sub panes signal
2225
- */
2226
- syncSubPanesSignal() {
2227
- const entries = this.getSubPaneEntries();
2228
- const subPanes = entries.map(entry => ({
2229
- paneId: entry.paneId,
2230
- indicatorId: entry.indicatorId,
2231
- params: entry.params,
2232
- ratio: this._internalPaneRatios.get(entry.paneId) ?? 1,
2233
- }));
2234
- this._subPanesSignal.set(subPanes);
2235
- }
2236
2219
  // ---------- Sub Panes ----------
2237
2220
  /**
2238
2221
  * 调整子图大小(高层 API)