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

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 (190) hide show
  1. package/dist/controllers/createChartController.d.ts.map +1 -1
  2. package/dist/controllers/createChartController.js +9 -8
  3. package/dist/controllers/createChartController.js.map +1 -1
  4. package/dist/controllers/index.d.ts +1 -0
  5. package/dist/controllers/index.d.ts.map +1 -1
  6. package/dist/controllers/index.js.map +1 -1
  7. package/dist/controllers/types.d.ts +5 -0
  8. package/dist/controllers/types.d.ts.map +1 -1
  9. package/dist/data/binance.d.ts +1 -1
  10. package/dist/data/binance.d.ts.map +1 -1
  11. package/dist/data/binance.js +1 -1
  12. package/dist/data/binance.js.map +1 -1
  13. package/dist/engine/chart.d.ts +9 -9
  14. package/dist/engine/chart.d.ts.map +1 -1
  15. package/dist/engine/chart.js +69 -96
  16. package/dist/engine/chart.js.map +1 -1
  17. package/dist/engine/chartTypes.d.ts +5 -0
  18. package/dist/engine/chartTypes.d.ts.map +1 -1
  19. package/dist/engine/controller/interaction.d.ts +4 -2
  20. package/dist/engine/controller/interaction.d.ts.map +1 -1
  21. package/dist/engine/controller/interaction.js +18 -10
  22. package/dist/engine/controller/interaction.js.map +1 -1
  23. package/dist/engine/data/chartDataManager.d.ts +12 -18
  24. package/dist/engine/data/chartDataManager.d.ts.map +1 -1
  25. package/dist/engine/data/chartDataManager.js +46 -37
  26. package/dist/engine/data/chartDataManager.js.map +1 -1
  27. package/dist/engine/data/incrementalLoadHint.d.ts +2 -4
  28. package/dist/engine/data/incrementalLoadHint.d.ts.map +1 -1
  29. package/dist/engine/data/incrementalLoadHint.js +5 -2
  30. package/dist/engine/data/incrementalLoadHint.js.map +1 -1
  31. package/dist/engine/data/scrollCompensator.d.ts +3 -13
  32. package/dist/engine/data/scrollCompensator.d.ts.map +1 -1
  33. package/dist/engine/data/scrollCompensator.js +13 -14
  34. package/dist/engine/data/scrollCompensator.js.map +1 -1
  35. package/dist/engine/indicators/chartIndicatorManager.d.ts +16 -17
  36. package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
  37. package/dist/engine/indicators/chartIndicatorManager.js +37 -37
  38. package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
  39. package/dist/engine/layout/chartPaneLayout.d.ts +11 -7
  40. package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -1
  41. package/dist/engine/layout/chartPaneLayout.js +58 -16
  42. package/dist/engine/layout/chartPaneLayout.js.map +1 -1
  43. package/dist/engine/paneRenderer.d.ts +2 -0
  44. package/dist/engine/paneRenderer.d.ts.map +1 -1
  45. package/dist/engine/paneRenderer.js +15 -5
  46. package/dist/engine/paneRenderer.js.map +1 -1
  47. package/dist/engine/render/chartRenderer.d.ts +28 -22
  48. package/dist/engine/render/chartRenderer.d.ts.map +1 -1
  49. package/dist/engine/render/chartRenderer.js +117 -69
  50. package/dist/engine/render/chartRenderer.js.map +1 -1
  51. package/dist/engine/render/layers/leftYAxisLayer.d.ts +9 -2
  52. package/dist/engine/render/layers/leftYAxisLayer.d.ts.map +1 -1
  53. package/dist/engine/render/layers/leftYAxisLayer.js +11 -2
  54. package/dist/engine/render/layers/leftYAxisLayer.js.map +1 -1
  55. package/dist/engine/render/layers/mainIndicatorLegendLayer.d.ts +6 -4
  56. package/dist/engine/render/layers/mainIndicatorLegendLayer.d.ts.map +1 -1
  57. package/dist/engine/render/layers/mainIndicatorLegendLayer.js +6 -9
  58. package/dist/engine/render/layers/mainIndicatorLegendLayer.js.map +1 -1
  59. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.d.ts +2 -0
  60. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.d.ts.map +1 -0
  61. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.js +19 -0
  62. package/dist/engine/render/layers/mainIndicatorLegendLayer.test.js.map +1 -0
  63. package/dist/engine/render/layers/yAxisLayer.d.ts +9 -2
  64. package/dist/engine/render/layers/yAxisLayer.d.ts.map +1 -1
  65. package/dist/engine/render/layers/yAxisLayer.js +11 -2
  66. package/dist/engine/render/layers/yAxisLayer.js.map +1 -1
  67. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts +7 -3
  68. package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
  69. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +234 -330
  70. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  71. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts +72 -0
  72. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.d.ts.map +1 -0
  73. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js +177 -0
  74. package/dist/engine/renderers/Indicator/mainIndicatorLegendContext.js.map +1 -0
  75. package/dist/engine/renderers/leftYAxis.d.ts +15 -2
  76. package/dist/engine/renderers/leftYAxis.d.ts.map +1 -1
  77. package/dist/engine/renderers/leftYAxis.js +56 -16
  78. package/dist/engine/renderers/leftYAxis.js.map +1 -1
  79. package/dist/engine/renderers/yAxis.d.ts +16 -6
  80. package/dist/engine/renderers/yAxis.d.ts.map +1 -1
  81. package/dist/engine/renderers/yAxis.js +49 -16
  82. package/dist/engine/renderers/yAxis.js.map +1 -1
  83. package/dist/engine/state/viewportState.d.ts +4 -1
  84. package/dist/engine/state/viewportState.d.ts.map +1 -1
  85. package/dist/engine/state/viewportState.js +40 -8
  86. package/dist/engine/state/viewportState.js.map +1 -1
  87. package/dist/engine/subPaneManager.d.ts +5 -3
  88. package/dist/engine/subPaneManager.d.ts.map +1 -1
  89. package/dist/engine/subPaneManager.js +3 -2
  90. package/dist/engine/subPaneManager.js.map +1 -1
  91. package/dist/engine/utils/chartZoomController.d.ts +9 -7
  92. package/dist/engine/utils/chartZoomController.d.ts.map +1 -1
  93. package/dist/engine/utils/chartZoomController.js +13 -12
  94. package/dist/engine/utils/chartZoomController.js.map +1 -1
  95. package/dist/engine/viewport/chartViewportManager.d.ts +5 -16
  96. package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
  97. package/dist/engine/viewport/chartViewportManager.js +7 -48
  98. package/dist/engine/viewport/chartViewportManager.js.map +1 -1
  99. package/dist/engine/viewport/viewport.d.ts +14 -0
  100. package/dist/engine/viewport/viewport.d.ts.map +1 -1
  101. package/dist/engine/viewport/viewport.js +10 -0
  102. package/dist/engine/viewport/viewport.js.map +1 -1
  103. package/dist/foundation/plugin/rendererPluginManager.test.js +15 -0
  104. package/dist/foundation/plugin/rendererPluginManager.test.js.map +1 -1
  105. package/dist/foundation/plugin/types.d.ts +3 -0
  106. package/dist/foundation/plugin/types.d.ts.map +1 -1
  107. package/dist/foundation/plugin/types.js.map +1 -1
  108. package/dist/foundation/reactivity/frameTransaction.d.ts +11 -0
  109. package/dist/foundation/reactivity/frameTransaction.d.ts.map +1 -1
  110. package/dist/foundation/reactivity/frameTransaction.js +17 -2
  111. package/dist/foundation/reactivity/frameTransaction.js.map +1 -1
  112. package/dist/rendering/render/Renderer.d.ts +58 -74
  113. package/dist/rendering/render/Renderer.d.ts.map +1 -1
  114. package/dist/rendering/render/Renderer.js +8 -18
  115. package/dist/rendering/render/Renderer.js.map +1 -1
  116. package/dist/rendering/render/createWebGPURenderer.d.ts.map +1 -1
  117. package/dist/rendering/render/createWebGPURenderer.js +30 -17
  118. package/dist/rendering/render/createWebGPURenderer.js.map +1 -1
  119. package/dist/rendering/render/createWebGPUSurfaceBackend.js +3 -3
  120. package/dist/rendering/render/createWebGPUSurfaceBackend.js.map +1 -1
  121. package/dist/rendering/render/physicalLine.d.ts +4 -0
  122. package/dist/rendering/render/physicalLine.d.ts.map +1 -0
  123. package/dist/rendering/render/physicalLine.js +37 -0
  124. package/dist/rendering/render/physicalLine.js.map +1 -0
  125. package/dist/rendering/render/physicalRegion.d.ts +14 -0
  126. package/dist/rendering/render/physicalRegion.d.ts.map +1 -0
  127. package/dist/rendering/render/physicalRegion.js +15 -0
  128. package/dist/rendering/render/physicalRegion.js.map +1 -0
  129. package/dist/rendering/scene/createLayerFromPlugin.d.ts.map +1 -1
  130. package/dist/rendering/scene/createLayerFromPlugin.js +8 -3
  131. package/dist/rendering/scene/createLayerFromPlugin.js.map +1 -1
  132. package/dist/rendering/scene/createScene.d.ts.map +1 -1
  133. package/dist/rendering/scene/createScene.js +4 -3
  134. package/dist/rendering/scene/createScene.js.map +1 -1
  135. package/dist/version.d.ts +1 -1
  136. package/dist/version.js +1 -1
  137. package/package.json +1 -1
  138. package/src/__tests__/stateKernel.test.ts +1 -0
  139. package/src/controllers/createChartController.ts +9 -8
  140. package/src/controllers/index.ts +11 -0
  141. package/src/controllers/types.ts +7 -0
  142. package/src/data/binance.ts +1 -1
  143. package/src/engine/__tests__/chart.dpr.test.ts +3 -2
  144. package/src/engine/__tests__/paneRenderer.resize.test.ts +52 -54
  145. package/src/engine/__tests__/subPaneManager.test.ts +5 -3
  146. package/src/engine/chart.ts +76 -109
  147. package/src/engine/chartTypes.ts +5 -0
  148. package/src/engine/controller/__tests__/interaction.dpr.test.ts +39 -2
  149. package/src/engine/controller/interaction.ts +18 -10
  150. package/src/engine/data/__tests__/chartDataManager.incrementalLoad.test.ts +37 -17
  151. package/src/engine/data/__tests__/scrollCompensator.geometry.test.ts +87 -75
  152. package/src/engine/data/chartDataManager.ts +54 -59
  153. package/src/engine/data/incrementalLoadHint.ts +8 -7
  154. package/src/engine/data/scrollCompensator.ts +16 -24
  155. package/src/engine/indicators/__tests__/chartIndicatorManager.test.ts +18 -26
  156. package/src/engine/indicators/chartIndicatorManager.ts +62 -62
  157. package/src/engine/layout/chartPaneLayout.ts +73 -21
  158. package/src/engine/paneRenderer.ts +17 -10
  159. package/src/engine/render/chartRenderer.ts +187 -129
  160. package/src/engine/render/layers/leftYAxisLayer.ts +29 -7
  161. package/src/engine/render/layers/mainIndicatorLegendLayer.test.ts +26 -0
  162. package/src/engine/render/layers/mainIndicatorLegendLayer.ts +13 -10
  163. package/src/engine/render/layers/yAxisLayer.ts +29 -7
  164. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +270 -403
  165. package/src/engine/renderers/Indicator/mainIndicatorLegendContext.ts +282 -0
  166. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +73 -2
  167. package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +10 -6
  168. package/src/engine/renderers/leftYAxis.ts +60 -18
  169. package/src/engine/renderers/yAxis.ts +57 -22
  170. package/src/engine/state/viewportState.ts +44 -8
  171. package/src/engine/subPaneManager.ts +8 -5
  172. package/src/engine/utils/chartZoomController.ts +22 -19
  173. package/src/engine/viewport/__tests__/visibleRange.clamp.test.ts +50 -0
  174. package/src/engine/viewport/chartViewportManager.ts +9 -60
  175. package/src/engine/viewport/viewport.ts +14 -0
  176. package/src/foundation/plugin/rendererPluginManager.test.ts +18 -0
  177. package/src/foundation/plugin/types.ts +3 -0
  178. package/src/foundation/reactivity/frameTransaction.ts +20 -6
  179. package/src/rendering/render/Renderer.ts +69 -85
  180. package/src/rendering/render/__tests__/physicalLine.test.ts +51 -0
  181. package/src/rendering/render/__tests__/physicalRegion.test.ts +23 -0
  182. package/src/rendering/render/__tests__/webgpuRenderer.test.ts +31 -1
  183. package/src/rendering/render/__tests__/webgpuSurfaceBackend.test.ts +11 -0
  184. package/src/rendering/render/createWebGPURenderer.ts +30 -17
  185. package/src/rendering/render/createWebGPUSurfaceBackend.ts +3 -3
  186. package/src/rendering/render/physicalLine.ts +45 -0
  187. package/src/rendering/render/physicalRegion.ts +32 -0
  188. package/src/rendering/scene/createLayerFromPlugin.ts +8 -3
  189. package/src/rendering/scene/createScene.ts +4 -3
  190. package/src/version.ts +1 -1
