@363045841yyt/klinechart 0.6.10 → 0.7.1

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 (77) hide show
  1. package/dist/favicon.ico +0 -0
  2. package/dist/index.cjs +5 -5
  3. package/dist/index.js +20330 -8582
  4. package/dist/klinechart.css +1 -1
  5. package/dist/mock-stock-data.json +1 -0
  6. package/dist/src/components/IndicatorSelector.vue.d.ts +0 -1
  7. package/dist/src/components/KLineChart.vue.d.ts +1 -1
  8. package/dist/src/config/chartSettings.d.ts +6 -0
  9. package/dist/src/core/chart.d.ts +208 -11
  10. package/dist/src/core/draw/pixelAlign.d.ts +7 -7
  11. package/dist/src/core/drawing/plugin.d.ts +19 -0
  12. package/dist/src/core/indicators/calculators.d.ts +129 -0
  13. package/dist/src/core/indicators/chaikinVolState.d.ts +18 -0
  14. package/dist/src/core/indicators/cmfState.d.ts +16 -0
  15. package/dist/src/core/indicators/fibState.d.ts +26 -0
  16. package/dist/src/core/indicators/hvState.d.ts +18 -0
  17. package/dist/src/core/indicators/ichimokuState.d.ts +44 -0
  18. package/dist/src/core/indicators/indicatorDefinitionRegistry.d.ts +30 -0
  19. package/dist/src/core/indicators/indicatorMetadata.d.ts +81 -0
  20. package/dist/src/core/indicators/indicatorRegistry.d.ts +57 -0
  21. package/dist/src/core/indicators/indicatorRuntime.d.ts +35 -0
  22. package/dist/src/core/indicators/mfiState.d.ts +16 -0
  23. package/dist/src/core/indicators/obvState.d.ts +14 -0
  24. package/dist/src/core/indicators/parkinsonState.d.ts +18 -0
  25. package/dist/src/core/indicators/pivotState.d.ts +29 -0
  26. package/dist/src/core/indicators/pvtState.d.ts +14 -0
  27. package/dist/src/core/indicators/rocState.d.ts +16 -0
  28. package/dist/src/core/indicators/rsiState.d.ts +4 -0
  29. package/dist/src/core/indicators/scheduler.d.ts +82 -3
  30. package/dist/src/core/indicators/stateComposer.d.ts +51 -0
  31. package/dist/src/core/indicators/structureState.d.ts +43 -0
  32. package/dist/src/core/indicators/trixState.d.ts +20 -0
  33. package/dist/src/core/indicators/vmaState.d.ts +16 -0
  34. package/dist/src/core/indicators/volumeProfileState.d.ts +34 -0
  35. package/dist/src/core/indicators/vwapState.d.ts +16 -0
  36. package/dist/src/core/indicators/workerProtocol.d.ts +198 -1
  37. package/dist/src/core/indicators/zonesState.d.ts +26 -0
  38. package/dist/src/core/renderers/Indicator/cci.d.ts +2 -1
  39. package/dist/src/core/renderers/Indicator/chaikinVol.d.ts +4 -0
  40. package/dist/src/core/renderers/Indicator/cmf.d.ts +4 -0
  41. package/dist/src/core/renderers/Indicator/ene.d.ts +0 -8
  42. package/dist/src/core/renderers/Indicator/fastk.d.ts +2 -1
  43. package/dist/src/core/renderers/Indicator/fib.d.ts +4 -0
  44. package/dist/src/core/renderers/Indicator/hv.d.ts +4 -0
  45. package/dist/src/core/renderers/Indicator/ichimoku.d.ts +5 -0
  46. package/dist/src/core/renderers/Indicator/index.d.ts +27 -1
  47. package/dist/src/core/renderers/Indicator/kst.d.ts +2 -1
  48. package/dist/src/core/renderers/Indicator/macd.d.ts +2 -1
  49. package/dist/src/core/renderers/Indicator/mfi.d.ts +4 -0
  50. package/dist/src/core/renderers/Indicator/mom.d.ts +2 -1
  51. package/dist/src/core/renderers/Indicator/obv.d.ts +4 -0
  52. package/dist/src/core/renderers/Indicator/parkinson.d.ts +4 -0
  53. package/dist/src/core/renderers/Indicator/pivot.d.ts +4 -0
  54. package/dist/src/core/renderers/Indicator/pvt.d.ts +4 -0
  55. package/dist/src/core/renderers/Indicator/roc.d.ts +5 -0
  56. package/dist/src/core/renderers/Indicator/rsi.d.ts +3 -2
  57. package/dist/src/core/renderers/Indicator/scale/indicator_scale.d.ts +4 -1
  58. package/dist/src/core/renderers/Indicator/stoch.d.ts +2 -1
  59. package/dist/src/core/renderers/Indicator/structure.d.ts +4 -0
  60. package/dist/src/core/renderers/Indicator/subPaneConfig.d.ts +2 -2
  61. package/dist/src/core/renderers/Indicator/trix.d.ts +5 -0
  62. package/dist/src/core/renderers/Indicator/vma.d.ts +4 -0
  63. package/dist/src/core/renderers/Indicator/volumeProfile.d.ts +4 -0
  64. package/dist/src/core/renderers/Indicator/vwap.d.ts +4 -0
  65. package/dist/src/core/renderers/Indicator/wmsr.d.ts +2 -1
  66. package/dist/src/core/renderers/Indicator/zones.d.ts +4 -0
  67. package/dist/src/core/renderers/candle.d.ts +2 -1
  68. package/dist/src/core/theme/colors.d.ts +207 -228
  69. package/dist/src/plugin/PluginHost.d.ts +3 -0
  70. package/dist/src/plugin/types.d.ts +6 -0
  71. package/dist/src/semantic/types.d.ts +59 -0
  72. package/dist/src/utils/kLineDraw/MA.d.ts +5 -10
  73. package/dist/src/utils/kLineDraw/axis.d.ts +7 -7
  74. package/dist/src/utils/kLineDraw/grid.d.ts +2 -2
  75. package/dist/src/utils/kLineDraw/kLine.d.ts +1 -1
  76. package/dist/src/utils/kline/format.d.ts +4 -7
  77. package/package.json +111 -103
