@363045841yyt/klinechart 0.1.4 → 0.2.0

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 (69) hide show
  1. package/README.md +142 -243
  2. package/dist/components/IndicatorParams.vue.d.ts +28 -0
  3. package/dist/components/IndicatorSelector.vue.d.ts +10 -0
  4. package/dist/components/KLineChart.vue.d.ts +14 -17
  5. package/dist/components/MarkerTooltip.vue.d.ts +10 -0
  6. package/dist/core/chart.d.ts +84 -47
  7. package/dist/core/controller/interaction.d.ts +56 -18
  8. package/dist/core/layout/pane.d.ts +2 -0
  9. package/dist/core/marker/registry.d.ts +174 -0
  10. package/dist/core/paneRenderer.d.ts +7 -40
  11. package/dist/core/renderers/Indicator/boll.d.ts +28 -0
  12. package/dist/core/renderers/Indicator/bollLegend.d.ts +16 -0
  13. package/dist/core/renderers/Indicator/cci.d.ts +34 -0
  14. package/dist/core/renderers/Indicator/fastk.d.ts +34 -0
  15. package/dist/core/renderers/Indicator/index.d.ts +31 -0
  16. package/dist/core/renderers/Indicator/kst.d.ts +49 -0
  17. package/dist/core/renderers/Indicator/ma.d.ts +12 -0
  18. package/dist/core/renderers/Indicator/maLegend.d.ts +9 -0
  19. package/dist/core/renderers/Indicator/macd.d.ts +46 -0
  20. package/dist/core/renderers/Indicator/macdLegend.d.ts +10 -0
  21. package/dist/core/renderers/Indicator/mom.d.ts +34 -0
  22. package/dist/core/renderers/Indicator/rsi.d.ts +42 -0
  23. package/dist/core/renderers/Indicator/stoch.d.ts +43 -0
  24. package/dist/core/renderers/Indicator/wmsr.d.ts +34 -0
  25. package/dist/core/renderers/candle.d.ts +17 -4
  26. package/dist/core/renderers/crosshair.d.ts +13 -20
  27. package/dist/core/renderers/customMarkers.d.ts +6 -0
  28. package/dist/core/renderers/extremaMarkers.d.ts +3 -4
  29. package/dist/core/renderers/globalBorders.d.ts +8 -13
  30. package/dist/core/renderers/gridLines.d.ts +4 -3
  31. package/dist/core/renderers/lastPrice.d.ts +3 -3
  32. package/dist/core/renderers/paneTitle.d.ts +37 -10
  33. package/dist/core/renderers/subVolume.d.ts +7 -3
  34. package/dist/core/renderers/timeAxis.d.ts +9 -22
  35. package/dist/core/renderers/yAxis.d.ts +5 -12
  36. package/dist/core/scale/priceScale.d.ts +1 -0
  37. package/dist/core/theme/colors.d.ts +80 -0
  38. package/dist/core/utils/klineConfig.d.ts +28 -0
  39. package/dist/core/utils/tickCount.d.ts +7 -0
  40. package/dist/core/viewport/viewport.d.ts +5 -5
  41. package/dist/index.cjs +16 -1
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.js +10540 -1064
  44. package/dist/klinechart.css +1 -1
  45. package/dist/plugin/ConfigManager.d.ts +31 -0
  46. package/dist/plugin/EventBus.d.ts +34 -0
  47. package/dist/plugin/HookSystem.d.ts +28 -0
  48. package/dist/plugin/PluginHost.d.ts +47 -0
  49. package/dist/plugin/PluginRegistry.d.ts +40 -0
  50. package/dist/plugin/index.d.ts +11 -0
  51. package/dist/plugin/rendererPluginManager.d.ts +73 -0
  52. package/dist/plugin/types.d.ts +185 -0
  53. package/dist/semantic/controller.d.ts +29 -0
  54. package/dist/semantic/drawShape.d.ts +14 -0
  55. package/dist/semantic/index.d.ts +8 -0
  56. package/dist/semantic/schema.json.d.ts +259 -0
  57. package/dist/semantic/types.d.ts +185 -0
  58. package/dist/semantic/validator.d.ts +42 -0
  59. package/dist/types/volumePrice.d.ts +26 -0
  60. package/dist/utils/kLineDraw/MA.d.ts +5 -5
  61. package/dist/utils/logger.d.ts +1 -0
  62. package/dist/utils/volumePrice.d.ts +54 -0
  63. package/package.json +11 -10
  64. package/dist/core/renderers/crosshairLabels.d.ts +0 -36
  65. package/dist/core/renderers/grid.d.ts +0 -6
  66. package/dist/core/renderers/ma.d.ts +0 -15
  67. package/dist/core/renderers/maLegend.d.ts +0 -19
  68. package/dist/core/renderers/paneBorder.d.ts +0 -26
  69. package/dist/core/renderers/paneSeparator.d.ts +0 -18
