@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.
- package/README.md +8 -8
- package/README.zh-CN.md +8 -8
- package/dist/config/chartSettings.d.ts +27 -2
- package/dist/config/chartSettings.d.ts.map +1 -1
- package/dist/config/chartSettings.js +6 -0
- package/dist/config/chartSettings.js.map +1 -1
- package/dist/controllers/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +145 -21
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/index.d.ts +9 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +9 -0
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/types.d.ts +65 -8
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/engine/chart.d.ts +2 -12
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +32 -31
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/controller/interaction.d.ts +1 -1
- package/dist/engine/controller/interaction.d.ts.map +1 -1
- package/dist/engine/controller/interaction.js +10 -2
- package/dist/engine/controller/interaction.js.map +1 -1
- package/dist/engine/draw/pixelAlign.d.ts.map +1 -1
- package/dist/engine/draw/pixelAlign.js.map +1 -1
- package/dist/engine/drawing/interaction.d.ts +3 -3
- package/dist/engine/drawing/interaction.d.ts.map +1 -1
- package/dist/engine/drawing/interaction.js +38 -46
- package/dist/engine/drawing/interaction.js.map +1 -1
- package/dist/engine/drawing/plugin.js +1 -1
- package/dist/engine/drawing/plugin.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +7 -4
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +12 -12
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts +1 -2
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +9 -9
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +12 -12
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +6 -6
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts +1 -2
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +7 -7
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts +1 -2
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +10 -10
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +5 -5
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts +1 -2
- package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +24 -24
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/macdLegend.js +6 -6
- package/dist/engine/renderers/Indicator/macdLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +16 -16
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts +1 -2
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +8 -8
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts +2 -3
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +15 -15
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts +1 -2
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js +5 -5
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.d.ts +1 -2
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +10 -10
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +5 -5
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts +1 -2
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +10 -10
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +6 -6
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts +1 -1
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +21 -21
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/crosshair.js +3 -3
- package/dist/engine/renderers/crosshair.js.map +1 -1
- package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
- package/dist/engine/renderers/extremaMarkers.js +12 -12
- package/dist/engine/renderers/extremaMarkers.js.map +1 -1
- package/dist/engine/renderers/gridLines.js +3 -3
- package/dist/engine/renderers/gridLines.js.map +1 -1
- package/dist/engine/renderers/lastPrice.js +7 -7
- package/dist/engine/renderers/lastPrice.js.map +1 -1
- package/dist/engine/renderers/paneTitle.d.ts +5 -24
- package/dist/engine/renderers/paneTitle.d.ts.map +1 -1
- package/dist/engine/renderers/paneTitle.js +16 -11
- package/dist/engine/renderers/paneTitle.js.map +1 -1
- package/dist/engine/renderers/subVolume.d.ts.map +1 -1
- package/dist/engine/renderers/subVolume.js +23 -20
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/renderers/timeAxis.js +9 -9
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.d.ts +4 -4
- package/dist/engine/renderers/webgl/candleSurface.d.ts.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.js +72 -60
- package/dist/engine/renderers/webgl/candleSurface.js.map +1 -1
- package/dist/engine/renderers/yAxis.d.ts.map +1 -1
- package/dist/engine/renderers/yAxis.js +5 -5
- package/dist/engine/renderers/yAxis.js.map +1 -1
- package/dist/engine/subPaneManager.d.ts +2 -0
- package/dist/engine/subPaneManager.d.ts.map +1 -1
- package/dist/engine/subPaneManager.js +25 -1
- package/dist/engine/subPaneManager.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/types.d.ts +5 -1
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/semantic/controller.d.ts +1 -2
- package/dist/semantic/controller.d.ts.map +1 -1
- package/dist/semantic/index.d.ts +1 -1
- package/dist/semantic/index.d.ts.map +1 -1
- package/dist/tokens/colorPresetSettings.d.ts +15 -0
- package/dist/tokens/colorPresetSettings.d.ts.map +1 -0
- package/dist/tokens/colorPresetSettings.js +65 -0
- package/dist/tokens/colorPresetSettings.js.map +1 -0
- package/dist/tokens/index.d.ts +17 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +16 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/mergeTheme.d.ts +17 -0
- package/dist/tokens/mergeTheme.d.ts.map +1 -0
- package/dist/tokens/mergeTheme.js +43 -0
- package/dist/tokens/mergeTheme.js.map +1 -0
- package/dist/tokens/theme-china.d.ts +45 -0
- package/dist/tokens/theme-china.d.ts.map +1 -0
- package/dist/tokens/theme-china.js +116 -0
- package/dist/tokens/theme-china.js.map +1 -0
- package/dist/tokens/theme-dark.d.ts +21 -0
- package/dist/tokens/theme-dark.d.ts.map +1 -0
- package/dist/tokens/theme-dark.js +228 -0
- package/dist/tokens/theme-dark.js.map +1 -0
- package/dist/tokens/theme-light.d.ts +23 -0
- package/dist/tokens/theme-light.d.ts.map +1 -0
- package/dist/tokens/theme-light.js +234 -0
- package/dist/tokens/theme-light.js.map +1 -0
- package/dist/tokens/themeToCssVars.d.ts +74 -0
- package/dist/tokens/themeToCssVars.d.ts.map +1 -0
- package/dist/tokens/themeToCssVars.js +108 -0
- package/dist/tokens/themeToCssVars.js.map +1 -0
- package/dist/tokens/types.d.ts +335 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.js +20 -0
- package/dist/tokens/types.js.map +1 -0
- package/dist/utils/kLineDraw/axis.d.ts +8 -7
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +24 -24
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -6
- package/src/config/chartSettings.ts +11 -2
- package/src/controllers/createChartController.ts +158 -29
- package/src/controllers/index.ts +33 -0
- package/src/controllers/types.ts +79 -8
- package/src/engine/chart.ts +32 -37
- package/src/engine/controller/interaction.ts +9 -2
- package/src/engine/draw/pixelAlign.ts +0 -2
- package/src/engine/drawing/interaction.ts +38 -47
- package/src/engine/drawing/plugin.ts +1 -1
- package/src/engine/renderers/Indicator/atr.ts +7 -3
- package/src/engine/renderers/Indicator/boll.ts +12 -12
- package/src/engine/renderers/Indicator/cci.ts +11 -10
- package/src/engine/renderers/Indicator/ene.ts +12 -12
- package/src/engine/renderers/Indicator/expma.ts +6 -6
- package/src/engine/renderers/Indicator/fastk.ts +9 -8
- package/src/engine/renderers/Indicator/kst.ts +12 -11
- package/src/engine/renderers/Indicator/ma.ts +5 -5
- package/src/engine/renderers/Indicator/macd.ts +27 -25
- package/src/engine/renderers/Indicator/macdLegend.ts +6 -6
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +16 -16
- package/src/engine/renderers/Indicator/mom.ts +11 -10
- package/src/engine/renderers/Indicator/rsi.ts +18 -15
- package/src/engine/renderers/Indicator/scale/indicator_scale.ts +6 -6
- package/src/engine/renderers/Indicator/stoch.ts +12 -11
- package/src/engine/renderers/Indicator/structure.ts +5 -5
- package/src/engine/renderers/Indicator/wmsr.ts +13 -12
- package/src/engine/renderers/Indicator/zones.ts +7 -7
- package/src/engine/renderers/candle.ts +21 -21
- package/src/engine/renderers/crosshair.ts +3 -3
- package/src/engine/renderers/extremaMarkers.ts +13 -12
- package/src/engine/renderers/gridLines.ts +3 -3
- package/src/engine/renderers/lastPrice.ts +7 -7
- package/src/engine/renderers/paneTitle.ts +22 -31
- package/src/engine/renderers/subVolume.ts +23 -20
- package/src/engine/renderers/timeAxis.ts +9 -9
- package/src/engine/renderers/webgl/candleSurface.ts +80 -60
- package/src/engine/renderers/yAxis.ts +6 -5
- package/src/engine/subPaneManager.ts +28 -1
- package/src/index.ts +1 -0
- package/src/plugin/types.ts +5 -1
- package/src/semantic/controller.ts +1 -1
- package/src/semantic/index.ts +1 -1
- package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +393 -0
- package/src/tokens/__tests__/baseline.test.ts +183 -0
- package/src/tokens/__tests__/themeToCssVars.test.ts +175 -0
- package/src/tokens/__tests__/tokens.test.ts +215 -0
- package/src/tokens/colorPresetSettings.ts +128 -0
- package/src/tokens/index.ts +65 -0
- package/src/tokens/mergeTheme.ts +48 -0
- package/src/tokens/theme-china.ts +132 -0
- package/src/tokens/theme-dark.ts +244 -0
- package/src/tokens/theme-light.ts +250 -0
- package/src/tokens/themeToCssVars.ts +138 -0
- package/src/tokens/types.ts +394 -0
- package/src/utils/kLineDraw/axis.ts +31 -30
- package/src/version.ts +1 -1
- package/dist/engine/chart-store.d.ts +0 -75
- package/dist/engine/chart-store.d.ts.map +0 -1
- package/dist/engine/chart-store.js +0 -88
- package/dist/engine/chart-store.js.map +0 -1
- package/dist/engine/theme/colors.d.ts +0 -223
- package/dist/engine/theme/colors.d.ts.map +0 -1
- package/dist/engine/theme/colors.js +0 -375
- package/dist/engine/theme/colors.js.map +0 -1
- package/src/engine/chart-store.ts +0 -121
- package/src/engine/theme/colors.ts +0 -642
|
@@ -2,7 +2,8 @@ import type { KLineData } from '../../types/price'
|
|
|
2
2
|
import { priceToY, yToPrice } from '../priceToY'
|
|
3
3
|
import { alignToPhysicalPixelCenter, roundToPhysicalPixel } from '../../engine/draw/pixelAlign'
|
|
4
4
|
import { formatYMDShanghai, formatMonthOrYear, findMonthBoundaries } from '../../utils/dateFormat'
|
|
5
|
-
import {
|
|
5
|
+
import { resolveThemeColors } from '../../tokens'
|
|
6
|
+
import type { ColorPresetSettings } from '../../tokens'
|
|
6
7
|
import { getFont, setCanvasFont } from '../../engine/theme/fonts'
|
|
7
8
|
|
|
8
9
|
const textWidthCache = new Map<string, number>()
|
|
@@ -46,8 +47,8 @@ export interface PriceAxisOptions {
|
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
/** 右侧价格轴(固定,不随 translate/scroll 变化) */
|
|
49
|
-
export function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOptions, theme: 'light' | 'dark' = 'light') {
|
|
50
|
-
const colors =
|
|
50
|
+
export function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
51
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
51
52
|
const {
|
|
52
53
|
x,
|
|
53
54
|
y,
|
|
@@ -57,9 +58,9 @@ export function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOpti
|
|
|
57
58
|
yPaddingPx = 0,
|
|
58
59
|
dpr,
|
|
59
60
|
ticks = 10,
|
|
60
|
-
bgColor = colors.
|
|
61
|
-
textColor = colors.
|
|
62
|
-
lineColor = colors.
|
|
61
|
+
bgColor = colors.tagBg.transparent,
|
|
62
|
+
textColor = colors.text.secondary,
|
|
63
|
+
lineColor = colors.border.dark,
|
|
63
64
|
fontSize = 16,
|
|
64
65
|
drawLeftBorder = true,
|
|
65
66
|
drawTickLines = true,
|
|
@@ -196,8 +197,8 @@ export interface CrosshairTimeLabelOptions {
|
|
|
196
197
|
paddingY?: number
|
|
197
198
|
}
|
|
198
199
|
|
|
199
|
-
export function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: CrosshairTimeLabelOptions, theme: 'light' | 'dark' = 'light') {
|
|
200
|
-
const colors =
|
|
200
|
+
export function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: CrosshairTimeLabelOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
201
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
201
202
|
const {
|
|
202
203
|
x,
|
|
203
204
|
y,
|
|
@@ -227,7 +228,7 @@ export function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: Cros
|
|
|
227
228
|
const rectX = centerX - rectW / 2
|
|
228
229
|
const rectY = y
|
|
229
230
|
|
|
230
|
-
ctx.fillStyle = colors.
|
|
231
|
+
ctx.fillStyle = colors.label.bg
|
|
231
232
|
ctx.fillRect(
|
|
232
233
|
roundToPhysicalPixel(rectX, dpr),
|
|
233
234
|
roundToPhysicalPixel(rectY, dpr),
|
|
@@ -235,14 +236,14 @@ export function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: Cros
|
|
|
235
236
|
roundToPhysicalPixel(rectH, dpr),
|
|
236
237
|
)
|
|
237
238
|
|
|
238
|
-
ctx.fillStyle = colors.
|
|
239
|
+
ctx.fillStyle = colors.label.text
|
|
239
240
|
ctx.fillText(text, roundToPhysicalPixel(centerX, dpr), alignToPhysicalPixelCenter(centerY, dpr))
|
|
240
241
|
|
|
241
242
|
ctx.restore()
|
|
242
243
|
}
|
|
243
244
|
|
|
244
|
-
export function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: CrosshairPriceLabelOptions, theme: 'light' | 'dark' = 'light') {
|
|
245
|
-
const colors =
|
|
245
|
+
export function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: CrosshairPriceLabelOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
246
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
246
247
|
const {
|
|
247
248
|
x,
|
|
248
249
|
y,
|
|
@@ -252,9 +253,9 @@ export function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: Cro
|
|
|
252
253
|
priceRange,
|
|
253
254
|
yPaddingPx = 0,
|
|
254
255
|
dpr,
|
|
255
|
-
bgColor = colors.
|
|
256
|
+
bgColor = colors.label.bg,
|
|
256
257
|
borderColor,
|
|
257
|
-
textColor = colors.
|
|
258
|
+
textColor = colors.label.text,
|
|
258
259
|
fontSize = 16,
|
|
259
260
|
priceOffset = 0,
|
|
260
261
|
price,
|
|
@@ -303,8 +304,8 @@ export function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: Cro
|
|
|
303
304
|
}
|
|
304
305
|
|
|
305
306
|
/** 绘制"最新价水平虚线"(画在 plotCanvas 的 world 坐标系:需在 translate(-scrollLeft,0) 之后调用) */
|
|
306
|
-
export function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: LastPriceLineOptions, theme: 'light' | 'dark' = 'light') {
|
|
307
|
-
const colors =
|
|
307
|
+
export function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: LastPriceLineOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
308
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
308
309
|
const {
|
|
309
310
|
plotWidth,
|
|
310
311
|
plotHeight,
|
|
@@ -317,7 +318,7 @@ export function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: Las
|
|
|
317
318
|
lastPrice,
|
|
318
319
|
yPaddingPx = 0,
|
|
319
320
|
dpr,
|
|
320
|
-
color = colors.
|
|
321
|
+
color = colors.crosshairLine,
|
|
321
322
|
} = opts
|
|
322
323
|
|
|
323
324
|
const { maxPrice, minPrice } = priceRange
|
|
@@ -344,8 +345,8 @@ export function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: Las
|
|
|
344
345
|
}
|
|
345
346
|
|
|
346
347
|
/** 底部时间轴(X方向随 scrollLeft 变化) */
|
|
347
|
-
export function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOptions, theme: 'light' | 'dark' = 'light') {
|
|
348
|
-
const colors =
|
|
348
|
+
export function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
349
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
349
350
|
const {
|
|
350
351
|
x,
|
|
351
352
|
y,
|
|
@@ -358,9 +359,9 @@ export function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOption
|
|
|
358
359
|
startIndex,
|
|
359
360
|
endIndex,
|
|
360
361
|
dpr,
|
|
361
|
-
bgColor = colors.
|
|
362
|
-
textColor = colors.
|
|
363
|
-
lineColor = colors.
|
|
362
|
+
bgColor = colors.tagBg.transparent,
|
|
363
|
+
textColor = colors.text.secondary,
|
|
364
|
+
lineColor = colors.border.dark,
|
|
364
365
|
fontSize = 12,
|
|
365
366
|
paddingX = 8,
|
|
366
367
|
drawTopBorder = true,
|
|
@@ -448,8 +449,8 @@ export interface AxisPriceLabelOptions {
|
|
|
448
449
|
fontSize?: number
|
|
449
450
|
}
|
|
450
451
|
|
|
451
|
-
export function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPriceLabelOptions, theme: 'light' | 'dark' = 'light') {
|
|
452
|
-
const colors =
|
|
452
|
+
export function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPriceLabelOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
453
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
453
454
|
const {
|
|
454
455
|
x,
|
|
455
456
|
y,
|
|
@@ -458,9 +459,9 @@ export function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPric
|
|
|
458
459
|
priceY,
|
|
459
460
|
price,
|
|
460
461
|
dpr,
|
|
461
|
-
bgColor = colors.
|
|
462
|
+
bgColor = colors.label.bg,
|
|
462
463
|
borderColor,
|
|
463
|
-
textColor = colors.
|
|
464
|
+
textColor = colors.label.text,
|
|
464
465
|
fontSize = 12,
|
|
465
466
|
} = opts
|
|
466
467
|
|
|
@@ -516,8 +517,8 @@ export interface AxisTimeLabelOptions {
|
|
|
516
517
|
paddingX?: number
|
|
517
518
|
}
|
|
518
519
|
|
|
519
|
-
export function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeLabelOptions, theme: 'light' | 'dark' = 'light') {
|
|
520
|
-
const colors =
|
|
520
|
+
export function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeLabelOptions, theme: 'light' | 'dark' = 'light', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings) {
|
|
521
|
+
const colors = resolveThemeColors(theme, isAsiaMarket, colorPresetSettings)
|
|
521
522
|
const {
|
|
522
523
|
x,
|
|
523
524
|
y,
|
|
@@ -547,7 +548,7 @@ export function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeL
|
|
|
547
548
|
const rectX = centerX - rectW / 2
|
|
548
549
|
const rectY = y
|
|
549
550
|
|
|
550
|
-
ctx.fillStyle = opts.bgColor ?? colors.
|
|
551
|
+
ctx.fillStyle = opts.bgColor ?? colors.label.bg
|
|
551
552
|
ctx.fillRect(
|
|
552
553
|
roundToPhysicalPixel(rectX, dpr),
|
|
553
554
|
roundToPhysicalPixel(rectY, dpr),
|
|
@@ -555,7 +556,7 @@ export function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeL
|
|
|
555
556
|
roundToPhysicalPixel(rectH, dpr),
|
|
556
557
|
)
|
|
557
558
|
|
|
558
|
-
ctx.fillStyle = opts.textColor ?? colors.
|
|
559
|
+
ctx.fillStyle = opts.textColor ?? colors.label.text
|
|
559
560
|
ctx.fillText(text, roundToPhysicalPixel(centerX, dpr), alignToPhysicalPixelCenter(centerY, dpr))
|
|
560
561
|
|
|
561
562
|
ctx.restore()
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "0.7.
|
|
1
|
+
export const VERSION = "0.7.7"
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { type UnwrapNestedRefs } from 'vue';
|
|
2
|
-
import type { DrawingObject } from '../plugin';
|
|
3
|
-
/** 右侧空白绘制槽位数(逻辑 bar 数) */
|
|
4
|
-
export declare const TRAILING_DRAWING_SLOTS = 24;
|
|
5
|
-
export interface ChartStoreOptions {
|
|
6
|
-
initialZoomLevel: number;
|
|
7
|
-
minKWidth: number;
|
|
8
|
-
maxKWidth: number;
|
|
9
|
-
zoomLevels: number;
|
|
10
|
-
rightAxisWidth: number;
|
|
11
|
-
priceLabelWidth: number;
|
|
12
|
-
}
|
|
13
|
-
export declare function computeContentWidth(params: {
|
|
14
|
-
dataLength: number;
|
|
15
|
-
kWidth: number;
|
|
16
|
-
kGap: number;
|
|
17
|
-
viewWidth: number;
|
|
18
|
-
viewportDpr: number;
|
|
19
|
-
}): number;
|
|
20
|
-
export declare function createChartStore(opts: ChartStoreOptions): {
|
|
21
|
-
state: UnwrapNestedRefs<{
|
|
22
|
-
zoomLevel: number;
|
|
23
|
-
kWidth: number;
|
|
24
|
-
kGap: number;
|
|
25
|
-
viewportDpr: number;
|
|
26
|
-
dataLength: number;
|
|
27
|
-
dataVersion: number;
|
|
28
|
-
paneRatios: Record<string, number>;
|
|
29
|
-
drawings: {
|
|
30
|
-
id: string;
|
|
31
|
-
kind: import("./drawing").DrawingKind;
|
|
32
|
-
paneId: string;
|
|
33
|
-
visible: boolean;
|
|
34
|
-
locked?: boolean | undefined;
|
|
35
|
-
zIndex?: number | undefined;
|
|
36
|
-
anchors: {
|
|
37
|
-
id: string;
|
|
38
|
-
index: number;
|
|
39
|
-
time?: number | string | undefined;
|
|
40
|
-
price: number;
|
|
41
|
-
}[];
|
|
42
|
-
params: Record<string, unknown>;
|
|
43
|
-
style: {
|
|
44
|
-
stroke?: string | undefined;
|
|
45
|
-
strokeWidth?: number | undefined;
|
|
46
|
-
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
47
|
-
fill?: string | undefined;
|
|
48
|
-
fillOpacity?: number | undefined;
|
|
49
|
-
pointRadius?: number | undefined;
|
|
50
|
-
textColor?: string | undefined;
|
|
51
|
-
fontSize?: number | undefined;
|
|
52
|
-
};
|
|
53
|
-
}[];
|
|
54
|
-
selectedDrawingId: string | null;
|
|
55
|
-
drawingVersion: number;
|
|
56
|
-
viewWidth: number;
|
|
57
|
-
}>;
|
|
58
|
-
computed: {
|
|
59
|
-
axisHostWidth: import("vue").ComputedRef<number>;
|
|
60
|
-
totalWidth: import("vue").ComputedRef<number>;
|
|
61
|
-
};
|
|
62
|
-
actions: {
|
|
63
|
-
bumpDataVersion: () => void;
|
|
64
|
-
bumpDrawingVersion: () => void;
|
|
65
|
-
setDataLength: (length: number) => void;
|
|
66
|
-
setViewportDpr: (dpr: number) => void;
|
|
67
|
-
setViewWidth: (width: number) => void;
|
|
68
|
-
setZoomState: (level: number, newKWidth: number, newKGap: number) => void;
|
|
69
|
-
setPaneRatios: (ratios: Record<string, number>) => void;
|
|
70
|
-
setDrawings: (newDrawings: DrawingObject[]) => void;
|
|
71
|
-
setSelectedDrawingId: (id: string | null) => void;
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
export type ChartStore = ReturnType<typeof createChartStore>;
|
|
75
|
-
//# sourceMappingURL=chart-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-store.d.ts","sourceRoot":"","sources":["../../src/engine/chart-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,0BAA0B;AAC1B,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,MAAM,CAMT;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB;WAuEpC,gBAAgB;;;;;;;oBA/Dd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;2BAEb,MAAM,GAAG,IAAI;;;MA6DM;;;;;;;;gCAnCjB,MAAM;8BAIR,MAAM;8BAIN,MAAM;8BAIN,MAAM,aAAa,MAAM,WAAW,MAAM;gCAMxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mCAInB,aAAa,EAAE;mCAQf,MAAM,GAAG,IAAI;;EAsBhD;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { reactive, computed } from 'vue';
|
|
2
|
-
import { getPhysicalKLineConfig } from './utils/klineConfig';
|
|
3
|
-
/** 右侧空白绘制槽位数(逻辑 bar 数) */
|
|
4
|
-
export const TRAILING_DRAWING_SLOTS = 24;
|
|
5
|
-
export function computeContentWidth(params) {
|
|
6
|
-
const { dataLength, kWidth, kGap, viewWidth, viewportDpr } = params;
|
|
7
|
-
if (dataLength === 0)
|
|
8
|
-
return 0;
|
|
9
|
-
const { startXPx, unitPx } = getPhysicalKLineConfig(kWidth, kGap, viewportDpr);
|
|
10
|
-
const dataPlotWidth = (startXPx + (dataLength + TRAILING_DRAWING_SLOTS) * unitPx) / viewportDpr;
|
|
11
|
-
return Math.max(dataPlotWidth, viewWidth);
|
|
12
|
-
}
|
|
13
|
-
export function createChartStore(opts) {
|
|
14
|
-
const state = reactive({
|
|
15
|
-
zoomLevel: opts.initialZoomLevel,
|
|
16
|
-
kWidth: 0,
|
|
17
|
-
kGap: 1,
|
|
18
|
-
viewportDpr: 1,
|
|
19
|
-
dataLength: 0,
|
|
20
|
-
dataVersion: 0,
|
|
21
|
-
paneRatios: {},
|
|
22
|
-
drawings: [],
|
|
23
|
-
selectedDrawingId: null,
|
|
24
|
-
drawingVersion: 0,
|
|
25
|
-
viewWidth: 0,
|
|
26
|
-
});
|
|
27
|
-
// 右侧轴宽度
|
|
28
|
-
const axisHostWidth = computed(() => opts.rightAxisWidth + opts.priceLabelWidth);
|
|
29
|
-
const totalWidth = computed(() => computeContentWidth({
|
|
30
|
-
dataLength: state.dataLength,
|
|
31
|
-
kWidth: state.kWidth,
|
|
32
|
-
kGap: state.kGap,
|
|
33
|
-
viewWidth: state.viewWidth,
|
|
34
|
-
viewportDpr: state.viewportDpr,
|
|
35
|
-
}));
|
|
36
|
-
function bumpDataVersion() {
|
|
37
|
-
state.dataVersion++;
|
|
38
|
-
}
|
|
39
|
-
function bumpDrawingVersion() {
|
|
40
|
-
state.drawingVersion++;
|
|
41
|
-
}
|
|
42
|
-
function setDataLength(length) {
|
|
43
|
-
state.dataLength = length;
|
|
44
|
-
}
|
|
45
|
-
function setViewportDpr(dpr) {
|
|
46
|
-
state.viewportDpr = dpr;
|
|
47
|
-
}
|
|
48
|
-
function setViewWidth(width) {
|
|
49
|
-
state.viewWidth = width;
|
|
50
|
-
}
|
|
51
|
-
function setZoomState(level, newKWidth, newKGap) {
|
|
52
|
-
state.zoomLevel = level;
|
|
53
|
-
state.kWidth = newKWidth;
|
|
54
|
-
state.kGap = newKGap;
|
|
55
|
-
}
|
|
56
|
-
function setPaneRatios(ratios) {
|
|
57
|
-
state.paneRatios = ratios;
|
|
58
|
-
}
|
|
59
|
-
function setDrawings(newDrawings) {
|
|
60
|
-
state.drawings = newDrawings;
|
|
61
|
-
if (state.selectedDrawingId && !newDrawings.some((d) => d.id === state.selectedDrawingId)) {
|
|
62
|
-
state.selectedDrawingId = null;
|
|
63
|
-
}
|
|
64
|
-
state.drawingVersion++;
|
|
65
|
-
}
|
|
66
|
-
function setSelectedDrawingId(id) {
|
|
67
|
-
state.selectedDrawingId = id;
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
state: state,
|
|
71
|
-
computed: {
|
|
72
|
-
axisHostWidth,
|
|
73
|
-
totalWidth,
|
|
74
|
-
},
|
|
75
|
-
actions: {
|
|
76
|
-
bumpDataVersion,
|
|
77
|
-
bumpDrawingVersion,
|
|
78
|
-
setDataLength,
|
|
79
|
-
setViewportDpr,
|
|
80
|
-
setViewWidth,
|
|
81
|
-
setZoomState,
|
|
82
|
-
setPaneRatios,
|
|
83
|
-
setDrawings,
|
|
84
|
-
setSelectedDrawingId,
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=chart-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chart-store.js","sourceRoot":"","sources":["../../src/engine/chart-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
/**
|
|
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
|
-
* 日志颜色(与主题无关,保留常量导出)
|
|
201
|
-
*/
|
|
202
|
-
export declare const LOG_COLORS: {
|
|
203
|
-
readonly INFO: "background:#164586;color:#fff;";
|
|
204
|
-
readonly SUCCESS: "background:#389e0d;color:#fff;";
|
|
205
|
-
readonly WARN: "background:#d46b08;color:#fff;";
|
|
206
|
-
readonly ERROR: "background:#cf1322;color:#fff;";
|
|
207
|
-
readonly CONSOLE: "#666";
|
|
208
|
-
};
|
|
209
|
-
/**
|
|
210
|
-
* 工具函数:根据涨跌返回颜色
|
|
211
|
-
* @param type - 涨跌类型
|
|
212
|
-
* @param theme - 主题类型
|
|
213
|
-
* @returns 对应颜色
|
|
214
|
-
*/
|
|
215
|
-
export declare function getPriceColor(type: 'up' | 'down' | 'neutral', theme?: ChartTheme): string;
|
|
216
|
-
/**
|
|
217
|
-
* 工具函数:根据涨跌百分比返回颜色
|
|
218
|
-
* @param changePercent - 涨跌百分比
|
|
219
|
-
* @param theme - 主题类型
|
|
220
|
-
* @returns 对应颜色
|
|
221
|
-
*/
|
|
222
|
-
export declare function getTickColor(changePercent: number, theme?: ChartTheme): string;
|
|
223
|
-
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/engine/theme/colors.ts"],"names":[],"mappings":"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"}
|