@huanban/rulego-editor-core 1.3.18 → 1.4.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.
Files changed (225) hide show
  1. package/README.md +153 -2
  2. package/assets/images/discovery-dark.svg +1 -0
  3. package/assets/images/discovery.svg +1 -0
  4. package/assets/images/nacos-dark.svg +1 -0
  5. package/assets/images/nacos.svg +1 -0
  6. package/assets/theme-icons/ant-blue/discovery-dark.svg +1 -0
  7. package/assets/theme-icons/ant-blue/discovery.svg +1 -0
  8. package/assets/theme-icons/ant-blue/nacos-dark.svg +1 -0
  9. package/assets/theme-icons/ant-blue/nacos.svg +1 -0
  10. package/assets/theme-icons/apple/discovery-dark.svg +1 -0
  11. package/assets/theme-icons/apple/discovery.svg +1 -0
  12. package/assets/theme-icons/apple/nacos-dark.svg +1 -0
  13. package/assets/theme-icons/apple/nacos.svg +1 -0
  14. package/assets/theme-icons/colorful/discovery-dark.svg +1 -0
  15. package/assets/theme-icons/colorful/discovery.svg +1 -0
  16. package/assets/theme-icons/colorful/nacos-dark.svg +1 -0
  17. package/assets/theme-icons/colorful/nacos.svg +1 -0
  18. package/assets/theme-icons/dark/discovery-dark.svg +1 -0
  19. package/assets/theme-icons/dark/discovery.svg +1 -0
  20. package/assets/theme-icons/dark/nacos-dark.svg +1 -0
  21. package/assets/theme-icons/dark/nacos.svg +1 -0
  22. package/assets/theme-icons/default/discovery-dark.svg +1 -0
  23. package/assets/theme-icons/default/discovery.svg +1 -0
  24. package/assets/theme-icons/default/nacos-dark.svg +1 -0
  25. package/assets/theme-icons/default/nacos.svg +1 -0
  26. package/assets/theme-icons/elegant/discovery-dark.svg +1 -0
  27. package/assets/theme-icons/elegant/discovery.svg +1 -0
  28. package/assets/theme-icons/elegant/nacos-dark.svg +1 -0
  29. package/assets/theme-icons/elegant/nacos.svg +1 -0
  30. package/assets/theme-icons/github/discovery-dark.svg +1 -0
  31. package/assets/theme-icons/github/discovery.svg +1 -0
  32. package/assets/theme-icons/github/nacos-dark.svg +1 -0
  33. package/assets/theme-icons/github/nacos.svg +1 -0
  34. package/assets/theme-icons/icon-theme-manifest.json +30 -14
  35. package/assets/theme-icons/icon-theme-overview.svg +1599 -1287
  36. package/assets/theme-icons/material/discovery-dark.svg +1 -0
  37. package/assets/theme-icons/material/discovery.svg +1 -0
  38. package/assets/theme-icons/material/nacos-dark.svg +1 -0
  39. package/assets/theme-icons/material/nacos.svg +1 -0
  40. package/assets/theme-icons/modern/discovery-dark.svg +1 -0
  41. package/assets/theme-icons/modern/discovery.svg +1 -0
  42. package/assets/theme-icons/modern/nacos-dark.svg +1 -0
  43. package/assets/theme-icons/modern/nacos.svg +1 -0
  44. package/assets/theme-icons/nature/discovery-dark.svg +1 -0
  45. package/assets/theme-icons/nature/discovery.svg +1 -0
  46. package/assets/theme-icons/nature/nacos-dark.svg +1 -0
  47. package/assets/theme-icons/nature/nacos.svg +1 -0
  48. package/assets/theme-icons/tailwind/discovery-dark.svg +1 -0
  49. package/assets/theme-icons/tailwind/discovery.svg +1 -0
  50. package/assets/theme-icons/tailwind/nacos-dark.svg +1 -0
  51. package/assets/theme-icons/tailwind/nacos.svg +1 -0
  52. package/assets/theme-icons/tech/discovery-dark.svg +1 -0
  53. package/assets/theme-icons/tech/discovery.svg +1 -0
  54. package/assets/theme-icons/tech/nacos-dark.svg +1 -0
  55. package/assets/theme-icons/tech/nacos.svg +1 -0
  56. package/assets/theme-icons/vscode/discovery-dark.svg +1 -0
  57. package/assets/theme-icons/vscode/discovery.svg +1 -0
  58. package/assets/theme-icons/vscode/nacos-dark.svg +1 -0
  59. package/assets/theme-icons/vscode/nacos.svg +1 -0
  60. package/dist/ai/copilot-markdown.d.ts +40 -0
  61. package/dist/ai/copilot-transport.d.ts +39 -0
  62. package/dist/api/AIManager.d.ts +5 -4
  63. package/dist/api/ApiProvider.d.ts +17 -69
  64. package/dist/api/ComponentCatalogCache.d.ts +27 -0
  65. package/dist/api/DebugSocketClient.d.ts +18 -25
  66. package/dist/api/RuleChainAPI.d.ts +24 -145
  67. package/dist/api/StreamParser.d.ts +0 -10
  68. package/dist/api/index.d.ts +4 -14
  69. package/dist/api/response-utils.d.ts +4 -22
  70. package/dist/api/types.d.ts +44 -179
  71. package/dist/chunks/editor-core-code-editor-CRki2wA_.js +512 -0
  72. package/dist/chunks/editor-core-default-components-BjF65lar.js +9448 -0
  73. package/dist/chunks/editor-core-dialogs-CkFLaC8Q.js +17176 -0
  74. package/dist/chunks/editor-core-icons-BqeFofNA.js +668 -0
  75. package/dist/chunks/editor-core-json-diff-RHsPeX-w.js +199 -0
  76. package/dist/chunks/editor-core-locales-i6o28vm2.js +4159 -0
  77. package/dist/chunks/editor-core-node-patches-BJTT3TuX.js +8060 -0
  78. package/dist/chunks/editor-core-node-views-BOaPVdmN.js +1288 -0
  79. package/dist/chunks/editor-core-property-drawers-lLsBIoCa.js +8035 -0
  80. package/dist/chunks/editor-core-standalone-CHXk3ukc.js +11270 -0
  81. package/dist/chunks/editor-core-styles-C1TbLgCK.js +8841 -0
  82. package/dist/chunks/vendor-logicflow-core-runtime-Cp6IBEjB.js +217 -0
  83. package/dist/chunks/vendor-logicflow-shared-C7YynLDn.js +4 -0
  84. package/dist/chunks/xlsx-BopDBbWb.js +24176 -0
  85. package/dist/core/ActionRegistry.d.ts +47 -0
  86. package/dist/core/AutoLayout.d.ts +1 -48
  87. package/dist/core/ComponentDocService.d.ts +28 -0
  88. package/dist/core/ComponentRegistry.d.ts +1 -125
  89. package/dist/core/DataAdapter.d.ts +4 -89
  90. package/dist/core/DiagnosticService.d.ts +15 -0
  91. package/dist/core/EditorCore.d.ts +22 -212
  92. package/dist/core/EditorWorkspace.d.ts +111 -0
  93. package/dist/core/EventBus.d.ts +0 -86
  94. package/dist/core/ExplorerTreeStore.d.ts +43 -0
  95. package/dist/core/FieldCapabilityRegistry.d.ts +16 -0
  96. package/dist/core/FieldChangeRegistry.d.ts +48 -0
  97. package/dist/core/HistoryManager.d.ts +0 -123
  98. package/dist/core/I18nManager.d.ts +0 -120
  99. package/dist/core/Optimizations.d.ts +0 -14
  100. package/dist/core/OptionSourceRegistry.d.ts +38 -0
  101. package/dist/core/RuleChainChatManager.d.ts +0 -37
  102. package/dist/core/RuleChainValidator.d.ts +0 -79
  103. package/dist/core/StateStore.d.ts +4 -140
  104. package/dist/core/ThemeManager.d.ts +0 -141
  105. package/dist/core/ValidationEngine.d.ts +0 -103
  106. package/dist/core/component-palette.d.ts +20 -0
  107. package/dist/core/component-payload.d.ts +0 -9
  108. package/dist/core/connection-status.d.ts +77 -0
  109. package/dist/core/context-menu-position.d.ts +27 -0
  110. package/dist/core/cron-schedule.d.ts +85 -0
  111. package/dist/core/debug-panel.d.ts +6 -0
  112. package/dist/core/editor-capabilities.d.ts +95 -0
  113. package/dist/core/editor-dock.d.ts +100 -0
  114. package/dist/core/editor-panel.d.ts +68 -0
  115. package/dist/core/explorer-tree.d.ts +27 -0
  116. package/dist/core/field-protocol.d.ts +32 -0
  117. package/dist/core/foundation-tokens.d.ts +38 -0
  118. package/dist/core/graph-operations.d.ts +34 -0
  119. package/dist/core/hover-tools.d.ts +26 -0
  120. package/dist/core/index.d.ts +68 -16
  121. package/dist/core/infer-run-input.d.ts +11 -0
  122. package/dist/core/key-value-editor.d.ts +6 -0
  123. package/dist/core/overlay-layers.d.ts +28 -0
  124. package/dist/core/recent-components.d.ts +51 -0
  125. package/dist/core/run-guard.d.ts +7 -0
  126. package/dist/core/runtime-field-dictionary.d.ts +68 -0
  127. package/dist/core/runtime-limits.d.ts +0 -5
  128. package/dist/core/save-conflict.d.ts +4 -0
  129. package/dist/core/server-status.d.ts +34 -0
  130. package/dist/core/simple-array.d.ts +4 -0
  131. package/dist/core/table-protocol.d.ts +36 -0
  132. package/dist/core/table-spreadsheet.d.ts +3 -0
  133. package/dist/core/test-cases.d.ts +54 -0
  134. package/dist/core/toolbar-icons.d.ts +4 -0
  135. package/dist/core/topology-rules.d.ts +17 -0
  136. package/dist/core/virtual-window.d.ts +20 -0
  137. package/dist/core/workspace-tab-actions.d.ts +13 -0
  138. package/dist/defaults/components.d.ts +0 -9
  139. package/dist/defaults/index.d.ts +0 -15
  140. package/dist/defaults/locale-en-US.d.ts +0 -24
  141. package/dist/defaults/locale-zh-CN.d.ts +0 -39
  142. package/dist/defaults/official-component-fallbacks.d.ts +0 -8
  143. package/dist/extensions/ClipboardExtension.d.ts +0 -23
  144. package/dist/extensions/KeyboardExtension.d.ts +0 -17
  145. package/dist/extensions/MenuExtension.d.ts +0 -23
  146. package/dist/iconRegistry.d.ts +0 -22
  147. package/dist/index.cjs +11320 -0
  148. package/dist/index.d.ts +25 -47
  149. package/dist/index.esm.js +1123 -99614
  150. package/dist/index.umd.js +3380 -1471
  151. package/dist/models/BaseNodeModel.d.ts +0 -32
  152. package/dist/models/index.d.ts +0 -1
  153. package/dist/nodes/AgentOrchestrationNode.d.ts +0 -24
  154. package/dist/nodes/GroupNode.d.ts +0 -38
  155. package/dist/nodes/HeadlessHtmlNode.d.ts +0 -16
  156. package/dist/nodes/SwitchNode.d.ts +0 -22
  157. package/dist/nodes/UnknownNodeModel.d.ts +0 -19
  158. package/dist/standalone/HuanbanRulegoEditor.d.ts +202 -401
  159. package/dist/standalone/ai-model-policy.d.ts +0 -1
  160. package/dist/standalone/ai-providers.d.ts +0 -1
  161. package/dist/standalone/auth-fetch.d.ts +2 -46
  162. package/dist/standalone/browser-assets.d.ts +0 -8
  163. package/dist/standalone/canvas-view.d.ts +6 -0
  164. package/dist/standalone/code-editor-language-loaders.d.ts +2 -0
  165. package/dist/standalone/code-editor-language-loaders.legacy.d.ts +7 -0
  166. package/dist/standalone/code-editor.d.ts +3 -87
  167. package/dist/standalone/connection-status-binding.d.ts +8 -0
  168. package/dist/standalone/custom-nodes.d.ts +0 -26
  169. package/dist/standalone/drawer-unsaved-guard.d.ts +2 -9
  170. package/dist/standalone/edge-label-quick-editor.d.ts +2 -0
  171. package/dist/standalone/editor-actions.d.ts +4 -0
  172. package/dist/standalone/editor-chain-info.d.ts +5 -38
  173. package/dist/standalone/editor-context-menu.d.ts +0 -21
  174. package/dist/standalone/editor-debug-ws.d.ts +37 -145
  175. package/dist/standalone/editor-delete.d.ts +0 -1
  176. package/dist/standalone/editor-dialogs.d.ts +16 -66
  177. package/dist/standalone/editor-events.d.ts +0 -27
  178. package/dist/standalone/editor-overlays.d.ts +14 -0
  179. package/dist/standalone/editor-property-drawers.d.ts +13 -71
  180. package/dist/standalone/editor-route-settings.d.ts +7 -55
  181. package/dist/standalone/editor-sidebar.d.ts +0 -18
  182. package/dist/standalone/editor-styles.d.ts +0 -11
  183. package/dist/standalone/editor-toast.d.ts +1 -2
  184. package/dist/standalone/editor-toolbar.d.ts +5 -80
  185. package/dist/standalone/editor-tour.d.ts +7 -0
  186. package/dist/standalone/editor-trace-overlay.d.ts +0 -5
  187. package/dist/standalone/full-json-dialog.d.ts +5 -1
  188. package/dist/standalone/group-node.d.ts +1 -51
  189. package/dist/standalone/icon-utils.d.ts +0 -20
  190. package/dist/standalone/index.d.ts +10 -7
  191. package/dist/standalone/json-diff.d.ts +0 -1
  192. package/dist/standalone/keyboard-events.d.ts +0 -1
  193. package/dist/standalone/layout-scheduler.d.ts +0 -6
  194. package/dist/standalone/lifecycle.d.ts +0 -5
  195. package/dist/standalone/logger.d.ts +0 -32
  196. package/dist/standalone/models-dev-catalog.d.ts +0 -1
  197. package/dist/standalone/node-copy.d.ts +7 -4
  198. package/dist/standalone/node-definitions.d.ts +0 -63
  199. package/dist/standalone/node-identity.d.ts +0 -1
  200. package/dist/standalone/node-theme.d.ts +8 -0
  201. package/dist/standalone/node-views-data.d.ts +0 -20
  202. package/dist/standalone/official-node-view-patches.d.ts +1 -14
  203. package/dist/standalone/outline-style.d.ts +7 -0
  204. package/dist/standalone/run-history-format.d.ts +0 -1
  205. package/dist/standalone/security-utils.d.ts +1 -5
  206. package/dist/standalone/shared-node-manager.d.ts +31 -0
  207. package/dist/standalone/themes.d.ts +0 -48
  208. package/dist/tools/tool-editor.d.ts +0 -1
  209. package/dist/types/component.d.ts +105 -87
  210. package/dist/types/editor.d.ts +16 -169
  211. package/dist/types/events.d.ts +30 -107
  212. package/dist/types/index.d.ts +3 -10
  213. package/dist/types/rule-chain.d.ts +0 -90
  214. package/dist/utils/GraphUtils.d.ts +0 -10
  215. package/dist/utils/helpers.d.ts +0 -80
  216. package/dist/utils/index.d.ts +0 -5
  217. package/dist/utils/pinyin-search.d.ts +0 -57
  218. package/dist/utils/relation-utils.d.ts +0 -1
  219. package/dist/utils/textUtils.d.ts +0 -12
  220. package/dist/version.d.ts +2 -3
  221. package/dist/xlsx-qn1xoUuv.cjs +105 -0
  222. package/package.json +19 -5
  223. package/vite-chunks.d.ts +11 -0
  224. package/vite-chunks.mjs +120 -0
  225. package/dist/index.cjs.js +0 -9515