@@ -0,0 +1,34 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface FASTKConfig {
4
+ /** 周期(默认 9) */
5
+ period?: number;
6
+ /** 是否显示 FASTK 线 */
7
+ showFASTK?: boolean;
8
+ }
9
+ export interface FASTKRendererOptions {
10
+ /** 目标 pane ID(默认 'sub') */
11
+ paneId?: string;
12
+ /** 初始配置 */
13
+ config?: FASTKConfig;
14
+ }
15
+ /**
16
+ * 创建 FASTK 渲染器插件
17
+ */
18
+ export declare function createFASTKRendererPlugin(options?: FASTKRendererOptions): RendererPlugin;
19
+ /**
20
+ * 计算指定索引处的 FASTK 值
21
+ */
22
+ export declare function calcFASTKAtIndex(data: KLineData[], index: number, period: number): number | undefined;
23
+ /**
24
+ * 获取 FASTK 标题信息(供 paneTitle 使用)
25
+ */
26
+ export declare function getFASTKTitleInfo(data: KLineData[], index: number, period?: number): {
27
+ name: string;
28
+ params: number[];
29
+ values: Array<{
30
+ label: string;
31
+ value: number;
32
+ color: string;
33
+ }>;
34
+ } | null;
@@ -0,0 +1,31 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ export { createMARendererPlugin, type MAFlags } from './ma';
3
+ export { createMALegendRendererPlugin } from './maLegend';
4
+ export { createBOLLRendererPlugin, calcBOLLAtIndex, type BOLLConfig } from './boll';
5
+ export { createBOLLLegendRendererPlugin, type BOLLLegendConfig } from './bollLegend';
6
+ export { createMACDRendererPlugin, calcMACDAtIndex, type MACDConfig, type MACDRendererOptions, getMACDTitleInfo } from './macd';
7
+ export { createMACDLegendRendererPlugin, type MACDLegendOptions } from './macdLegend';
8
+ export { createRSIRendererPlugin, calcRSIAtIndex, type RSIConfig, type RSIRendererOptions, getRSITitleInfo } from './rsi';
9
+ export { createCCIRendererPlugin, calcCCIAtIndex, type CCIConfig, type CCIRendererOptions, getCCITitleInfo } from './cci';
10
+ export { createSTOCHRendererPlugin, calcSTOCHAtIndex, type STOCHConfig, type STOCHRendererOptions, getSTOCHTitleInfo } from './stoch';
11
+ export { createMOMRendererPlugin, calcMOMAtIndex, type MOMConfig, type MOMRendererOptions, getMOMTitleInfo } from './mom';
12
+ export { createWMSRRendererPlugin, calcWMSRAtIndex, type WMSRConfig, type WMSRRendererOptions, getWMSRTitleInfo } from './wmsr';
13
+ export { createKSTRendererPlugin, calcKSTAtIndex, type KSTConfig, type KSTRendererOptions, getKSTTitleInfo } from './kst';
14
+ export { createFASTKRendererPlugin, calcFASTKAtIndex, type FASTKConfig, type FASTKRendererOptions, getFASTKTitleInfo } from './fastk';
15
+ /**
16
+ * 副图指标类型
17
+ */
18
+ export type SubIndicatorType = 'VOLUME' | 'MACD' | 'RSI' | 'CCI' | 'STOCH' | 'MOM' | 'WMSR' | 'KST' | 'FASTK';
19
+ /**
20
+ * 渲染器工厂选项
21
+ */
22
+ export interface IndicatorRendererOptions {
23
+ /** 指标类型 */
24
+ indicatorId: SubIndicatorType;
25
+ /** 目标 pane ID */
26
+ paneId: string;
27
+ }
28
+ /**
29
+ * 创建副图指标渲染器(统一工厂函数)
30
+ */
31
+ export declare function createSubIndicatorRenderer(options: IndicatorRendererOptions): RendererPlugin;
@@ -0,0 +1,49 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface KSTConfig {
4
+ /** ROC1 周期(默认 10) */
5
+ roc1?: number;
6
+ /** ROC2 周期(默认 15) */
7
+ roc2?: number;
8
+ /** ROC3 周期(默认 20) */
9
+ roc3?: number;
10
+ /** ROC4 周期(默认 30) */
11
+ roc4?: number;
12
+ /** 信号线周期(默认 9) */
13
+ signalPeriod?: number;
14
+ /** 是否显示 KST 线 */
15
+ showKST?: boolean;
16
+ /** 是否显示信号线 */
17
+ showSignal?: boolean;
18
+ }
19
+ interface KSTPoint {
20
+ kst: number;
21
+ signal: number;
22
+ }
23
+ export interface KSTRendererOptions {
24
+ /** 目标 pane ID(默认 'sub') */
25
+ paneId?: string;
26
+ /** 初始配置 */
27
+ config?: KSTConfig;
28
+ }
29
+ /**
30
+ * 创建 KST 渲染器插件
31
+ */
32
+ export declare function createKSTRendererPlugin(options?: KSTRendererOptions): RendererPlugin;
33
+ /**
34
+ * 计算指定索引处的 KST 值
35
+ */
36
+ export declare function calcKSTAtIndex(data: KLineData[], index: number, roc1: number, roc2: number, roc3: number, roc4: number, signalPeriod: number): KSTPoint | undefined;
37
+ /**
38
+ * 获取 KST 标题信息(供 paneTitle 使用)
39
+ */
40
+ export declare function getKSTTitleInfo(data: KLineData[], index: number, roc1?: number, roc2?: number, roc3?: number, roc4?: number, signalPeriod?: number): {
41
+ name: string;
42
+ params: number[];
43
+ values: Array<{
44
+ label: string;
45
+ value: number;
46
+ color: string;
47
+ }>;
48
+ } | null;
49
+ export {};
@@ -0,0 +1,12 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ export type MAFlags = {
3
+ ma5?: boolean;
4
+ ma10?: boolean;
5
+ ma20?: boolean;
6
+ ma30?: boolean;
7
+ ma60?: boolean;
8
+ };
9
+ /**
10
+ * 创建 MA 均线渲染器插件
11
+ */
12
+ export declare function createMARendererPlugin(showMA?: MAFlags): RendererPlugin;
@@ -0,0 +1,9 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { MAFlags } from './ma';
3
+ /**
4
+ * 创建 MA 图例渲染器插件
5
+ */
6
+ export declare function createMALegendRendererPlugin(options: {
7
+ yPaddingPx: number;
8
+ showMA?: MAFlags;
9
+ }): RendererPlugin;
@@ -0,0 +1,46 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface MACDConfig {
4
+ /** 快线周期(默认 12) */
5
+ fastPeriod?: number;
6
+ /** 慢线周期(默认 26) */
7
+ slowPeriod?: number;
8
+ /** DEA 周期(默认 9) */
9
+ signalPeriod?: number;
10
+ /** 是否显示 DIF 线 */
11
+ showDIF?: boolean;
12
+ /** 是否显示 DEA 线 */
13
+ showDEA?: boolean;
14
+ /** 是否显示 MACD 柱 */
15
+ showBAR?: boolean;
16
+ }
17
+ export interface MACDRendererOptions {
18
+ /** 目标 pane ID(默认 'sub') */
19
+ paneId?: string;
20
+ /** 初始配置 */
21
+ config?: MACDConfig;
22
+ }
23
+ /**
24
+ * 创建 MACD 渲染器插件
25
+ */
26
+ export declare function createMACDRendererPlugin(options?: MACDRendererOptions): RendererPlugin;
27
+ /**
28
+ * 计算指定索引处的 MACD 值(供图例使用)
29
+ */
30
+ export declare function calcMACDAtIndex(data: KLineData[], index: number, fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): {
31
+ dif: number;
32
+ dea: number;
33
+ macd: number;
34
+ } | null;
35
+ /**
36
+ * 获取 MACD 标题信息(供 paneTitle 使用)
37
+ */
38
+ export declare function getMACDTitleInfo(data: KLineData[], index: number, fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): {
39
+ name: string;
40
+ params: number[];
41
+ values: Array<{
42
+ label: string;
43
+ value: number;
44
+ color: string;
45
+ }>;
46
+ } | null;
@@ -0,0 +1,10 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ export interface MACDLegendOptions {
3
+ /** Y 轴内边距(与主图保持一致) */
4
+ yPaddingPx?: number;
5
+ }
6
+ /**
7
+ * 创建 MACD 图例渲染器插件
8
+ * 在副图左上角显示当前 MACD 指标值
9
+ */
10
+ export declare function createMACDLegendRendererPlugin(options?: MACDLegendOptions): RendererPlugin;
@@ -0,0 +1,34 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface MOMConfig {
4
+ /** 周期(默认 10) */
5
+ period?: number;
6
+ /** 是否显示 MOM 线 */
7
+ showMOM?: boolean;
8
+ }
9
+ export interface MOMRendererOptions {
10
+ /** 目标 pane ID(默认 'sub') */
11
+ paneId?: string;
12
+ /** 初始配置 */
13
+ config?: MOMConfig;
14
+ }
15
+ /**
16
+ * 创建 MOM 渲染器插件
17
+ */
18
+ export declare function createMOMRendererPlugin(options?: MOMRendererOptions): RendererPlugin;
19
+ /**
20
+ * 计算指定索引处的 MOM 值
21
+ */
22
+ export declare function calcMOMAtIndex(data: KLineData[], index: number, period: number): number | undefined;
23
+ /**
24
+ * 获取 MOM 标题信息(供 paneTitle 使用)
25
+ */
26
+ export declare function getMOMTitleInfo(data: KLineData[], index: number, period?: number): {
27
+ name: string;
28
+ params: number[];
29
+ values: Array<{
30
+ label: string;
31
+ value: number;
32
+ color: string;
33
+ }>;
34
+ } | null;
@@ -0,0 +1,42 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface RSIConfig {
4
+ /** 第一条 RSI 周期(默认 6) */
5
+ period1?: number;
6
+ /** 第二条 RSI 周期(默认 12) */
7
+ period2?: number;
8
+ /** 第三条 RSI 周期(默认 24) */
9
+ period3?: number;
10
+ /** 是否显示 RSI1 */
11
+ showRSI1?: boolean;
12
+ /** 是否显示 RSI2 */
13
+ showRSI2?: boolean;
14
+ /** 是否显示 RSI3 */
15
+ showRSI3?: boolean;
16
+ }
17
+ export interface RSIRendererOptions {
18
+ /** 目标 pane ID(默认 'sub') */
19
+ paneId?: string;
20
+ /** 初始配置 */
21
+ config?: RSIConfig;
22
+ }
23
+ /**
24
+ * 创建 RSI 渲染器插件
25
+ */
26
+ export declare function createRSIRendererPlugin(options?: RSIRendererOptions): RendererPlugin;
27
+ /**
28
+ * 计算指定索引处的 RSI 值
29
+ */
30
+ export declare function calcRSIAtIndex(data: KLineData[], index: number, period: number): number | undefined;
31
+ /**
32
+ * 获取 RSI 标题信息(供 paneTitle 使用)
33
+ */
34
+ export declare function getRSITitleInfo(data: KLineData[], index: number, period1?: number, period2?: number, period3?: number): {
35
+ name: string;
36
+ params: number[];
37
+ values: Array<{
38
+ label: string;
39
+ value: number;
40
+ color: string;
41
+ }>;
42
+ } | null;
@@ -0,0 +1,43 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface STOCHConfig {
4
+ /** K 周期(默认 9) */
5
+ n?: number;
6
+ /** D 周期(默认 3) */
7
+ m?: number;
8
+ /** 是否显示 K 线 */
9
+ showK?: boolean;
10
+ /** 是否显示 D 线 */
11
+ showD?: boolean;
12
+ }
13
+ interface STOCHPoint {
14
+ k: number;
15
+ d: number;
16
+ }
17
+ export interface STOCHRendererOptions {
18
+ /** 目标 pane ID(默认 'sub') */
19
+ paneId?: string;
20
+ /** 初始配置 */
21
+ config?: STOCHConfig;
22
+ }
23
+ /**
24
+ * 创建 STOCH 渲染器插件
25
+ */
26
+ export declare function createSTOCHRendererPlugin(options?: STOCHRendererOptions): RendererPlugin;
27
+ /**
28
+ * 计算指定索引处的 STOCH 值
29
+ */
30
+ export declare function calcSTOCHAtIndex(data: KLineData[], index: number, n: number, m: number): STOCHPoint | undefined;
31
+ /**
32
+ * 获取 STOCH 标题信息(供 paneTitle 使用)
33
+ */
34
+ export declare function getSTOCHTitleInfo(data: KLineData[], index: number, n?: number, m?: number): {
35
+ name: string;
36
+ params: number[];
37
+ values: Array<{
38
+ label: string;
39
+ value: number;
40
+ color: string;
41
+ }>;
42
+ } | null;
43
+ export {};
@@ -0,0 +1,34 @@
1
+ import { RendererPlugin } from '../../../plugin';
2
+ import { KLineData } from '../../../types/price';
3
+ export interface WMSRConfig {
4
+ /** 周期(默认 14) */
5
+ period?: number;
6
+ /** 是否显示 WMSR 线 */
7
+ showWMSR?: boolean;
8
+ }
9
+ export interface WMSRRendererOptions {
10
+ /** 目标 pane ID(默认 'sub') */
11
+ paneId?: string;
12
+ /** 初始配置 */
13
+ config?: WMSRConfig;
14
+ }
15
+ /**
16
+ * 创建 WMSR 渲染器插件
17
+ */
18
+ export declare function createWMSRRendererPlugin(options?: WMSRRendererOptions): RendererPlugin;
19
+ /**
20
+ * 计算指定索引处的 WMSR 值
21
+ */
22
+ export declare function calcWMSRAtIndex(data: KLineData[], index: number, period: number): number | undefined;
23
+ /**
24
+ * 获取 WMSR 标题信息(供 paneTitle 使用)
25
+ */
26
+ export declare function getWMSRTitleInfo(data: KLineData[], index: number, period?: number): {
27
+ name: string;
28
+ params: number[];
29
+ values: Array<{
30
+ label: string;
31
+ value: number;
32
+ color: string;
33
+ }>;
34
+ } | null;
@@ -1,6 +1,19 @@
1
- import { PaneRenderer } from '../layout/pane';
1
+ import { RendererPlugin } from '../../plugin';
2
+ import { VolumePriceRelation } from '../../types/volumePrice';
3
+ import { MarkerManager } from '../marker/registry';
2
4
  /**
3
- * Candle 渲染器:在单个 pane 中绘制 K 线蜡烛图
4
- * 依赖 pane.yAxis 做 price->y 坐标映射,使用物理像素空间计算避免浮点误差
5
+ * 创建 K 线蜡烛图渲染器插件
5
6
  */