@@ -1,230 +1,203 @@
1
1
  /**
2
- * 统一颜色配置
3
- * 所有文本颜色集中管理,确保视觉一致性
4
- */
5
- /**
6
- * 文本颜色标准
7
- */
8
- export declare const TEXT_COLORS: {
9
- /**
10
- * 主要文本:深石墨色
11
- * 对应你原来的 hsl(210, 9%, 31%),作为视觉重心
12
- */
13
- readonly PRIMARY: "hsl(210, 9%, 31%)";
14
- /**
15
- * 次要文本:灰蓝色调
16
- * 用于副标题、正文
17
- */
18
- readonly SECONDARY: "hsl(210, 9%, 35%)";
19
- /**
20
- * 辅助文本:用于标签、占位符
21
- */
22
- readonly TERTIARY: "hsl(210, 8%, 50%)";
23
- /**
24
- * 弱文本/禁用状态:用于页脚、失效信息
25
- */
26
- readonly WEAK: "hsl(210, 7%, 65%)";
27
- /**
28
- * 反白文字:92% 不透明度的纯白
29
- * 这种做法很好,避免了纯白刺眼
30
- */
31
- readonly WHITE: "rgba(255, 255, 255, 0.92)";
32
- };
33
- /**
34
- * 涨跌颜色(股票配色)
35
- */
36
- export declare const PRICE_COLORS: {
37
- /** 上涨颜色(红) */
38
- readonly UP: "rgba(214, 10, 34, 1)";
39
- readonly UP_LIGHT: "rgba(214, 10, 34, 0.92)";
40
- readonly UP_TICK: "hsl(0, 60%, 50%)";
41
- /** 下跌颜色(绿) */
42
- readonly DOWN: "rgba(3, 123, 102, 1)";
43
- readonly DOWN_LIGHT: "rgba(3, 123, 102, 0.92)";
44
- readonly DOWN_TICK: "hsl(150, 30%, 60%)";
45
- /** 中性颜色 */
46
- readonly NEUTRAL: "rgba(0, 0, 0, 0.78)";
47
- /** 最新价颜色 */
48
- readonly LAST_PRICE: "rgba(196, 74, 86, 0.95)";
49
- };
50
- /**
51
- * 十字线标签背景颜色
52
- */
53
- export declare const TAG_BG_COLORS: {
54
- /** 白色背景 */
55
- readonly WHITE: "rgb(255, 255, 255)";
56
- /** 浅灰背景 */
57
- readonly LIGHT_GRAY: "rgba(255, 255, 255, 0.92)";
58
- /** 纯白背景 */
59
- readonly PURE_WHITE: "#ffffff";
60
- /** 透明背景 */
61
- readonly TRANSPARENT: "transparent";
62
- /** 激活状态背景 */
63
- readonly ACTIVE: "#1890ff";
64
- readonly ACTIVE_HOVER: "#40a9ff";
65
- /** 悬停背景 */
66
- readonly HOVER: "#f0f0f0";
67
- };
68
- /**
69
- * 边框颜色
70
- */
71
- export declare const BORDER_COLORS: {
72
- /** 深色边框 */
73
- readonly DARK: "rgba(0, 0, 0, 0.12)";
74
- /** 中色边框 */
75
- readonly MEDIUM: "rgba(0, 0, 0, 0.10)";
76
- /** 浅色边框 */
77
- readonly LIGHT: "rgba(0, 0, 0, 0.08)";
78
- /** 分隔线 */
79
- readonly SEPARATOR: "rgba(0, 0, 0, 0.10)";
80
- /** 按钮边框 */
81
- readonly BUTTON: "#d0d0d0";
82
- };
83
- /**
84
- * 网格线颜色
85
- */
86
- export declare const GRID_COLORS: {
87
- /** 水平网格线 */
88
- readonly HORIZONTAL: "rgba(0, 0, 0, 0.06)";
89
- /** 垂直网格线 */
90
- readonly VERTICAL: "rgba(0, 0, 0, 0.12)";
91
- };
92
- /**
93
- * 均线颜色
94
- */
95
- export declare const MA_COLORS: {
96
- readonly MA5: "rgba(255, 193, 37, 1)";
97
- readonly MA10: "rgba(190, 131, 12, 1)";
98
- readonly MA20: "rgba(69, 112, 249, 1)";
99
- readonly MA30: "rgba(76, 175, 80, 1)";
100
- readonly MA60: "rgba(156, 39, 176, 1)";
101
- };
102
- /**
103
- * 布林带颜色
104
- */
105
- export declare const BOLL_COLORS: {
106
- /** 上轨颜色 */
107
- readonly UPPER: "rgba(178, 34, 34, 1)";
108
- /** 中轨颜色(与 MA20 相同) */
109
- readonly MIDDLE: "rgba(69, 112, 249, 1)";
110
- /** 下轨颜色 */
111
- readonly LOWER: "rgba(34, 139, 34, 1)";
112
- /** 带状区域填充 */
113
- readonly BAND_FILL: "rgba(100, 149, 237, 0.1)";
114
- };
115
- /**
116
- * MACD 颜色
117
- */
118
- export declare const MACD_COLORS: {
119
- /** DIF 线颜色(快线)- 与 MA20 相同 */
120
- readonly DIF: "rgba(69, 112, 249, 1)";
121
- /** DEA 线颜色(慢线)- 橙色 */
122
- readonly DEA: "rgba(255, 152, 0, 1)";
123
- /** MACD 柱红色(正值上升) */
124
- readonly BAR_UP: "#ff5252";
125
- /** MACD 柱淡红色(正值下降) */
126
- readonly BAR_UP_LIGHT: "#fccbcd";
127
- /** MACD 柱绿色(负值下降) */
128
- readonly BAR_DOWN: "#22ab94";
129
- /** MACD 柱淡绿色(负值上升) */
130
- readonly BAR_DOWN_LIGHT: "#ace5dc";
131
- };
132
- /**
133
- * 成交量颜色(与 MACD 柱子配色一致)
134
- */
135
- export declare const VOLUME_COLORS: {
136
- /** 上涨柱子(与 MACD BAR_UP 一致) */
137
- readonly UP: "#ff5252";
138
- /** 下跌柱子(与 MACD BAR_DOWN 一致) */
139
- readonly DOWN: "#22ab94";
140
- /** 中性/平盘柱子 */
141
- readonly NEUTRAL: "rgba(0, 0, 0, 0.78)";
142
- };
143
- /**
144
- * RSI 颜色
145
- */
146
- export declare const RSI_COLORS: {
147
- readonly RSI1: "rgba(69, 112, 249, 1)";
148
- readonly RSI2: "rgba(255, 152, 0, 1)";
149
- readonly RSI3: "rgba(156, 39, 176, 1)";
150
- };
151
- /**
152
- * CCI 颜色
153
- */
154
- export declare const CCI_COLORS: {
155
- readonly CCI: "rgba(69, 112, 249, 1)";
156
- /** 超买线 +100 */
157
- readonly OVERBOUGHT: "rgba(214, 10, 34, 0.5)";
158
- /** 超卖线 -100 */
159
- readonly OVERSOLD: "rgba(3, 123, 102, 0.5)";
160
- };
161
- /**
162
- * KDJ/STOCH 颜色
163
- */
164
- export declare const KDJ_COLORS: {
165
- readonly K: "rgba(69, 112, 249, 1)";
166
- readonly D: "rgba(255, 152, 0, 1)";
167
- readonly J: "rgba(156, 39, 176, 1)";
168
- };
169
- /**
170
- * MOM 颜色
171
- */
172
- export declare const MOM_COLORS: {
173
- readonly MOM: "rgba(69, 112, 249, 1)";
174
- readonly ZERO: "rgba(0, 0, 0, 0.2)";
175
- };
176
- /**
177
- * WMSR 颜色
178
- */
179
- export declare const WMSR_COLORS: {
180
- readonly WMSR: "rgba(69, 112, 249, 1)";
181
- /** 超买线 -20 */
182
- readonly OVERBOUGHT: "rgba(214, 10, 34, 0.5)";
183
- /** 超卖线 -80 */
184
- readonly OVERSOLD: "rgba(3, 123, 102, 0.5)";
185
- };
186
- /**
187
- * KST 颜色
188
- */
189
- export declare const KST_COLORS: {
190
- readonly KST: "rgba(69, 112, 249, 1)";
191
- readonly SIGNAL: "rgba(255, 152, 0, 1)";
192
- };
193
- /**
194
- * EXPMA 颜色
195
- */
196
- export declare const EXPMA_COLORS: {
197
- /** 快线颜色(橙色,参考 RSI2) */
198
- readonly FAST: "rgba(255, 152, 0, 1)";
199
- /** 慢线颜色(蓝色) */
200
- readonly SLOW: "rgba(69, 112, 249, 1)";
201
- };
202
- /**
203
- * ENE 轨道线颜色
204
- */
205
- export declare const ENE_COLORS: {
206
- /** 上轨颜色(红色) */
207
- readonly UPPER: "rgba(214, 10, 34, 1)";
208
- /** 中轨颜色(蓝色) */
209
- readonly MIDDLE: "rgba(69, 112, 249, 1)";
210
- /** 下轨颜色(绿色) */
211
- readonly LOWER: "rgba(3, 123, 102, 1)";
212
- /** 带状区域填充 */
213
- readonly BAND_FILL: "rgba(69, 112, 249, 0.08)";
214
- };
215
- /**
216
- * 十字线颜色
217
- */
218
- export declare const CROSSHAIR_COLORS: {
219
- /** 十字线颜色 */
220
- readonly LINE: "rgba(0, 0, 0, 0.28)";
221
- /** 十字线标签背景 */
222
- readonly LABEL_BG: "rgb(0, 0, 0)";
223
- /** 十字线标签文本 */
224
- readonly LABEL_TEXT: "rgba(255, 255, 255, 0.92)";
225
- };
226
- /**
227
- * 日志颜色
2
+ * 主题感知颜色配置
3
+ * 所有颜色通过 getColors(theme) 获取,支持 light/dark 双主题
4
+ */
5
+ /** 主题类型 */
6
+ export type ChartTheme = 'light' | 'dark';
7
+ /** 文本颜色 */
8
+ export interface TextColors {
9
+ PRIMARY: string;
10
+ SECONDARY: string;
11
+ TERTIARY: string;
12
+ WEAK: string;
13
+ WHITE: string;
14
+ }
15
+ /** 涨跌价格颜色 */
16
+ export interface PriceColors {
17
+ UP: string;
18
+ UP_LIGHT: string;
19
+ UP_TICK: string;
20
+ DOWN: string;
21
+ DOWN_LIGHT: string;
22
+ DOWN_TICK: string;
23
+ NEUTRAL: string;
24
+ LAST_PRICE: string;
25
+ }
26
+ /** 标签背景颜色 */
27
+ export interface TagBgColors {
28
+ WHITE: string;
29
+ LIGHT_GRAY: string;
30
+ PURE_WHITE: string;
31
+ TRANSPARENT: string;
32
+ ACTIVE: string;
33
+ ACTIVE_HOVER: string;
34
+ HOVER: string;
35
+ }
36
+ /** 边框颜色 */
37
+ export interface BorderColors {
38
+ DARK: string;
39
+ MEDIUM: string;
40
+ LIGHT: string;
41
+ SEPARATOR: string;
42
+ BUTTON: string;
43
+ }
44
+ /** 网格线颜色 */
45
+ export interface GridColors {
46
+ HORIZONTAL: string;
47
+ VERTICAL: string;
48
+ }
49
+ /** 十字线颜色 */
50
+ export interface CrosshairColors {
51
+ LINE: string;
52
+ LABEL_BG: string;
53
+ LABEL_TEXT: string;
54
+ }
55
+ /** 均线颜色 */
56
+ export interface MAColors {
57
+ MA5: string;
58
+ MA10: string;
59
+ MA20: string;
60
+ MA30: string;
61
+ MA60: string;
62
+ }
63
+ /** 布林带颜色 */
64
+ export interface BOLLColors {
65
+ UPPER: string;
66
+ MIDDLE: string;
67
+ LOWER: string;
68
+ BAND_FILL: string;
69
+ }
70
+ /** MACD 颜色 */
71
+ export interface MACDColors {
72
+ DIF: string;
73
+ DEA: string;
74
+ BAR_UP: string;
75
+ BAR_UP_LIGHT: string;
76
+ BAR_DOWN: string;
77
+ BAR_DOWN_LIGHT: string;
78
+ }
79
+ /** 成交量颜色 */
80
+ export interface VolumeColors {
81
+ UP: string;
82
+ DOWN: string;
83
+ NEUTRAL: string;
84
+ }
85
+ /** RSI 颜色 */
86
+ export interface RSIColors {
87
+ RSI1: string;
88
+ RSI2: string;
89
+ RSI3: string;
90
+ }
91
+ /** CCI 颜色 */
92
+ export interface CCIColors {
93
+ CCI: string;
94
+ OVERBOUGHT: string;
95
+ OVERSOLD: string;
96
+ }
97
+ /** KDJ/STOCH 颜色 */
98
+ export interface KDJColors {
99
+ K: string;
100
+ D: string;
101
+ J: string;
102
+ }
103
+ /** MOM 颜色 */
104
+ export interface MOMColors {
105
+ MOM: string;
106
+ ZERO: string;
107
+ }
108
+ /** WMSR 颜色 */
109
+ export interface WMSRColors {
110
+ WMSR: string;
111
+ OVERBOUGHT: string;
112
+ OVERSOLD: string;
113
+ }
114
+ /** KST 颜色 */
115
+ export interface KSTColors {
116
+ KST: string;
117
+ SIGNAL: string;
118
+ }
119
+ /** EXPMA 颜色 */
120
+ export interface EXPMAColors {
121
+ FAST: string;
122
+ SLOW: string;
123
+ }
124
+ /** ENE 颜色 */
125
+ export interface ENEColors {
126
+ UPPER: string;
127
+ MIDDLE: string;
128
+ LOWER: string;
129
+ BAND_FILL: string;
130
+ }
131
+ /** 标签专用颜色(收敛硬编码) */
132
+ export interface LabelColors {
133
+ BG: string;
134
+ TEXT: string;
135
+ }
136
+ /** 最新价标签颜色 */
137
+ export interface LastPriceLabelColors {
138
+ BG: string;
139
+ }
140
+ /** 成交量价格标记颜色 */
141
+ export interface VolumePriceColors {
142
+ RISE_WITH: string;
143
+ RISE_WITHOUT: string;
144
+ FALL_WITH: string;
145
+ FALL_WITHOUT: string;
146
+ }
147
+ /** Structure 指标颜色 */
148
+ export interface StructureColors {
149
+ HH: string;
150
+ HL: string;
151
+ LH: string;
152
+ LL: string;
153
+ CHOCH: string;
154
+ BOS: string;
155
+ }
156
+ /** Zones 指标颜色 */
157
+ export interface ZonesColors {
158
+ FVG_BULL_FILL: string;
159
+ FVG_BEAR_FILL: string;
160
+ FVG_BULL_BORDER: string;
161
+ FVG_BEAR_BORDER: string;
162
+ OB_BULL_FILL: string;
163
+ OB_BEAR_FILL: string;
164
+ }
165
+ /** 主题色值集合 */
166
+ export interface ThemeColors {
167
+ TEXT: TextColors;
168
+ PRICE: PriceColors;
169
+ TAG_BG: TagBgColors;
170
+ BORDER: BorderColors;
171
+ GRID: GridColors;
172
+ CROSSHAIR: CrosshairColors;
173
+ MA: MAColors;
174
+ BOLL: BOLLColors;
175
+ MACD: MACDColors;
176
+ VOLUME: VolumeColors;
177
+ RSI: RSIColors;
178
+ CCI: CCIColors;
179
+ KDJ: KDJColors;
180
+ MOM: MOMColors;
181
+ WMSR: WMSRColors;
182
+ KST: KSTColors;
183
+ EXPMA: EXPMAColors;
184
+ ENE: ENEColors;
185
+ /** 收敛的硬编码色值 */
186
+ LABEL: LabelColors;
187
+ LAST_PRICE_LABEL: LastPriceLabelColors;
188
+ VOLUME_PRICE: VolumePriceColors;
189
+ STRUCTURE: StructureColors;
190
+ ZONES: ZonesColors;
191
+ WMSR_GRID: string;
192
+ }
193
+ /**
194
+ * 根据主题获取颜色配置
195
+ * @param theme - 主题类型 'light' | 'dark'
196
+ * @returns 主题色值集合
197
+ */
198
+ export declare function getColors(theme: ChartTheme): ThemeColors;
199
+ /**
200
+ * 日志颜色(与主题无关,保留常量导出)
228
201
  */
