@363045841yyt/klinechart-core 0.7.5 → 0.7.7

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 (235) hide show
  1. package/README.md +8 -8
  2. package/README.zh-CN.md +8 -8
  3. package/dist/config/chartSettings.d.ts +27 -2
  4. package/dist/config/chartSettings.d.ts.map +1 -1
  5. package/dist/config/chartSettings.js +6 -0
  6. package/dist/config/chartSettings.js.map +1 -1
  7. package/dist/controllers/createChartController.d.ts.map +1 -1
  8. package/dist/controllers/createChartController.js +145 -21
  9. package/dist/controllers/createChartController.js.map +1 -1
  10. package/dist/controllers/index.d.ts +9 -1
  11. package/dist/controllers/index.d.ts.map +1 -1
  12. package/dist/controllers/index.js +9 -0
  13. package/dist/controllers/index.js.map +1 -1
  14. package/dist/controllers/types.d.ts +65 -8
  15. package/dist/controllers/types.d.ts.map +1 -1
  16. package/dist/engine/chart.d.ts +2 -12
  17. package/dist/engine/chart.d.ts.map +1 -1
  18. package/dist/engine/chart.js +32 -31
  19. package/dist/engine/chart.js.map +1 -1
  20. package/dist/engine/controller/interaction.d.ts +1 -1
  21. package/dist/engine/controller/interaction.d.ts.map +1 -1
  22. package/dist/engine/controller/interaction.js +10 -2
  23. package/dist/engine/controller/interaction.js.map +1 -1
  24. package/dist/engine/draw/pixelAlign.d.ts.map +1 -1
  25. package/dist/engine/draw/pixelAlign.js.map +1 -1
  26. package/dist/engine/drawing/interaction.d.ts +3 -3
  27. package/dist/engine/drawing/interaction.d.ts.map +1 -1
  28. package/dist/engine/drawing/interaction.js +38 -46
  29. package/dist/engine/drawing/interaction.js.map +1 -1
  30. package/dist/engine/drawing/plugin.js +1 -1
  31. package/dist/engine/drawing/plugin.js.map +1 -1
  32. package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
  33. package/dist/engine/renderers/Indicator/atr.js +7 -4
  34. package/dist/engine/renderers/Indicator/atr.js.map +1 -1
  35. package/dist/engine/renderers/Indicator/boll.js +12 -12
  36. package/dist/engine/renderers/Indicator/boll.js.map +1 -1
  37. package/dist/engine/renderers/Indicator/cci.d.ts +1 -2
  38. package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
  39. package/dist/engine/renderers/Indicator/cci.js +9 -9
  40. package/dist/engine/renderers/Indicator/cci.js.map +1 -1
  41. package/dist/engine/renderers/Indicator/ene.js +12 -12
  42. package/dist/engine/renderers/Indicator/ene.js.map +1 -1
  43. package/dist/engine/renderers/Indicator/expma.js +6 -6
  44. package/dist/engine/renderers/Indicator/expma.js.map +1 -1
  45. package/dist/engine/renderers/Indicator/fastk.d.ts +1 -2
  46. package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
  47. package/dist/engine/renderers/Indicator/fastk.js +7 -7
  48. package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
  49. package/dist/engine/renderers/Indicator/kst.d.ts +1 -2
  50. package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
  51. package/dist/engine/renderers/Indicator/kst.js +10 -10
  52. package/dist/engine/renderers/Indicator/kst.js.map +1 -1
  53. package/dist/engine/renderers/Indicator/ma.js +5 -5
  54. package/dist/engine/renderers/Indicator/ma.js.map +1 -1
  55. package/dist/engine/renderers/Indicator/macd.d.ts +1 -2
  56. package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
  57. package/dist/engine/renderers/Indicator/macd.js +24 -24
  58. package/dist/engine/renderers/Indicator/macd.js.map +1 -1
  59. package/dist/engine/renderers/Indicator/macdLegend.js +6 -6
  60. package/dist/engine/renderers/Indicator/macdLegend.js.map +1 -1
  61. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +16 -16
  62. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  63. package/dist/engine/renderers/Indicator/mom.d.ts +1 -2
  64. package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
  65. package/dist/engine/renderers/Indicator/mom.js +8 -8
  66. package/dist/engine/renderers/Indicator/mom.js.map +1 -1
  67. package/dist/engine/renderers/Indicator/rsi.d.ts +2 -3
  68. package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
  69. package/dist/engine/renderers/Indicator/rsi.js +15 -15
  70. package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
  71. package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts +1 -2
  72. package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts.map +1 -1
  73. package/dist/engine/renderers/Indicator/scale/indicator_scale.js +5 -5
  74. package/dist/engine/renderers/Indicator/scale/indicator_scale.js.map +1 -1
  75. package/dist/engine/renderers/Indicator/stoch.d.ts +1 -2
  76. package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
  77. package/dist/engine/renderers/Indicator/stoch.js +10 -10
  78. package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
  79. package/dist/engine/renderers/Indicator/structure.js +5 -5
  80. package/dist/engine/renderers/Indicator/structure.js.map +1 -1
  81. package/dist/engine/renderers/Indicator/wmsr.d.ts +1 -2
  82. package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
  83. package/dist/engine/renderers/Indicator/wmsr.js +10 -10
  84. package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
  85. package/dist/engine/renderers/Indicator/zones.js +6 -6
  86. package/dist/engine/renderers/Indicator/zones.js.map +1 -1
  87. package/dist/engine/renderers/candle.d.ts +1 -1
  88. package/dist/engine/renderers/candle.d.ts.map +1 -1
  89. package/dist/engine/renderers/candle.js +21 -21
  90. package/dist/engine/renderers/candle.js.map +1 -1
  91. package/dist/engine/renderers/crosshair.js +3 -3
  92. package/dist/engine/renderers/crosshair.js.map +1 -1
  93. package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
  94. package/dist/engine/renderers/extremaMarkers.js +12 -12
  95. package/dist/engine/renderers/extremaMarkers.js.map +1 -1
  96. package/dist/engine/renderers/gridLines.js +3 -3
  97. package/dist/engine/renderers/gridLines.js.map +1 -1
  98. package/dist/engine/renderers/lastPrice.js +7 -7
  99. package/dist/engine/renderers/lastPrice.js.map +1 -1
  100. package/dist/engine/renderers/paneTitle.d.ts +5 -24
  101. package/dist/engine/renderers/paneTitle.d.ts.map +1 -1
  102. package/dist/engine/renderers/paneTitle.js +16 -11
  103. package/dist/engine/renderers/paneTitle.js.map +1 -1
  104. package/dist/engine/renderers/subVolume.d.ts.map +1 -1
  105. package/dist/engine/renderers/subVolume.js +23 -20
  106. package/dist/engine/renderers/subVolume.js.map +1 -1
  107. package/dist/engine/renderers/timeAxis.js +9 -9
  108. package/dist/engine/renderers/timeAxis.js.map +1 -1
  109. package/dist/engine/renderers/webgl/candleSurface.d.ts +4 -4
  110. package/dist/engine/renderers/webgl/candleSurface.d.ts.map +1 -1
  111. package/dist/engine/renderers/webgl/candleSurface.js +72 -60
  112. package/dist/engine/renderers/webgl/candleSurface.js.map +1 -1
  113. package/dist/engine/renderers/yAxis.d.ts.map +1 -1
  114. package/dist/engine/renderers/yAxis.js +5 -5
  115. package/dist/engine/renderers/yAxis.js.map +1 -1
  116. package/dist/engine/subPaneManager.d.ts +2 -0
  117. package/dist/engine/subPaneManager.d.ts.map +1 -1
  118. package/dist/engine/subPaneManager.js +25 -1
  119. package/dist/engine/subPaneManager.js.map +1 -1
  120. package/dist/index.d.ts +1 -0
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +1 -0
  123. package/dist/index.js.map +1 -1
  124. package/dist/plugin/types.d.ts +5 -1
  125. package/dist/plugin/types.d.ts.map +1 -1
  126. package/dist/plugin/types.js.map +1 -1
  127. package/dist/semantic/controller.d.ts +1 -2
  128. package/dist/semantic/controller.d.ts.map +1 -1
  129. package/dist/semantic/index.d.ts +1 -1
  130. package/dist/semantic/index.d.ts.map +1 -1
  131. package/dist/tokens/colorPresetSettings.d.ts +15 -0
  132. package/dist/tokens/colorPresetSettings.d.ts.map +1 -0
  133. package/dist/tokens/colorPresetSettings.js +65 -0
  134. package/dist/tokens/colorPresetSettings.js.map +1 -0
  135. package/dist/tokens/index.d.ts +17 -0
  136. package/dist/tokens/index.d.ts.map +1 -0
  137. package/dist/tokens/index.js +16 -0
  138. package/dist/tokens/index.js.map +1 -0
  139. package/dist/tokens/mergeTheme.d.ts +17 -0
  140. package/dist/tokens/mergeTheme.d.ts.map +1 -0
  141. package/dist/tokens/mergeTheme.js +43 -0
  142. package/dist/tokens/mergeTheme.js.map +1 -0
  143. package/dist/tokens/theme-china.d.ts +45 -0
  144. package/dist/tokens/theme-china.d.ts.map +1 -0
  145. package/dist/tokens/theme-china.js +116 -0
  146. package/dist/tokens/theme-china.js.map +1 -0
  147. package/dist/tokens/theme-dark.d.ts +21 -0
  148. package/dist/tokens/theme-dark.d.ts.map +1 -0
  149. package/dist/tokens/theme-dark.js +228 -0
  150. package/dist/tokens/theme-dark.js.map +1 -0
  151. package/dist/tokens/theme-light.d.ts +23 -0
  152. package/dist/tokens/theme-light.d.ts.map +1 -0
  153. package/dist/tokens/theme-light.js +234 -0
  154. package/dist/tokens/theme-light.js.map +1 -0
  155. package/dist/tokens/themeToCssVars.d.ts +74 -0
  156. package/dist/tokens/themeToCssVars.d.ts.map +1 -0
  157. package/dist/tokens/themeToCssVars.js +108 -0
  158. package/dist/tokens/themeToCssVars.js.map +1 -0
  159. package/dist/tokens/types.d.ts +335 -0
  160. package/dist/tokens/types.d.ts.map +1 -0
  161. package/dist/tokens/types.js +20 -0
  162. package/dist/tokens/types.js.map +1 -0
  163. package/dist/utils/kLineDraw/axis.d.ts +8 -7
  164. package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
  165. package/dist/utils/kLineDraw/axis.js +24 -24
  166. package/dist/utils/kLineDraw/axis.js.map +1 -1
  167. package/dist/version.d.ts +1 -1
  168. package/dist/version.js +1 -1
  169. package/package.json +6 -6
  170. package/src/config/chartSettings.ts +11 -2
  171. package/src/controllers/createChartController.ts +158 -29
  172. package/src/controllers/index.ts +33 -0
  173. package/src/controllers/types.ts +79 -8
  174. package/src/engine/chart.ts +32 -37
  175. package/src/engine/controller/interaction.ts +9 -2
  176. package/src/engine/draw/pixelAlign.ts +0 -2
  177. package/src/engine/drawing/interaction.ts +38 -47
  178. package/src/engine/drawing/plugin.ts +1 -1
  179. package/src/engine/renderers/Indicator/atr.ts +7 -3
  180. package/src/engine/renderers/Indicator/boll.ts +12 -12
  181. package/src/engine/renderers/Indicator/cci.ts +11 -10
  182. package/src/engine/renderers/Indicator/ene.ts +12 -12
  183. package/src/engine/renderers/Indicator/expma.ts +6 -6
  184. package/src/engine/renderers/Indicator/fastk.ts +9 -8
  185. package/src/engine/renderers/Indicator/kst.ts +12 -11
  186. package/src/engine/renderers/Indicator/ma.ts +5 -5
  187. package/src/engine/renderers/Indicator/macd.ts +27 -25
  188. package/src/engine/renderers/Indicator/macdLegend.ts +6 -6
  189. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +16 -16
  190. package/src/engine/renderers/Indicator/mom.ts +11 -10
  191. package/src/engine/renderers/Indicator/rsi.ts +18 -15
  192. package/src/engine/renderers/Indicator/scale/indicator_scale.ts +6 -6
  193. package/src/engine/renderers/Indicator/stoch.ts +12 -11
  194. package/src/engine/renderers/Indicator/structure.ts +5 -5
  195. package/src/engine/renderers/Indicator/wmsr.ts +13 -12
  196. package/src/engine/renderers/Indicator/zones.ts +7 -7
  197. package/src/engine/renderers/candle.ts +21 -21
  198. package/src/engine/renderers/crosshair.ts +3 -3
  199. package/src/engine/renderers/extremaMarkers.ts +13 -12
  200. package/src/engine/renderers/gridLines.ts +3 -3
  201. package/src/engine/renderers/lastPrice.ts +7 -7
  202. package/src/engine/renderers/paneTitle.ts +22 -31
  203. package/src/engine/renderers/subVolume.ts +23 -20
  204. package/src/engine/renderers/timeAxis.ts +9 -9
  205. package/src/engine/renderers/webgl/candleSurface.ts +80 -60
  206. package/src/engine/renderers/yAxis.ts +6 -5
  207. package/src/engine/subPaneManager.ts +28 -1
  208. package/src/index.ts +1 -0
  209. package/src/plugin/types.ts +5 -1
  210. package/src/semantic/controller.ts +1 -1
  211. package/src/semantic/index.ts +1 -1
  212. package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +393 -0
  213. package/src/tokens/__tests__/baseline.test.ts +183 -0
  214. package/src/tokens/__tests__/themeToCssVars.test.ts +175 -0
  215. package/src/tokens/__tests__/tokens.test.ts +215 -0
  216. package/src/tokens/colorPresetSettings.ts +128 -0
  217. package/src/tokens/index.ts +65 -0
  218. package/src/tokens/mergeTheme.ts +48 -0
  219. package/src/tokens/theme-china.ts +132 -0
  220. package/src/tokens/theme-dark.ts +244 -0
  221. package/src/tokens/theme-light.ts +250 -0
  222. package/src/tokens/themeToCssVars.ts +138 -0
  223. package/src/tokens/types.ts +394 -0
  224. package/src/utils/kLineDraw/axis.ts +31 -30
  225. package/src/version.ts +1 -1
  226. package/dist/engine/chart-store.d.ts +0 -75
  227. package/dist/engine/chart-store.d.ts.map +0 -1
  228. package/dist/engine/chart-store.js +0 -88
  229. package/dist/engine/chart-store.js.map +0 -1
  230. package/dist/engine/theme/colors.d.ts +0 -223
  231. package/dist/engine/theme/colors.d.ts.map +0 -1
  232. package/dist/engine/theme/colors.js +0 -375
  233. package/dist/engine/theme/colors.js.map +0 -1
  234. package/src/engine/chart-store.ts +0 -121
  235. package/src/engine/theme/colors.ts +0 -642