@@ -1,15 +1,37 @@
1
1
  import type { RenderContext } from '../../../foundation/plugin/index'
2
2
  import { createLayerFromPlugin } from '../../../rendering/scene/createLayerFromPlugin'
3
3
  import type { Layer } from '../../../rendering/scene/types'
4
- import { createLeftYAxisRendererPlugin } from '../../renderers/leftYAxis'
4
+ import {
5
+ createLeftYAxisOverlayRendererPlugin,
6
+ createLeftYAxisStaticRendererPlugin,
7
+ } from '../../renderers/leftYAxis'
5
8
 
9
+ type LeftYAxisLayerOptions = {
10
+ axisWidth: number
11
+ yPaddingPx: number
12
+ getCrosshair: () => { y: number; price: number; activePaneId: string | null } | null
13
+ }
14
+
15
+ /** 左 Y 轴静态层(刻度),main canvas 级刷新 */
16
+ export function createLeftYAxisStaticLayer(
17
+ options: LeftYAxisLayerOptions,
18
+ getContext: () => RenderContext | null,
19
+ ): Layer {
20
+ return createLayerFromPlugin(createLeftYAxisStaticRendererPlugin(options), getContext, 'global')
21
+ }
22
+
23
+ /** 左 Y 轴动态层(十字线价签),overlay 级刷新 */
24
+ export function createLeftYAxisOverlayLayer(
25
+ options: LeftYAxisLayerOptions,
26
+ getContext: () => RenderContext | null,
27
+ ): Layer {
28
+ return createLayerFromPlugin(createLeftYAxisOverlayRendererPlugin(options), getContext, 'global')
29
+ }
30
+
31
+ /** @deprecated 使用 createLeftYAxisStaticLayer */
6
32
  export function createLeftYAxisLayer(
7
- options: {
8
- axisWidth: number
9
- yPaddingPx: number
10
- getCrosshair: () => { y: number; price: number; activePaneId: string | null } | null
11
- },
33
+ options: LeftYAxisLayerOptions,
12
34
  getContext: () => RenderContext | null,
13
35
  ): Layer {
14
- return createLayerFromPlugin(createLeftYAxisRendererPlugin(options), getContext, 'global')
36
+ return createLeftYAxisStaticLayer(options, getContext)
15
37
  }