@@ -1,166 +1,43 @@
1
- /**
2
- * @file HistoryManager.ts
3
- * @description 基于 Command 模式的撤销/重做系统
4
- *
5
- * 实现完整的 Undo/Redo 功能,核心概念:
6
- * - Command: 封装一个可执行和可撤销的操作
7
- * - UndoStack: 记录已执行的命令
8
- * - RedoStack: 记录已撤销的命令
9
- * - BatchCommand: 将多个命令组合为一个原子操作
10
- *
11
- * 原版编辑器通过 LogicFlow 的 history:change 事件维护 undos/redos 数组,
12
- * 这里改为独立的 HistoryManager 以支持更细粒度的操作控制。
13
- */
14
- /**
15
- * 命令接口
16
- * 每个可撤销的操作都实现此接口
17
- */
18
1
  export interface Command {
19
- /** 执行操作 */
20
2
  execute(): void;
21
- /** 撤销操作 */
22
3
  undo(): void;
23
- /** 操作描述 (用于调试和 UI 提示) */
24
4
  description: string;
25
5
  }
26
- /**
27
- * 历史记录变更回调
28
- */
29
6
  type HistoryChangeCallback = (state: {
30
7
  canUndo: boolean;
31
8
  canRedo: boolean;
32
9
  undoCount: number;
33
10
  redoCount: number;
34
11
  }) => void;