@@ -1,375 +0,0 @@
1
- /**
2
- * 主题感知颜色配置
3
- * 所有颜色通过 getColors(theme) 获取,支持 light/dark 双主题
4
- */
5
- // ==================== Light Theme ====================
6
- const lightTextColors = {
7
- PRIMARY: 'hsl(210, 9%, 31%)',
8
- SECONDARY: 'hsl(210, 9%, 35%)',
9
- TERTIARY: 'hsl(210, 8%, 50%)',
10
- WEAK: 'hsl(210, 7%, 65%)',
11
- WHITE: 'rgba(255, 255, 255, 0.92)',
12
- };
13
- const lightPriceColors = {
14
- UP: 'rgba(214, 10, 34, 1)',
15
- UP_LIGHT: 'rgba(214, 10, 34, 0.92)',
16
- UP_TICK: 'hsl(0, 60%, 50%)',
17
- DOWN: 'rgba(3, 123, 102, 1)',
18
- DOWN_LIGHT: 'rgba(3, 123, 102, 0.92)',
19
- DOWN_TICK: 'hsl(150, 30%, 60%)',
20
- NEUTRAL: 'rgba(0, 0, 0, 0.78)',
21
- LAST_PRICE: 'rgba(196, 74, 86, 0.95)',
22
- };
23
- const lightTagBgColors = {
24
- WHITE: 'rgb(255, 255, 255)',
25
- LIGHT_GRAY: 'rgba(255, 255, 255, 0.92)',
26
- PURE_WHITE: '#ffffff',
27
- TRANSPARENT: 'transparent',
28
- ACTIVE: '#1890ff',
29
- ACTIVE_HOVER: '#40a9ff',
30
- HOVER: '#f0f0f0',
31
- };
32
- const lightBorderColors = {
33
- DARK: 'rgba(0, 0, 0, 0.12)',
34
- MEDIUM: 'rgba(0, 0, 0, 0.10)',
35
- LIGHT: 'rgba(0, 0, 0, 0.08)',
36
- SEPARATOR: 'rgba(0, 0, 0, 0.10)',
37
- BUTTON: '#d0d0d0',
38
- };
39
- const lightGridColors = {
40
- HORIZONTAL: 'rgba(0, 0, 0, 0.06)',
41
- VERTICAL: 'rgba(0, 0, 0, 0.12)',
42
- };
43
- const lightCrosshairColors = {
44
- LINE: 'rgba(0, 0, 0, 0.28)',
45
- LABEL_BG: 'rgb(0, 0, 0)',
46
- LABEL_TEXT: 'rgba(255, 255, 255, 0.92)',
47
- };
48
- const lightMAColors = {
49
- MA5: 'rgba(255, 193, 37, 1)',
50
- MA10: 'rgba(190, 131, 12, 1)',
51
- MA20: 'rgba(69, 112, 249, 1)',
52
- MA30: 'rgba(76, 175, 80, 1)',
53
- MA60: 'rgba(156, 39, 176, 1)',
54
- };
55
- const lightBOLLColors = {
56
- UPPER: 'rgba(178, 34, 34, 1)',
57
- MIDDLE: 'rgba(69, 112, 249, 1)',
58
- LOWER: 'rgba(34, 139, 34, 1)',
59
- BAND_FILL: 'rgba(100, 149, 237, 0.1)',
60
- };
61
- const lightMACDColors = {
62
- DIF: 'rgba(69, 112, 249, 1)',
63
- DEA: 'rgba(255, 152, 0, 1)',
64
- BAR_UP: '#ff5252',
65
- BAR_UP_LIGHT: '#fccbcd',
66
- BAR_DOWN: '#22ab94',
67
- BAR_DOWN_LIGHT: '#ace5dc',
68
- };
69
- const lightVolumeColors = {
70
- UP: '#ff5252',
71
- DOWN: '#22ab94',
72
- NEUTRAL: 'rgba(0, 0, 0, 0.78)',
73
- };
74
- const lightRSIColors = {
75
- RSI1: 'rgba(69, 112, 249, 1)',
76
- RSI2: 'rgba(255, 152, 0, 1)',
77
- RSI3: 'rgba(156, 39, 176, 1)',
78
- };
79
- const lightCCIColors = {
80
- CCI: 'rgba(69, 112, 249, 1)',
81
- OVERBOUGHT: 'rgba(214, 10, 34, 0.5)',
82
- OVERSOLD: 'rgba(3, 123, 102, 0.5)',
83
- };
84
- const lightKDJColors = {
85
- K: 'rgba(69, 112, 249, 1)',
86
- D: 'rgba(255, 152, 0, 1)',
87
- J: 'rgba(156, 39, 176, 1)',
88
- };
89
- const lightMOMColors = {
90
- MOM: 'rgba(69, 112, 249, 1)',
91
- ZERO: 'rgba(0, 0, 0, 0.2)',
92
- };
93
- const lightWMSRColors = {
94
- WMSR: 'rgba(69, 112, 249, 1)',
95
- OVERBOUGHT: 'rgba(214, 10, 34, 0.5)',
96
- OVERSOLD: 'rgba(3, 123, 102, 0.5)',
97
- };
98
- const lightKSTColors = {
99
- KST: 'rgba(69, 112, 249, 1)',
100
- SIGNAL: 'rgba(255, 152, 0, 1)',
101
- };
102
- const lightEXPMAColors = {
103
- FAST: 'rgba(255, 152, 0, 1)',
104
- SLOW: 'rgba(69, 112, 249, 1)',
105
- };
106
- const lightENEColors = {
107
- UPPER: 'rgba(214, 10, 34, 1)',
108
- MIDDLE: 'rgba(69, 112, 249, 1)',
109
- LOWER: 'rgba(3, 123, 102, 1)',
110
- BAND_FILL: 'rgba(69, 112, 249, 0.08)',
111
- };
112
- const lightLabelColors = {
113
- BG: 'rgba(0, 0, 0, 0.8)',
114
- TEXT: '#ffffff',
115
- };
116
- const lightLastPriceLabelColors = {
117
- BG: 'rgba(255, 247, 248, 0.98)',
118
- };
119
- const lightVolumePriceColors = {
120
- RISE_WITH: '#FF4444',
121
- RISE_WITHOUT: '#00C853',
122
- FALL_WITH: '#FF4444',
123
- FALL_WITHOUT: '#00C853',
124
- };
125
- const lightStructureColors = {
126
- HH: '#16a34a',
127
- HL: '#22c55e',
128
- LH: '#dc2626',
129
- LL: '#ef4444',
130
- CHOCH: '#8b5cf6',
131
- BOS: '#f59e0b',
132
- };
133
- const lightZonesColors = {
134
- FVG_BULL_FILL: 'rgba(34, 197, 94, 0.15)',
135
- FVG_BEAR_FILL: 'rgba(239, 68, 68, 0.15)',
136
- FVG_BULL_BORDER: 'rgba(34, 197, 94, 0.6)',
137
- FVG_BEAR_BORDER: 'rgba(239, 68, 68, 0.6)',
138
- OB_BULL_FILL: 'rgba(34, 197, 94, 0.25)',
139
- OB_BEAR_FILL: 'rgba(239, 68, 68, 0.25)',
140
- };
141
- // ==================== Dark Theme ====================
142
- const darkTextColors = {
143
- PRIMARY: 'hsl(210, 10%, 85%)',
144
- SECONDARY: 'hsl(210, 8%, 75%)',
145
- TERTIARY: 'hsl(210, 6%, 60%)',
146
- WEAK: 'hsl(210, 5%, 45%)',
147
- WHITE: 'rgba(255, 255, 255, 0.95)',
148
- };
149
- const darkPriceColors = {
150
- UP: 'rgba(255, 80, 100, 1)',
151
- UP_LIGHT: 'rgba(255, 80, 100, 0.85)',
152
- UP_TICK: 'hsl(0, 70%, 60%)',
153
- DOWN: 'rgba(60, 200, 160, 1)',
154
- DOWN_LIGHT: 'rgba(60, 200, 160, 0.85)',
155
- DOWN_TICK: 'hsl(150, 50%, 65%)',
156
- NEUTRAL: 'rgba(255, 255, 255, 0.7)',
157
- LAST_PRICE: 'rgba(230, 100, 115, 0.95)',
158
- };
159
- const darkTagBgColors = {
160
- WHITE: 'rgb(40, 40, 55)',
161
- LIGHT_GRAY: 'rgba(50, 50, 65, 0.92)',
162
- PURE_WHITE: '#282837',
163
- TRANSPARENT: 'transparent',
164
- ACTIVE: '#1890ff',
165
- ACTIVE_HOVER: '#40a9ff',
166
- HOVER: '#3a3a4a',
167
- };
168
- const darkBorderColors = {
169
- DARK: 'rgba(255, 255, 255, 0.15)',
170
- MEDIUM: 'rgba(255, 255, 255, 0.12)',
171
- LIGHT: 'rgba(255, 255, 255, 0.08)',
172
- SEPARATOR: 'rgba(255, 255, 255, 0.10)',
173
- BUTTON: '#505060',
174
- };
175
- const darkGridColors = {
176
- HORIZONTAL: 'rgba(255, 255, 255, 0.06)',
177
- VERTICAL: 'rgba(255, 255, 255, 0.10)',
178
- };
179
- const darkCrosshairColors = {
180
- LINE: 'rgba(255, 255, 255, 0.4)',
181
- LABEL_BG: 'rgb(40, 40, 55)',
182
- LABEL_TEXT: 'rgba(255, 255, 255, 0.92)',
183
- };
184
- const darkMAColors = {
185
- MA5: 'rgba(255, 200, 50, 1)',
186
- MA10: 'rgba(200, 150, 30, 1)',
187
- MA20: 'rgba(90, 140, 255, 1)',
188
- MA30: 'rgba(90, 190, 95, 1)',
189
- MA60: 'rgba(170, 60, 195, 1)',
190
- };
191
- const darkBOLLColors = {
192
- UPPER: 'rgba(200, 60, 60, 1)',
193
- MIDDLE: 'rgba(90, 140, 255, 1)',
194
- LOWER: 'rgba(50, 170, 60, 1)',
195
- BAND_FILL: 'rgba(120, 170, 255, 0.15)',
196
- };
197
- const darkMACDColors = {
198
- DIF: 'rgba(90, 140, 255, 1)',
199
- DEA: 'rgba(255, 170, 50, 1)',
200
- BAR_UP: '#ff6b6b',
201
- BAR_UP_LIGHT: '#ffb3b3',
202
- BAR_DOWN: '#4ecdc4',
203
- BAR_DOWN_LIGHT: '#a8e6e1',
204
- };
205
- const darkVolumeColors = {
206
- UP: '#ff6b6b',
207
- DOWN: '#4ecdc4',
208
- NEUTRAL: 'rgba(255, 255, 255, 0.6)',
209
- };
210
- const darkRSIColors = {
211
- RSI1: 'rgba(90, 140, 255, 1)',
212
- RSI2: 'rgba(255, 170, 50, 1)',
213
- RSI3: 'rgba(180, 70, 205, 1)',
214
- };
215
- const darkCCIColors = {
216
- CCI: 'rgba(90, 140, 255, 1)',
217
- OVERBOUGHT: 'rgba(255, 80, 100, 0.6)',
218
- OVERSOLD: 'rgba(60, 200, 160, 0.6)',
219
- };
220
- const darkKDJColors = {
221
- K: 'rgba(90, 140, 255, 1)',
222
- D: 'rgba(255, 170, 50, 1)',
223
- J: 'rgba(180, 70, 205, 1)',
224
- };
225
- const darkMOMColors = {
226
- MOM: 'rgba(90, 140, 255, 1)',
227
- ZERO: 'rgba(255, 255, 255, 0.2)',
228
- };
229
- const darkWMSRColors = {
230
- WMSR: 'rgba(90, 140, 255, 1)',
231
- OVERBOUGHT: 'rgba(255, 80, 100, 0.6)',
232
- OVERSOLD: 'rgba(60, 200, 160, 0.6)',
233
- };
234
- const darkKSTColors = {
235
- KST: 'rgba(90, 140, 255, 1)',
236
- SIGNAL: 'rgba(255, 170, 50, 1)',
237
- };
238
- const darkEXPMAColors = {
239
- FAST: 'rgba(255, 170, 50, 1)',
240
- SLOW: 'rgba(90, 140, 255, 1)',
241
- };
242
- const darkENEColors = {
243
- UPPER: 'rgba(255, 80, 100, 1)',
244
- MIDDLE: 'rgba(90, 140, 255, 1)',
245
- LOWER: 'rgba(60, 200, 160, 1)',
246
- BAND_FILL: 'rgba(90, 140, 255, 0.12)',
247
- };
248
- const darkLabelColors = {
249
- BG: 'rgba(30, 30, 40, 0.9)',
250
- TEXT: '#ffffff',
251
- };
252
- const darkLastPriceLabelColors = {
253
- BG: 'rgba(60, 50, 55, 0.98)',
254
- };
255
- const darkVolumePriceColors = {
256
- RISE_WITH: '#FF6666',
257
- RISE_WITHOUT: '#66FF99',
258
- FALL_WITH: '#FF6666',
259
- FALL_WITHOUT: '#66FF99',
260
- };
261
- const darkStructureColors = {
262
- HH: '#4ade80',
263
- HL: '#22c55e',
264
- LH: '#f87171',
265
- LL: '#ef4444',
266
- CHOCH: '#a78bfa',
267
- BOS: '#fbbf24',
268
- };
269
- const darkZonesColors = {
270
- FVG_BULL_FILL: 'rgba(74, 222, 128, 0.20)',
271
- FVG_BEAR_FILL: 'rgba(248, 113, 113, 0.20)',
272
- FVG_BULL_BORDER: 'rgba(74, 222, 128, 0.8)',
273
- FVG_BEAR_BORDER: 'rgba(248, 113, 113, 0.8)',
274
- OB_BULL_FILL: 'rgba(74, 222, 128, 0.35)',
275
- OB_BEAR_FILL: 'rgba(248, 113, 113, 0.35)',
276
- };
277
- // ==================== Theme Collections ====================
278
- const lightTheme = {
279
- TEXT: lightTextColors,
280
- PRICE: lightPriceColors,
281
- TAG_BG: lightTagBgColors,
282
- BORDER: lightBorderColors,
283
- GRID: lightGridColors,
284
- CROSSHAIR: lightCrosshairColors,
285
- MA: lightMAColors,
286
- BOLL: lightBOLLColors,
287
- MACD: lightMACDColors,
288
- VOLUME: lightVolumeColors,
289
- RSI: lightRSIColors,
290
- CCI: lightCCIColors,
291
- KDJ: lightKDJColors,
292
- MOM: lightMOMColors,
293
- WMSR: lightWMSRColors,
294
- KST: lightKSTColors,
295
- EXPMA: lightEXPMAColors,
296
- ENE: lightENEColors,
297
- LABEL: lightLabelColors,
298
- LAST_PRICE_LABEL: lightLastPriceLabelColors,
299
- VOLUME_PRICE: lightVolumePriceColors,
300
- STRUCTURE: lightStructureColors,
301
- ZONES: lightZonesColors,
302
- WMSR_GRID: 'rgba(0, 0, 0, 0.1)',
303
- };
304
- const darkTheme = {
305
- TEXT: darkTextColors,
306
- PRICE: darkPriceColors,
307
- TAG_BG: darkTagBgColors,
308
- BORDER: darkBorderColors,
309
- GRID: darkGridColors,
310
- CROSSHAIR: darkCrosshairColors,
311
- MA: darkMAColors,
312
- BOLL: darkBOLLColors,
313
- MACD: darkMACDColors,
314
- VOLUME: darkVolumeColors,
315
- RSI: darkRSIColors,
316
- CCI: darkCCIColors,
317
- KDJ: darkKDJColors,
318
- MOM: darkMOMColors,
319
- WMSR: darkWMSRColors,
320
- KST: darkKSTColors,
321
- EXPMA: darkEXPMAColors,
322
- ENE: darkENEColors,
323
- LABEL: darkLabelColors,
324
- LAST_PRICE_LABEL: darkLastPriceLabelColors,
325
- VOLUME_PRICE: darkVolumePriceColors,
326
- STRUCTURE: darkStructureColors,
327
- ZONES: darkZonesColors,
328
- WMSR_GRID: 'rgba(255, 255, 255, 0.1)',
329
- };
330
- /**
331
- * 根据主题获取颜色配置
332
- * @param theme - 主题类型 'light' | 'dark'
333
- * @returns 主题色值集合
334
- */
335
- export function getColors(theme) {
336
- return theme === 'dark' ? darkTheme : lightTheme;
337
- }
338
- /**
339
- * 日志颜色(与主题无关,保留常量导出)
340
- */
341
- export const LOG_COLORS = {
342
- INFO: 'background:#164586;color:#fff;',
343
- SUCCESS: 'background:#389e0d;color:#fff;',
344
- WARN: 'background:#d46b08;color:#fff;',
345
- ERROR: 'background:#cf1322;color:#fff;',
346
- CONSOLE: '#666',
347
- };
348
- /**
349
- * 工具函数:根据涨跌返回颜色
350
- * @param type - 涨跌类型
351
- * @param theme - 主题类型
352
- * @returns 对应颜色
353
- */
354
- export function getPriceColor(type, theme = 'light') {
355
- const colors = getColors(theme);
356
- switch (type) {
357
- case 'up':
358
- return colors.PRICE.UP;
359
- case 'down':
360
- return colors.PRICE.DOWN;
361
- case 'neutral':
362
- return colors.PRICE.NEUTRAL;
363
- }
364
- }
365
- /**
366
- * 工具函数:根据涨跌百分比返回颜色
367
- * @param changePercent - 涨跌百分比
368
- * @param theme - 主题类型
369
- * @returns 对应颜色
370
- */
371
- export function getTickColor(changePercent, theme = 'light') {
372
- const colors = getColors(theme);
373
- return changePercent >= 0 ? colors.PRICE.UP_TICK : colors.PRICE.DOWN_TICK;
374
- }
375
- //# sourceMappingURL=colors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../src/engine/theme/colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuNH,wDAAwD;AAExD,MAAM,eAAe,GAAe;IAChC,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,mBAAmB;IAC7B,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,2BAA2B;CACrC,CAAA;AAED,MAAM,gBAAgB,GAAgB;IAClC,EAAE,EAAE,sBAAsB;IAC1B,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,sBAAsB;IAC5B,UAAU,EAAE,yBAAyB;IACrC,SAAS,EAAE,oBAAoB;IAC/B,OAAO,EAAE,qBAAqB;IAC9B,UAAU,EAAE,yBAAyB;CACxC,CAAA;AAED,MAAM,gBAAgB,GAAgB;IAClC,KAAK,EAAE,oBAAoB;IAC3B,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,SAAS;CACnB,CAAA;AAED,MAAM,iBAAiB,GAAiB;IACpC,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,qBAAqB;IAChC,MAAM,EAAE,SAAS;CACpB,CAAA;AAED,MAAM,eAAe,GAAe;IAChC,UAAU,EAAE,qBAAqB;IACjC,QAAQ,EAAE,qBAAqB;CAClC,CAAA;AAED,MAAM,oBAAoB,GAAoB;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,2BAA2B;CAC1C,CAAA;AAED,MAAM,aAAa,GAAa;IAC5B,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,eAAe,GAAe;IAChC,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,SAAS,EAAE,0BAA0B;CACxC,CAAA;AAED,MAAM,eAAe,GAAe;IAChC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,sBAAsB;IAC3B,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,SAAS;CAC5B,CAAA;AAED,MAAM,iBAAiB,GAAiB;IACpC,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,qBAAqB;CACjC,CAAA;AAED,MAAM,cAAc,GAAc;IAC9B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,cAAc,GAAc;IAC9B,GAAG,EAAE,uBAAuB;IAC5B,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,wBAAwB;CACrC,CAAA;AAED,MAAM,cAAc,GAAc;IAC9B,CAAC,EAAE,uBAAuB;IAC1B,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,uBAAuB;CAC7B,CAAA;AAED,MAAM,cAAc,GAAc;IAC9B,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,oBAAoB;CAC7B,CAAA;AAED,MAAM,eAAe,GAAe;IAChC,IAAI,EAAE,uBAAuB;IAC7B,UAAU,EAAE,wBAAwB;IACpC,QAAQ,EAAE,wBAAwB;CACrC,CAAA;AAED,MAAM,cAAc,GAAc;IAC9B,GAAG,EAAE,uBAAuB;IAC5B,MAAM,EAAE,sBAAsB;CACjC,CAAA;AAED,MAAM,gBAAgB,GAAgB;IAClC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,cAAc,GAAc;IAC9B,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,SAAS,EAAE,0BAA0B;CACxC,CAAA;AAED,MAAM,gBAAgB,GAAgB;IAClC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,SAAS;CAClB,CAAA;AAED,MAAM,yBAAyB,GAAyB;IACpD,EAAE,EAAE,2BAA2B;CAClC,CAAA;AAED,MAAM,sBAAsB,GAAsB;IAC9C,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;CAC1B,CAAA;AAED,MAAM,oBAAoB,GAAoB;IAC1C,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,gBAAgB,GAAgB;IAClC,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,yBAAyB;IACxC,eAAe,EAAE,wBAAwB;IACzC,eAAe,EAAE,wBAAwB;IACzC,YAAY,EAAE,yBAAyB;IACvC,YAAY,EAAE,yBAAyB;CAC1C,CAAA;AAED,uDAAuD;AAEvD,MAAM,cAAc,GAAe;IAC/B,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,mBAAmB;IAC7B,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,2BAA2B;CACrC,CAAA;AAED,MAAM,eAAe,GAAgB;IACjC,EAAE,EAAE,uBAAuB;IAC3B,QAAQ,EAAE,0BAA0B;IACpC,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,UAAU,EAAE,0BAA0B;IACtC,SAAS,EAAE,oBAAoB;IAC/B,OAAO,EAAE,0BAA0B;IACnC,UAAU,EAAE,2BAA2B;CAC1C,CAAA;AAED,MAAM,eAAe,GAAgB;IACjC,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE,wBAAwB;IACpC,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,SAAS;CACnB,CAAA;AAED,MAAM,gBAAgB,GAAiB;IACnC,IAAI,EAAE,2BAA2B;IACjC,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,2BAA2B;IAClC,SAAS,EAAE,2BAA2B;IACtC,MAAM,EAAE,SAAS;CACpB,CAAA;AAED,MAAM,cAAc,GAAe;IAC/B,UAAU,EAAE,2BAA2B;IACvC,QAAQ,EAAE,2BAA2B;CACxC,CAAA;AAED,MAAM,mBAAmB,GAAoB;IACzC,IAAI,EAAE,0BAA0B;IAChC,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,2BAA2B;CAC1C,CAAA;AAED,MAAM,YAAY,GAAa;IAC3B,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,cAAc,GAAe;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,SAAS,EAAE,2BAA2B;CACzC,CAAA;AAED,MAAM,cAAc,GAAe;IAC/B,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,uBAAuB;IAC5B,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,SAAS;CAC5B,CAAA;AAED,MAAM,gBAAgB,GAAiB;IACnC,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,0BAA0B;CACtC,CAAA;AAED,MAAM,aAAa,GAAc;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,aAAa,GAAc;IAC7B,GAAG,EAAE,uBAAuB;IAC5B,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,yBAAyB;CACtC,CAAA;AAED,MAAM,aAAa,GAAc;IAC7B,CAAC,EAAE,uBAAuB;IAC1B,CAAC,EAAE,uBAAuB;IAC1B,CAAC,EAAE,uBAAuB;CAC7B,CAAA;AAED,MAAM,aAAa,GAAc;IAC7B,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,0BAA0B;CACnC,CAAA;AAED,MAAM,cAAc,GAAe;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,yBAAyB;CACtC,CAAA;AAED,MAAM,aAAa,GAAc;IAC7B,GAAG,EAAE,uBAAuB;IAC5B,MAAM,EAAE,uBAAuB;CAClC,CAAA;AAED,MAAM,eAAe,GAAgB;IACjC,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;CAChC,CAAA;AAED,MAAM,aAAa,GAAc;IAC7B,KAAK,EAAE,uBAAuB;IAC9B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,0BAA0B;CACxC,CAAA;AAED,MAAM,eAAe,GAAgB;IACjC,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,SAAS;CAClB,CAAA;AAED,MAAM,wBAAwB,GAAyB;IACnD,EAAE,EAAE,wBAAwB;CAC/B,CAAA;AAED,MAAM,qBAAqB,GAAsB;IAC7C,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;CAC1B,CAAA;AAED,MAAM,mBAAmB,GAAoB;IACzC,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,eAAe,GAAgB;IACjC,aAAa,EAAE,0BAA0B;IACzC,aAAa,EAAE,2BAA2B;IAC1C,eAAe,EAAE,yBAAyB;IAC1C,eAAe,EAAE,0BAA0B;IAC3C,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2BAA2B;CAC5C,CAAA;AAED,8DAA8D;AAE9D,MAAM,UAAU,GAAgB;IAC5B,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,oBAAoB;IAC/B,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,iBAAiB;IACzB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,gBAAgB;IACvB,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,gBAAgB;IACvB,gBAAgB,EAAE,yBAAyB;IAC3C,YAAY,EAAE,sBAAsB;IACpC,SAAS,EAAE,oBAAoB;IAC/B,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,oBAAoB;CAClC,CAAA;AAED,MAAM,SAAS,GAAgB;IAC3B,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,mBAAmB;IAC9B,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,GAAG,EAAE,aAAa;IAClB,KAAK,EAAE,eAAe;IACtB,GAAG,EAAE,aAAa;IAClB,KAAK,EAAE,eAAe;IACtB,gBAAgB,EAAE,wBAAwB;IAC1C,YAAY,EAAE,qBAAqB;IACnC,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,0BAA0B;CACxC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACvC,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,IAAI,EAAE,gCAAgC;IACtC,OAAO,EAAE,gCAAgC;IACzC,IAAI,EAAE,gCAAgC;IACtC,KAAK,EAAE,gCAAgC;IACvC,OAAO,EAAE,MAAM;CACT,CAAA;AAEV;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAA+B,EAAE,QAAoB,OAAO;IACtF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,IAAI;YACL,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;QAC1B,KAAK,MAAM;YACP,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA;QAC5B,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;IACnC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,aAAqB,EAAE,QAAoB,OAAO;IAC3E,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,OAAO,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA;AAC7E,CAAC"}
@@ -1,121 +0,0 @@
1
- import { reactive, computed, type UnwrapNestedRefs } from 'vue'
2
- import { getPhysicalKLineConfig } from './utils/klineConfig'
3
- import type { DrawingObject } from '../plugin'
4
-
5
- /** 右侧空白绘制槽位数(逻辑 bar 数) */
6
- export const TRAILING_DRAWING_SLOTS = 24
7
-
8
- export interface ChartStoreOptions {
9
- initialZoomLevel: number
10
- minKWidth: number
11
- maxKWidth: number
12
- zoomLevels: number
13
- rightAxisWidth: number
14
- priceLabelWidth: number
15
- }
16
-
17
- export function computeContentWidth(params: {
18
- dataLength: number
19
- kWidth: number
20
- kGap: number
21
- viewWidth: number
22
- viewportDpr: number
23
- }): number {
24
- const { dataLength, kWidth, kGap, viewWidth, viewportDpr } = params
25
- if (dataLength === 0) return 0
26
- const { startXPx, unitPx } = getPhysicalKLineConfig(kWidth, kGap, viewportDpr)
27
- const dataPlotWidth = (startXPx + (dataLength + TRAILING_DRAWING_SLOTS) * unitPx) / viewportDpr
28
- return Math.max(dataPlotWidth, viewWidth)
29
- }
30
-
31
- export function createChartStore(opts: ChartStoreOptions) {
32
- const state = reactive({
33
- zoomLevel: opts.initialZoomLevel,
34
- kWidth: 0,
35
- kGap: 1,
36
- viewportDpr: 1,
37
- dataLength: 0,
38
- dataVersion: 0,
39
- paneRatios: {} as Record<string, number>,
40
- drawings: [] as DrawingObject[],
41
- selectedDrawingId: null as string | null,
42
- drawingVersion: 0,
43
- viewWidth: 0,
44
- })
45
-
46
- // 右侧轴宽度
47
- const axisHostWidth = computed(() => opts.rightAxisWidth + opts.priceLabelWidth)
48
-
49
- const totalWidth = computed(() =>
50
- computeContentWidth({
51
- dataLength: state.dataLength,
52
- kWidth: state.kWidth,
53
- kGap: state.kGap,
54
- viewWidth: state.viewWidth,
55
- viewportDpr: state.viewportDpr,
56
- }),
57
- )
58
-
59
- function bumpDataVersion() {
60
- state.dataVersion++
61
- }
62
-
63
- function bumpDrawingVersion() {
64
- state.drawingVersion++
65
- }
66
-
67
- function setDataLength(length: number) {
68
- state.dataLength = length
69
- }
70
-
71
- function setViewportDpr(dpr: number) {
72
- state.viewportDpr = dpr
73
- }
74
-
75
- function setViewWidth(width: number) {
76
- state.viewWidth = width
77
- }
78
-
79
- function setZoomState(level: number, newKWidth: number, newKGap: number) {
80
- state.zoomLevel = level
81
- state.kWidth = newKWidth
82
- state.kGap = newKGap
83
- }
84
-
85
- function setPaneRatios(ratios: Record<string, number>) {
86
- state.paneRatios = ratios
87
- }
88
-
89
- function setDrawings(newDrawings: DrawingObject[]) {
90
- state.drawings = newDrawings
91
- if (state.selectedDrawingId && !newDrawings.some((d) => d.id === state.selectedDrawingId)) {
92
- state.selectedDrawingId = null
93
- }
94
- state.drawingVersion++
95
- }
96
-
97
- function setSelectedDrawingId(id: string | null) {
98
- state.selectedDrawingId = id
99
- }
100
-
101
- return {
102
- state: state as UnwrapNestedRefs<typeof state>,
103
- computed: {
104
- axisHostWidth,
105
- totalWidth,
106
- },
107
- actions: {
108
- bumpDataVersion,
109
- bumpDrawingVersion,
110
- setDataLength,
111
- setViewportDpr,
112
- setViewWidth,
113
- setZoomState,
114
- setPaneRatios,
115
- setDrawings,
116
- setSelectedDrawingId,
117
- },
118
- }
119
- }
120
-
121
- export type ChartStore = ReturnType<typeof createChartStore>