@363045841yyt/klinechart-core 0.9.0-alpha.4 → 0.9.0-alpha.6
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/foundation/config/chartSettings.d.ts +18 -0
- package/dist/foundation/config/chartSettings.d.ts.map +1 -1
- package/dist/foundation/config/chartSettings.js +37 -0
- package/dist/foundation/config/chartSettings.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/src/foundation/config/__tests__/chartSettings.test.ts +68 -1
- package/src/foundation/config/chartSettings.ts +43 -0
- package/src/version.ts +1 -1
|
@@ -146,6 +146,24 @@ export declare function resolveSettings(partial?: Partial<ChartSettings>): Chart
|
|
|
146
146
|
export declare function migrateStoredSettings(stored: Record<string, unknown>): Partial<ChartSettings>;
|
|
147
147
|
/** localStorage 存储键名 */
|
|
148
148
|
export declare const SETTINGS_STORAGE_KEY = "kline-chart-settings";
|
|
149
|
+
/**
|
|
150
|
+
* 从 storage 读取并迁移持久设置;无数据或解析失败时返回 null。
|
|
151
|
+
*
|
|
152
|
+
* @param storage - 可读 Storage;省略时尝试使用全局 localStorage
|
|
153
|
+
*/
|
|
154
|
+
export declare function loadStoredSettings(storage?: Pick<Storage, 'getItem'> | null | undefined): Partial<ChartSettings> | null;
|
|
155
|
+
/**
|
|
156
|
+
* 解析运行时设置的权威源。
|
|
157
|
+
*
|
|
158
|
+
* @remarks
|
|
159
|
+
* - 传入 settings prop(含空对象)时:prop 为唯一权威源,未写 key 走 DEFAULT_SETTINGS,
|
|
160
|
+
* 不合并 localStorage 幽灵字段(避免注释掉 prop 字段后仍被持久配置顶回)
|
|
161
|
+
* - 未传 settings prop 时:localStorage + 默认值
|
|
162
|
+
*
|
|
163
|
+
* @param propSettings - 组件 settings prop;undefined 表示未传
|
|
164
|
+
* @param stored - 已读取的持久设置;省略时由 loadStoredSettings 读取
|
|
165
|
+
*/
|
|
166
|
+
export declare function resolveRuntimeSettings(propSettings?: Partial<ChartSettings>, stored?: Partial<ChartSettings> | null): ChartSettings;
|
|
149
167
|
import { type ColorPresetSettings } from '../tokens/colorPresetSettings';
|
|
150
168
|
export {};
|
|
151
169
|
//# sourceMappingURL=chartSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartSettings.d.ts","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,CA2B/D;AAED,aAAa;AACb,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFnB,CAAA;AAEV,KAAK,aAAa,GAAG,OAAO,gBAAgB,CAAA;AAE5C,KAAK,aAAa,GAAG;KAClB,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS,GAC1E,OAAO,GACP,IAAI,SAAS;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,GACzE,CAAC,GACD,MAAM;CACb,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C,CAAA;AAYH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAqB/E;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAY7F;AAED,wBAAwB;AACxB,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"chartSettings.d.ts","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,CA2B/D;AAED,aAAa;AACb,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFnB,CAAA;AAEV,KAAK,aAAa,GAAG,OAAO,gBAAgB,CAAA;AAE5C,KAAK,aAAa,GAAG;KAClB,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS,GAC1E,OAAO,GACP,IAAI,SAAS;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,GACzE,CAAC,GACD,MAAM;CACb,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C,CAAA;AAYH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAqB/E;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAY7F;AAED,wBAAwB;AACxB,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAE1D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAGjC,GACT,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAS/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EACrC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,GACrC,aAAa,CAKf;AAED,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+BAA+B,CAAA"}
|
|
@@ -169,5 +169,42 @@ export function migrateStoredSettings(stored) {
|
|
|
169
169
|
}
|
|
170
170
|
/** localStorage 存储键名 */
|
|
171
171
|
export const SETTINGS_STORAGE_KEY = 'kline-chart-settings';
|
|
172
|
+
/**
|
|
173
|
+
* 从 storage 读取并迁移持久设置;无数据或解析失败时返回 null。
|
|
174
|
+
*
|
|
175
|
+
* @param storage - 可读 Storage;省略时尝试使用全局 localStorage
|
|
176
|
+
*/
|
|
177
|
+
export function loadStoredSettings(storage = typeof globalThis !== 'undefined' && 'localStorage' in globalThis
|
|
178
|
+
? globalThis.localStorage
|
|
179
|
+
: null) {
|
|
180
|
+
if (!storage)
|
|
181
|
+
return null;
|
|
182
|
+
try {
|
|
183
|
+
const saved = storage.getItem(SETTINGS_STORAGE_KEY);
|
|
184
|
+
if (!saved)
|
|
185
|
+
return null;
|
|
186
|
+
return migrateStoredSettings(JSON.parse(saved));
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* 解析运行时设置的权威源。
|
|
194
|
+
*
|
|
195
|
+
* @remarks
|
|
196
|
+
* - 传入 settings prop(含空对象)时:prop 为唯一权威源,未写 key 走 DEFAULT_SETTINGS,
|
|
197
|
+
* 不合并 localStorage 幽灵字段(避免注释掉 prop 字段后仍被持久配置顶回)
|
|
198
|
+
* - 未传 settings prop 时:localStorage + 默认值
|
|
199
|
+
*
|
|
200
|
+
* @param propSettings - 组件 settings prop;undefined 表示未传
|
|
201
|
+
* @param stored - 已读取的持久设置;省略时由 loadStoredSettings 读取
|
|
202
|
+
*/
|
|
203
|
+
export function resolveRuntimeSettings(propSettings, stored) {
|
|
204
|
+
if (propSettings !== undefined) {
|
|
205
|
+
return resolveSettings(propSettings);
|
|
206
|
+
}
|
|
207
|
+
return resolveSettings(stored ?? loadStoredSettings() ?? undefined);
|
|
208
|
+
}
|
|
172
209
|
import { normalizeColorPresetSettings, } from '../tokens/colorPresetSettings';
|
|
173
210
|
//# sourceMappingURL=chartSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartSettings.js","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chartSettings.js","sourceRoot":"","sources":["../../../src/foundation/config/chartSettings.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.9.0-alpha.
|
|
1
|
+
export declare const VERSION = "0.9.0-alpha.6";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.9.0-alpha.
|
|
1
|
+
export const VERSION = '0.9.0-alpha.6';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@363045841yyt/klinechart-core",
|
|
3
|
-
"version": "0.9.0-alpha.
|
|
3
|
+
"version": "0.9.0-alpha.6",
|
|
4
4
|
"description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"./dist/engine/indicators/registerBuiltins.js",
|
|
15
15
|
"./dist/engine/renderers/Indicator/*.js",
|
|
16
16
|
"./dist/engine/renderers/subVolume.js",
|
|
17
|
-
"./src/data
|
|
18
|
-
"./dist/data
|
|
17
|
+
"./src/data/*.ts",
|
|
18
|
+
"./dist/data/*.js"
|
|
19
19
|
],
|
|
20
20
|
"main": "./dist/index.js",
|
|
21
21
|
"module": "./dist/index.js",
|
|
@@ -136,4 +136,4 @@
|
|
|
136
136
|
"dependencies": {
|
|
137
137
|
"effect": "^3.21.4"
|
|
138
138
|
}
|
|
139
|
-
}
|
|
139
|
+
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest'
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
loadStoredSettings,
|
|
5
|
+
migrateStoredSettings,
|
|
6
|
+
resolveRuntimeSettings,
|
|
7
|
+
resolveSettings,
|
|
8
|
+
SETTINGS_STORAGE_KEY,
|
|
9
|
+
} from '../chartSettings'
|
|
4
10
|
|
|
5
11
|
describe('chart renderer settings', () => {
|
|
6
12
|
it('defaults to WebGL', () => {
|
|
@@ -23,3 +29,64 @@ describe('chart renderer settings', () => {
|
|
|
23
29
|
).toEqual({ rendererBackend: 'webgpu' })
|
|
24
30
|
})
|
|
25
31
|
})
|
|
32
|
+
|
|
33
|
+
describe('resolveRuntimeSettings', () => {
|
|
34
|
+
it('uses prop as sole authority and drops stored ghost fields', () => {
|
|
35
|
+
const stored = {
|
|
36
|
+
showGridLines: false,
|
|
37
|
+
colorPresetSettings: {
|
|
38
|
+
dark: { candleUpBody: '#e85d04' },
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
const resolved = resolveRuntimeSettings(
|
|
42
|
+
{ showGridLines: true, theme: 'dark' },
|
|
43
|
+
stored,
|
|
44
|
+
)
|
|
45
|
+
expect(resolved.showGridLines).toBe(true)
|
|
46
|
+
expect(resolved.theme).toBe('dark')
|
|
47
|
+
expect(resolved.colorPresetSettings).toEqual({})
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
it('treats empty prop object as authority over stored', () => {
|
|
51
|
+
const resolved = resolveRuntimeSettings(
|
|
52
|
+
{},
|
|
53
|
+
{ colorPresetSettings: { dark: { candleUpBody: '#e85d04' } } },
|
|
54
|
+
)
|
|
55
|
+
expect(resolved.colorPresetSettings).toEqual({})
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
it('falls back to stored when prop is omitted', () => {
|
|
59
|
+
const resolved = resolveRuntimeSettings(undefined, {
|
|
60
|
+
showGridLines: false,
|
|
61
|
+
colorPresetSettings: { dark: { candleUpBody: '#e85d04' } },
|
|
62
|
+
})
|
|
63
|
+
expect(resolved.showGridLines).toBe(false)
|
|
64
|
+
expect(resolved.colorPresetSettings).toEqual({
|
|
65
|
+
dark: { candleUpBody: '#e85d04' },
|
|
66
|
+
})
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
describe('loadStoredSettings', () => {
|
|
71
|
+
it('returns null when storage is empty or missing', () => {
|
|
72
|
+
expect(loadStoredSettings(null)).toBeNull()
|
|
73
|
+
expect(
|
|
74
|
+
loadStoredSettings({
|
|
75
|
+
getItem: () => null,
|
|
76
|
+
}),
|
|
77
|
+
).toBeNull()
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
it('migrates persisted JSON', () => {
|
|
81
|
+
const storage = {
|
|
82
|
+
getItem: (key: string) =>
|
|
83
|
+
key === SETTINGS_STORAGE_KEY
|
|
84
|
+
? JSON.stringify({ enableWebGLRendering: true, showGridLines: false })
|
|
85
|
+
: null,
|
|
86
|
+
}
|
|
87
|
+
expect(loadStoredSettings(storage)).toEqual({
|
|
88
|
+
rendererBackend: 'webgl',
|
|
89
|
+
showGridLines: false,
|
|
90
|
+
})
|
|
91
|
+
})
|
|
92
|
+
})
|
|
@@ -203,6 +203,49 @@ export function migrateStoredSettings(stored: Record<string, unknown>): Partial<
|
|
|
203
203
|
|
|
204
204
|
/** localStorage 存储键名 */
|
|
205
205
|
export const SETTINGS_STORAGE_KEY = 'kline-chart-settings'
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* 从 storage 读取并迁移持久设置;无数据或解析失败时返回 null。
|
|
209
|
+
*
|
|
210
|
+
* @param storage - 可读 Storage;省略时尝试使用全局 localStorage
|
|
211
|
+
*/
|
|
212
|
+
export function loadStoredSettings(
|
|
213
|
+
storage: Pick<Storage, 'getItem'> | null | undefined =
|
|
214
|
+
typeof globalThis !== 'undefined' && 'localStorage' in globalThis
|
|
215
|
+
? globalThis.localStorage
|
|
216
|
+
: null,
|
|
217
|
+
): Partial<ChartSettings> | null {
|
|
218
|
+
if (!storage) return null
|
|
219
|
+
try {
|
|
220
|
+
const saved = storage.getItem(SETTINGS_STORAGE_KEY)
|
|
221
|
+
if (!saved) return null
|
|
222
|
+
return migrateStoredSettings(JSON.parse(saved) as Record<string, unknown>)
|
|
223
|
+
} catch {
|
|
224
|
+
return null
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* 解析运行时设置的权威源。
|
|
230
|
+
*
|
|
231
|
+
* @remarks
|
|
232
|
+
* - 传入 settings prop(含空对象)时:prop 为唯一权威源,未写 key 走 DEFAULT_SETTINGS,
|
|
233
|
+
* 不合并 localStorage 幽灵字段(避免注释掉 prop 字段后仍被持久配置顶回)
|
|
234
|
+
* - 未传 settings prop 时:localStorage + 默认值
|
|
235
|
+
*
|
|
236
|
+
* @param propSettings - 组件 settings prop;undefined 表示未传
|
|
237
|
+
* @param stored - 已读取的持久设置;省略时由 loadStoredSettings 读取
|
|
238
|
+
*/
|
|
239
|
+
export function resolveRuntimeSettings(
|
|
240
|
+
propSettings?: Partial<ChartSettings>,
|
|
241
|
+
stored?: Partial<ChartSettings> | null,
|
|
242
|
+
): ChartSettings {
|
|
243
|
+
if (propSettings !== undefined) {
|
|
244
|
+
return resolveSettings(propSettings)
|
|
245
|
+
}
|
|
246
|
+
return resolveSettings(stored ?? loadStoredSettings() ?? undefined)
|
|
247
|
+
}
|
|
248
|
+
|
|
206
249
|
import {
|
|
207
250
|
type ColorPresetSettings,
|
|
208
251
|
normalizeColorPresetSettings,
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.9.0-alpha.
|
|
1
|
+
export const VERSION = '0.9.0-alpha.6'
|