35
- /**
36
- * 撤销/重做管理器
37
- *
38
- * @example
39
- * ```typescript
40
- * const history = new HistoryManager({ maxHistory: 50 })
41
- *
42
- * // 监听变更
43
- * history.onChange((state) => {
44
- * updateUndoButton(state.canUndo)
45
- * updateRedoButton(state.canRedo)
46
- * })
47
- *
48
- * // 执行命令
49
- * history.execute(new AddNodeCommand(editor, nodeData))
50
- *
51
- * // 撤销
52
- * history.undo()
53
- *
54
- * // 重做
55
- * history.redo()
56
- * ```
57
- */
58
12
  export declare class HistoryManager {
59
- /** 撤销栈 (最近执行的命令在顶部) */
60
13
  private undoStack;
61
- /** 重做栈 (最近撤销的命令在顶部) */
62
14
  private redoStack;
63
- /** 最大历史记录数 */
64
15
  private maxHistory;
65
- /** 变更回调列表 */
66
16
  private changeCallbacks;
67
- /** 是否暂停记录 (批量操作时使用) */
68
17
  private paused;
69
- /**
70
- * 创建历史管理器
71
- *
72
- * @param options - 配置选项
73
- * @param options.maxHistory - 最大历史记录数 (默认: 50)
74
- */
75
18
  constructor(options?: {
76
19
  maxHistory?: number;
77
20
  });
78
- /**
79
- * 执行一个命令并记录到撤销栈
80
- *
81
- * 执行新命令后会清空重做栈 (与所有编辑器的标准行为一致)
82
- *
83
- * @param command - 要执行的命令
84
- */
85
21
  execute(command: Command): void;
86
- /**
87
- * 撤销最近的命令
88
- *
89
- * @returns 是否成功撤销
90
- */
91
22
  undo(): boolean;
92
- /**
93
- * 重做最近撤销的命令
94
- *
95
- * @returns 是否成功重做
96
- */
97
23
  redo(): boolean;
98
- /**
99
- * 是否可以撤销
100
- */
101
24
  canUndo(): boolean;
102
- /**
103
- * 是否可以重做
104
- */
105
25
  canRedo(): boolean;
106
- /**
107
- * 获取撤销栈中的命令描述列表 (用于调试/UI显示)
108
- */
109
26
  getUndoDescriptions(): string[];
110
- /**
111
- * 获取重做栈中的命令描述列表
112
- */
113
27
  getRedoDescriptions(): string[];
114
- /**
115
- * 批量执行多个命令 (作为一个原子操作记录)
116
- *
117
- * 在批量执行期间暂停单独记录, 执行完成后创建 BatchCommand 统一记录
118
- *
119
- * @param commands - 要执行的命令列表
120
- * @param description - 批量操作描述
121
- */
122
28
  executeBatch(commands: Command[], description: string): void;
123
- /**
124
- * 监听历史记录变更
125
- *
126
- * @param callback - 变更回调
127
- * @returns 取消监听的函数
128
- */
129
29
  onChange(callback: HistoryChangeCallback): () => void;
130
- /**
131
- * 清空所有历史记录
132
- */
133
30
  clear(): void;
134
- /**
135
- * 暂停历史记录 (执行一些不需要撤销的操作时)
136
- */
137
31
  pause(): void;
138
- /**
139
- * 恢复历史记录
140
- */
141
32
  resume(): void;
142
- /**
143
- * 销毁管理器
144
- */
145
33
  destroy(): void;
146
- /**
147
- * 通知所有监听器状态变更
148
- */
149
34
  private notifyChange;
150
35
  }