229
202
  export declare const LOG_COLORS: {
230
203
  readonly INFO: "background:#164586;color:#fff;";
@@ -235,9 +208,15 @@ export declare const LOG_COLORS: {
235
208
  };
236
209
  /**
237
210
  * 工具函数:根据涨跌返回颜色
211
+ * @param type - 涨跌类型
212
+ * @param theme - 主题类型
213
+ * @returns 对应颜色
238
214
  */
239
- export declare function getPriceColor(type: 'up' | 'down' | 'neutral'): "rgba(214, 10, 34, 1)" | "rgba(3, 123, 102, 1)" | "rgba(0, 0, 0, 0.78)";
215
+ export declare function getPriceColor(type: 'up' | 'down' | 'neutral', theme?: ChartTheme): string;
240
216
  /**
241
217
  * 工具函数:根据涨跌百分比返回颜色
218
+ * @param changePercent - 涨跌百分比
219
+ * @param theme - 主题类型
220
+ * @returns 对应颜色
242
221
  */
243
- export declare function getTickColor(changePercent: number): "hsl(0, 60%, 50%)" | "hsl(150, 30%, 60%)";
222
+ export declare function getTickColor(changePercent: number, theme?: ChartTheme): string;
@@ -5,6 +5,7 @@ export declare class PluginHostImpl implements PluginHost {
5
5
  private hookSystem;
6
6
  private configManager;
7
7
  private stateStore;
8
+ private services;
8
9
  private isDestroyed;
9
10
  private logger;
10
11
  constructor(logger?: PluginLogger);
@@ -29,6 +30,8 @@ export declare class PluginHostImpl implements PluginHost {
29
30
  clearSharedState(namespace: string): void;
30
31
  registerStateOwner(ownerId: string, namespaces: string[]): void;
31
32
  clearByOwner(ownerId: string): void;
33
+ registerService(name: string, service: unknown): void;
34
+ getService<T = unknown>(name: string): T | undefined;
32
35
  /**
33
36
  * 安装插件
34
37
  */
@@ -87,6 +87,10 @@ export interface PluginHost {
87
87
  registerStateOwner(ownerId: string, namespaces: string[]): void;
88
88
  /** 按拥有者清除状态 */
89
89
  clearByOwner(ownerId: string): void;
90
+ /** 注册服务 */
91
+ registerService(name: string, service: unknown): void;
92
+ /** 获取已注册的服务 */
93
+ getService<T = unknown>(name: string): T | undefined;
90
94
  }
91
95
  /** Pane 角色 */
92
96
  export type PaneRole = 'price' | 'indicator' | 'auxiliary';
@@ -252,6 +256,8 @@ export interface RenderContext {
252
256
  yAxisRanges?: YAxisRange[];
253
257
  /** 需要在X轴上绘制的范围带列表(由绘图渲染器填充,先于标签绘制) */
254
258
  xAxisRanges?: XAxisRange[];
259
+ /** 当前主题 */
260
+ theme: import('../core/theme/colors').ChartTheme;
255
261
  }
256
262
  export type DrawingAnchor = {
257
263
  id: string;
@@ -140,6 +140,65 @@ export interface SubIndicatorParams {
140
140
  DONCHIAN?: {
141
141
  period?: number;
142
142
  };
143
+ ICHIMOKU?: {
144
+ tenkanPeriod?: number;
145
+ kijunPeriod?: number;
146
+ spanBPeriod?: number;
147
+ displacement?: number;
148
+ };
149
+ ROC?: {
150
+ period?: number;
151
+ };
152
+ TRIX?: {
153
+ period?: number;
154
+ signalPeriod?: number;
155
+ };
156
+ HV?: {
157
+ period?: number;
158
+ annualizationFactor?: number;
159
+ };
160
+ PARKINSON?: {
161
+ period?: number;
162
+ annualizationFactor?: number;
163
+ };
164
+ CHAIKIN_VOL?: {
165
+ emaPeriod?: number;
166
+ rocPeriod?: number;
167
+ };
168
+ VMA?: {
169
+ period?: number;
170
+ };
171
+ OBV?: Record<string, never>;
172
+ PVT?: Record<string, never>;
173
+ VWAP?: {
174
+ sessionResetGapMs?: number;
175
+ };
176
+ CMF?: {
177
+ period?: number;
178
+ };
179
+ MFI?: {
180
+ period?: number;
181
+ };
182
+ PIVOT?: Record<string, never>;
183
+ FIB?: {
184
+ period?: number;
185
+ };
186
+ STRUCTURE?: {
187
+ leftWindow?: number;
188
+ rightWindow?: number;
189
+ breakoutSource?: 'close' | 'wick';
190
+ };
191
+ ZONES?: {
192
+ showFVG?: boolean;
193
+ showOB?: boolean;
194
+ showFilledZones?: boolean;
195
+ obLookback?: number;
196
+ };
197
+ VOLUME_PROFILE?: {
198
+ bins?: number;
199
+ lookback?: number;
200
+ valueAreaPercent?: number;
201
+ };
143
202
  }
144
203
  /** 副图指标类型 */
145
204
  export type SubIndicatorType = keyof SubIndicatorParams;
@@ -1,12 +1,7 @@
1
1
  import { KLineData } from '../../types/price';
2
2
  import { drawOption, PriceRange } from './kLine';
3
- export declare const MA5_COLOR: "rgba(255, 193, 37, 1)";
4
- export declare const MA10_COLOR: "rgba(190, 131, 12, 1)";
5
- export declare const MA20_COLOR: "rgba(69, 112, 249, 1)";
6
- export declare const MA30_COLOR: "rgba(76, 175, 80, 1)";
7
- export declare const MA60_COLOR: "rgba(156, 39, 176, 1)";
8
- export declare function drawMA5Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[]): void;
9
- export declare function drawMA10Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[]): void;
10
- export declare function drawMA20Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[]): void;
11
- export declare function drawMA30Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[]): void;
12
- export declare function drawMA60Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[]): void;
3
+ export declare function drawMA5Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[], theme?: 'light' | 'dark'): void;
4
+ export declare function drawMA10Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[], theme?: 'light' | 'dark'): void;
5
+ export declare function drawMA20Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[], theme?: 'light' | 'dark'): void;
6
+ export declare function drawMA30Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[], theme?: 'light' | 'dark'): void;
7
+ export declare function drawMA60Line(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, kLinePositions?: number[], theme?: 'light' | 'dark'): void;
@@ -24,7 +24,7 @@ export interface PriceAxisOptions {
24
24
  priceOffset?: number;
25
25
  }
