@chatbi-v/core 2.1.9 → 3.0.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/index.cjs +208 -0
- package/dist/adapter/index.d.cts +201 -0
- package/dist/adapter/index.d.ts +201 -0
- package/dist/adapter/index.mjs +10 -0
- package/dist/chunk-BOR237QK.mjs +180 -0
- package/dist/index.cjs +4725 -1980
- package/dist/index.d.cts +2824 -808
- package/dist/index.d.ts +2824 -808
- package/dist/index.mjs +5348 -0
- package/package.json +19 -11
- package/dist/chunk-WCD7UAPU.js +0 -50
- package/dist/config-manager-LIF5OXKM.js +0 -8
- package/dist/index.js +0 -2765
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/adapter/index.ts
|
|
21
|
+
var adapter_exports = {};
|
|
22
|
+
__export(adapter_exports, {
|
|
23
|
+
AdapterRegistry: () => AdapterRegistry,
|
|
24
|
+
BaseAdapter: () => BaseAdapter,
|
|
25
|
+
adapterRegistry: () => adapterRegistry
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(adapter_exports);
|
|
28
|
+
|
|
29
|
+
// src/adapter/AdapterInterface.ts
|
|
30
|
+
var BaseAdapter = class {
|
|
31
|
+
/**
|
|
32
|
+
* 模板方法 - 三层变换默认实现
|
|
33
|
+
* primitives -> semantics -> component tokens
|
|
34
|
+
*/
|
|
35
|
+
transformTokens(tokens, options) {
|
|
36
|
+
const semantics = options?.colorScheme === "dark" && tokens.semanticsDark ? tokens.semanticsDark : tokens.semantics;
|
|
37
|
+
return this.semanticsToComponents(semantics, options);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 将语义 Token 转换为组件级别配置
|
|
41
|
+
* 由子类实现具体转换逻辑
|
|
42
|
+
*/
|
|
43
|
+
semanticsToComponents(semantics, options) {
|
|
44
|
+
return {};
|
|
45
|
+
}
|
|
46
|
+
transform(tokens, options) {
|
|
47
|
+
return this.transformTokens(tokens, options);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// src/adapter/AdapterRegistry.ts
|
|
52
|
+
var AdapterRegistry = class {
|
|
53
|
+
adapters = /* @__PURE__ */ new Map();
|
|
54
|
+
states = /* @__PURE__ */ new Map();
|
|
55
|
+
activeAdapterId = null;
|
|
56
|
+
currentTokens = {};
|
|
57
|
+
/**
|
|
58
|
+
* 注册适配器
|
|
59
|
+
* @param adapter 要注册的 UIAdapter 实例
|
|
60
|
+
*/
|
|
61
|
+
register(adapter) {
|
|
62
|
+
if (this.adapters.has(adapter.id)) {
|
|
63
|
+
console.warn(`[AdapterRegistry] Adapter ${adapter.id} already registered, overwriting`);
|
|
64
|
+
}
|
|
65
|
+
this.adapters.set(adapter.id, adapter);
|
|
66
|
+
this.states.set(adapter.id, {
|
|
67
|
+
adapter,
|
|
68
|
+
status: "registered",
|
|
69
|
+
registeredAt: /* @__PURE__ */ new Date()
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 注销适配器
|
|
74
|
+
* @param adapterId 要注销的适配器 ID
|
|
75
|
+
* @returns 是否成功注销
|
|
76
|
+
*/
|
|
77
|
+
unregister(adapterId) {
|
|
78
|
+
if (this.activeAdapterId === adapterId) {
|
|
79
|
+
console.warn(`[AdapterRegistry] Cannot unregister active adapter ${adapterId}`);
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const adapter = this.adapters.get(adapterId);
|
|
83
|
+
if (adapter) {
|
|
84
|
+
adapter.remove();
|
|
85
|
+
}
|
|
86
|
+
this.adapters.delete(adapterId);
|
|
87
|
+
this.states.delete(adapterId);
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 获取指定适配器
|
|
92
|
+
* @param adapterId 适配器 ID
|
|
93
|
+
* @returns 适配器实例或 undefined
|
|
94
|
+
*/
|
|
95
|
+
get(adapterId) {
|
|
96
|
+
return this.adapters.get(adapterId);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 获取所有已注册的适配器
|
|
100
|
+
* @returns 所有适配器实例数组
|
|
101
|
+
*/
|
|
102
|
+
getAll() {
|
|
103
|
+
return Array.from(this.adapters.values());
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 获取所有适配器状态
|
|
107
|
+
* @returns 所有适配器状态数组
|
|
108
|
+
*/
|
|
109
|
+
getAllStates() {
|
|
110
|
+
return Array.from(this.states.values());
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 设置活跃适配器
|
|
114
|
+
* @param adapterId 要激活的适配器 ID
|
|
115
|
+
* @returns 是否成功激活
|
|
116
|
+
*/
|
|
117
|
+
setActive(adapterId) {
|
|
118
|
+
const adapter = this.adapters.get(adapterId);
|
|
119
|
+
if (!adapter) {
|
|
120
|
+
console.error(`[AdapterRegistry] Adapter ${adapterId} not found`);
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (this.activeAdapterId) {
|
|
124
|
+
const current = this.adapters.get(this.activeAdapterId);
|
|
125
|
+
current?.remove();
|
|
126
|
+
this.updateState(this.activeAdapterId, "inactive");
|
|
127
|
+
}
|
|
128
|
+
const transformedTheme = adapter.transform(this.currentTokens);
|
|
129
|
+
adapter.apply(transformedTheme);
|
|
130
|
+
this.activeAdapterId = adapterId;
|
|
131
|
+
this.updateState(adapterId, "active");
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 获取当前活跃适配器
|
|
136
|
+
* @returns 活跃适配器实例或 undefined
|
|
137
|
+
*/
|
|
138
|
+
getActive() {
|
|
139
|
+
return this.activeAdapterId ? this.adapters.get(this.activeAdapterId) : void 0;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 使用当前活跃适配器转换 Token
|
|
143
|
+
* @param tokens DesignSystem Token
|
|
144
|
+
* @param options 转换选项
|
|
145
|
+
* @returns 转换后的主题配置
|
|
146
|
+
*/
|
|
147
|
+
transform(tokens, options) {
|
|
148
|
+
const adapter = this.getActive();
|
|
149
|
+
if (!adapter) {
|
|
150
|
+
console.warn("[AdapterRegistry] No active adapter, returning raw tokens");
|
|
151
|
+
return tokens;
|
|
152
|
+
}
|
|
153
|
+
return adapter.transform(tokens, options);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* 检查是否支持指定目标库
|
|
157
|
+
* @param targetLibrary 目标库标识
|
|
158
|
+
* @returns 是否支持
|
|
159
|
+
*/
|
|
160
|
+
supports(targetLibrary) {
|
|
161
|
+
return Array.from(this.adapters.values()).some(
|
|
162
|
+
(adapter) => adapter.targetLibrary === targetLibrary
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* 获取支持指定目标库的所有适配器
|
|
167
|
+
* @param targetLibrary 目标库标识
|
|
168
|
+
* @returns 适配器数组
|
|
169
|
+
*/
|
|
170
|
+
getAdaptersForTarget(targetLibrary) {
|
|
171
|
+
return this.getAll().filter(
|
|
172
|
+
(adapter) => adapter.targetLibrary === targetLibrary
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* 设置当前 DesignSystem Token
|
|
177
|
+
* @param tokens DesignSystem 实例
|
|
178
|
+
*/
|
|
179
|
+
setTokens(tokens) {
|
|
180
|
+
this.currentTokens = tokens;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* 获取当前 DesignSystem Token
|
|
184
|
+
* @returns 当前 Token
|
|
185
|
+
*/
|
|
186
|
+
getTokens() {
|
|
187
|
+
return this.currentTokens;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* 内部方法 - 更新适配器状态
|
|
191
|
+
*/
|
|
192
|
+
updateState(adapterId, status) {
|
|
193
|
+
const state = this.states.get(adapterId);
|
|
194
|
+
if (state) {
|
|
195
|
+
state.status = status;
|
|
196
|
+
if (status === "active") {
|
|
197
|
+
state.activatedAt = /* @__PURE__ */ new Date();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
var adapterRegistry = new AdapterRegistry();
|
|
203
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
204
|
+
0 && (module.exports = {
|
|
205
|
+
AdapterRegistry,
|
|
206
|
+
BaseAdapter,
|
|
207
|
+
adapterRegistry
|
|
208
|
+
});
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file AdapterInterface.ts
|
|
3
|
+
* @description UI 适配器接口定义,提供统一的适配器契约
|
|
4
|
+
* @author ChatBI Team
|
|
5
|
+
*/
|
|
6
|
+
interface DesignSystemTokens {
|
|
7
|
+
meta: {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
version: string;
|
|
11
|
+
mode: 'light' | 'dark' | 'system';
|
|
12
|
+
};
|
|
13
|
+
primitives: Record<string, any>;
|
|
14
|
+
semantics: Record<string, any>;
|
|
15
|
+
semanticsDark?: Record<string, any>;
|
|
16
|
+
components: Record<string, any>;
|
|
17
|
+
componentsDark?: Record<string, any>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* UI 适配器接口
|
|
21
|
+
* 定义所有 UI 库适配器必须实现的契约
|
|
22
|
+
*/
|
|
23
|
+
interface UIAdapter {
|
|
24
|
+
/** 适配器唯一标识符 */
|
|
25
|
+
readonly id: string;
|
|
26
|
+
/** 适配器显示名称 */
|
|
27
|
+
readonly name: string;
|
|
28
|
+
/** 适配器版本 */
|
|
29
|
+
readonly version: string;
|
|
30
|
+
/** 目标 UI 库标识 (如: 'antd', 'mui', 'chakra') */
|
|
31
|
+
readonly targetLibrary: string;
|
|
32
|
+
/** 兼容的 UI 库版本 */
|
|
33
|
+
readonly compatibleVersion?: string;
|
|
34
|
+
/**
|
|
35
|
+
* 将 DesignSystem 转换为目标 UI 库的主题配置
|
|
36
|
+
* @param tokens 设计系统 Token
|
|
37
|
+
* @param options 转换选项
|
|
38
|
+
* @returns 目标 UI 库的主题配置对象
|
|
39
|
+
*/
|
|
40
|
+
transform(tokens: DesignSystemTokens, options?: TransformOptions): any;
|
|
41
|
+
/**
|
|
42
|
+
* 应用主题到目标 UI 库
|
|
43
|
+
* @param theme 转换后的主题配置
|
|
44
|
+
*/
|
|
45
|
+
apply(theme: any): void;
|
|
46
|
+
/**
|
|
47
|
+
* 移除已应用的主题
|
|
48
|
+
*/
|
|
49
|
+
remove(): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Token 转换选项
|
|
53
|
+
*/
|
|
54
|
+
interface TransformOptions {
|
|
55
|
+
/** 颜色方案 */
|
|
56
|
+
colorScheme?: 'light' | 'dark';
|
|
57
|
+
/** 组件级别覆盖配置 */
|
|
58
|
+
componentOverrides?: Record<string, any>;
|
|
59
|
+
/** CSS 变量前缀 */
|
|
60
|
+
prefix?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 适配器工厂函数类型
|
|
64
|
+
*/
|
|
65
|
+
interface AdapterFactory {
|
|
66
|
+
/** 创建适配器实例 */
|
|
67
|
+
create(config?: any): UIAdapter;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 适配器状态类型
|
|
71
|
+
*/
|
|
72
|
+
type AdapterStatus = 'registered' | 'active' | 'inactive' | 'error';
|
|
73
|
+
/**
|
|
74
|
+
* 适配器运行时状态
|
|
75
|
+
*/
|
|
76
|
+
interface AdapterState {
|
|
77
|
+
/** 适配器实例 */
|
|
78
|
+
adapter: UIAdapter;
|
|
79
|
+
/** 当前状态 */
|
|
80
|
+
status: AdapterStatus;
|
|
81
|
+
/** 错误信息 (仅在 error 状态时有效) */
|
|
82
|
+
error?: Error;
|
|
83
|
+
/** 注册时间 */
|
|
84
|
+
registeredAt: Date;
|
|
85
|
+
/** 激活时间 */
|
|
86
|
+
activatedAt?: Date;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 适配器抽象基类
|
|
90
|
+
* 提供通用的适配器实现模板
|
|
91
|
+
*/
|
|
92
|
+
declare abstract class BaseAdapter implements UIAdapter {
|
|
93
|
+
abstract readonly id: string;
|
|
94
|
+
abstract readonly name: string;
|
|
95
|
+
abstract readonly version: string;
|
|
96
|
+
abstract readonly targetLibrary: string;
|
|
97
|
+
/**
|
|
98
|
+
* 模板方法 - 三层变换默认实现
|
|
99
|
+
* primitives -> semantics -> component tokens
|
|
100
|
+
*/
|
|
101
|
+
protected transformTokens(tokens: DesignSystemTokens, options?: TransformOptions): any;
|
|
102
|
+
/**
|
|
103
|
+
* 将语义 Token 转换为组件级别配置
|
|
104
|
+
* 由子类实现具体转换逻辑
|
|
105
|
+
*/
|
|
106
|
+
protected semanticsToComponents(semantics: any, options?: TransformOptions): any;
|
|
107
|
+
transform(tokens: DesignSystemTokens, options?: TransformOptions): any;
|
|
108
|
+
abstract apply(theme: any): void;
|
|
109
|
+
abstract remove(): void;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @file AdapterRegistry.ts
|
|
114
|
+
* @description 适配器注册发现机制,管理 UI 适配器的注册、激活和查询
|
|
115
|
+
* @author ChatBI Team
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* 适配器注册表
|
|
120
|
+
* 提供适配器的注册、注销、激活和查询功能
|
|
121
|
+
*/
|
|
122
|
+
declare class AdapterRegistry {
|
|
123
|
+
private adapters;
|
|
124
|
+
private states;
|
|
125
|
+
private activeAdapterId;
|
|
126
|
+
private currentTokens;
|
|
127
|
+
/**
|
|
128
|
+
* 注册适配器
|
|
129
|
+
* @param adapter 要注册的 UIAdapter 实例
|
|
130
|
+
*/
|
|
131
|
+
register(adapter: UIAdapter): void;
|
|
132
|
+
/**
|
|
133
|
+
* 注销适配器
|
|
134
|
+
* @param adapterId 要注销的适配器 ID
|
|
135
|
+
* @returns 是否成功注销
|
|
136
|
+
*/
|
|
137
|
+
unregister(adapterId: string): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* 获取指定适配器
|
|
140
|
+
* @param adapterId 适配器 ID
|
|
141
|
+
* @returns 适配器实例或 undefined
|
|
142
|
+
*/
|
|
143
|
+
get(adapterId: string): UIAdapter | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* 获取所有已注册的适配器
|
|
146
|
+
* @returns 所有适配器实例数组
|
|
147
|
+
*/
|
|
148
|
+
getAll(): UIAdapter[];
|
|
149
|
+
/**
|
|
150
|
+
* 获取所有适配器状态
|
|
151
|
+
* @returns 所有适配器状态数组
|
|
152
|
+
*/
|
|
153
|
+
getAllStates(): AdapterState[];
|
|
154
|
+
/**
|
|
155
|
+
* 设置活跃适配器
|
|
156
|
+
* @param adapterId 要激活的适配器 ID
|
|
157
|
+
* @returns 是否成功激活
|
|
158
|
+
*/
|
|
159
|
+
setActive(adapterId: string): boolean;
|
|
160
|
+
/**
|
|
161
|
+
* 获取当前活跃适配器
|
|
162
|
+
* @returns 活跃适配器实例或 undefined
|
|
163
|
+
*/
|
|
164
|
+
getActive(): UIAdapter | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* 使用当前活跃适配器转换 Token
|
|
167
|
+
* @param tokens DesignSystem Token
|
|
168
|
+
* @param options 转换选项
|
|
169
|
+
* @returns 转换后的主题配置
|
|
170
|
+
*/
|
|
171
|
+
transform(tokens: any, options?: TransformOptions): any;
|
|
172
|
+
/**
|
|
173
|
+
* 检查是否支持指定目标库
|
|
174
|
+
* @param targetLibrary 目标库标识
|
|
175
|
+
* @returns 是否支持
|
|
176
|
+
*/
|
|
177
|
+
supports(targetLibrary: string): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* 获取支持指定目标库的所有适配器
|
|
180
|
+
* @param targetLibrary 目标库标识
|
|
181
|
+
* @returns 适配器数组
|
|
182
|
+
*/
|
|
183
|
+
getAdaptersForTarget(targetLibrary: string): UIAdapter[];
|
|
184
|
+
/**
|
|
185
|
+
* 设置当前 DesignSystem Token
|
|
186
|
+
* @param tokens DesignSystem 实例
|
|
187
|
+
*/
|
|
188
|
+
setTokens(tokens: any): void;
|
|
189
|
+
/**
|
|
190
|
+
* 获取当前 DesignSystem Token
|
|
191
|
+
* @returns 当前 Token
|
|
192
|
+
*/
|
|
193
|
+
getTokens(): any;
|
|
194
|
+
/**
|
|
195
|
+
* 内部方法 - 更新适配器状态
|
|
196
|
+
*/
|
|
197
|
+
private updateState;
|
|
198
|
+
}
|
|
199
|
+
declare const adapterRegistry: AdapterRegistry;
|
|
200
|
+
|
|
201
|
+
export { type AdapterFactory, AdapterRegistry, type AdapterState, type AdapterStatus, BaseAdapter, type TransformOptions, type UIAdapter, adapterRegistry };
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file AdapterInterface.ts
|
|
3
|
+
* @description UI 适配器接口定义,提供统一的适配器契约
|
|
4
|
+
* @author ChatBI Team
|
|
5
|
+
*/
|
|
6
|
+
interface DesignSystemTokens {
|
|
7
|
+
meta: {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
version: string;
|
|
11
|
+
mode: 'light' | 'dark' | 'system';
|
|
12
|
+
};
|
|
13
|
+
primitives: Record<string, any>;
|
|
14
|
+
semantics: Record<string, any>;
|
|
15
|
+
semanticsDark?: Record<string, any>;
|
|
16
|
+
components: Record<string, any>;
|
|
17
|
+
componentsDark?: Record<string, any>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* UI 适配器接口
|
|
21
|
+
* 定义所有 UI 库适配器必须实现的契约
|
|
22
|
+
*/
|
|
23
|
+
interface UIAdapter {
|
|
24
|
+
/** 适配器唯一标识符 */
|
|
25
|
+
readonly id: string;
|
|
26
|
+
/** 适配器显示名称 */
|
|
27
|
+
readonly name: string;
|
|
28
|
+
/** 适配器版本 */
|
|
29
|
+
readonly version: string;
|
|
30
|
+
/** 目标 UI 库标识 (如: 'antd', 'mui', 'chakra') */
|
|
31
|
+
readonly targetLibrary: string;
|
|
32
|
+
/** 兼容的 UI 库版本 */
|
|
33
|
+
readonly compatibleVersion?: string;
|
|
34
|
+
/**
|
|
35
|
+
* 将 DesignSystem 转换为目标 UI 库的主题配置
|
|
36
|
+
* @param tokens 设计系统 Token
|
|
37
|
+
* @param options 转换选项
|
|
38
|
+
* @returns 目标 UI 库的主题配置对象
|
|
39
|
+
*/
|
|
40
|
+
transform(tokens: DesignSystemTokens, options?: TransformOptions): any;
|
|
41
|
+
/**
|
|
42
|
+
* 应用主题到目标 UI 库
|
|
43
|
+
* @param theme 转换后的主题配置
|
|
44
|
+
*/
|
|
45
|
+
apply(theme: any): void;
|
|
46
|
+
/**
|
|
47
|
+
* 移除已应用的主题
|
|
48
|
+
*/
|
|
49
|
+
remove(): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Token 转换选项
|
|
53
|
+
*/
|
|
54
|
+
interface TransformOptions {
|
|
55
|
+
/** 颜色方案 */
|
|
56
|
+
colorScheme?: 'light' | 'dark';
|
|
57
|
+
/** 组件级别覆盖配置 */
|
|
58
|
+
componentOverrides?: Record<string, any>;
|
|
59
|
+
/** CSS 变量前缀 */
|
|
60
|
+
prefix?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 适配器工厂函数类型
|
|
64
|
+
*/
|
|
65
|
+
interface AdapterFactory {
|
|
66
|
+
/** 创建适配器实例 */
|
|
67
|
+
create(config?: any): UIAdapter;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 适配器状态类型
|
|
71
|
+
*/
|
|
72
|
+
type AdapterStatus = 'registered' | 'active' | 'inactive' | 'error';
|
|
73
|
+
/**
|
|
74
|
+
* 适配器运行时状态
|
|
75
|
+
*/
|
|
76
|
+
interface AdapterState {
|
|
77
|
+
/** 适配器实例 */
|
|
78
|
+
adapter: UIAdapter;
|
|
79
|
+
/** 当前状态 */
|
|
80
|
+
status: AdapterStatus;
|
|
81
|
+
/** 错误信息 (仅在 error 状态时有效) */
|
|
82
|
+
error?: Error;
|
|
83
|
+
/** 注册时间 */
|
|
84
|
+
registeredAt: Date;
|
|
85
|
+
/** 激活时间 */
|
|
86
|
+
activatedAt?: Date;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 适配器抽象基类
|
|
90
|
+
* 提供通用的适配器实现模板
|
|
91
|
+
*/
|
|
92
|
+
declare abstract class BaseAdapter implements UIAdapter {
|
|
93
|
+
abstract readonly id: string;
|
|
94
|
+
abstract readonly name: string;
|
|
95
|
+
abstract readonly version: string;
|
|
96
|
+
abstract readonly targetLibrary: string;
|
|
97
|
+
/**
|
|
98
|
+
* 模板方法 - 三层变换默认实现
|
|
99
|
+
* primitives -> semantics -> component tokens
|
|
100
|
+
*/
|
|
101
|
+
protected transformTokens(tokens: DesignSystemTokens, options?: TransformOptions): any;
|
|
102
|
+
/**
|
|
103
|
+
* 将语义 Token 转换为组件级别配置
|
|
104
|
+
* 由子类实现具体转换逻辑
|
|
105
|
+
*/
|
|
106
|
+
protected semanticsToComponents(semantics: any, options?: TransformOptions): any;
|
|
107
|
+
transform(tokens: DesignSystemTokens, options?: TransformOptions): any;
|
|
108
|
+
abstract apply(theme: any): void;
|
|
109
|
+
abstract remove(): void;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @file AdapterRegistry.ts
|
|
114
|
+
* @description 适配器注册发现机制,管理 UI 适配器的注册、激活和查询
|
|
115
|
+
* @author ChatBI Team
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* 适配器注册表
|
|
120
|
+
* 提供适配器的注册、注销、激活和查询功能
|
|
121
|
+
*/
|
|
122
|
+
declare class AdapterRegistry {
|
|
123
|
+
private adapters;
|
|
124
|
+
private states;
|
|
125
|
+
private activeAdapterId;
|
|
126
|
+
private currentTokens;
|
|
127
|
+
/**
|
|
128
|
+
* 注册适配器
|
|
129
|
+
* @param adapter 要注册的 UIAdapter 实例
|
|
130
|
+
*/
|
|
131
|
+
register(adapter: UIAdapter): void;
|
|
132
|
+
/**
|
|
133
|
+
* 注销适配器
|
|
134
|
+
* @param adapterId 要注销的适配器 ID
|
|
135
|
+
* @returns 是否成功注销
|
|
136
|
+
*/
|
|
137
|
+
unregister(adapterId: string): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* 获取指定适配器
|
|
140
|
+
* @param adapterId 适配器 ID
|
|
141
|
+
* @returns 适配器实例或 undefined
|
|
142
|
+
*/
|
|
143
|
+
get(adapterId: string): UIAdapter | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* 获取所有已注册的适配器
|
|
146
|
+
* @returns 所有适配器实例数组
|
|
147
|
+
*/
|
|
148
|
+
getAll(): UIAdapter[];
|
|
149
|
+
/**
|
|
150
|
+
* 获取所有适配器状态
|
|
151
|
+
* @returns 所有适配器状态数组
|
|
152
|
+
*/
|
|
153
|
+
getAllStates(): AdapterState[];
|
|
154
|
+
/**
|
|
155
|
+
* 设置活跃适配器
|
|
156
|
+
* @param adapterId 要激活的适配器 ID
|
|
157
|
+
* @returns 是否成功激活
|
|
158
|
+
*/
|
|
159
|
+
setActive(adapterId: string): boolean;
|
|
160
|
+
/**
|
|
161
|
+
* 获取当前活跃适配器
|
|
162
|
+
* @returns 活跃适配器实例或 undefined
|
|
163
|
+
*/
|
|
164
|
+
getActive(): UIAdapter | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* 使用当前活跃适配器转换 Token
|
|
167
|
+
* @param tokens DesignSystem Token
|
|
168
|
+
* @param options 转换选项
|
|
169
|
+
* @returns 转换后的主题配置
|
|
170
|
+
*/
|
|
171
|
+
transform(tokens: any, options?: TransformOptions): any;
|
|
172
|
+
/**
|
|
173
|
+
* 检查是否支持指定目标库
|
|
174
|
+
* @param targetLibrary 目标库标识
|
|
175
|
+
* @returns 是否支持
|
|
176
|
+
*/
|
|
177
|
+
supports(targetLibrary: string): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* 获取支持指定目标库的所有适配器
|
|
180
|
+
* @param targetLibrary 目标库标识
|
|
181
|
+
* @returns 适配器数组
|
|
182
|
+
*/
|
|
183
|
+
getAdaptersForTarget(targetLibrary: string): UIAdapter[];
|
|
184
|
+
/**
|
|
185
|
+
* 设置当前 DesignSystem Token
|
|
186
|
+
* @param tokens DesignSystem 实例
|
|
187
|
+
*/
|
|
188
|
+
setTokens(tokens: any): void;
|
|
189
|
+
/**
|
|
190
|
+
* 获取当前 DesignSystem Token
|
|
191
|
+
* @returns 当前 Token
|
|
192
|
+
*/
|
|
193
|
+
getTokens(): any;
|
|
194
|
+
/**
|
|
195
|
+
* 内部方法 - 更新适配器状态
|
|
196
|
+
*/
|
|
197
|
+
private updateState;
|
|
198
|
+
}
|
|
199
|
+
declare const adapterRegistry: AdapterRegistry;
|
|
200
|
+
|
|
201
|
+
export { type AdapterFactory, AdapterRegistry, type AdapterState, type AdapterStatus, BaseAdapter, type TransformOptions, type UIAdapter, adapterRegistry };
|