151
- /**
152
- * 批量命令 - 将多个命令组合为一个原子操作
153
- */
154
36
  export declare class BatchCommand implements Command {
155
- /** 子命令列表 */
156
37
  private commands;
157
- /** 批量操作描述 */
158
38
  description: string;
159
39
  constructor(commands: Command[], description: string);
160
- /** 按顺序执行所有子命令 */
161
40
  execute(): void;
162
- /** 按逆序撤销所有子命令 */
163
41
  undo(): void;
164
42
  }
165
43
  export {};
166
- //# sourceMappingURL=HistoryManager.d.ts.map
@@ -1,148 +1,28 @@
1
- /**
2
- * @file I18nManager.ts
3
- * @description 国际化管理器 — 多语言支持
4
- *
5
- * 轻量级的 i18n 实现, 基于嵌套对象路径查找。
6
- * 支持:
7
- * - 多语言包注册
8
- * - 动态切换语言
9
- * - 路径式 key 查找 (如 'sidebar.search', 'category.filter')
10
- * - 变量插值 (如 'hello {{name}}')
11
- * - 回退语言 (找不到翻译时用回退语言)
12
- *
13
- * 框架适配层可以将其桥接到 vue-i18n 或 react-intl 等框架级方案。
14
- */
15
- /**
16
- * 语言包类型 (支持嵌套)
17
- */
18
1
  export type LocaleMessages = Record<string, string | Record<string, unknown>>;
