@363045841yyt/klinechart-core 0.9.0-alpha.3 → 0.9.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/controllers/index.d.ts +1 -1
  2. package/dist/controllers/index.d.ts.map +1 -1
  3. package/dist/data/timeShareBuffer.d.ts +3 -0
  4. package/dist/data/timeShareBuffer.d.ts.map +1 -1
  5. package/dist/data/timeShareBuffer.js +13 -0
  6. package/dist/data/timeShareBuffer.js.map +1 -1
  7. package/dist/engine/chart.d.ts.map +1 -1
  8. package/dist/engine/chart.js +18 -5
  9. package/dist/engine/chart.js.map +1 -1
  10. package/dist/engine/data/chartDataManager.d.ts +2 -0
  11. package/dist/engine/data/chartDataManager.d.ts.map +1 -1
  12. package/dist/engine/data/chartDataManager.js +9 -0
  13. package/dist/engine/data/chartDataManager.js.map +1 -1
  14. package/dist/engine/modes/timeShareMath.d.ts +56 -0
  15. package/dist/engine/modes/timeShareMath.d.ts.map +1 -0
  16. package/dist/engine/modes/timeShareMath.js +90 -0
  17. package/dist/engine/modes/timeShareMath.js.map +1 -0
  18. package/dist/engine/modes/timeShareMode.d.ts +5 -0
  19. package/dist/engine/modes/timeShareMode.d.ts.map +1 -1
  20. package/dist/engine/modes/timeShareMode.js +27 -27
  21. package/dist/engine/modes/timeShareMode.js.map +1 -1
  22. package/dist/engine/render/chartRenderer.d.ts.map +1 -1
  23. package/dist/engine/render/chartRenderer.js +27 -17
  24. package/dist/engine/render/chartRenderer.js.map +1 -1
  25. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +2 -2
  26. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  27. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts +4 -3
  28. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts.map +1 -1
  29. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js +13 -8
  30. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js.map +1 -1
  31. package/dist/engine/renderers/timeShare.d.ts.map +1 -1
  32. package/dist/engine/renderers/timeShare.js +20 -9
  33. package/dist/engine/renderers/timeShare.js.map +1 -1
  34. package/dist/foundation/config/chartSettings.d.ts +18 -5
  35. package/dist/foundation/config/chartSettings.d.ts.map +1 -1
  36. package/dist/foundation/config/chartSettings.js +51 -0
  37. package/dist/foundation/config/chartSettings.js.map +1 -1
  38. package/dist/foundation/utils/kLineDraw/axis.d.ts +3 -0
  39. package/dist/foundation/utils/kLineDraw/axis.d.ts.map +1 -1
  40. package/dist/foundation/utils/kLineDraw/axis.js +40 -9
  41. package/dist/foundation/utils/kLineDraw/axis.js.map +1 -1
  42. package/dist/foundation/utils/sessionTimeLabels.d.ts +59 -0
  43. package/dist/foundation/utils/sessionTimeLabels.d.ts.map +1 -0
  44. package/dist/foundation/utils/sessionTimeLabels.js +170 -0
  45. package/dist/foundation/utils/sessionTimeLabels.js.map +1 -0
  46. package/dist/foundation/utils/timeShareAxisLabels.d.ts +27 -0
  47. package/dist/foundation/utils/timeShareAxisLabels.d.ts.map +1 -0
  48. package/dist/foundation/utils/timeShareAxisLabels.js +45 -0
  49. package/dist/foundation/utils/timeShareAxisLabels.js.map +1 -0
  50. package/dist/version.d.ts +1 -1
  51. package/dist/version.js +1 -1
  52. package/package.json +1 -1
  53. package/src/controllers/index.ts +1 -1
  54. package/src/data/__tests__/timeShareBuffer.test.ts +45 -0
  55. package/src/data/timeShareBuffer.ts +15 -0
  56. package/src/engine/__tests__/chart.dpr.test.ts +28 -0
  57. package/src/engine/chart.ts +29 -6
  58. package/src/engine/data/chartDataManager.ts +10 -0
  59. package/src/engine/modes/__tests__/timeShareMath.test.ts +185 -0
  60. package/src/engine/modes/__tests__/timeShareMode.test.ts +81 -0
  61. package/src/engine/modes/timeShareMath.ts +150 -0
  62. package/src/engine/modes/timeShareMode.ts +35 -28
  63. package/src/engine/render/chartRenderer.ts +29 -18
  64. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +2 -2
  65. package/src/engine/renderers/Indicator/mainIndicatorLegendContext.ts +19 -11
  66. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +4 -4
  67. package/src/engine/renderers/timeShare.ts +25 -9
  68. package/src/engine/state/__tests__/settingsState.test.ts +9 -0
  69. package/src/foundation/config/__tests__/chartSettings.test.ts +68 -1
  70. package/src/foundation/config/chartSettings.ts +56 -0
  71. package/src/foundation/utils/__tests__/sessionTimeLabels.test.ts +91 -0
  72. package/src/foundation/utils/kLineDraw/axis.ts +50 -9
  73. package/src/foundation/utils/sessionTimeLabels.ts +237 -0
  74. package/src/foundation/utils/timeShareAxisLabels.ts +94 -0
  75. package/src/version.ts +1 -1