6
- export declare const CandleRenderer: PaneRenderer;
7
+ export declare function createCandleRenderer(): RendererPlugin;
8
+ /**
9
+ * 绘制量价关系标记
10
+ * 在K线图上标注量价关系标记符号
11
+ *
12
+ * @param ctx - Canvas绘图上下文
13
+ * @param x - 标记的x坐标(三角形水平中心)
14
+ * @param y - 标记的y坐标(三角形底边/顶点与K线的接触点)
15
+ * @param relation - 量价关系类型
16
+ * @param kWidth - K线宽度,作为三角形边长
17
+ * @param gap - 三角形与K线的间距,默认为4
18
+ */
19
+ export declare function drawVolumePriceMarker(ctx: CanvasRenderingContext2D, x: number, y: number, relation: VolumePriceRelation, kIndex: number, kWidth: number, gap: number | undefined, markerManager: MarkerManager): void;
@@ -1,22 +1,15 @@
1
+ import { RendererPlugin } from '../../plugin';
1
2
  /**
2
- * 绘制十字线
3
- * ctx 处于 plotCanvas 的屏幕坐标(不带 translate(-scrollLeft,0)),x/y 是相对 plot 区域左上角的坐标
4
- * @param ctx Canvas 绘图上下文
5
- * @param plotWidth 绘图区宽度
6
- * @param plotHeight 绘图区高度
7
- * @param dpr 设备像素比
8
- * @param x 十字线横坐标
9
- * @param y 十字线纵坐标
10
- * @param drawVertical 是否绘制垂直线
11
- * @param drawHorizontal 是否绘制水平线
3
+ * 创建十字线渲染器插件
4
+ * 垂直线绘制到所有面板,水平线只绘制到活跃面板
12
5
  */
