@363045841yyt/klinechart 0.6.9 → 0.7.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.
- package/README.md +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.cjs +5 -5
- package/dist/index.js +8980 -2945
- package/dist/klinechart.css +1 -1
- package/dist/mock-stock-data.json +1 -0
- package/dist/src/api/data/baostock.d.ts +4 -0
- package/dist/src/components/IndicatorSelector.vue.d.ts +0 -10
- package/dist/src/components/KLineChart.vue.d.ts +1 -1
- package/dist/src/config/chartSettings.d.ts +6 -0
- package/dist/src/core/chart.d.ts +43 -10
- package/dist/src/core/controller/interaction.d.ts +2 -30
- package/dist/src/core/controller/markerInteraction.d.ts +28 -0
- package/dist/src/core/controller/pinchTracker.d.ts +18 -0
- package/dist/src/core/controller/tooltipPosition.d.ts +21 -0
- package/dist/src/core/drawing/plugin.d.ts +19 -0
- package/dist/src/core/indicators/atrState.d.ts +16 -0
- package/dist/src/core/indicators/calculators.d.ts +196 -0
- package/dist/src/core/indicators/chaikinVolState.d.ts +18 -0
- package/dist/src/core/indicators/cmfState.d.ts +16 -0
- package/dist/src/core/indicators/demaState.d.ts +16 -0
- package/dist/src/core/indicators/donchianState.d.ts +23 -0
- package/dist/src/core/indicators/fibState.d.ts +26 -0
- package/dist/src/core/indicators/hmaState.d.ts +16 -0
- package/dist/src/core/indicators/hvState.d.ts +18 -0
- package/dist/src/core/indicators/ichimokuState.d.ts +44 -0
- package/dist/src/core/indicators/indicatorRuntime.d.ts +55 -0
- package/dist/src/core/indicators/kamaState.d.ts +20 -0
- package/dist/src/core/indicators/keltnerState.d.ts +27 -0
- package/dist/src/core/indicators/mfiState.d.ts +16 -0
- package/dist/src/core/indicators/obvState.d.ts +14 -0
- package/dist/src/core/indicators/parkinsonState.d.ts +18 -0
- package/dist/src/core/indicators/pivotState.d.ts +29 -0
- package/dist/src/core/indicators/pvtState.d.ts +14 -0
- package/dist/src/core/indicators/rocState.d.ts +16 -0
- package/dist/src/core/indicators/sarState.d.ts +26 -0
- package/dist/src/core/indicators/scheduler.d.ts +100 -2
- package/dist/src/core/indicators/stateComposer.d.ts +81 -0
- package/dist/src/core/indicators/structureState.d.ts +43 -0
- package/dist/src/core/indicators/supertrendState.d.ts +22 -0
- package/dist/src/core/indicators/temaState.d.ts +16 -0
- package/dist/src/core/indicators/trixState.d.ts +20 -0
- package/dist/src/core/indicators/vmaState.d.ts +16 -0
- package/dist/src/core/indicators/volumeProfileState.d.ts +34 -0
- package/dist/src/core/indicators/vwapState.d.ts +16 -0
- package/dist/src/core/indicators/wmaState.d.ts +16 -0
- package/dist/src/core/indicators/workerProtocol.d.ts +308 -1
- package/dist/src/core/indicators/zonesState.d.ts +26 -0
- package/dist/src/core/paneRenderer.d.ts +3 -1
- package/dist/src/core/renderers/Indicator/atr.d.ts +17 -0
- package/dist/src/core/renderers/Indicator/chaikinVol.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/cmf.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/dema.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/donchian.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/fib.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/hma.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/hv.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/ichimoku.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/index.d.ts +28 -1
- package/dist/src/core/renderers/Indicator/indicatorData.d.ts +13 -0
- package/dist/src/core/renderers/Indicator/kama.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/keltner.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/mfi.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/obv.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/parkinson.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/pivot.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/pvt.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/roc.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/sar.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/scale/atr_scale.d.ts +11 -0
- package/dist/src/core/renderers/Indicator/structure.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/subPaneConfig.d.ts +9 -0
- package/dist/src/core/renderers/Indicator/supertrend.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/tema.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/trix.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/vma.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/volumeProfile.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/vwap.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/wma.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/zones.d.ts +4 -0
- package/dist/src/core/renderers/webgl/candleSurface.d.ts +16 -5
- package/dist/src/core/renderers/webgl/sharedWebGLSurface.d.ts +33 -0
- package/dist/src/core/subPaneManager.d.ts +22 -0
- package/dist/src/semantic/types.d.ts +95 -0
- package/dist/src/test-setup.d.ts +6 -0
- package/package.json +1 -1
- /package/dist/src/api/data/{baostock.test.d.ts → baostock.integration.test.d.ts} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SharedWebGLSurface, WebGLCompositeOptions, WebGLRegion } from './sharedWebGLSurface';
|
|
1
2
|
type Rect = {
|
|
2
3
|
x: number;
|
|
3
4
|
y: number;
|
|
@@ -25,18 +26,21 @@ type FilledBand = {
|
|
|
25
26
|
}>;
|
|
26
27
|
};
|
|
27
28
|
export declare class CandleWebGLSurface {
|
|
28
|
-
private
|
|
29
|
+
private shared;
|
|
29
30
|
private handles;
|
|
30
31
|
private logicalWidth;
|
|
31
32
|
private logicalHeight;
|
|
32
33
|
private available;
|
|
33
34
|
private rectCapacity;
|
|
34
35
|
private rectScratch;
|
|
35
|
-
|
|
36
|
+
private region;
|
|
37
|
+
constructor(shared: SharedWebGLSurface);
|
|
36
38
|
isAvailable(): boolean;
|
|
37
39
|
getCanvas(): HTMLCanvasElement;
|
|
38
|
-
|
|
40
|
+
setRegion(region: WebGLRegion): void;
|
|
41
|
+
resize(width: number, height: number, _dpr: number): void;
|
|
39
42
|
clear(): void;
|
|
43
|
+
compositeTo(ctx: CanvasRenderingContext2D, options?: WebGLCompositeOptions): void;
|
|
40
44
|
/** 直接传入已打包的 Float32Array:每 4 个元素为一组 (x, y, width, height) */
|
|
41
45
|
drawRectBuffer(rectData: Float32Array, rectCount: number, color: string, scrollLeft: number): boolean;
|
|
42
46
|
drawRects(rects: Rect[], color: string, scrollLeft: number): boolean;
|
|
@@ -44,7 +48,7 @@ export declare class CandleWebGLSurface {
|
|
|
44
48
|
private initRectHandles;
|
|
45
49
|
}
|
|
46
50
|
export declare class LineWebGLSurface {
|
|
47
|
-
private
|
|
51
|
+
private shared;
|
|
48
52
|
private handles;
|
|
49
53
|
private logicalWidth;
|
|
50
54
|
private logicalHeight;
|
|
@@ -53,17 +57,24 @@ export declare class LineWebGLSurface {
|
|
|
53
57
|
private vertexCapacity;
|
|
54
58
|
private fillScratch;
|
|
55
59
|
private lineScratch;
|
|
60
|
+
private region;
|
|
61
|
+
private msaaTargets;
|
|
56
62
|
private geoCache;
|
|
57
|
-
constructor(
|
|
63
|
+
constructor(shared: SharedWebGLSurface);
|
|
58
64
|
isAvailable(): boolean;
|
|
59
65
|
getCanvas(): HTMLCanvasElement;
|
|
66
|
+
setRegion(region: WebGLRegion): void;
|
|
60
67
|
resize(width: number, height: number, dpr: number): void;
|
|
61
68
|
clear(): void;
|
|
69
|
+
compositeTo(ctx: CanvasRenderingContext2D, options?: WebGLCompositeOptions): void;
|
|
62
70
|
drawLineStrips(lines: ColoredLineStrip[], scrollLeft: number): boolean;
|
|
63
71
|
private getThinLineVertices;
|
|
64
72
|
private getLineGeometry;
|
|
65
73
|
drawFilledBand(band: FilledBand, color: string, scrollLeft: number): boolean;
|
|
66
74
|
destroy(): void;
|
|
75
|
+
private ensureLineMsaaTargets;
|
|
76
|
+
private destroyLineMsaaTargets;
|
|
77
|
+
private resolveLineMsaaToSharedRegion;
|
|
67
78
|
private initLineHandles;
|
|
68
79
|
}
|
|
69
80
|
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type WebGLRegion = {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
dpr: number;
|
|
7
|
+
};
|
|
8
|
+
export type WebGLCompositeOptions = {
|
|
9
|
+
alpha?: number;
|
|
10
|
+
imageSmoothingEnabled?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type PhysicalRegion = {
|
|
13
|
+
sourceX: number;
|
|
14
|
+
sourceY: number;
|
|
15
|
+
widthPx: number;
|
|
16
|
+
heightPx: number;
|
|
17
|
+
};
|
|
18
|
+
export declare class SharedWebGLSurface {
|
|
19
|
+
private canvas;
|
|
20
|
+
private gl;
|
|
21
|
+
constructor(canvas?: HTMLCanvasElement);
|
|
22
|
+
isAvailable(): boolean;
|
|
23
|
+
getGL(): WebGL2RenderingContext | null;
|
|
24
|
+
getCanvas(): HTMLCanvasElement;
|
|
25
|
+
resize(width: number, height: number, dpr: number): void;
|
|
26
|
+
getPhysicalRegion(region: WebGLRegion): PhysicalRegion | null;
|
|
27
|
+
bindRegion(region: WebGLRegion): boolean;
|
|
28
|
+
clearRegion(region: WebGLRegion): void;
|
|
29
|
+
compositeRegionTo(ctx: CanvasRenderingContext2D, region: WebGLRegion, options?: WebGLCompositeOptions): void;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
private toPhysicalRegion;
|
|
32
|
+
private initContext;
|
|
33
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Chart } from './chart';
|
|
2
|
+
import { SubIndicatorType } from './renderers/Indicator';
|
|
3
|
+
export interface SubPaneEntry {
|
|
4
|
+
paneId: string;
|
|
5
|
+
indicatorId: SubIndicatorType;
|
|
6
|
+
params: Record<string, unknown>;
|
|
7
|
+
rendererName: string;
|
|
8
|
+
scaleRendererName: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class SubPaneManager {
|
|
11
|
+
private entries;
|
|
12
|
+
create(chart: Chart, paneId: string, indicatorId: SubIndicatorType, params: Record<string, unknown>): boolean;
|
|
13
|
+
remove(chart: Chart, paneId: string): void;
|
|
14
|
+
replaceIndicator(chart: Chart, paneId: string, newIndicatorId: SubIndicatorType, newParams: Record<string, unknown>): void;
|
|
15
|
+
updateParams(chart: Chart, paneId: string, params: Record<string, unknown>): void;
|
|
16
|
+
getByPaneId(paneId: string): SubPaneEntry | undefined;
|
|
17
|
+
getAll(): SubPaneEntry[];
|
|
18
|
+
getPaneIds(): string[];
|
|
19
|
+
clear(chart: Chart): void;
|
|
20
|
+
private syncSchedulerConfig;
|
|
21
|
+
private mountScaleRenderer;
|
|
22
|
+
}
|
|
@@ -104,6 +104,101 @@ export interface SubIndicatorParams {
|
|
|
104
104
|
FASTK?: {
|
|
105
105
|
period?: number;
|
|
106
106
|
};
|
|
107
|
+
ATR?: {
|
|
108
|
+
period?: number;
|
|
109
|
+
};
|
|
110
|
+
WMA?: {
|
|
111
|
+
period?: number;
|
|
112
|
+
};
|
|
113
|
+
DEMA?: {
|
|
114
|
+
period?: number;
|
|
115
|
+
};
|
|
116
|
+
TEMA?: {
|
|
117
|
+
period?: number;
|
|
118
|
+
};
|
|
119
|
+
HMA?: {
|
|
120
|
+
period?: number;
|
|
121
|
+
};
|
|
122
|
+
KAMA?: {
|
|
123
|
+
period?: number;
|
|
124
|
+
fastPeriod?: number;
|
|
125
|
+
slowPeriod?: number;
|
|
126
|
+
};
|
|
127
|
+
SAR?: {
|
|
128
|
+
step?: number;
|
|
129
|
+
maxStep?: number;
|
|
130
|
+
};
|
|
131
|
+
SUPERTREND?: {
|
|
132
|
+
atrPeriod?: number;
|
|
133
|
+
multiplier?: number;
|
|
134
|
+
};
|
|
135
|
+
KELTNER?: {
|
|
136
|
+
emaPeriod?: number;
|
|
137
|
+
atrPeriod?: number;
|
|
138
|
+
multiplier?: number;
|
|
139
|
+
};
|
|
140
|
+
DONCHIAN?: {
|
|
141
|
+
period?: number;
|
|
142
|
+
};
|
|
143
|
+
ICHIMOKU?: {
|
|
144
|
+
tenkanPeriod?: number;
|
|
145
|
+
kijunPeriod?: number;
|
|
146
|
+
spanBPeriod?: number;
|
|
147
|
+
displacement?: number;
|
|
148
|
+
};
|
|
149
|
+
ROC?: {
|
|
150
|
+
period?: number;
|
|
151
|
+
};
|
|
152
|
+
TRIX?: {
|
|
153
|
+
period?: number;
|
|
154
|
+
signalPeriod?: number;
|
|
155
|
+
};
|
|
156
|
+
HV?: {
|
|
157
|
+
period?: number;
|
|
158
|
+
annualizationFactor?: number;
|
|
159
|
+
};
|
|
160
|
+
PARKINSON?: {
|
|
161
|
+
period?: number;
|
|
162
|
+
annualizationFactor?: number;
|
|
163
|
+
};
|
|
164
|
+
CHAIKIN_VOL?: {
|
|
165
|
+
emaPeriod?: number;
|
|
166
|
+
rocPeriod?: number;
|
|
167
|
+
};
|
|
168
|
+
VMA?: {
|
|
169
|
+
period?: number;
|
|
170
|
+
};
|
|
171
|
+
OBV?: Record<string, never>;
|
|
172
|
+
PVT?: Record<string, never>;
|
|
173
|
+
VWAP?: {
|
|
174
|
+
sessionResetGapMs?: number;
|
|
175
|
+
};
|
|
176
|
+
CMF?: {
|
|
177
|
+
period?: number;
|
|
178
|
+
};
|
|
179
|
+
MFI?: {
|
|
180
|
+
period?: number;
|
|
181
|
+
};
|
|
182
|
+
PIVOT?: Record<string, never>;
|
|
183
|
+
FIB?: {
|
|
184
|
+
period?: number;
|
|
185
|
+
};
|
|
186
|
+
STRUCTURE?: {
|
|
187
|
+
leftWindow?: number;
|
|
188
|
+
rightWindow?: number;
|
|
189
|
+
breakoutSource?: 'close' | 'wick';
|
|
190
|
+
};
|
|
191
|
+
ZONES?: {
|
|
192
|
+
showFVG?: boolean;
|
|
193
|
+
showOB?: boolean;
|
|
194
|
+
showFilledZones?: boolean;
|
|
195
|
+
obLookback?: number;
|
|
196
|
+
};
|
|
197
|
+
VOLUME_PROFILE?: {
|
|
198
|
+
bins?: number;
|
|
199
|
+
lookback?: number;
|
|
200
|
+
valueAreaPercent?: number;
|
|
201
|
+
};
|
|
107
202
|
}
|
|
108
203
|
/** 副图指标类型 */
|
|
109
204
|
export type SubIndicatorType = keyof SubIndicatorParams;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@363045841yyt/klinechart",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A lightweight financial K-line charting library with first-class AI Agent support, crisp ResizeObserver-driven rendering, and plugin-based architecture. Focused on quantitative trading scenarios with TradingView-level interaction experience.",
|
|
5
5
|
"author": "363045841 <slslswbsy@qq.com>",
|
|
6
6
|
"license": "MIT",
|
|
File without changes
|