@baron1996/klinecharts-runtime 0.9.3 → 0.9.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.
- package/README.md +29 -1
- package/dist/drawing/scene-runtime-factory.d.ts +5 -1
- package/dist/drawing/scene-runtime-factory.d.ts.map +1 -1
- package/dist/drawing/scene-runtime-factory.js +1 -1
- package/dist/drawing/workspace-runtime.d.ts +5 -1
- package/dist/drawing/workspace-runtime.d.ts.map +1 -1
- package/dist/drawing/workspace-runtime.js +10 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Browser editing runtime and standard annotation toolbar for deterministic KLineC
|
|
|
4
4
|
ChartScene files.
|
|
5
5
|
|
|
6
6
|
```bash
|
|
7
|
-
npm install --save-exact @baron1996/kline-scene-schema@0.6.0 @baron1996/klinecharts-runtime@0.9.
|
|
7
|
+
npm install --save-exact @baron1996/kline-scene-schema@0.6.0 @baron1996/klinecharts-runtime@0.9.5
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
```ts
|
|
@@ -76,6 +76,15 @@ import {
|
|
|
76
76
|
|
|
77
77
|
const runtime = await createDrawableWorkspaceRuntime(container, loadedWorkspace, {
|
|
78
78
|
commitMode: 'host-confirmed',
|
|
79
|
+
displayTimezone: 'UTC',
|
|
80
|
+
drawingInteraction: {
|
|
81
|
+
touch: 'precision-cursor',
|
|
82
|
+
exclusiveSelection: true,
|
|
83
|
+
hitTolerance: {
|
|
84
|
+
mouse: { body: 12, anchor: 14 },
|
|
85
|
+
touch: { body: 22, anchor: 24 },
|
|
86
|
+
},
|
|
87
|
+
},
|
|
79
88
|
});
|
|
80
89
|
|
|
81
90
|
const coordinator = createCrossPeriodDrawingCoordinator(
|
|
@@ -105,6 +114,25 @@ coordinator.destroy();
|
|
|
105
114
|
runtime.destroy();
|
|
106
115
|
```
|
|
107
116
|
|
|
117
|
+
`displayTimezone` is a presentation-only IANA timezone override. It changes the
|
|
118
|
+
KLineCharts time axis and adds the active timezone to tooltip dates, but it is not
|
|
119
|
+
written into the Workspace and does not change candle timestamps, period rules,
|
|
120
|
+
Drawing projection, or host alerts. Omit it to use the Scene chart timezone.
|
|
121
|
+
|
|
122
|
+
`drawingInteraction.touch: 'precision-cursor'` enables the mobile precision flow for
|
|
123
|
+
`segment`: moving a touch positions an offset virtual crosshair, while a stationary
|
|
124
|
+
tap confirms each endpoint. The mode is selected from the actual touch pointer type,
|
|
125
|
+
so mouse input keeps KLineCharts' native two-click behavior even when the option is
|
|
126
|
+
enabled. The guide UI and interaction state are transient and are never written into
|
|
127
|
+
the Workspace. Omit the option (or use `touch: 'native'`) for native touch behavior.
|
|
128
|
+
|
|
129
|
+
`drawingInteraction.exclusiveSelection` routes existing Drawing selection and dragging
|
|
130
|
+
through the adapter. While a Drawing is selected, chart scrolling, zooming, and the
|
|
131
|
+
crosshair are suspended. The first blank pointer gesture only clears the selection;
|
|
132
|
+
the following gesture returns to chart navigation. `hitTolerance` uses CSS pixels and
|
|
133
|
+
defaults to a 24px mouse body band and a 44px touch body band, with 14px and 24px anchor
|
|
134
|
+
radii respectively.
|
|
135
|
+
|
|
108
136
|
The coordinator never derives `scopeKey` from `scene.symbol.ticker`, never accesses
|
|
109
137
|
the KLineCharts `Chart`, and never converts legacy `ChartScene.overlays` into a
|
|
110
138
|
Workspace. A Scene switch changes only `workspace.scene`; the confirmed
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ChartScene, DrawableWorkspaceDocument, TimeSeriesScene } from '@baron1996/kline-scene-schema';
|
|
2
|
-
import { type DrawingEnginePort, type DrawingProjectionPolicy } from '@baron1996/klinecharts-adapter';
|
|
2
|
+
import { type DrawingInteractionOptions, type DrawingEnginePort, type DrawingProjectionPolicy } from '@baron1996/klinecharts-adapter';
|
|
3
3
|
export interface SceneRuntimeRegistration {
|
|
4
4
|
readonly sceneKind: 'chart' | 'time-series';
|
|
5
5
|
parseScene(value: unknown): ChartScene | TimeSeriesScene;
|
|
@@ -14,6 +14,10 @@ export interface SceneRuntimeAdapterOptions {
|
|
|
14
14
|
readonly historicalDataLoading?: {
|
|
15
15
|
readonly hasMore: boolean;
|
|
16
16
|
};
|
|
17
|
+
/** 仅改变时间文本与坐标轴的展示时区,不改变 Scene/Drawings 的业务时区。 */
|
|
18
|
+
readonly displayTimezone?: string;
|
|
19
|
+
/** 仅改变输入交互,不改变 Drawing 几何与持久化协议。 */
|
|
20
|
+
readonly drawingInteraction?: DrawingInteractionOptions;
|
|
17
21
|
}
|
|
18
22
|
export declare function registerSceneRuntime(registration: SceneRuntimeRegistration): void;
|
|
19
23
|
export declare function getSceneRuntime(kind: 'chart' | 'time-series'): SceneRuntimeRegistration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-runtime-factory.d.ts","sourceRoot":"","sources":["../../src/drawing/scene-runtime-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAKN,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;IACzD,aAAa,CACZ,SAAS,EAAE,WAAW,EACtB,SAAS,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,0BAA0B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,YAAY,IAAI,uBAAuB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;KAC9B,CAAC;CACF;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"scene-runtime-factory.d.ts","sourceRoot":"","sources":["../../src/drawing/scene-runtime-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAKN,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;IACzD,aAAa,CACZ,SAAS,EAAE,WAAW,EACtB,SAAS,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,0BAA0B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,YAAY,IAAI,uBAAuB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;KAC9B,CAAC;CACF;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/D,iDAAiD;IACjD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,oCAAoC;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CACxD;AAID,wBAAgB,oBAAoB,CACnC,YAAY,EAAE,wBAAwB,GACpC,IAAI,CAEN;AAED,wBAAgB,eAAe,CAC9B,IAAI,EAAE,OAAO,GAAG,aAAa,GAC3B,wBAAwB,CAM1B"}
|
|
@@ -21,7 +21,7 @@ registerSceneRuntime({
|
|
|
21
21
|
registerSceneRuntime({
|
|
22
22
|
sceneKind: 'time-series',
|
|
23
23
|
parseScene: (value) => parseTimeSeriesScene(value),
|
|
24
|
-
createAdapter: (container, workspace) => TimeSeriesChartsAdapter.createWorkspace(container, workspace),
|
|
24
|
+
createAdapter: (container, workspace, options) => TimeSeriesChartsAdapter.createWorkspace(container, workspace, options),
|
|
25
25
|
createPolicy: () => new TimeSeriesDrawingProjectionPolicy(),
|
|
26
26
|
defaultTarget: { paneRole: 'time-series', yAxisRole: 'primary' },
|
|
27
27
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ChartScene, DrawableWorkspaceDocument, Drawing, DrawingDocument, MarketData, TimeSeriesScene } from '@baron1996/kline-scene-schema';
|
|
2
|
-
import type { EngineDrawingSnapshot, EngineHistoricalDataCommitResult, MainSeriesPresentation } from '@baron1996/klinecharts-adapter';
|
|
2
|
+
import type { DrawingInteractionOptions, EngineDrawingSnapshot, EngineHistoricalDataCommitResult, MainSeriesPresentation } from '@baron1996/klinecharts-adapter';
|
|
3
3
|
import type { DrawingRuntimeCapability, HistoricalDataRuntimeCapability, RuntimeAuxiliaryCapability } from './capabilities.js';
|
|
4
4
|
import type { HostActionDescriptor, RuntimeCapabilityDescriptor } from './runtime-capability-descriptor.js';
|
|
5
5
|
import { DrawingSessionController } from './session-controller.js';
|
|
@@ -11,6 +11,10 @@ export interface DrawableWorkspaceRuntimeOptions {
|
|
|
11
11
|
readonly historicalDataLoading?: {
|
|
12
12
|
readonly hasMore: boolean;
|
|
13
13
|
};
|
|
14
|
+
/** 仅用于 UI 展示;不会写入 Workspace,也不会改变投影与会话时区。 */
|
|
15
|
+
readonly displayTimezone?: string;
|
|
16
|
+
/** 可选输入策略;默认使用图表引擎原生 Drawing 交互。 */
|
|
17
|
+
readonly drawingInteraction?: DrawingInteractionOptions;
|
|
14
18
|
}
|
|
15
19
|
export interface DrawableWorkspaceRuntimeHandle extends DrawingRuntimeCapability, HistoricalDataRuntimeCapability, RuntimeAuxiliaryCapability {
|
|
16
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-runtime.d.ts","sourceRoot":"","sources":["../../src/drawing/workspace-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,yBAAyB,EACzB,OAAO,EACP,eAAe,EACf,UAAU,EACV,eAAe,EACf,MAAM,+BAA+B,CAAC;AAOvC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"workspace-runtime.d.ts","sourceRoot":"","sources":["../../src/drawing/workspace-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,11 +98,21 @@ export class DrawableWorkspaceRuntime {
|
|
|
98
98
|
workspace.scene.kind !== 'chart') {
|
|
99
99
|
throw new Error('HISTORICAL_DATA_UNSUPPORTED: only chart Workspaces support historical data loading.');
|
|
100
100
|
}
|
|
101
|
+
if (options.drawingInteraction?.touch === 'precision-cursor' &&
|
|
102
|
+
workspace.scene.kind !== 'chart') {
|
|
103
|
+
throw new Error('TOUCH_DRAWING_UNSUPPORTED: precision cursor requires a chart Workspace.');
|
|
104
|
+
}
|
|
101
105
|
const registration = getSceneRuntime(workspace.scene.kind);
|
|
102
106
|
const engine = await registration.createAdapter(container, workspace, {
|
|
103
107
|
...(options.historicalDataLoading === undefined
|
|
104
108
|
? {}
|
|
105
109
|
: { historicalDataLoading: options.historicalDataLoading }),
|
|
110
|
+
...(options.displayTimezone === undefined
|
|
111
|
+
? {}
|
|
112
|
+
: { displayTimezone: options.displayTimezone }),
|
|
113
|
+
...(options.drawingInteraction === undefined
|
|
114
|
+
? {}
|
|
115
|
+
: { drawingInteraction: options.drawingInteraction }),
|
|
106
116
|
});
|
|
107
117
|
return new DrawableWorkspaceRuntime(container, workspace, engine, options);
|
|
108
118
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Web Runtime npm 包版本;ChartScene runtimeVersion 是独立的数据契约版本。 */
|
|
2
|
-
export declare const WEB_RUNTIME_PACKAGE_VERSION: "0.9.
|
|
2
|
+
export declare const WEB_RUNTIME_PACKAGE_VERSION: "0.9.5";
|
|
3
3
|
export { SUPPORTED_OVERLAYS } from '@baron1996/klinecharts-adapter';
|
|
4
4
|
export * from './cross-period/coordinator.js';
|
|
5
5
|
export * from './drawing/capabilities.js';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Web Runtime npm 包版本;ChartScene runtimeVersion 是独立的数据契约版本。 */
|
|
2
|
-
export const WEB_RUNTIME_PACKAGE_VERSION = '0.9.
|
|
2
|
+
export const WEB_RUNTIME_PACKAGE_VERSION = '0.9.5';
|
|
3
3
|
export { SUPPORTED_OVERLAYS } from '@baron1996/klinecharts-adapter';
|
|
4
4
|
export * from './cross-period/coordinator.js';
|
|
5
5
|
export * from './drawing/capabilities.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baron1996/klinecharts-runtime",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"description": "Web runtime for deterministic KLineCharts scenes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@baron1996/kline-scene-schema": "0.6.0",
|
|
43
|
-
"@baron1996/klinecharts-adapter": "0.9.
|
|
43
|
+
"@baron1996/klinecharts-adapter": "0.9.5",
|
|
44
44
|
"@js-temporal/polyfill": "0.5.1"
|
|
45
45
|
}
|
|
46
46
|
}
|