@@ -1,5 +1,6 @@
1
1
  import type { ColorPresetSettings } from '../../tokens';
2
2
  import type { KLineData } from '../../types/price';
3
+ import { type MarketSessionConfig } from '../timeShareAxisLabels';
3
4
  export interface TimeAxisOptions {
4
5
  x: number;
5
6
  y: number;
@@ -35,6 +36,8 @@ export interface TimeAxisOptions {
35
36
  monthKeys?: Int32Array;
36
37
  /** 预计算的日期键值数组(year*366+dayOfYear),与 data 长度一致 */
37
38
  dayKeys?: Int32Array;
39
+ /** 分时市场 session;默认 A 股 */
40
+ marketSession?: MarketSessionConfig;
38
41
  }
39
42
  export interface LastPriceLineOptions {
40
43
  /** 绘图区宽度(逻辑像素) */
@@ -1 +1 @@
1
- {"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../../../../src/foundation/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../../../../src/foundation/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { getFont, setCanvasFont } from '../../tokens/fonts';
3
3
  import { resolveThemeColors } from '../../tokens';
4
4
  import { formatYMDShanghai, formatTimeLabel, formatMonthOrYear, formatDay, findMonthBoundaries, findDayBoundaries, } from '../dateFormat';
5
5
  import { priceToY, yToPrice } from '../priceToY';
6
+ import { ASHARE_MARKET_SESSION, computeTimeShareTimeLabels, minuteOfDayToTimestamp, resolveMarketSessionSlots, timeShareSlotCenterX, } from '../timeShareAxisLabels';
6
7
  const textWidthCache = new Map();
7
8
  const TEXT_WIDTH_CACHE_LIMIT = 512;
8
9
  function measureTextWidth(ctx, text) {
@@ -128,17 +129,47 @@ export function drawTimeAxis(ctx, opts, theme = 'light', isAsiaMarket, colorPres
128
129
  let boundaries;
129
130
  let labelFn;
130
131
  if (isTimeShare) {
131
- const visibleCount = endIndex - startIndex;
132
- const maxLabels = Math.max(2, Math.min(8, Math.floor(visibleCount / 2) || 1));
133
- const step = Math.max(1, Math.floor(visibleCount / maxLabels));
134
- boundaries = [];
135
- for (let i = 0; i <= maxLabels; i++) {
136
- const idx = startIndex + Math.min(i * step, Math.max(0, visibleCount - 1));
137
- boundaries.push(idx);
132
+ // 只画各区间闭侧端点;全天首/末槽贴边 left/right 对齐
133
+ const market = opts.marketSession ?? ASHARE_MARKET_SESSION;
134
+ const sessionSlots = resolveMarketSessionSlots(market);
135
+ const labels = computeTimeShareTimeLabels({
136
+ axisWidth: width,
137
+ marketSession: market,
138
+ minLabelSpacingPx: 56,
139
+ });
140
+ const baseTs = data[0]?.timestamp ?? Date.now();
141
+ setCanvasFont(ctx, regularFont);
142
+ ctx.textBaseline = 'middle';
143
+ const edgePad = 2;
144
+ const lastSlot = Math.max(0, sessionSlots - 1);
145
+ for (const label of labels) {
146
+ const ts = minuteOfDayToTimestamp(baseTs, label.minuteOfDay, market.timeZone);
147
+ const text = formatTimeLabel(ts);
148
+ const isDayStart = label.slotIndex === 0;
149
+ const isDayEnd = label.slotIndex === lastSlot;
150
+ let align = 'center';
151
+ let drawX;
152
+ if (isDayStart) {
153
+ align = 'left';
154
+ drawX = x + edgePad;
155
+ }
156
+ else if (isDayEnd) {
157
+ align = 'right';
158
+ drawX = x + width - edgePad;
159
+ }
160
+ else {
161
+ const centerX = timeShareSlotCenterX(label.slotIndex, width, sessionSlots, dpr);
162
+ drawX = centerX - scrollLeft;
163
+ if (drawX < edgePad || drawX > width - edgePad)
164
+ continue;
165
+ }
166
+ ctx.textAlign = align;
167
+ ctx.fillText(text, roundToPhysicalPixel(drawX, dpr), alignToPhysicalPixelCenter(textY, dpr));
138
168
  }
139
- labelFn = (ts) => ({ text: formatTimeLabel(ts), isYear: false });
169
+ ctx.textAlign = 'center';
170
+ return;
140
171
  }
141
- else if (isMinuteData) {
172
+ if (isMinuteData) {
142
173
  boundaries = findDayBoundaries(data, opts.dayKeys);
143
174
  labelFn = formatDay;
144
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"axis.js","sourceRoot":"","sources":["../../../../src/foundation/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axis.js","sourceRoot":"","sources":["../../../../src/foundation/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * 开盘时段:minuteOfDay 为自 0 点起的分钟数(交易所本地墙钟)。
3
+ * sessions[0..n-2] 左闭右开 [open, close);sessions[n-1] 左闭右闭 [open, close]。
4
+ * 只打印闭侧端点:半开段不展示 close。
5
+ */
6
+ export type OpenTimeRange = {
7
+ open: number;
8
+ close: number;
9
+ };
10
+ /** 市场分时 session 配置(几何 / 标签共用) */
11
+ export type MarketSessionConfig = {
12
+ /** IANA 时区,如 Asia/Shanghai */
13
+ timeZone: string;
14
+ sessions: ReadonlyArray<OpenTimeRange>;
15
+ /** 每个 bar 槽对应的分钟数,默认 1 */
16
+ slotMinutes?: number;
17
+ };
18
+ export type SessionTimeLabel = {
19
+ /** 自 0 点起的分钟数(交易所墙钟) */
20
+ minuteOfDay: number;
21
+ /** 在展开后的槽序列中的索引(0-based) */
22
+ slotIndex: number;
23
+ /** 是否为闭侧端点 */
24
+ isEndpoint: boolean;
25
+ };
26
+ export type SessionTimeLabelOptions = {
27
+ axisWidth: number;
28
+ /** 保留字段,端点-only 模式下不参与密度计算 */
29
+ minLabelSpacingPx?: number;
30
+ };
31
+ /** A 股默认 */
32
+ export declare const ASHARE_OPEN_SESSIONS: readonly OpenTimeRange[];
33
+ export declare const ASHARE_MARKET_SESSION: MarketSessionConfig;
34
+ /** 港股 */
35
+ export declare const HK_MARKET_SESSION: MarketSessionConfig;
36
+ /** 美股(常规盘,无午休) */
37
+ export declare const US_MARKET_SESSION: MarketSessionConfig;
38
+ /**
39
+ * 只输出各区间闭侧端点。
40
+ * - 非末段 [open, close):仅 open
41
+ * - 末段 [open, close]:open 与 close
42
+ * close 标签映射到 close-1 槽(bar 序列为各段 [open, close))。
43
+ */
44
+ export declare function computeSessionTimeLabels(sessions: ReadonlyArray<OpenTimeRange>, options: SessionTimeLabelOptions): SessionTimeLabel[];
45
+ /** 槽总数(各段 [open, close) 分钟数之和;未除 slotMinutes) */
46
+ export declare function countSessionSlots(sessions: ReadonlyArray<OpenTimeRange>): number;
47
+ /**
48
+ * 全天 bar 槽数 = 分钟总和 / slotMinutes。
49
+ * sessions 为 SSOT,不因 arrivedCount 放大。
50
+ */
51
+ export declare function resolveMarketSessionSlots(config: MarketSessionConfig, _arrivedCount?: number): number;
52
+ /**
53
+ * 将交易所墙钟 minuteOfDay 转为 UTC 毫秒。
54
+ * baseTimestamp 用于确定「哪一天」(按 timeZone 日历日)。
55
+ */
56
+ export declare function minuteOfDayToTimestamp(baseTimestamp: number, minuteOfDay: number, timeZone?: string): number;
57
+ /** 槽中心 X */
58
+ export declare function sessionSlotCenterX(slotIndex: number, axisWidth: number, sessionSlots: number, dpr: number): number;
59
+ //# sourceMappingURL=sessionTimeLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTimeLabels.d.ts","sourceRoot":"","sources":["../../../src/foundation/utils/sessionTimeLabels.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,iCAAiC;AACjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtC,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc;IACd,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAMD,YAAY;AACZ,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAGxD,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,mBAInC,CAAA;AAED,SAAS;AACT,eAAO,MAAM,iBAAiB,EAAE,mBAO/B,CAAA;AAED,kBAAkB;AAClB,eAAO,MAAM,iBAAiB,EAAE,mBAI/B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,EACtC,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,EAAE,CAkCpB;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,MAAM,CAMhF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAwB,GACjC,MAAM,CAGR;AAED,YAAY;AACZ,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,MAAM,CAIR"}
@@ -0,0 +1,170 @@
1
+ function hm(h, m) {
2
+ return h * 60 + m;
3
+ }
4
+ /** A 股默认 */
5
+ export const ASHARE_OPEN_SESSIONS = [
6
+ { open: hm(9, 30), close: hm(11, 30) },
7
+ { open: hm(13, 0), close: hm(15, 0) },
8
+ ];
9
+ export const ASHARE_MARKET_SESSION = {
10
+ timeZone: 'Asia/Shanghai',
11
+ sessions: ASHARE_OPEN_SESSIONS,
12
+ slotMinutes: 1,
13
+ };
14
+ /** 港股 */
15
+ export const HK_MARKET_SESSION = {
16
+ timeZone: 'Asia/Hong_Kong',
17
+ sessions: [
18
+ { open: hm(9, 30), close: hm(12, 0) },
19
+ { open: hm(13, 0), close: hm(16, 0) },
20
+ ],
21
+ slotMinutes: 1,
22
+ };
23
+ /** 美股(常规盘,无午休) */
24
+ export const US_MARKET_SESSION = {
25
+ timeZone: 'America/New_York',
26
+ sessions: [{ open: hm(9, 30), close: hm(16, 0) }],
27
+ slotMinutes: 1,
28
+ };
29
+ /**
30
+ * 只输出各区间闭侧端点。
31
+ * - 非末段 [open, close):仅 open
32
+ * - 末段 [open, close]:open 与 close
33
+ * close 标签映射到 close-1 槽(bar 序列为各段 [open, close))。
34
+ */
35
+ export function computeSessionTimeLabels(sessions, options) {
36
+ if (!(options.axisWidth > 0) || sessions.length === 0)
37
+ return [];
38
+ const labels = [];
39
+ let slotOffset = 0;
40
+ for (let s = 0; s < sessions.length; s++) {
41
+ const range = sessions[s];
42
+ if (!(range.close > range.open))
43
+ continue;
44
+ const slotCount = range.close - range.open;
45
+ const isLast = s === sessions.length - 1;
46
+ labels.push({
47
+ minuteOfDay: range.open,
48
+ slotIndex: slotOffset,
49
+ isEndpoint: true,
50
+ });
51
+ if (isLast) {
52
+ labels.push({
53
+ minuteOfDay: range.close,
54
+ slotIndex: slotOffset + slotCount - 1,
55
+ isEndpoint: true,
56
+ });
57
+ }
58
+ slotOffset += slotCount;
59
+ }
60
+ const bySlot = new Map();
61
+ for (const label of labels) {
62
+ bySlot.set(label.slotIndex, label);
63
+ }
64
+ return [...bySlot.values()].sort((a, b) => a.slotIndex - b.slotIndex);
65
+ }
66
+ /** 槽总数(各段 [open, close) 分钟数之和;未除 slotMinutes) */
67
+ export function countSessionSlots(sessions) {
68
+ let n = 0;
69
+ for (const r of sessions) {
70
+ if (r.close > r.open)
71
+ n += r.close - r.open;
72
+ }
73
+ return n;
74
+ }
75
+ /**
76
+ * 全天 bar 槽数 = 分钟总和 / slotMinutes。
77
+ * sessions 为 SSOT,不因 arrivedCount 放大。
78
+ */
79
+ export function resolveMarketSessionSlots(config, _arrivedCount) {
80
+ const minutes = countSessionSlots(config.sessions);
81
+ const step = config.slotMinutes && config.slotMinutes > 0 ? config.slotMinutes : 1;
82
+ return Math.max(0, Math.floor(minutes / step));
83
+ }
84
+ /**
85
+ * 将交易所墙钟 minuteOfDay 转为 UTC 毫秒。
86
+ * baseTimestamp 用于确定「哪一天」(按 timeZone 日历日)。
87
+ */
88
+ export function minuteOfDayToTimestamp(baseTimestamp, minuteOfDay, timeZone = 'Asia/Shanghai') {
89
+ const { year, month, day } = getCalendarPartsInTimeZone(baseTimestamp, timeZone);
90
+ return zonedWallTimeToUtc(year, month, day, minuteOfDay, timeZone);
91
+ }
92
+ /** 槽中心 X */
93
+ export function sessionSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr) {
94
+ if (!(axisWidth > 0) || !(sessionSlots > 0))
95
+ return 0;
96
+ const step = axisWidth / sessionSlots;
97
+ return Math.round((slotIndex + 0.5) * step * dpr) / dpr;
98
+ }
99
+ // ── 时区工具(无第三方依赖,Intl) ──
100
+ function getCalendarPartsInTimeZone(timestamp, timeZone) {
101
+ const parts = new Intl.DateTimeFormat('en-US', {
102
+ timeZone,
103
+ year: 'numeric',
104
+ month: '2-digit',
105
+ day: '2-digit',
106
+ }).formatToParts(new Date(timestamp));
107
+ let year = 0;
108
+ let month = 1;
109
+ let day = 1;
110
+ for (const p of parts) {
111
+ if (p.type === 'year')
112
+ year = Number(p.value);
113
+ else if (p.type === 'month')
114
+ month = Number(p.value);
115
+ else if (p.type === 'day')
116
+ day = Number(p.value);
117
+ }
118
+ return { year, month, day };
119
+ }
120
+ /**
121
+ * 将某时区墙钟 (y-m-d + minuteOfDay) 转为 UTC epoch。
122
+ * 用迭代修正 UTC 猜测,覆盖 DST。
123
+ */
124
+ function zonedWallTimeToUtc(year, month, day, minuteOfDay, timeZone) {
125
+ const hour = Math.floor(minuteOfDay / 60);
126
+ const minute = minuteOfDay % 60;
127
+ // 初值:当作 UTC 墙钟
128
+ let utc = Date.UTC(year, month - 1, day, hour, minute, 0, 0);
129
+ for (let i = 0; i < 4; i++) {
130
+ const wall = getWallClockInTimeZone(utc, timeZone);
131
+ const desiredMin = hour * 60 + minute;
132
+ const actualMin = wall.hour * 60 + wall.minute;
133
+ const dayDelta = Date.UTC(year, month - 1, day) - Date.UTC(wall.year, wall.month - 1, wall.day);
134
+ const minDelta = desiredMin - actualMin + dayDelta / 60_000;
135
+ if (minDelta === 0)
136
+ break;
137
+ utc += minDelta * 60_000;
138
+ }
139
+ return utc;
140
+ }
141
+ function getWallClockInTimeZone(timestamp, timeZone) {
142
+ const parts = new Intl.DateTimeFormat('en-US', {
143
+ timeZone,
144
+ year: 'numeric',
145
+ month: '2-digit',
146
+ day: '2-digit',
147
+ hour: '2-digit',
148
+ minute: '2-digit',
149
+ hourCycle: 'h23',
150
+ }).formatToParts(new Date(timestamp));
151
+ let year = 0;
152
+ let month = 1;
153
+ let day = 1;
154
+ let hour = 0;
155
+ let minute = 0;
156
+ for (const p of parts) {
157
+ if (p.type === 'year')
158
+ year = Number(p.value);
159
+ else if (p.type === 'month')
160
+ month = Number(p.value);
161
+ else if (p.type === 'day')
162
+ day = Number(p.value);
163
+ else if (p.type === 'hour')
164
+ hour = Number(p.value);
165
+ else if (p.type === 'minute')
166
+ minute = Number(p.value);
167
+ }
168
+ return { year, month, day, hour, minute };
169
+ }
170
+ //# sourceMappingURL=sessionTimeLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTimeLabels.js","sourceRoot":"","sources":["../../../src/foundation/utils/sessionTimeLabels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, type MarketSessionConfig, type SessionTimeLabel } from './sessionTimeLabels';
2
+ /** A 股默认全天 1 分钟槽位数(兼容旧导出) */
3
+ export declare const ASHARE_TIMESHARE_SESSION_SLOTS: number;
4
+ /** 分时时间标签最小水平间距(逻辑像素) */
5
+ export declare const TIMESHARE_MIN_LABEL_SPACING_PX = 56;
6
+ export type TimeShareTimeLabelInput = {
7
+ axisWidth: number;
8
+ /** 市场 session;默认 A 股 */
9
+ marketSession?: MarketSessionConfig;
10
+ minLabelSpacingPx?: number;
11
+ };
12
+ /**
13
+ * 分时时间标签索引(委托 computeSessionTimeLabels)。
14
+ * 默认 A 股;传入 marketSession 可换港股/美股等。
15
+ */
16
+ export declare function computeTimeShareTimeLabelIndices(input: TimeShareTimeLabelInput): number[];
17
+ /** 完整标签(含 minuteOfDay / isEndpoint) */
18
+ export declare function computeTimeShareTimeLabels(input: TimeShareTimeLabelInput): SessionTimeLabel[];
19
+ export declare function timeShareSlotCenterX(slotIndex: number, axisWidth: number, sessionSlots: number, dpr: number): number;
20
+ /**
21
+ * 由开盘日基准时间戳 + slot 索引推算标签时间(按 market session)。
22
+ */
23
+ export declare function resolveTimeShareSlotTimestamp(baseTimestamp: number, slotIndex: number, marketSession?: MarketSessionConfig): number;
24
+ export { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, };
25
+ export type { MarketSessionConfig, OpenTimeRange, SessionTimeLabel, } from './sessionTimeLabels';
26
+ export { HK_MARKET_SESSION, US_MARKET_SESSION } from './sessionTimeLabels';
27
+ //# sourceMappingURL=timeShareAxisLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeShareAxisLabels.d.ts","sourceRoot":"","sources":["../../../src/foundation/utils/timeShareAxisLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,6BAA6B;AAC7B,eAAO,MAAM,8BAA8B,QAAmD,CAAA;AAE9F,yBAAyB;AACzB,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,wBAAwB;IACxB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,EAAE,CAEzF;AAED,uCAAuC;AACvC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAM7F;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,mBAA2C,GACzD,MAAM,CAmBR;AAED,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,CAAA;AACD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, } from './sessionTimeLabels';
2
+ /** A 股默认全天 1 分钟槽位数(兼容旧导出) */
3
+ export const ASHARE_TIMESHARE_SESSION_SLOTS = resolveMarketSessionSlots(ASHARE_MARKET_SESSION);
4
+ /** 分时时间标签最小水平间距(逻辑像素) */
5
+ export const TIMESHARE_MIN_LABEL_SPACING_PX = 56;
6
+ /**
7
+ * 分时时间标签索引(委托 computeSessionTimeLabels)。
8
+ * 默认 A 股;传入 marketSession 可换港股/美股等。
9
+ */
10
+ export function computeTimeShareTimeLabelIndices(input) {
11
+ return computeTimeShareTimeLabels(input).map((l) => l.slotIndex);
12
+ }
13
+ /** 完整标签(含 minuteOfDay / isEndpoint) */
14
+ export function computeTimeShareTimeLabels(input) {
15
+ const market = input.marketSession ?? ASHARE_MARKET_SESSION;
16
+ return computeSessionTimeLabels(market.sessions, {
17
+ axisWidth: input.axisWidth,
18
+ minLabelSpacingPx: input.minLabelSpacingPx ?? TIMESHARE_MIN_LABEL_SPACING_PX,
19
+ });
20
+ }
21
+ export function timeShareSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr) {
22
+ return sessionSlotCenterX(slotIndex, axisWidth, sessionSlots, dpr);
23
+ }
24
+ /**
25
+ * 由开盘日基准时间戳 + slot 索引推算标签时间(按 market session)。
26
+ */
27
+ export function resolveTimeShareSlotTimestamp(baseTimestamp, slotIndex, marketSession = ASHARE_MARKET_SESSION) {
28
+ const step = marketSession.slotMinutes && marketSession.slotMinutes > 0 ? marketSession.slotMinutes : 1;
29
+ let remaining = slotIndex * step;
30
+ for (const range of marketSession.sessions) {
31
+ const len = range.close - range.open;
32
+ if (remaining < len) {
33
+ return minuteOfDayToTimestamp(baseTimestamp, range.open + remaining, marketSession.timeZone);
34
+ }
35
+ remaining -= len;
36
+ }
37
+ const last = marketSession.sessions[marketSession.sessions.length - 1];
38
+ if (last) {
39
+ return minuteOfDayToTimestamp(baseTimestamp, last.close, marketSession.timeZone);
40
+ }
41
+ return baseTimestamp;
42
+ }
43
+ export { ASHARE_MARKET_SESSION, ASHARE_OPEN_SESSIONS, computeSessionTimeLabels, countSessionSlots, minuteOfDayToTimestamp, resolveMarketSessionSlots, sessionSlotCenterX, };
44
+ export { HK_MARKET_SESSION, US_MARKET_SESSION } from './sessionTimeLabels';
45
+ //# sourceMappingURL=timeShareAxisLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeShareAxisLabels.js","sourceRoot":"","sources":["../../../src/foundation/utils/timeShareAxisLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GAGnB,MAAM,qBAAqB,CAAA;AAE5B,6BAA6B;AAC7B,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,CAAA;AAE9F,yBAAyB;AACzB,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAA;AAShD;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAA8B;IAC7E,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAClE,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,0BAA0B,CAAC,KAA8B;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAA;IAC3D,OAAO,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,8BAA8B;KAC7E,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,SAAiB,EACjB,YAAoB,EACpB,GAAW;IAEX,OAAO,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,aAAqB,EACrB,SAAiB,EACjB,gBAAqC,qBAAqB;IAE1D,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACvG,IAAI,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA;QACpC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACpB,OAAO,sBAAsB,CAC3B,aAAa,EACb,KAAK,CAAC,IAAI,GAAG,SAAS,EACtB,aAAa,CAAC,QAAQ,CACvB,CAAA;QACH,CAAC;QACD,SAAS,IAAI,GAAG,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtE,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,CAAA;AAMD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.9.0-alpha.3";
1
+ export declare const VERSION = "0.9.0-alpha.5";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.9.0-alpha.3';
1
+ export const VERSION = '0.9.0-alpha.5';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@363045841yyt/klinechart-core",
3
- "version": "0.9.0-alpha.3",
3
+ "version": "0.9.0-alpha.5",
4
4
  "description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -54,7 +54,7 @@ export type {
54
54
  LegendTemplateContext,
55
55
  LegendRenderMode,
56
56
  LegendLayout,
57
- LegendOhlcRow,
57
+ LegendCurrentBar,
58
58
  LegendTimeshareRow,
59
59
  LegendIndicatorRow,
60
60
  LegendComparisonRow,
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it, vi } from 'vitest'
2
+
3
+ import { TimeShareBuffer } from '../timeShareBuffer'
4
+ import type { TimeShareData } from '../../foundation/types/price'
5
+
6
+ function point(price: number, ts = 1): TimeShareData {
7
+ return { timestamp: ts, price, average: price, volume: 1, amount: price }
8
+ }
9
+
10
+ describe('TimeShareBuffer', () => {
11
+ it('stores and returns preClose metadata', () => {
12
+ const buf = new TimeShareBuffer()
13
+ expect(buf.getPreClose()).toBeNull()
14
+ buf.setPreClose(10.5)
15
+ expect(buf.getPreClose()).toBe(10.5)
16
+ buf.setPreClose(null)
17
+ expect(buf.getPreClose()).toBeNull()
18
+ })
19
+
20
+ it('clears previous points when a new load starts (no stale date flash)', async () => {
21
+ const buf = new TimeShareBuffer()
22
+ buf.setInlineData([point(10), point(11)])
23
+ expect(buf.getRawData()).toHaveLength(2)
24
+
25
+ let resolveFetch!: (v: ReadonlyArray<TimeShareData>) => void
26
+ const pending = new Promise<ReadonlyArray<TimeShareData>>((resolve) => {
27
+ resolveFetch = resolve
28
+ })
29
+ buf.setFetcher(async () => pending)
30
+ buf.setQueryDate(20260101)
31
+ buf.load({ symbol: '000001', period: 'timeshare', source: 'gotdx' })
32
+
33
+ // 新 load 开始后旧点应被清空,避免显示另一天数据
34
+ expect(buf.getRawData()).toEqual([])
35
+ expect(buf.loading.peek()).toBe(true)
36
+
37
+ resolveFetch([point(12), point(13)])
38
+ await vi.waitFor(() => {
39
+ expect(buf.getRawData()).toHaveLength(2)
40
+ })
41
+ expect(buf.getRawData()[0]?.price).toBe(12)
42
+ expect(buf.loading.peek()).toBe(false)
43
+ buf.dispose()
44
+ })
45
+ })
@@ -21,6 +21,8 @@ export class TimeShareBuffer implements DataBufferLike {
21
21
  private _fetcher: TimeShareFetcherFn | null = null
22
22
  // 指定查询的历史日期(0 = 当天)
23
23
  private _queryDate = 0
24
+ // 昨收价(分时涨跌基准);未设置时为 null
25
+ private _preClose: number | null = null
24
26
  // 请求序号,每次 load() 递增
25
27
  private _requestSeq = 0
26
28
  // 当前运行的 fetch Fiber 句柄,用于随时中断旧请求
@@ -64,6 +66,16 @@ export class TimeShareBuffer implements DataBufferLike {
64
66
  return this._queryDate
65
67
  }
66
68
 
69
+ getPreClose(): number | null {
70
+ return this._preClose
71
+ }
72
+
73
+ setPreClose(preClose: number | null): void {
74
+ if (preClose === null || (Number.isFinite(preClose) && preClose !== 0)) {
75
+ this._preClose = preClose
76
+ }
77
+ }
78
+
67
79
  load(spec: SymbolSpec): void {
68
80
  if (this._disposed) return
69
81
 
@@ -73,6 +85,9 @@ export class TimeShareBuffer implements DataBufferLike {
73
85
  }
74
86
 
75
87
  const requestSeq = ++this._requestSeq
88
+ // 新请求开始即清空旧点,避免历史日期切换时短暂显示另一天数据
89
+ this._data = []
90
+ this._dataSignal.set({ data: [], prependedCount: 0 })
76
91
  this._loadingSignal.set(true)
77
92
 
78
93
  const timeShareService: {