13
- export declare function drawCrosshair(args: {
14
- ctx: CanvasRenderingContext2D;
15
- plotWidth: number;
16
- plotHeight: number;
17
- dpr: number;
18
- x: number;
19
- y: number;
20
- drawVertical?: boolean;
21
- drawHorizontal?: boolean;
22
- }): void;
6
+ export declare function createCrosshairRendererPlugin(options: {
7
+ getCrosshairState: () => {
8
+ pos: {
9
+ x: number;
10
+ y: number;
11
+ } | null;
12
+ activePaneId: string | null;
13
+ isDragging: boolean;
14
+ };
15
+ }): RendererPlugin;
@@ -0,0 +1,6 @@
1
+ import { RendererPlugin } from '../../plugin';
2
+ /**
3
+ * 创建自定义标记渲染器插件
4
+ * 负责渲染 semanticConfig 中配置的 customMarkers
5
+ */
6
+ export declare function createCustomMarkersRenderer(): RendererPlugin;
@@ -1,6 +1,5 @@
1
- import { PaneRenderer } from '../layout/pane';
1
+ import { RendererPlugin } from '../../plugin';
2
2
  /**
3
- * 可视区最高/最低价标注渲染器(仅绘制标注,不绘制蜡烛)
4
- * 使用 pane.yAxis.priceToY 作为 Y 映射(与当前 pane 的 priceRange 一致),world 坐标绘制(会 translate(-scrollLeft, 0))
3
+ * 创建可视区最高/最低价标注渲染器插件
5
4
  */