19
- /**
20
- * 可提供翻译能力的对象或函数。
21
- *
22
- * I18nManager.t 在缺少 key 时会返回 key 本身;UI 代码需要区分“真实翻译”
23
- * 和“缺失 key”,否则 `t(key) || fallback` 这类写法永远不会触发 fallback。
24
- */
25
2
  export type TranslationSource = {
26
3
  t?: (key: string, params?: Record<string, string | number>) => string;
27
4
  } | ((key: string, params?: Record<string, string | number>) => string) | null | undefined;
28
- /**
29
- * 获取带 fallback 的翻译文本。
30
- *
31
- * @param source - I18nManager、带 t 方法的对象,或翻译函数
32
- * @param key - 翻译 key
33
- * @param fallback - 缺少翻译时使用的文本
34
- * @param params - 插值变量
35
- */
36
5
  export declare function i18nText(source: TranslationSource, key: string, fallback: string, params?: Record<string, string | number>): string;
37
- /**
38
- * 语言变更回调
39
- */
40
6
  type LocaleChangeCallback = (locale: string) => void;
41
- /**
42
- * 国际化管理器
43
- *
44
- * @example
45
- * ```typescript
46
- * const i18n = new I18nManager({ locale: 'zh-CN', fallback: 'en-US' })
47
- *
48
- * // 注册语言包
49
- * i18n.register('zh-CN', {
50
- * sidebar: {
51
- * search: '搜索组件...',
52
- * title: '组件列表',
53
- * },
54
- * category: {
55
- * filter: '过滤器',
56
- * transform: '转换器',
57
- * }
58
- * })
59
- *
60
- * // 翻译
61
- * i18n.t('sidebar.search') // => '搜索组件...'
62
- * i18n.t('category.filter') // => '过滤器'
63
- *
64
- * // 变量插值
65
- * i18n.t('hello', { name: 'World' }) // => 'Hello World'
66
- * ```
67
- */
68
7
  export declare class I18nManager {
69
- /** 当前语言 */
70
8
  private locale;
71
- /** 回退语言 */
72
9
  private fallback;
73
- /** 已注册的语言包: locale => messages */
74
10
  private messages;
75
- /** 语言变更回调 */
76
11
  private changeCallbacks;
77
- /**
78
- * 创建国际化管理器
79
- *
80
- * @param options - 配置选项
81
- */
82
12
  constructor(options?: {
83
13
  locale?: string;
84
14
  fallback?: string;
85
15
  });
86
- /**
87
- * 注册语言包
88
- *
89
- * @param locale - 语言标识 (如 zh-CN, en-US)
90
- * @param messages - 语言包内容 (支持嵌套对象)
91
- * @param merge - 是否与已有语言包合并 (默认: true)
92
- */
93
16
  register(locale: string, messages: LocaleMessages, merge?: boolean): void;
94
- /**
95
- * 获取翻译文本
96
- *
97
- * @param key - 翻译 key (支持点分路径, 如 'sidebar.search')
98
- * @param params - 插值变量
99
- * @returns 翻译后的文本, 找不到返回 key 本身
100
- */
101
17
  t(key: string, params?: Record<string, string | number>): string;
102
- /**
103
- * 切换语言
104
- *
105
- * @param locale - 目标语言
106
- */
107
18
  setLocale(locale: string): void;
108
- /**
109
- * 获取当前语言
110
- */
111
19
  getLocale(): string;
112
- /**
113
- * 获取所有已注册的语言列表
114
- */
115
20
  getAvailableLocales(): string[];
116
- /**
117
- * 监听语言变更
118
- *
119
- * @param callback - 变更回调
120
- * @returns 取消监听函数
121
- */
122
21
  onLocaleChange(callback: LocaleChangeCallback): () => void;
123
- /**
124
- * 检查是否存在某个 key 的翻译
125
- *
126
- * @param key - 翻译 key
127
- * @param locale - 指定语言 (默认: 当前语言)
128
- */
129
22
  has(key: string, locale?: string): boolean;
130
- /**
131
- * 销毁
132
- */
133
23
  destroy(): void;
134
- /**
135
- * 从语言包中按路径查找翻译
136
- */
137
24
  private lookup;
138
- /**
139
- * 变量插值: 将 {{key}} 替换为对应值
140
- */
141
25
  private interpolate;
142
- /**
143
- * 深合并两个对象
144
- */
145
26
  private deepMerge;
146
27
  }