@@ -0,0 +1,26 @@
1
+ import { describe, expect, it, vi } from 'vitest'
2
+
3
+ const plugin = vi.hoisted(() => ({
4
+ name: 'mainIndicatorLegend',
5
+ paneId: 'main',
6
+ priority: 0,
7
+ draw: vi.fn(),
8
+ onInstall: vi.fn(),
9
+ }))
10
+
11
+ vi.mock('../../renderers/Indicator/mainIndicatorLegend', () => ({
12
+ createMainIndicatorLegendRendererPlugin: vi.fn(() => plugin),
13
+ }))
14
+
15
+ import { createMainIndicatorLegendLayer } from './mainIndicatorLegendLayer'
16
+
17
+ describe('createMainIndicatorLegendLayer', () => {
18
+ it('leaves plugin installation to RendererPluginManager', () => {
19
+ createMainIndicatorLegendLayer(
20
+ { yPaddingPx: 20 },
21
+ () => null,
22
+ )
23
+
24
+ expect(plugin.onInstall).not.toHaveBeenCalled()
25
+ })
26
+ })
@@ -1,18 +1,21 @@
1
- import type { RenderContext, PluginHost } from '../../../foundation/plugin/index'
1
+ import type {
2
+ RenderContext,
3
+ RendererPluginWithHost,
4
+ } from '../../../foundation/plugin/index'
2
5
  import { createLayerFromPlugin } from '../../../rendering/scene/createLayerFromPlugin'