6
- export declare const ExtremaMarkersRenderer: PaneRenderer;
5
+ export declare function createExtremaMarkersRendererPlugin(): RendererPlugin;
@@ -1,18 +1,13 @@
1
+ import { RendererPlugin } from '../../plugin';
2
+ /** 全局边框面板 ID(特殊标识,用于最后渲染) */
3
+ export declare const GLOBAL_BORDERS_PANE_ID: unique symbol;
1
4
  /**
2
- * 绘制所有 pane 的外边框
3
- * @param ctx Canvas 绘图上下文
4
- * @param dpr 设备像素比
5
- * @param plotWidth 绘图区宽度
6
- * @param panes pane 数组,每个包含 top 和 height 属性
7
- * @param color 边框颜色
5
+ * 创建全局边框渲染器插件
6
+ * 绘制所有面板的外边框
8
7
  */
9
- export declare function drawAllPanesBorders(args: {
10
- ctx: CanvasRenderingContext2D;
11
- dpr: number;
12
- plotWidth: number;
13
- panes: Array<{
8
+ export declare function createGlobalBordersRendererPlugin(options: {
9
+ getPaneInfos: () => Array<{
14
10
  top: number;
15
11
  height: number;
16
12
  }>;
17
- color?: string;
18
- }): void;
13
+ }): RendererPlugin;
@@ -1,6 +1,7 @@
1
- import { PaneRenderer } from '../layout/pane';
1
+ import { RendererPlugin } from '../../plugin';
2
2
  /**
3
- * 网格线渲染器(不绘制文字刻度)
3
+ * 创建网格线渲染器插件
4
4
  * 横向按像素均分铺满整个绘图区高度,纵向按月分割(使用预计算的月边界,网格线对齐到K线实体中部)
5
+ * 渲染到所有 pane(使用 GLOBAL_PANE_ID)
5
6
  */
6
- export declare const GridLinesRenderer: PaneRenderer;
7
+ export declare function createGridLinesRendererPlugin(): RendererPlugin;
@@ -1,5 +1,5 @@
1
- import { PaneRenderer } from '../layout/pane';
1
+ import { RendererPlugin } from '../../plugin';
2
2
  /**
3
- * 最新价虚线渲染器,绘制在 plotCanvas 的 world 坐标系(需 translate(-scrollLeft,0))
3
+ * 创建最新价虚线渲染器插件
4
4
  */
5
- export declare const LastPriceLineRenderer: PaneRenderer;
5
+ export declare function createLastPriceLineRendererPlugin(): RendererPlugin;
@@ -1,13 +1,40 @@
1
+ import { RendererPlugin } from '../../plugin';
1
2
  /**
2
- * 绘制 pane 标题
3
- * @param ctx Canvas 上下文
4
- * @param dpr 设备像素比
5
- * @param paneTop pane 顶部偏移
6
- * @param title 标题文本
3
+ * 单个数值项
7
4
  */
8
- export declare function drawPaneTitle(args: {
9
- ctx: CanvasRenderingContext2D;
10
- dpr: number;
11
- paneTop: number;
5
+ export interface TitleValueItem {
6
+ /** 标签(如 "DIF"、"DEA") */
7
+ label: string;
8
+ /** 数值 */
9
+ value: number;
10
+ /** 颜色 */
11
+ color: string;
12
+ }
13
+ /**
14
+ * 标题信息(由指标渲染器提供)
15
+ */
16
+ export interface TitleInfo {
17
+ /** 指标名称(如 "MACD") */
18
+ name: string;
19
+ /** 参数列表(如 [12, 26, 9]) */
20
+ params?: number[];
21
+ /** 数值项列表 */
22
+ values?: TitleValueItem[];
23
+ }
24
+ export interface PaneTitleOptions {
25
+ /** 面板 ID */
26
+ paneId: string;
27
+ /** 标题文本(静态模式) */
12
28
  title: string;
13
- }): void;
29
+ /** 副标题/描述 */
30
+ description?: string;
31
+ /** Y 偏移(逻辑像素) */
32
+ yOffset?: number;
33
+ /** 动态标题信息提供函数 */
34
+ getTitleInfo?: () => TitleInfo | null;
35
+ }
36
+ /**
37
+ * 创建面板标题渲染器插件
38
+ * 在面板左上角显示标题,支持动态指标数值显示
39
+ */
40
+ export declare function createPaneTitleRendererPlugin(options: PaneTitleOptions): RendererPlugin;
@@ -1,5 +1,9 @@
1
- import { PaneRenderer } from '../layout/pane';
1
+ import { RendererPlugin } from '../../plugin';
2
+ export interface VolumeRendererOptions {
3
+ /** 目标 pane ID(默认 'sub') */
4
+ paneId?: string;
5
+ }
2
6
  /**
3
- * 副图成交量渲染器
7
+ * 创建副图成交量渲染器插件
4
8
  */
5
- export declare const subVolumeRenderer: PaneRenderer;
9
+ export declare function createVolumeRendererPlugin(options?: VolumeRendererOptions): RendererPlugin;
@@ -1,27 +1,14 @@
1
- import { KLineData } from '../../types/price';
1
+ import { RendererPlugin } from '../../plugin';
2
+ /** 时间轴面板 ID(特殊标识,用于单独渲染) */
3
+ export declare const TIME_AXIS_PANE_ID: unique symbol;
2
4
  /**
3
- * 绘制时间轴层
4
- * @param ctx Canvas 绘图上下文
5
- * @param data K 线数据
6
- * @param scrollLeft 滚动偏移量
7
- * @param kWidth K 线宽度
8
- * @param kGap K 线间隔
9
- * @param startIndex 起始索引
10
- * @param endIndex 结束索引
11
- * @param dpr 设备像素比
12
- * @param crosshair 十字线信息,包含横坐标和索引
5
+ * 创建时间轴渲染器插件
6
+ * 注意:时间轴渲染到 xAxisCanvas,需要特殊处理
13
7
  */
14
- export declare function drawTimeAxisLayer(args: {
15
- ctx: CanvasRenderingContext2D;
16
- data: KLineData[];
17
- scrollLeft: number;
18
- kWidth: number;
19
- kGap: number;
20
- startIndex: number;
21
- endIndex: number;
22
- dpr: number;
23
- crosshair?: {
8
+ export declare function createTimeAxisRendererPlugin(options: {
9
+ height: number;
10
+ getCrosshair?: () => {
24
11
  x: number;
25
12
  index: number;
26
13
  } | null;
27
- }): void;
14
+ }): RendererPlugin;
@@ -1,16 +1,9 @@
1
- import { PaneRenderer } from '../layout/pane';
1
+ import { RendererPlugin } from '../../plugin';
2
2
  /**
3
- * 创建 Y 轴渲染器,每个 pane 各画一段,复用 drawPriceAxis
4
- * @param opts 配置选项
5
- * @param opts.axisX 轴的横坐标
6
- * @param opts.axisWidth 轴宽度
7
- * @param opts.yPaddingPx 垂直内边距
8
- * @param opts.ticks 刻度数量(可选,默认根据 pane 高度自动计算)
9
- * @returns PaneRenderer 实例
3
+ * 创建 Y 轴渲染器插件
4
+ * 渲染到所有面板的 Y 轴区域
10
5
  */
11
- export declare function createYAxisRenderer(opts: {
12
- axisX: number;
6
+ export declare function createYAxisRendererPlugin(options: {
13
7
  axisWidth: number;
14
8
  yPaddingPx: number;
15
- ticks?: number;
16
- }): PaneRenderer;
9
+ }): RendererPlugin;
@@ -15,4 +15,5 @@ export declare class PriceScale {
15
15
  getPaddingTop(): number;
16
16
  getPaddingBottom(): number;
17
17
  priceToY(price: number): number;
18
+ yToPrice(y: number): number;
18
19
  }