@363045841yyt/klinechart-core 0.9.0-alpha.3 → 0.9.0-alpha.4
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/dist/controllers/index.d.ts +1 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/data/timeShareBuffer.d.ts +3 -0
- package/dist/data/timeShareBuffer.d.ts.map +1 -1
- package/dist/data/timeShareBuffer.js +13 -0
- package/dist/data/timeShareBuffer.js.map +1 -1
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +18 -5
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/data/chartDataManager.d.ts +2 -0
- package/dist/engine/data/chartDataManager.d.ts.map +1 -1
- package/dist/engine/data/chartDataManager.js +9 -0
- package/dist/engine/data/chartDataManager.js.map +1 -1
- package/dist/engine/modes/timeShareMath.d.ts +56 -0
- package/dist/engine/modes/timeShareMath.d.ts.map +1 -0
- package/dist/engine/modes/timeShareMath.js +90 -0
- package/dist/engine/modes/timeShareMath.js.map +1 -0
- package/dist/engine/modes/timeShareMode.d.ts +5 -0
- package/dist/engine/modes/timeShareMode.d.ts.map +1 -1
- package/dist/engine/modes/timeShareMode.js +27 -27
- package/dist/engine/modes/timeShareMode.js.map +1 -1
- package/dist/engine/render/chartRenderer.d.ts.map +1 -1
- package/dist/engine/render/chartRenderer.js +27 -17
- package/dist/engine/render/chartRenderer.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +2 -2
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts +4 -3
- package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js +13 -8
- package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js.map +1 -1
- package/dist/engine/renderers/timeShare.d.ts.map +1 -1
- package/dist/engine/renderers/timeShare.js +20 -9
- package/dist/engine/renderers/timeShare.js.map +1 -1
- package/dist/foundation/config/chartSettings.d.ts +0 -5
- package/dist/foundation/config/chartSettings.d.ts.map +1 -1
- package/dist/foundation/config/chartSettings.js +14 -0
- package/dist/foundation/config/chartSettings.js.map +1 -1
- package/dist/foundation/utils/kLineDraw/axis.d.ts +3 -0
- package/dist/foundation/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/foundation/utils/kLineDraw/axis.js +40 -9
- package/dist/foundation/utils/kLineDraw/axis.js.map +1 -1
- package/dist/foundation/utils/sessionTimeLabels.d.ts +59 -0
- package/dist/foundation/utils/sessionTimeLabels.d.ts.map +1 -0
- package/dist/foundation/utils/sessionTimeLabels.js +170 -0
- package/dist/foundation/utils/sessionTimeLabels.js.map +1 -0
- package/dist/foundation/utils/timeShareAxisLabels.d.ts +27 -0
- package/dist/foundation/utils/timeShareAxisLabels.d.ts.map +1 -0
- package/dist/foundation/utils/timeShareAxisLabels.js +45 -0
- package/dist/foundation/utils/timeShareAxisLabels.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/controllers/index.ts +1 -1
- package/src/data/__tests__/timeShareBuffer.test.ts +45 -0
- package/src/data/timeShareBuffer.ts +15 -0
- package/src/engine/__tests__/chart.dpr.test.ts +28 -0
- package/src/engine/chart.ts +29 -6
- package/src/engine/data/chartDataManager.ts +10 -0
- package/src/engine/modes/__tests__/timeShareMath.test.ts +185 -0
- package/src/engine/modes/__tests__/timeShareMode.test.ts +81 -0
- package/src/engine/modes/timeShareMath.ts +150 -0
- package/src/engine/modes/timeShareMode.ts +35 -28
- package/src/engine/render/chartRenderer.ts +29 -18
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +2 -2
- package/src/engine/renderers/Indicator/mainIndicatorLegendContext.ts +19 -11
- package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +4 -4
- package/src/engine/renderers/timeShare.ts +25 -9
- package/src/engine/state/__tests__/settingsState.test.ts +9 -0
- package/src/foundation/config/chartSettings.ts +13 -0
- package/src/foundation/utils/__tests__/sessionTimeLabels.test.ts +91 -0
- package/src/foundation/utils/kLineDraw/axis.ts +50 -9
- package/src/foundation/utils/sessionTimeLabels.ts +237 -0
- package/src/foundation/utils/timeShareAxisLabels.ts +94 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ASHARE_MARKET_SESSION,
|
|
3
|
+
ASHARE_OPEN_SESSIONS,
|
|
4
|
+
computeSessionTimeLabels,
|
|
5
|
+
countSessionSlots,
|
|
6
|
+
minuteOfDayToTimestamp,
|
|
7
|
+
resolveMarketSessionSlots,
|
|
8
|
+
sessionSlotCenterX,
|
|
9
|
+
type MarketSessionConfig,
|
|
10
|
+
type SessionTimeLabel,
|
|
11
|
+
} from './sessionTimeLabels'
|
|
12
|
+
|
|
13
|
+
/** A 股默认全天 1 分钟槽位数(兼容旧导出) */
|
|
14
|
+
export const ASHARE_TIMESHARE_SESSION_SLOTS = resolveMarketSessionSlots(ASHARE_MARKET_SESSION)
|
|
15
|
+
|
|
16
|
+
/** 分时时间标签最小水平间距(逻辑像素) */
|
|
17
|
+
export const TIMESHARE_MIN_LABEL_SPACING_PX = 56
|
|
18
|
+
|
|
19
|
+
export type TimeShareTimeLabelInput = {
|
|
20
|
+
axisWidth: number
|
|
21
|
+
/** 市场 session;默认 A 股 */
|
|
22
|
+
marketSession?: MarketSessionConfig
|
|
23
|
+
minLabelSpacingPx?: number
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 分时时间标签索引(委托 computeSessionTimeLabels)。
|
|
28
|
+
* 默认 A 股;传入 marketSession 可换港股/美股等。
|
|
29
|
+
*/
|
|
30
|
+
export function computeTimeShareTimeLabelIndices(input: TimeShareTimeLabelInput): number[] {
|
|
31
|
+
return computeTimeShareTimeLabels(input).map((l) => l.slotIndex)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** 完整标签(含 minuteOfDay / isEndpoint) */
|
|
35
|
+
export function computeTimeShareTimeLabels(input: TimeShareTimeLabelInput): SessionTimeLabel[] {
|
|
36
|
+
const market = input.marketSession ?? ASHARE_MARKET_SESSION
|
|
37
|
+
return computeSessionTimeLabels(market.sessions, {
|
|
38
|
+
axisWidth: input.axisWidth,
|
|
39
|
+
minLabelSpacingPx: input.minLabelSpacingPx ?? TIMESHARE_MIN_LABEL_SPACING_PX,
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function timeShareSlotCenterX(
|
|
44
|
+
slotIndex: number,
|
|
45
|
+
axisWidth: number,
|
|
46
|
+
sessionSlots: number,
|
|
47
|
+
dpr: number,
|
|
48
|
+
): number {
|
|
49
|
+
return sessionSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 由开盘日基准时间戳 + slot 索引推算标签时间(按 market session)。
|
|
54
|
+
*/
|
|
55
|
+
export function resolveTimeShareSlotTimestamp(
|
|
56
|
+
baseTimestamp: number,
|
|
57
|
+
slotIndex: number,
|
|
58
|
+
marketSession: MarketSessionConfig = ASHARE_MARKET_SESSION,
|
|
59
|
+
): number {
|
|
60
|
+
const step = marketSession.slotMinutes && marketSession.slotMinutes > 0 ? marketSession.slotMinutes : 1
|
|
61
|
+
let remaining = slotIndex * step
|
|
62
|
+
for (const range of marketSession.sessions) {
|
|
63
|
+
const len = range.close - range.open
|
|
64
|
+
if (remaining < len) {
|
|
65
|
+
return minuteOfDayToTimestamp(
|
|
66
|
+
baseTimestamp,
|
|
67
|
+
range.open + remaining,
|
|
68
|
+
marketSession.timeZone,
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
remaining -= len
|
|
72
|
+
}
|
|
73
|
+
const last = marketSession.sessions[marketSession.sessions.length - 1]
|
|
74
|
+
if (last) {
|
|
75
|
+
return minuteOfDayToTimestamp(baseTimestamp, last.close, marketSession.timeZone)
|
|
76
|
+
}
|
|
77
|
+
return baseTimestamp
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export {
|
|
81
|
+
ASHARE_MARKET_SESSION,
|
|
82
|
+
ASHARE_OPEN_SESSIONS,
|
|
83
|
+
computeSessionTimeLabels,
|
|
84
|
+
countSessionSlots,
|
|
85
|
+
minuteOfDayToTimestamp,
|
|
86
|
+
resolveMarketSessionSlots,
|
|
87
|
+
sessionSlotCenterX,
|
|
88
|
+
}
|
|
89
|
+
export type {
|
|
90
|
+
MarketSessionConfig,
|
|
91
|
+
OpenTimeRange,
|
|
92
|
+
SessionTimeLabel,
|
|
93
|
+
} from './sessionTimeLabels'
|
|
94
|
+
export { HK_MARKET_SESSION, US_MARKET_SESSION } from './sessionTimeLabels'
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.9.0-alpha.
|
|
1
|
+
export const VERSION = '0.9.0-alpha.4'
|