147
28
  export {};
148
- //# sourceMappingURL=I18nManager.d.ts.map
@@ -1,16 +1,2 @@
1
- /**
2
- * @file Optimizations.ts
3
- * @description 针对 LogicFlow 在复杂编排场景下(大批量算子重绘)的性能优化策略及内存泄漏防护。
4
- */
5
1
  import LogicFlow from '@logicflow/core';
6
- /**
7
- * 彻底销毁 LogicFlow 实例,阻断由于闭包引起的内存泄漏
8
- *
9
- * 核心优化:
10
- * 官方的 RuleGoEditor 在生命周期销毁时仅调用了 `lf.destroy()`。
11
- * 若在单页应用 (Vue/React) 中频繁切换路由,底层的 Mouse/Keyboard Listener 可能未被彻底释放。
12
- *
13
- * @param lf 实例
14
- */
15
2
  export declare const destroyEditor: (lf: LogicFlow | null) => void;
16
- //# sourceMappingURL=Optimizations.d.ts.map
@@ -0,0 +1,38 @@
1
+ import type { ComponentField, ComponentFieldOption } from '../types/component';
2
+ export interface OptionSourceContext {
3
+ field: ComponentField;
4
+ configuration: Record<string, unknown>;
5
+ currentNodeId?: string;
6
+ graphNodes?: Array<{
7
+ id: string;
8
+ name?: string;
9
+ type?: string;
10
+ }>;
11
+ query?: string;
12
+ params?: Record<string, unknown>;
13
+ signal?: AbortSignal;
14
+ [key: string]: unknown;
15
+ }
16
+ export interface OptionSourceResolveContext {
17
+ configuration: Record<string, unknown>;
18
+ currentNodeId?: string;
19
+ graphNodes?: Array<{
20
+ id: string;
21
+ name?: string;
22
+ type?: string;
23
+ }>;
24
+ query?: string;
25
+ signal?: AbortSignal;
26
+ [key: string]: unknown;
27
+ }
28
+ export type OptionSourceResolver = (context: OptionSourceContext) => ComponentFieldOption[] | Promise<ComponentFieldOption[]>;
29
+ export declare function buildOptionSourceRequestKey(fields: ComponentField[], context: OptionSourceResolveContext): string;
30
+ export declare class OptionSourceRegistry {
31
+ private resolvers;
32
+ constructor();
33
+ register(name: string, resolver: OptionSourceResolver, overwrite?: boolean): void;
34
+ unregister(name: string): boolean;
35
+ has(name: string): boolean;
36
+ resolve(field: ComponentField, context: OptionSourceResolveContext): Promise<ComponentFieldOption[]>;
37
+ clear(): void;
38
+ }
@@ -1,53 +1,16 @@
1
- /**
2
- * @file RuleChainChatManager.ts
3
- * @description 管理 AI 对话窗口状态,支持多规则链开窗的隔离状态
4
- */
5
- /**
6
- * 聊天消息实体接口
7
- * @interface ChatMessage
8
- */
9
1
  export interface ChatMessage {
10
- /** 消息发送方角色 */
11
2
  role: 'user' | 'assistant';
12
- /** 消息文本内容 */
13
3
  content: string;
14
- /** 发送时间戳 (毫秒) */
15
4
  timestamp: number;
16
5
  }
17
- /**
18
- * AI Copilot 对话管理器
19
- *
20
- * @class RuleChainChatManager
21
- * @description 负责集中化管理 AI 对话面板的状态。
22
- * 该管理器支持多个规则链各自持有独立的对话历史(通过 ruleChainId 隔离隔离)。
23
- * 底层利用 `localStorage` 自动落盘,刷新页面对话状态不丢失。
24
- */
25
6
  export declare class RuleChainChatManager {
26
7
  private chatStates;
27
8
  private storagePrefix;
28
- /**
29
- * 构造函数:初始化时自动恢复历史状态
30
- */
31
9
  constructor();
32
- /**
33
- * 获取指定规则链的全部聊天记录
34
- * @param ruleChainId 规则链唯一标识
35
- * @returns 聊天记录数组
36
- */
37
10
  getMessages(ruleChainId: string): ChatMessage[];
38
- /**
39
- * 向指定规则链对话追加一条消息
40
- * @param ruleChainId 规则链唯一标识
41
- * @param message 消息实体对象
42
- */
43
11
  addMessage(ruleChainId: string, message: ChatMessage): void;
44
- /**
45
- * 清除指定规则链的聊天记录 (包括本地存储)
46
- * @param ruleChainId 规则链唯一标识
47
- */
48
12
  clear(ruleChainId: string): void;
49
13
  private saveState;
50
14
  private restoreAll;
51
15
  }