26
26
  /** 右侧价格轴(固定,不随 translate/scroll 变化) */
27
- export declare function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOptions): void;
27
+ export declare function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOptions, theme?: 'light' | 'dark'): void;
28
28
  export interface TimeAxisOptions {
29
29
  x: number;
30
30
  y: number;
@@ -113,12 +113,12 @@ export interface CrosshairTimeLabelOptions {
113
113
  paddingX?: number;
114
114
  paddingY?: number;
115
115
  }
116
- export declare function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: CrosshairTimeLabelOptions): void;
117
- export declare function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: CrosshairPriceLabelOptions): void;
116
+ export declare function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: CrosshairTimeLabelOptions, theme?: 'light' | 'dark'): void;
117
+ export declare function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: CrosshairPriceLabelOptions, theme?: 'light' | 'dark'): void;
118
118
  /** 绘制"最新价水平虚线"(画在 plotCanvas 的 world 坐标系:需在 translate(-scrollLeft,0) 之后调用) */
119
- export declare function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: LastPriceLineOptions): void;
119
+ export declare function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: LastPriceLineOptions, theme?: 'light' | 'dark'): void;
120
120
  /** 底部时间轴(X方向随 scrollLeft 变化) */
121
- export declare function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOptions): void;
121
+ export declare function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOptions, theme?: 'light' | 'dark'): void;
122
122
  /** ============ 轴标签绘制函数 ============ */
