@baron1996/klinecharts-adapter 0.5.1 → 0.8.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/dist/adapter.d.ts +12 -4
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +151 -3
- package/dist/drawing/engine-port.d.ts +24 -1
- package/dist/drawing/engine-port.d.ts.map +1 -1
- package/dist/drawing/overlay-conversion.js +4 -4
- package/dist/time-series/adapter.js +10 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/adapter.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ChartScene, Drawing, SceneIndicator, SceneOverlay } from '@baron1996/kline-scene-schema';
|
|
1
|
+
import type { ChartScene, Drawing, MarketData, SceneIndicator, SceneOverlay } from '@baron1996/kline-scene-schema';
|
|
2
2
|
import { SceneError } from '@baron1996/kline-scene-schema';
|
|
3
3
|
import { type OverlayDrawingSource } from './conversion/overlays.js';
|
|
4
|
-
import type { DrawingEnginePort, EngineDrawingEvent, EngineDrawingSnapshot, EngineDrawingStartRequest, EnginePixelCoordinate, EnginePointProjection } from './drawing/engine-port.js';
|
|
4
|
+
import type { DrawingEnginePort, EngineDrawingEvent, EngineDrawingSnapshot, EngineDrawingStartRequest, EngineHistoricalDataCommitResult, EngineHistoricalDataRequest, EnginePixelCoordinate, EnginePointProjection, HistoricalDataEnginePort } from './drawing/engine-port.js';
|
|
5
5
|
import { type MainSeriesPresentation, type MainSeriesPresentationPort, type MainSeriesPresentationResult } from './main-series-presentation.js';
|
|
6
6
|
import { type OverlayHitResult, type PixelCoordinate } from './interaction/hit-testing.js';
|
|
7
7
|
export type PriceScale = 'linear' | 'logarithmic';
|
|
@@ -94,17 +94,25 @@ export interface OverlayDrawingRequest extends OverlayDrawingSource {
|
|
|
94
94
|
* ChartScene 与 KLineCharts 之间的唯一边界。
|
|
95
95
|
* 引擎对象和内部 ID 永不从该类的公共接口泄露。
|
|
96
96
|
*/
|
|
97
|
-
export declare class KLineChartsSceneAdapter implements DrawingEnginePort, MainSeriesPresentationPort {
|
|
97
|
+
export declare class KLineChartsSceneAdapter implements DrawingEnginePort, HistoricalDataEnginePort, MainSeriesPresentationPort {
|
|
98
98
|
#private;
|
|
99
99
|
private constructor();
|
|
100
100
|
static create(container: HTMLElement, value: unknown): Promise<KLineChartsSceneAdapter>;
|
|
101
101
|
/** 显式 Workspace factory:非空 Legacy overlays 由工作区语义校验拒绝。 */
|
|
102
|
-
static createWorkspace(container: HTMLElement, value: unknown
|
|
102
|
+
static createWorkspace(container: HTMLElement, value: unknown, options?: {
|
|
103
|
+
readonly historicalDataLoading?: {
|
|
104
|
+
readonly hasMore: boolean;
|
|
105
|
+
};
|
|
106
|
+
}): Promise<KLineChartsSceneAdapter>;
|
|
103
107
|
subscribe(listener: AdapterSceneEventListener): () => void;
|
|
104
108
|
exportScene(): ChartScene;
|
|
105
109
|
setPriceScale(scale: PriceScale): Promise<ChartScene>;
|
|
106
110
|
/** 同结构场景替换:symbol/period/data/viewport 原子更新,失败恢复旧场景。 */
|
|
107
111
|
replaceScene(value: ChartScene): ChartScene;
|
|
112
|
+
configureHistoricalDataLoading(hasMore: boolean): void;
|
|
113
|
+
subscribeHistoricalDataRequests(listener: (request: EngineHistoricalDataRequest) => void): () => void;
|
|
114
|
+
commitHistoricalData(requestId: string, data: readonly MarketData[], hasMore: boolean): EngineHistoricalDataCommitResult;
|
|
115
|
+
rejectHistoricalData(requestId: string): boolean;
|
|
108
116
|
get sceneKind(): 'chart' | 'time-series';
|
|
109
117
|
restoreDrawings(drawings: readonly EngineDrawingSnapshot[]): void;
|
|
110
118
|
startDrawing(request: EngineDrawingStartRequest): string;
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter.js
CHANGED
|
@@ -118,6 +118,14 @@ export class KLineChartsSceneAdapter {
|
|
|
118
118
|
#workspaceSources = new Map();
|
|
119
119
|
/** 公共 Drawing 端口监听器。 */
|
|
120
120
|
#portListeners = new Set();
|
|
121
|
+
/** 更早行情请求监听器;仅传递纯数据请求。 */
|
|
122
|
+
#historicalDataListeners = new Set();
|
|
123
|
+
/** 历史行情加载开关及服务端是否仍可能存在更早数据。 */
|
|
124
|
+
#historicalDataLoading;
|
|
125
|
+
/** 当前唯一待完成的历史行情请求,防止重复并发前插。 */
|
|
126
|
+
#pendingHistoricalData;
|
|
127
|
+
/** 历史行情请求的单调序号。 */
|
|
128
|
+
#historicalDataSequence = 0;
|
|
121
129
|
/** 交互启用开关。 */
|
|
122
130
|
#mutationsEnabled = true;
|
|
123
131
|
/** 主序列回滚失败后的只能销毁终止态。 */
|
|
@@ -170,7 +178,7 @@ export class KLineChartsSceneAdapter {
|
|
|
170
178
|
}
|
|
171
179
|
}
|
|
172
180
|
/** 显式 Workspace factory:非空 Legacy overlays 由工作区语义校验拒绝。 */
|
|
173
|
-
static async createWorkspace(container, value) {
|
|
181
|
+
static async createWorkspace(container, value, options) {
|
|
174
182
|
const workspace = parseDrawableWorkspaceDocument(value);
|
|
175
183
|
if (workspace.scene.kind !== 'chart') {
|
|
176
184
|
throw new SceneError('INVALID_REFERENCE', '/scene/kind', 'KLineChartsSceneAdapter requires a chart Workspace Scene.');
|
|
@@ -188,6 +196,9 @@ export class KLineChartsSceneAdapter {
|
|
|
188
196
|
applyViewport(handle.chart, scene.viewport);
|
|
189
197
|
container.style.backgroundColor = scene.chart.layout.backgroundColor;
|
|
190
198
|
adapter.#workspaceMode = true;
|
|
199
|
+
if (options?.historicalDataLoading !== undefined) {
|
|
200
|
+
adapter.configureHistoricalDataLoading(options.historicalDataLoading.hasMore);
|
|
201
|
+
}
|
|
191
202
|
adapter.#restoreWorkspaceDrawings(workspace.drawings.drawings.map((drawing) => snapshotOfDrawing(drawing)));
|
|
192
203
|
return adapter;
|
|
193
204
|
}
|
|
@@ -263,6 +274,48 @@ export class KLineChartsSceneAdapter {
|
|
|
263
274
|
listener(structuredClone(event));
|
|
264
275
|
}
|
|
265
276
|
}
|
|
277
|
+
#historicalDataLoader(scene) {
|
|
278
|
+
const snapshot = structuredClone(scene.data);
|
|
279
|
+
return {
|
|
280
|
+
getBars: ({ type, timestamp, callback }) => {
|
|
281
|
+
if (type === 'init') {
|
|
282
|
+
callback(structuredClone(snapshot), {
|
|
283
|
+
forward: this.#historicalDataLoading?.hasMore ?? false,
|
|
284
|
+
backward: false,
|
|
285
|
+
});
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
if (type !== 'forward' ||
|
|
289
|
+
this.#historicalDataLoading?.hasMore !== true ||
|
|
290
|
+
timestamp === null) {
|
|
291
|
+
callback([], { forward: false, backward: false });
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (this.#pendingHistoricalData !== undefined) {
|
|
295
|
+
callback([], { forward: true, backward: false });
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const request = {
|
|
299
|
+
requestId: `historical-data-${++this.#historicalDataSequence}`,
|
|
300
|
+
beforeTimestamp: timestamp,
|
|
301
|
+
period: structuredClone(this.#scene.period),
|
|
302
|
+
dataCount: this.#scene.data.length,
|
|
303
|
+
};
|
|
304
|
+
this.#pendingHistoricalData = { request, callback };
|
|
305
|
+
for (const listener of this.#historicalDataListeners) {
|
|
306
|
+
listener(structuredClone(request));
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
#settlePendingHistoricalData(hasMore) {
|
|
312
|
+
const pending = this.#pendingHistoricalData;
|
|
313
|
+
if (pending === undefined) {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
this.#pendingHistoricalData = undefined;
|
|
317
|
+
pending.callback([], { forward: hasMore, backward: false });
|
|
318
|
+
}
|
|
266
319
|
#restoreWorkspaceDrawings(drawings) {
|
|
267
320
|
for (const overlay of this.#workspaceOverlays) {
|
|
268
321
|
this.#chart.removeOverlay({ id: overlay.id });
|
|
@@ -856,6 +909,8 @@ export class KLineChartsSceneAdapter {
|
|
|
856
909
|
}
|
|
857
910
|
const previous = this.#scene;
|
|
858
911
|
const previousBackground = this.#container.style.backgroundColor;
|
|
912
|
+
const previousHistoricalHasMore = this.#historicalDataLoading?.hasMore;
|
|
913
|
+
this.#settlePendingHistoricalData(false);
|
|
859
914
|
try {
|
|
860
915
|
this.#chart.setSymbol({
|
|
861
916
|
ticker: candidate.symbol.ticker,
|
|
@@ -864,7 +919,12 @@ export class KLineChartsSceneAdapter {
|
|
|
864
919
|
...(candidate.symbol.name === undefined ? {} : { name: candidate.symbol.name }),
|
|
865
920
|
});
|
|
866
921
|
this.#chart.setPeriod(structuredClone(candidate.period));
|
|
867
|
-
this.#
|
|
922
|
+
if (this.#historicalDataLoading !== undefined) {
|
|
923
|
+
this.#historicalDataLoading = { hasMore: true };
|
|
924
|
+
}
|
|
925
|
+
this.#chart.setDataLoader(this.#historicalDataLoading === undefined
|
|
926
|
+
? createStaticDataLoader(candidate.data)
|
|
927
|
+
: this.#historicalDataLoader(candidate));
|
|
868
928
|
this.#chart.resetData();
|
|
869
929
|
applyViewport(this.#chart, candidate.viewport);
|
|
870
930
|
this.#scene = candidate;
|
|
@@ -881,7 +941,13 @@ export class KLineChartsSceneAdapter {
|
|
|
881
941
|
...(previous.symbol.name === undefined ? {} : { name: previous.symbol.name }),
|
|
882
942
|
});
|
|
883
943
|
this.#chart.setPeriod(structuredClone(previous.period));
|
|
884
|
-
this.#
|
|
944
|
+
if (this.#historicalDataLoading !== undefined &&
|
|
945
|
+
previousHistoricalHasMore !== undefined) {
|
|
946
|
+
this.#historicalDataLoading = { hasMore: previousHistoricalHasMore };
|
|
947
|
+
}
|
|
948
|
+
this.#chart.setDataLoader(this.#historicalDataLoading === undefined
|
|
949
|
+
? createStaticDataLoader(previous.data)
|
|
950
|
+
: this.#historicalDataLoader(previous));
|
|
885
951
|
this.#chart.resetData();
|
|
886
952
|
applyViewport(this.#chart, previous.viewport);
|
|
887
953
|
this.#container.style.backgroundColor = previousBackground;
|
|
@@ -892,6 +958,76 @@ export class KLineChartsSceneAdapter {
|
|
|
892
958
|
throw error;
|
|
893
959
|
}
|
|
894
960
|
}
|
|
961
|
+
configureHistoricalDataLoading(hasMore) {
|
|
962
|
+
this.#assertActive();
|
|
963
|
+
if (!this.#workspaceMode) {
|
|
964
|
+
throw new SceneError('INVALID_REFERENCE', '/', 'Historical data loading requires the Workspace factory.');
|
|
965
|
+
}
|
|
966
|
+
this.#settlePendingHistoricalData(hasMore);
|
|
967
|
+
this.#historicalDataLoading = { hasMore };
|
|
968
|
+
this.#chart.setDataLoader(this.#historicalDataLoader(this.#scene));
|
|
969
|
+
this.#chart.resetData();
|
|
970
|
+
applyViewport(this.#chart, this.#scene.viewport);
|
|
971
|
+
}
|
|
972
|
+
subscribeHistoricalDataRequests(listener) {
|
|
973
|
+
this.#assertActive();
|
|
974
|
+
this.#historicalDataListeners.add(listener);
|
|
975
|
+
if (this.#pendingHistoricalData !== undefined) {
|
|
976
|
+
listener(structuredClone(this.#pendingHistoricalData.request));
|
|
977
|
+
}
|
|
978
|
+
return () => {
|
|
979
|
+
this.#historicalDataListeners.delete(listener);
|
|
980
|
+
};
|
|
981
|
+
}
|
|
982
|
+
commitHistoricalData(requestId, data, hasMore) {
|
|
983
|
+
this.#assertActive();
|
|
984
|
+
const pending = this.#pendingHistoricalData;
|
|
985
|
+
if (pending === undefined || pending.request.requestId !== requestId) {
|
|
986
|
+
throw new SceneError('INVALID_REFERENCE', '/requestId', `Historical data request is not pending: ${requestId}.`);
|
|
987
|
+
}
|
|
988
|
+
if (data.length === 0 && hasMore) {
|
|
989
|
+
throw new SceneError('INVALID_REFERENCE', '/data', 'An empty historical page cannot advertise more data.');
|
|
990
|
+
}
|
|
991
|
+
const page = structuredClone(data);
|
|
992
|
+
const earliestTimestamp = this.#scene.data[0].timestamp;
|
|
993
|
+
for (let index = 0; index < page.length; index += 1) {
|
|
994
|
+
const current = page[index];
|
|
995
|
+
const previous = page[index - 1];
|
|
996
|
+
if (current.timestamp >= earliestTimestamp ||
|
|
997
|
+
(previous !== undefined && current.timestamp <= previous.timestamp)) {
|
|
998
|
+
throw new SceneError('INVALID_REFERENCE', `/data/${index}/timestamp`, 'Historical data must be strictly ascending and earlier than the current first bar.');
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
const candidate = parseChartScene({
|
|
1002
|
+
...structuredClone(this.#scene),
|
|
1003
|
+
data: [...page, ...structuredClone(this.#scene.data)],
|
|
1004
|
+
});
|
|
1005
|
+
this.#pendingHistoricalData = undefined;
|
|
1006
|
+
this.#historicalDataLoading = { hasMore };
|
|
1007
|
+
this.#scene = candidate;
|
|
1008
|
+
pending.callback(structuredClone(page), {
|
|
1009
|
+
forward: hasMore,
|
|
1010
|
+
backward: false,
|
|
1011
|
+
});
|
|
1012
|
+
return {
|
|
1013
|
+
scene: structuredClone(candidate),
|
|
1014
|
+
addedCount: page.length,
|
|
1015
|
+
hasMore,
|
|
1016
|
+
};
|
|
1017
|
+
}
|
|
1018
|
+
rejectHistoricalData(requestId) {
|
|
1019
|
+
this.#assertActive();
|
|
1020
|
+
const pending = this.#pendingHistoricalData;
|
|
1021
|
+
if (pending === undefined || pending.request.requestId !== requestId) {
|
|
1022
|
+
return false;
|
|
1023
|
+
}
|
|
1024
|
+
this.#pendingHistoricalData = undefined;
|
|
1025
|
+
pending.callback([], {
|
|
1026
|
+
forward: this.#historicalDataLoading?.hasMore ?? false,
|
|
1027
|
+
backward: false,
|
|
1028
|
+
});
|
|
1029
|
+
return true;
|
|
1030
|
+
}
|
|
895
1031
|
get sceneKind() {
|
|
896
1032
|
return 'chart';
|
|
897
1033
|
}
|
|
@@ -1359,6 +1495,8 @@ export class KLineChartsSceneAdapter {
|
|
|
1359
1495
|
this.#crosshairListeners.clear();
|
|
1360
1496
|
this.#listeners.clear();
|
|
1361
1497
|
this.#portListeners.clear();
|
|
1498
|
+
this.#historicalDataListeners.clear();
|
|
1499
|
+
this.#settlePendingHistoricalData(false);
|
|
1362
1500
|
this.#workspaceSources.clear();
|
|
1363
1501
|
this.#workspaceOverlays = [];
|
|
1364
1502
|
this.#engine.dispose(this.#container);
|
|
@@ -1370,9 +1508,13 @@ function snapshotOfDrawing(drawing) {
|
|
|
1370
1508
|
return {
|
|
1371
1509
|
id: drawing.id,
|
|
1372
1510
|
type: drawing.type,
|
|
1511
|
+
...(drawing.groupId === undefined ? {} : { groupId: drawing.groupId }),
|
|
1373
1512
|
target: structuredClone(drawing.target),
|
|
1374
1513
|
geometry: structuredClone(drawing.geometry),
|
|
1375
1514
|
styles: structuredClone(drawing.styles),
|
|
1515
|
+
...(drawing.metadata === undefined
|
|
1516
|
+
? {}
|
|
1517
|
+
: { metadata: structuredClone(drawing.metadata) }),
|
|
1376
1518
|
locked: drawing.locked,
|
|
1377
1519
|
visible: drawing.visible,
|
|
1378
1520
|
zLevel: drawing.zLevel,
|
|
@@ -1383,9 +1525,13 @@ function drawingFromSnapshot(snapshot) {
|
|
|
1383
1525
|
return {
|
|
1384
1526
|
id: snapshot.id,
|
|
1385
1527
|
type: snapshot.type,
|
|
1528
|
+
...(snapshot.groupId === undefined ? {} : { groupId: snapshot.groupId }),
|
|
1386
1529
|
target: structuredClone(snapshot.target),
|
|
1387
1530
|
geometry: structuredClone(snapshot.geometry),
|
|
1388
1531
|
styles: structuredClone(snapshot.styles),
|
|
1532
|
+
...(snapshot.metadata === undefined
|
|
1533
|
+
? {}
|
|
1534
|
+
: { metadata: structuredClone(snapshot.metadata) }),
|
|
1389
1535
|
visible: snapshot.visible,
|
|
1390
1536
|
locked: snapshot.locked,
|
|
1391
1537
|
zLevel: snapshot.zLevel,
|
|
@@ -1457,9 +1603,11 @@ function placeholderDrawing(request) {
|
|
|
1457
1603
|
return {
|
|
1458
1604
|
id: request.id,
|
|
1459
1605
|
type: request.type,
|
|
1606
|
+
...(request.groupId === undefined ? {} : { groupId: request.groupId }),
|
|
1460
1607
|
target: structuredClone(request.target),
|
|
1461
1608
|
geometry: placeholderGeometry(request.type),
|
|
1462
1609
|
styles: structuredClone(request.styles),
|
|
1610
|
+
metadata: structuredClone(request.metadata ?? {}),
|
|
1463
1611
|
visible: true,
|
|
1464
1612
|
locked: false,
|
|
1465
1613
|
zLevel: 0,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Drawing } from '@baron1996/kline-scene-schema';
|
|
1
|
+
import type { ChartScene, Drawing, MarketData } from '@baron1996/kline-scene-schema';
|
|
2
2
|
export interface EngineDrawingTarget {
|
|
3
3
|
readonly paneRole: string;
|
|
4
4
|
readonly yAxisRole: 'primary';
|
|
@@ -7,9 +7,11 @@ export interface EngineDrawingTarget {
|
|
|
7
7
|
export interface EngineDrawingSnapshot {
|
|
8
8
|
readonly id: string;
|
|
9
9
|
readonly type: Drawing['type'];
|
|
10
|
+
readonly groupId?: string;
|
|
10
11
|
readonly target: EngineDrawingTarget;
|
|
11
12
|
readonly geometry: Drawing['geometry'];
|
|
12
13
|
readonly styles: Drawing['styles'];
|
|
14
|
+
readonly metadata?: NonNullable<Drawing['metadata']>;
|
|
13
15
|
readonly text?: string;
|
|
14
16
|
readonly locked: boolean;
|
|
15
17
|
readonly visible: boolean;
|
|
@@ -19,8 +21,10 @@ export interface EngineDrawingSnapshot {
|
|
|
19
21
|
export interface EngineDrawingStartRequest {
|
|
20
22
|
readonly id: string;
|
|
21
23
|
readonly type: Drawing['type'];
|
|
24
|
+
readonly groupId?: string;
|
|
22
25
|
readonly target: EngineDrawingTarget;
|
|
23
26
|
readonly styles: Drawing['styles'];
|
|
27
|
+
readonly metadata?: NonNullable<Drawing['metadata']>;
|
|
24
28
|
readonly text?: string;
|
|
25
29
|
}
|
|
26
30
|
export type EngineDrawingEventType = 'created' | 'updated' | 'removed' | 'selected' | 'deselected' | 'edit-candidate';
|
|
@@ -43,6 +47,25 @@ export interface EnginePixelCoordinate {
|
|
|
43
47
|
readonly x: number;
|
|
44
48
|
readonly y: number;
|
|
45
49
|
}
|
|
50
|
+
/** 宿主加载更早行情所需的纯数据请求;不暴露 KLineCharts 的 forward 命名。 */
|
|
51
|
+
export interface EngineHistoricalDataRequest {
|
|
52
|
+
readonly requestId: string;
|
|
53
|
+
readonly beforeTimestamp: number;
|
|
54
|
+
readonly period: ChartScene['period'];
|
|
55
|
+
readonly dataCount: number;
|
|
56
|
+
}
|
|
57
|
+
export interface EngineHistoricalDataCommitResult {
|
|
58
|
+
readonly scene: ChartScene;
|
|
59
|
+
readonly addedCount: number;
|
|
60
|
+
readonly hasMore: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Chart Adapter 可选实现的历史行情端口。 */
|
|
63
|
+
export interface HistoricalDataEnginePort {
|
|
64
|
+
configureHistoricalDataLoading(hasMore: boolean): void;
|
|
65
|
+
subscribeHistoricalDataRequests(listener: (request: EngineHistoricalDataRequest) => void): () => void;
|
|
66
|
+
commitHistoricalData(requestId: string, data: readonly MarketData[], hasMore: boolean): EngineHistoricalDataCommitResult;
|
|
67
|
+
rejectHistoricalData(requestId: string): boolean;
|
|
68
|
+
}
|
|
46
69
|
/**
|
|
47
70
|
* 两个 Scene Adapter 共同实现的公共 Drawing 引擎端口。
|
|
48
71
|
* 所有 DTO 都是纯数据;端口调用方不能取得 Chart/Overlay 实例或引擎内部 ID。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-port.d.ts","sourceRoot":"","sources":["../../src/drawing/engine-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"engine-port.d.ts","sourceRoot":"","sources":["../../src/drawing/engine-port.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,11 +125,11 @@ export function sceneOverlayToDrawing(overlay, source) {
|
|
|
125
125
|
styles: structuredClone(overlay.styles),
|
|
126
126
|
type: overlay.type,
|
|
127
127
|
};
|
|
128
|
-
if (
|
|
129
|
-
result.groupId =
|
|
128
|
+
if (source.groupId !== undefined) {
|
|
129
|
+
result.groupId = source.groupId;
|
|
130
130
|
}
|
|
131
|
-
if (
|
|
132
|
-
result.metadata = structuredClone(
|
|
131
|
+
if (source.metadata !== undefined) {
|
|
132
|
+
result.metadata = structuredClone(source.metadata);
|
|
133
133
|
}
|
|
134
134
|
switch (overlay.type) {
|
|
135
135
|
case 'horizontalStraightLine':
|
|
@@ -1077,9 +1077,13 @@ function timeSeriesSnapshotOfDrawing(drawing) {
|
|
|
1077
1077
|
return {
|
|
1078
1078
|
id: drawing.id,
|
|
1079
1079
|
type: drawing.type,
|
|
1080
|
+
...(drawing.groupId === undefined ? {} : { groupId: drawing.groupId }),
|
|
1080
1081
|
target: structuredClone(drawing.target),
|
|
1081
1082
|
geometry: structuredClone(drawing.geometry),
|
|
1082
1083
|
styles: structuredClone(drawing.styles),
|
|
1084
|
+
...(drawing.metadata === undefined
|
|
1085
|
+
? {}
|
|
1086
|
+
: { metadata: structuredClone(drawing.metadata) }),
|
|
1083
1087
|
locked: drawing.locked,
|
|
1084
1088
|
visible: drawing.visible,
|
|
1085
1089
|
zLevel: drawing.zLevel,
|
|
@@ -1090,9 +1094,13 @@ function timeSeriesDrawingFromSnapshot(snapshot) {
|
|
|
1090
1094
|
return {
|
|
1091
1095
|
id: snapshot.id,
|
|
1092
1096
|
type: snapshot.type,
|
|
1097
|
+
...(snapshot.groupId === undefined ? {} : { groupId: snapshot.groupId }),
|
|
1093
1098
|
target: structuredClone(snapshot.target),
|
|
1094
1099
|
geometry: structuredClone(snapshot.geometry),
|
|
1095
1100
|
styles: structuredClone(snapshot.styles),
|
|
1101
|
+
...(snapshot.metadata === undefined
|
|
1102
|
+
? {}
|
|
1103
|
+
: { metadata: structuredClone(snapshot.metadata) }),
|
|
1096
1104
|
visible: snapshot.visible,
|
|
1097
1105
|
locked: snapshot.locked,
|
|
1098
1106
|
zLevel: snapshot.zLevel,
|
|
@@ -1164,9 +1172,11 @@ function timeSeriesPlaceholderDrawing(request) {
|
|
|
1164
1172
|
return {
|
|
1165
1173
|
id: request.id,
|
|
1166
1174
|
type: request.type,
|
|
1175
|
+
...(request.groupId === undefined ? {} : { groupId: request.groupId }),
|
|
1167
1176
|
target: structuredClone(request.target),
|
|
1168
1177
|
geometry: timeSeriesPlaceholderGeometry(request.type),
|
|
1169
1178
|
styles: structuredClone(request.styles),
|
|
1179
|
+
metadata: structuredClone(request.metadata ?? {}),
|
|
1170
1180
|
visible: true,
|
|
1171
1181
|
locked: false,
|
|
1172
1182
|
zLevel: 0,
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baron1996/klinecharts-adapter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Controlled ChartScene adapter for KLineCharts.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@baron1996/kline-scene-schema": "0.
|
|
41
|
+
"@baron1996/kline-scene-schema": "0.6.0",
|
|
42
42
|
"klinecharts": "10.0.0"
|
|
43
43
|
}
|
|
44
44
|
}
|