52
16
  export declare const ruleChainChatManager: RuleChainChatManager;
53
- //# sourceMappingURL=RuleChainChatManager.d.ts.map
@@ -1,103 +1,24 @@
1
- /**
2
- * @file core/RuleChainValidator.ts
3
- * @description 规则链校验器 — 保存前检测配置问题,防止后台运行时报错
4
- *
5
- * 校验内容:
6
- * 1. 关联值校验 — 引用的节点ID是否存在
7
- * - for/while 的 do 字段
8
- * - groupFilter/groupAction 的 nodeIds 字段
9
- * 2. 必填项校验 — 关键配置是否缺失
10
- * - switch 至少一个 case
11
- * - for 需要 range 和 do
12
- * - while 需要 condition 和 do
13
- * - groupFilter/groupAction 需要 nodeIds
14
- * 3. 连接校验 — 锚点方向是否正确
15
- * - chain-node (end/break) 不应有输出连接
16
- * - start-node 必须连接到首个节点
17
- *
18
- * 使用方式:
19
- * import { RuleChainValidator } from './RuleChainValidator'
20
- * const result = RuleChainValidator.validate(ruleChainData)
21
- * if (!result.valid) { ... result.warnings / result.errors ... }
22
- */
23
1
  import type { RuleChainData } from '../types/rule-chain';
24
- /** 校验问题的严重级别 */
25
2
  export type IssueSeverity = 'error' | 'warning';
26
- /** 单条校验问题 */
27
3
  export interface ValidationIssue {
28
- /** 严重级别 */
29
4
  severity: IssueSeverity;
30
- /** 关联的节点 ID (可选) */
31
5
  nodeId?: string;
32
- /** 节点名称 (可选,方便展示) */
33
6
  nodeName?: string;
34
- /** 节点类型 */
35
7
  nodeType?: string;
36
- /** 问题描述 */
37
8
  message: string;
38
- /** 问题分类 */
39
9
  category: 'missing_config' | 'invalid_reference' | 'connection' | 'deprecated';
40
10
  }
41
- /** 校验结果 */
42
11
  export interface ValidationResult {
43
- /** 是否通过校验 (无 error 级别问题) */
44
12
  valid: boolean;
45
- /** 所有问题列表 */
46
13
  issues: ValidationIssue[];
47
- /** 便捷访问: 仅 error 级别 */
48
14
  errors: ValidationIssue[];
49
- /** 便捷访问: 仅 warning 级别 */
50
15
  warnings: ValidationIssue[];
51
16
  }
52
- /**
53
- * 规则链校验器
54
- * 在保存/导出前检测配置问题,提前发现后台运行时会报错的情况
55
- */
56
17
  export declare class RuleChainValidator {
57
- /**
58
- * 校验完整的规则链数据
59
- * @param data - RuleGo 规则链 JSON 数据
60
- * @returns 校验结果
61
- */
62
18
  static validate(data: RuleChainData): ValidationResult;
63
- /**
64
- * 校验单个节点的配置
65
- * @param node - 节点配置
66
- * @param nodeIdSet - 所有节点 ID 集合
67
- * @param issues - 问题列表 (会被修改)
68
- */
69
19
  private static _validateNode;
70
- /**
71
- * 校验节点引用是否有效
72
- * 支持 "nodeId" 直接引用和 "chain:chainId" 外部链引用
73
- *
74
- * @param refValue - 引用值
75
- * @param node - 当前节点
76
- * @param field - 字段名
77
- * @param nodeIdSet - 节点 ID 集合
78
- * @param issues - 问题列表
79
- */
80
20
  private static _validateNodeRef;
81
- /**
82
- * 校验连接的合理性
83
- * @param connections - 连接列表
84
- * @param nodes - 节点列表
85
- * @param nodeIdSet - 节点 ID 集合
86
- * @param issues - 问题列表
87
- */
88
21
  private static _validateConnections;
89
- /**
90
- * 校验首节点配置
91
- * @param data - 规则链数据
92
- * @param nodeIdSet - 节点 ID 集合
93
- * @param issues - 问题列表
94
- */
95
22
  private static _validateFirstNode;
96
- /**
97
- * 解析 nodeIds — 支持逗号分隔字符串或数组
98
- * @param nodeIds - 原始值
99
- * @returns 节点 ID 列表
100
- */
101
23
  private static _parseNodeIds;
102
24
  }
103
- //# sourceMappingURL=RuleChainValidator.d.ts.map
@@ -1,160 +1,24 @@
1
- /**
2
- * @file StateStore.ts
3
- * @description 框架无关的响应式状态容器
4
- *
5
- * 设计灵感来自 zustand/vanilla 和 nanostores。
6
- * 提供发布-订阅模式的状态管理,支持:
7
- * - 部分状态更新 (partial update)
8
- * - 选择性订阅 (selector subscription, 只在特定字段变化时通知)
9
- * - 快照获取 (get snapshot)
10
- * - 自动清理 (unsubscribe 返回值模式)
11
- *
12
- * 各框架适配器可以包装为:
13
- * - Vue: ref()/watch() 响应式
14
- * - React: useSyncExternalStore() hook
15
- * - 原生 JS: 直接 subscribe 回调
16
- *
17
- * @example
18
- * ```typescript
19
- * const store = new StateStore<EditorState>(initialState)
20
- *
21
- * // 订阅全部状态变化
22
- * const unsubscribe = store.subscribe((state, prevState) => {
23
- * console.log('状态变更:', state)
24
- * })
25
- *
26
- * // 选择性订阅
27
- * const nodeSelector = store.select(s => s.selectedNode)
28
- * nodeSelector.subscribe((node) => {
29
- * console.log('选中节点变化:', node)
30
- * })
31
- *
32
- * // 更新状态
33
- * store.setState({ selectedNode: someNode })
34
- *
35
- * // 函数式更新
36
- * store.setState(prev => ({ isDirty: !prev.isDirty }))
37
- * ```
38
- */
39
- /**
40
- * 状态变更监听器类型
41
- * @param state - 新状态
42
- * @param prevState - 旧状态
43
- */
44
1
  type StateListener<T> = (state: T, prevState: T) => void;
