@363045841yyt/klinechart-core 0.8.1-alpha.4 → 0.8.2
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/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +21 -1
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/types.d.ts +6 -1
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/data-fetchers/baostock.js +3 -3
- package/dist/data-fetchers/baostock.js.map +1 -1
- package/dist/data-fetchers/dataBuffer.d.ts +5 -1
- package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
- package/dist/data-fetchers/dataBuffer.js +85 -48
- package/dist/data-fetchers/dataBuffer.js.map +1 -1
- package/dist/data-fetchers/gotdx.d.ts +3 -0
- package/dist/data-fetchers/gotdx.d.ts.map +1 -0
- package/dist/data-fetchers/gotdx.js +101 -0
- package/dist/data-fetchers/gotdx.js.map +1 -0
- package/dist/data-fetchers/hundred-mock.d.ts.map +1 -1
- package/dist/data-fetchers/hundred-mock.js +28 -5
- package/dist/data-fetchers/hundred-mock.js.map +1 -1
- package/dist/data-fetchers/index.d.ts +1 -0
- package/dist/data-fetchers/index.d.ts.map +1 -1
- package/dist/data-fetchers/index.js +1 -0
- package/dist/data-fetchers/index.js.map +1 -1
- package/dist/data-fetchers/router.d.ts.map +1 -1
- package/dist/data-fetchers/router.js +3 -0
- package/dist/data-fetchers/router.js.map +1 -1
- package/dist/data-fetchers/thousand-mock.d.ts.map +1 -1
- package/dist/data-fetchers/thousand-mock.js +24 -14
- package/dist/data-fetchers/thousand-mock.js.map +1 -1
- package/dist/data-fetchers/tradingview.d.ts.map +1 -1
- package/dist/data-fetchers/tradingview.js +12 -6
- package/dist/data-fetchers/tradingview.js.map +1 -1
- package/dist/engine/chart.d.ts +29 -367
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +239 -1842
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/chartContext.d.ts +24 -0
- package/dist/engine/chartContext.d.ts.map +1 -0
- package/dist/engine/chartContext.js +19 -0
- package/dist/engine/chartContext.js.map +1 -0
- package/dist/engine/chartTypes.d.ts +77 -0
- package/dist/engine/chartTypes.d.ts.map +1 -0
- package/dist/engine/chartTypes.js +2 -0
- package/dist/engine/chartTypes.js.map +1 -0
- package/dist/engine/data/chartDataManager.d.ts +103 -0
- package/dist/engine/data/chartDataManager.d.ts.map +1 -0
- package/dist/engine/data/chartDataManager.js +593 -0
- package/dist/engine/data/chartDataManager.js.map +1 -0
- package/dist/engine/indicators/chartIndicatorManager.d.ts +102 -0
- package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -0
- package/dist/engine/indicators/chartIndicatorManager.js +437 -0
- package/dist/engine/indicators/chartIndicatorManager.js.map +1 -0
- package/dist/engine/layout/chartPaneLayout.d.ts +53 -0
- package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -0
- package/dist/engine/layout/chartPaneLayout.js +388 -0
- package/dist/engine/layout/chartPaneLayout.js.map +1 -0
- package/dist/engine/render/chartRenderer.d.ts +86 -0
- package/dist/engine/render/chartRenderer.d.ts.map +1 -0
- package/dist/engine/render/chartRenderer.js +440 -0
- package/dist/engine/render/chartRenderer.js.map +1 -0
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +73 -7
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/comparisonLine.d.ts.map +1 -1
- package/dist/engine/renderers/comparisonLine.js +25 -11
- package/dist/engine/renderers/comparisonLine.js.map +1 -1
- package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
- package/dist/engine/renderers/timeAxis.js +1 -0
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/subPaneManager.d.ts +27 -6
- package/dist/engine/subPaneManager.d.ts.map +1 -1
- package/dist/engine/subPaneManager.js +54 -56
- package/dist/engine/subPaneManager.js.map +1 -1
- package/dist/engine/utils/chartZoomController.d.ts +33 -0
- package/dist/engine/utils/chartZoomController.d.ts.map +1 -0
- package/dist/engine/utils/chartZoomController.js +66 -0
- package/dist/engine/utils/chartZoomController.js.map +1 -0
- package/dist/engine/viewport/chartViewportManager.d.ts +72 -0
- package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -0
- package/dist/engine/viewport/chartViewportManager.js +249 -0
- package/dist/engine/viewport/chartViewportManager.js.map +1 -0
- 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 +3 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/semantic/index.d.ts +1 -1
- package/dist/semantic/index.d.ts.map +1 -1
- package/dist/semantic/index.js.map +1 -1
- package/dist/semantic/schema.json +1 -1
- package/dist/semantic/types.d.ts +2 -1
- package/dist/semantic/types.d.ts.map +1 -1
- package/dist/tokens/theme-china.d.ts.map +1 -1
- package/dist/tokens/theme-china.js +0 -4
- package/dist/tokens/theme-china.js.map +1 -1
- package/dist/tokens/theme-dark.d.ts.map +1 -1
- package/dist/tokens/theme-dark.js +0 -4
- package/dist/tokens/theme-dark.js.map +1 -1
- package/dist/tokens/theme-light.d.ts.map +1 -1
- package/dist/tokens/theme-light.js +1 -5
- package/dist/tokens/theme-light.js.map +1 -1
- package/dist/tokens/types.d.ts +0 -4
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/types/price.d.ts +2 -0
- package/dist/types/price.d.ts.map +1 -1
- package/dist/types/price.js.map +1 -1
- package/dist/utils/dateFormat.d.ts +25 -0
- package/dist/utils/dateFormat.d.ts.map +1 -1
- package/dist/utils/dateFormat.js +78 -0
- package/dist/utils/dateFormat.js.map +1 -1
- package/dist/utils/kLineDraw/axis.d.ts +2 -0
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +11 -6
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/createChartController.ts +39 -10
- package/src/controllers/types.ts +6 -1
- package/src/data-fetchers/__tests__/dataBuffer.test.ts +5 -2
- package/src/data-fetchers/baostock.ts +3 -3
- package/src/data-fetchers/dataBuffer.ts +70 -23
- package/src/data-fetchers/gotdx.ts +138 -0
- package/src/data-fetchers/hundred-mock.ts +35 -5
- package/src/data-fetchers/index.ts +1 -0
- package/src/data-fetchers/router.ts +3 -0
- package/src/data-fetchers/thousand-mock.ts +30 -14
- package/src/data-fetchers/tradingview.ts +12 -6
- package/src/engine/__tests__/subPaneManager.test.ts +154 -0
- package/src/engine/chart.ts +252 -2250
- package/src/engine/chartContext.ts +34 -0
- package/src/engine/chartTypes.ts +88 -0
- package/src/engine/data/chartDataManager.ts +695 -0
- package/src/engine/indicators/__tests__/chartIndicatorManager.test.ts +103 -0
- package/src/engine/indicators/chartIndicatorManager.ts +566 -0
- package/src/engine/layout/chartPaneLayout.ts +474 -0
- package/src/engine/render/chartRenderer.ts +581 -0
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +99 -13
- package/src/engine/renderers/__tests__/boll.renderer.test.ts +1 -0
- package/src/engine/renderers/__tests__/ene.renderer.test.ts +1 -0
- package/src/engine/renderers/__tests__/expma.renderer.test.ts +1 -0
- package/src/engine/renderers/__tests__/ma.renderer.test.ts +1 -0
- package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +1 -0
- package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +1 -0
- package/src/engine/renderers/comparisonLine.ts +25 -11
- package/src/engine/renderers/timeAxis.ts +1 -0
- package/src/engine/subPaneManager.ts +75 -59
- package/src/engine/utils/chartZoomController.ts +104 -0
- package/src/engine/viewport/chartViewportManager.ts +310 -0
- package/src/index.ts +1 -0
- package/src/plugin/types.ts +3 -0
- package/src/semantic/index.ts +1 -0
- package/src/semantic/schema.json +1 -1
- package/src/semantic/types.ts +3 -1
- package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +1 -9
- package/src/tokens/theme-china.ts +0 -4
- package/src/tokens/theme-dark.ts +0 -4
- package/src/tokens/theme-light.ts +2 -6
- package/src/tokens/types.ts +0 -4
- package/src/types/price.ts +2 -0
- package/src/utils/dateFormat.ts +85 -0
- package/src/utils/kLineDraw/axis.ts +13 -6
- package/src/version.ts +1 -1
- package/src/engine/chart.d.ts +0 -626
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Viewport, PaneSpec } from './chartTypes'
|
|
2
|
+
|
|
3
|
+
export type ChartEventMap = {
|
|
4
|
+
'data:changed': { prevLength: number; newLength: number }
|
|
5
|
+
'viewport:changed': { vp: Viewport }
|
|
6
|
+
'layout:changed': { specs: PaneSpec[] }
|
|
7
|
+
'zoom:changed': { level: number }
|
|
8
|
+
'indicators:changed': {}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class ChartEventBus {
|
|
12
|
+
private listeners = new Map<string, Set<Function>>()
|
|
13
|
+
|
|
14
|
+
on<K extends keyof ChartEventMap>(
|
|
15
|
+
event: K,
|
|
16
|
+
handler: (payload: ChartEventMap[K]) => void,
|
|
17
|
+
): () => void {
|
|
18
|
+
if (!this.listeners.has(event)) {
|
|
19
|
+
this.listeners.set(event, new Set())
|
|
20
|
+
}
|
|
21
|
+
this.listeners.get(event)!.add(handler)
|
|
22
|
+
return () => {
|
|
23
|
+
this.listeners.get(event)?.delete(handler)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
emit<K extends keyof ChartEventMap>(event: K, payload: ChartEventMap[K]): void {
|
|
28
|
+
this.listeners.get(event)?.forEach((fn) => fn(payload))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
clear(): void {
|
|
32
|
+
this.listeners.clear()
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { PaneRole, PaneCapabilities } from '../plugin'
|
|
2
|
+
|
|
3
|
+
export type ChartDom = {
|
|
4
|
+
container: HTMLDivElement
|
|
5
|
+
scrollContent?: HTMLDivElement
|
|
6
|
+
canvasLayer: HTMLDivElement
|
|
7
|
+
rightAxisLayer: HTMLDivElement
|
|
8
|
+
xAxisCanvas: HTMLCanvasElement
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type PaneSpec = {
|
|
12
|
+
id: string
|
|
13
|
+
ratio: number
|
|
14
|
+
visible?: boolean
|
|
15
|
+
minHeightPx?: number
|
|
16
|
+
role?: PaneRole
|
|
17
|
+
capabilities?: Partial<PaneCapabilities>
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type PaneRendererDom = {
|
|
21
|
+
mainCanvas: HTMLCanvasElement
|
|
22
|
+
overlayCanvas: HTMLCanvasElement
|
|
23
|
+
yAxisCanvas: HTMLCanvasElement
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type ChartOptions = {
|
|
27
|
+
kWidth?: number
|
|
28
|
+
kGap?: number
|
|
29
|
+
yPaddingPx: number
|
|
30
|
+
rightAxisWidth: number
|
|
31
|
+
bottomAxisHeight: number
|
|
32
|
+
minKWidth: number
|
|
33
|
+
maxKWidth: number
|
|
34
|
+
panes: PaneSpec[]
|
|
35
|
+
paneGap?: number
|
|
36
|
+
priceLabelWidth?: number
|
|
37
|
+
defaultPaneMinHeightPx?: number
|
|
38
|
+
zoomLevels?: number
|
|
39
|
+
initialZoomLevel?: number
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type KLinePositions = number[]
|
|
43
|
+
|
|
44
|
+
export type Viewport = {
|
|
45
|
+
viewWidth: number
|
|
46
|
+
viewHeight: number
|
|
47
|
+
plotWidth: number
|
|
48
|
+
plotHeight: number
|
|
49
|
+
scrollLeft: number
|
|
50
|
+
dpr: number
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type ViewportState = {
|
|
54
|
+
zoomLevel: number
|
|
55
|
+
plotWidth: number
|
|
56
|
+
plotHeight: number
|
|
57
|
+
dpr: number
|
|
58
|
+
visibleFrom: number
|
|
59
|
+
visibleTo: number
|
|
60
|
+
kWidth: number
|
|
61
|
+
kGap: number
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export type IndicatorRole = 'main' | 'sub'
|
|
65
|
+
|
|
66
|
+
export interface IndicatorInstance {
|
|
67
|
+
id: string
|
|
68
|
+
definitionId: string
|
|
69
|
+
label: string
|
|
70
|
+
name: string
|
|
71
|
+
role: IndicatorRole
|
|
72
|
+
paneId?: string
|
|
73
|
+
params: Record<string, unknown>
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface SubPaneInfo {
|
|
77
|
+
paneId: string
|
|
78
|
+
indicatorId: string
|
|
79
|
+
params: Record<string, unknown>
|
|
80
|
+
ratio: number
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type DrawingToolType = 'trendline' | 'horizontal' | 'fib' | 'rectangle' | 'arrow'
|
|
84
|
+
|
|
85
|
+
export interface DrawingObject {
|
|
86
|
+
id: string
|
|
87
|
+
type: DrawingToolType
|
|
88
|
+
}
|