123
123
  export interface AxisPriceLabelOptions {
124
124
  x: number;
@@ -133,7 +133,7 @@ export interface AxisPriceLabelOptions {
133
133
  textColor?: string;
134
134
  fontSize?: number;
135
135
  }
136
- export declare function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPriceLabelOptions): void;
136
+ export declare function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPriceLabelOptions, theme?: 'light' | 'dark'): void;
137
137
  export interface AxisTimeLabelOptions {
138
138
  x: number;
139
139
  y: number;
@@ -147,4 +147,4 @@ export interface AxisTimeLabelOptions {
147
147
  fontSize?: number;
148
148
  paddingX?: number;
149
149
  }
150
- export declare function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeLabelOptions): void;
150
+ export declare function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeLabelOptions, theme?: 'light' | 'dark'): void;
@@ -24,7 +24,7 @@ export interface GridOption {
24
24
  */
25
25
  export declare function drawGridLayer(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr: number, startIndex: number, endIndex: number, priceRange: PriceRange,
26
26
  /**
27
- * 右侧价格轴所在的“世界坐标X”(在 translate(-scrollLeft, 0) 之后的坐标系里)
27
+ * 右侧价格轴所在的"世界坐标X"(在 translate(-scrollLeft, 0) 之后的坐标系里)
28
28
  * 通常传入:scrollLeft + viewWidth
29
29
  */
30
- axisRightX: number, gridOpt?: GridOption): void;
30
+ axisRightX: number, gridOpt?: GridOption, theme?: 'light' | 'dark'): void;
@@ -12,4 +12,4 @@ export interface PriceRange {
12
12
  * @deprecated
13
13
  * K线图绘制 - 影线固定为 1 物理像素宽
14
14
  */
15
- export declare function kLineDraw(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange): void;
15
+ export declare function kLineDraw(ctx: CanvasRenderingContext2D, data: KLineData[], option: drawOption, logicHeight: number, dpr?: number, startIndex?: number, endIndex?: number, priceRange?: PriceRange, theme?: 'light' | 'dark'): void;
@@ -1,14 +1,11 @@
1
1
  import { KLineData } from '../../types/price';
2
2
  export { formatShanghaiDate } from '../dateFormat';
3
- export declare const UP_COLOR: "rgba(214, 10, 34, 1)";
4
- export declare const DOWN_COLOR: "rgba(3, 123, 102, 1)";
5
- export declare const NEUTRAL_COLOR: "rgba(0, 0, 0, 0.78)";
6
- export declare function getUpDownColor(delta: number): string;
3
+ export declare function getUpDownColor(delta: number, theme?: 'light' | 'dark'): string;
7
4
  /** 成交量/成交额单位换算:万/亿 */
8
5
  export declare function formatWanYi(n: number, digits?: number): string;
9
6
  export declare function formatSignedNumber(n: number, digits?: number): string;
10
7
  export declare function formatPercent(n: number, digits?: number): string;
11
8
  export declare function formatSignedPercent(n: number, digits?: number): string;
12
- export declare function calcOpenColor(k: KLineData, prev?: KLineData): string;
13
- export declare function calcCloseColor(k: KLineData): string;
14
- export declare function calcChangeColor(k: KLineData): string;
9
+ export declare function calcOpenColor(k: KLineData, prev?: KLineData, theme?: 'light' | 'dark'): string;
10
+ export declare function calcCloseColor(k: KLineData, theme?: 'light' | 'dark'): string;
11
+ export declare function calcChangeColor(k: KLineData, theme?: 'light' | 'dark'): string;