3
6
  import type { Layer } from '../../../rendering/scene/types'
4
- import { createMainIndicatorLegendRendererPlugin } from '../../renderers/Indicator/mainIndicatorLegend'
7
+ import {
8
+ createMainIndicatorLegendRendererPlugin,
9
+ type MainIndicatorLegendOptions,
10
+ } from '../../renderers/Indicator/mainIndicatorLegend'
5
11
 
6
12
  export function createMainIndicatorLegendLayer(
7
- config: { yPaddingPx: number },
13
+ config: MainIndicatorLegendOptions,
8
14
  getContext: () => RenderContext | null,
9
- pluginHost: PluginHost,
10
- ): Layer {
15
+ ): { layer: Layer; plugin: RendererPluginWithHost } {
11
16
  const plugin = createMainIndicatorLegendRendererPlugin(config)
12
- try {
13
- plugin.onInstall?.(pluginHost)
14
- } catch (e) {
15
- console.error(`[MainIndicatorLegendLayer] onInstall error:`, e)
17
+ return {
18
+ layer: createLayerFromPlugin(plugin, getContext, 'main'),
19
+ plugin,
16
20
  }
17
- return createLayerFromPlugin(plugin, getContext, 'main')
18
21
  }
@@ -1,15 +1,37 @@
1
1
  import type { RenderContext } from '../../../foundation/plugin/index'
2
2
  import { createLayerFromPlugin } from '../../../rendering/scene/createLayerFromPlugin'
3
3
  import type { Layer } from '../../../rendering/scene/types'
4
- import { createYAxisRendererPlugin } from '../../renderers/yAxis'
4
+ import {
5
+ createYAxisOverlayRendererPlugin,
6
+ createYAxisStaticRendererPlugin,
7
+ } from '../../renderers/yAxis'
5
8
 
9
+ type YAxisLayerOptions = {
10
+ axisWidth: number
11
+ yPaddingPx: number
12
+ getCrosshair: () => { y: number; price: number; activePaneId: string | null } | null
13
+ }
14
+
15
+ /** Y 轴静态层(刻度),main canvas 级刷新 */
16
+ export function createYAxisStaticLayer(
17
+ options: YAxisLayerOptions,
18
+ getContext: () => RenderContext | null,
19
+ ): Layer {
20
+ return createLayerFromPlugin(createYAxisStaticRendererPlugin(options), getContext, 'global')
21
+ }
22
+
23
+ /** Y 轴动态层(标签 + 十字线价签),overlay 级刷新 */
24
+ export function createYAxisOverlayLayer(
25
+ options: YAxisLayerOptions,
26
+ getContext: () => RenderContext | null,
27
+ ): Layer {
28
+ return createLayerFromPlugin(createYAxisOverlayRendererPlugin(options), getContext, 'global')
29
+ }
30
+
31
+ /** @deprecated 使用 createYAxisStaticLayer */
6
32
  export function createYAxisLayer(
7
- options: {
8
- axisWidth: number
9
- yPaddingPx: number
10
- getCrosshair: () => { y: number; price: number; activePaneId: string | null } | null
11
- },
33
+ options: YAxisLayerOptions,
12
34
  getContext: () => RenderContext | null,
13
35
  ): Layer {
14
- return createLayerFromPlugin(createYAxisRendererPlugin(options), getContext, 'global')
36
+ return createYAxisStaticLayer(options, getContext)
15
37
  }