45
- /**
46
- * 选择器返回的订阅句柄
47
- */
48
2
  interface SelectorHandle<S> {
49
- /** 获取当前选中值 */
50
3
  get: () => S;
51
- /** 订阅选中值的变化 */
52
4
  subscribe: (listener: (value: S, prevValue: S) => void) => () => void;
53
5
  }
54
- /**
55
- * 框架无关的响应式状态容器
56
- *
57
- * @typeParam T - 状态对象的类型
58
- */
59
6
  export declare class StateStore<T extends Record<string, unknown>> {
60
- /** 当前状态 (内部可变) */
61
7
  private state;
62
- /** 全量订阅的监听器集合 */
63
8
  private listeners;
64
- /** 状态变更版本号 (用于 React useSyncExternalStore 等对比场景) */
65
9
  private version;
66
- /**
67
- * 创建状态容器
68
- * @param initialState - 初始状态对象
69
- */
10
+ private batchDepth;
11
+ private batchPrevState;
12
+ private batchStartVersion;
70
13
  constructor(initialState: T);
71
- /**
72
- * 获取当前状态的只读快照
73
- *
74
- * 注意: 返回的是浅冻结对象,不应直接修改属性。
75
- * 修改状态只能通过 setState 方法。
76
- *
77
- * @returns 当前状态的只读引用
78
- */
79
14
  getState(): Readonly<T>;
80
- /**
81
- * 获取当前版本号
82
- * 每次 setState 调用版本号 +1,用于变更检测
83
- *
84
- * @returns 版本号
85
- */
86
15
  getVersion(): number;
87
- /**
88
- * 更新状态 (支持部分更新和函数式更新)
89
- *
90
- * 部分更新: 传入一个 Partial<T> 对象,自动与现有状态合并
91
- * 函数式更新: 传入一个函数,接收当前状态,返回需要更新的部分
92
- *
93
- * @param partial - 部分状态对象或更新函数
94
- *
95
- * @example
96
- * ```typescript
97
- * // 对象方式
98
- * store.setState({ selectedNode: node, isDirty: true })
99
- *
100
- * // 函数方式 (适合依赖当前状态的更新)
101
- * store.setState(prev => ({
102
- * nodeCount: prev.nodeCount + 1
103
- * }))
104
- * ```
105
- */
106
16
  setState(partial: Partial<T> | ((prev: T) => Partial<T>)): void;
107
- /**
108
- * 批量更新状态 (只触发一次通知)
109
- *
110
- * 适用于需要同时修改多个状态但只想触发一次更新的场景
111
- *
112
- * @param updater - 更新函数,可多次调用 setState
113
- */
114
17
  batch(updater: () => void): void;
115
- /**
116
- * 订阅状态变化
117
- *
118
- * @param listener - 状态变更回调函数
119
- * @returns 取消订阅函数 (调用后停止接收通知)
120
- */
18
+ private notify;
121
19
  subscribe(listener: StateListener<T>): () => void;
122
- /**
123
- * 选择性订阅 (只关注特定字段的变化)
124
- *
125
- * 通过 selector 函数提取状态的一个切片。
126
- * 只有当该切片发生变化时才触发通知,减少不必要的 UI 更新。
127
- *
128
- * 使用浅比较 (===) 进行变更检测,
129
- * 如果 selector 返回引用类型,需注意引用是否真正发生了变化。
130
- *
131
- * @param selector - 状态选择器函数
132
- * @returns 包含 get 和 subscribe 的句柄
133
- *
134
- * @example
135
- * ```typescript
136
- * const nodeHandle = store.select(s => s.selectedNode)
137
- *
138
- * // 获取当前值
139
- * console.log(nodeHandle.get())
140
- *
141
- * // 只在 selectedNode 变化时收到通知
142
- * nodeHandle.subscribe((node, prevNode) => {
143
- * console.log('节点变化:', prevNode, '->', node)
144
- * })
145
- * ```
146
- */
147
20
  select<S>(selector: (state: T) => S): SelectorHandle<S>;
148
- /**
149
- * 重置状态为指定值 (全量替换)
150
- *
151
- * @param newState - 新的完整状态
152
- */
153
21
  reset(newState: T): void;
154
- /**
155
- * 销毁状态容器,清除所有监听器
156
- */
157
22
  destroy(): void;
158
23
  }
159
24
  export {};
160
- //# sourceMappingURL=StateStore.d.ts.map