@huanban/rulego-editor-core 1.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.
Files changed (102) hide show
  1. package/README.md +211 -0
  2. package/dist/api/RuleChainAPI.d.ts +163 -0
  3. package/dist/api/RuleChainAPI.d.ts.map +1 -0
  4. package/dist/api/index.d.ts +15 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/types.d.ts +244 -0
  7. package/dist/api/types.d.ts.map +1 -0
  8. package/dist/core/ComponentRegistry.d.ts +141 -0
  9. package/dist/core/ComponentRegistry.d.ts.map +1 -0
  10. package/dist/core/DataAdapter.d.ts +129 -0
  11. package/dist/core/DataAdapter.d.ts.map +1 -0
  12. package/dist/core/EditorCore.d.ts +251 -0
  13. package/dist/core/EditorCore.d.ts.map +1 -0
  14. package/dist/core/EventBus.d.ts +101 -0
  15. package/dist/core/EventBus.d.ts.map +1 -0
  16. package/dist/core/HistoryManager.d.ts +166 -0
  17. package/dist/core/HistoryManager.d.ts.map +1 -0
  18. package/dist/core/I18nManager.d.ts +130 -0
  19. package/dist/core/I18nManager.d.ts.map +1 -0
  20. package/dist/core/StateStore.d.ts +160 -0
  21. package/dist/core/StateStore.d.ts.map +1 -0
  22. package/dist/core/ThemeManager.d.ts +175 -0
  23. package/dist/core/ThemeManager.d.ts.map +1 -0
  24. package/dist/core/ValidationEngine.d.ts +139 -0
  25. package/dist/core/ValidationEngine.d.ts.map +1 -0
  26. package/dist/core/index.d.ts +30 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/defaults/components.d.ts +30 -0
  29. package/dist/defaults/components.d.ts.map +1 -0
  30. package/dist/defaults/index.d.ts +18 -0
  31. package/dist/defaults/index.d.ts.map +1 -0
  32. package/dist/defaults/locale-en-US.d.ts +26 -0
  33. package/dist/defaults/locale-en-US.d.ts.map +1 -0
  34. package/dist/defaults/locale-zh-CN.d.ts +41 -0
  35. package/dist/defaults/locale-zh-CN.d.ts.map +1 -0
  36. package/dist/iconRegistry.d.ts +17 -0
  37. package/dist/iconRegistry.d.ts.map +1 -0
  38. package/dist/index.cjs.js +2490 -0
  39. package/dist/index.cjs.js.map +1 -0
  40. package/dist/index.d.ts +49 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.esm.js +59608 -0
  43. package/dist/index.esm.js.map +1 -0
  44. package/dist/index.umd.js +2490 -0
  45. package/dist/index.umd.js.map +1 -0
  46. package/dist/standalone/HuanbanRulegoEditor.d.ts +392 -0
  47. package/dist/standalone/HuanbanRulegoEditor.d.ts.map +1 -0
  48. package/dist/standalone/code-editor.d.ts +95 -0
  49. package/dist/standalone/code-editor.d.ts.map +1 -0
  50. package/dist/standalone/custom-nodes.d.ts +26 -0
  51. package/dist/standalone/custom-nodes.d.ts.map +1 -0
  52. package/dist/standalone/editor-chain-info.d.ts +46 -0
  53. package/dist/standalone/editor-chain-info.d.ts.map +1 -0
  54. package/dist/standalone/editor-context-menu.d.ts +21 -0
  55. package/dist/standalone/editor-context-menu.d.ts.map +1 -0
  56. package/dist/standalone/editor-debug-ws.d.ts +170 -0
  57. package/dist/standalone/editor-debug-ws.d.ts.map +1 -0
  58. package/dist/standalone/editor-dialogs.d.ts +73 -0
  59. package/dist/standalone/editor-dialogs.d.ts.map +1 -0
  60. package/dist/standalone/editor-events.d.ts +28 -0
  61. package/dist/standalone/editor-events.d.ts.map +1 -0
  62. package/dist/standalone/editor-property-drawers.d.ts +78 -0
  63. package/dist/standalone/editor-property-drawers.d.ts.map +1 -0
  64. package/dist/standalone/editor-route-settings.d.ts +49 -0
  65. package/dist/standalone/editor-route-settings.d.ts.map +1 -0
  66. package/dist/standalone/editor-sidebar.d.ts +19 -0
  67. package/dist/standalone/editor-sidebar.d.ts.map +1 -0
  68. package/dist/standalone/editor-styles.d.ts +12 -0
  69. package/dist/standalone/editor-styles.d.ts.map +1 -0
  70. package/dist/standalone/editor-toolbar.d.ts +89 -0
  71. package/dist/standalone/editor-toolbar.d.ts.map +1 -0
  72. package/dist/standalone/group-node.d.ts +52 -0
  73. package/dist/standalone/group-node.d.ts.map +1 -0
  74. package/dist/standalone/icon-utils.d.ts +19 -0
  75. package/dist/standalone/icon-utils.d.ts.map +1 -0
  76. package/dist/standalone/index.d.ts +9 -0
  77. package/dist/standalone/index.d.ts.map +1 -0
  78. package/dist/standalone/logger.d.ts +35 -0
  79. package/dist/standalone/logger.d.ts.map +1 -0
  80. package/dist/standalone/node-definitions.d.ts +74 -0
  81. package/dist/standalone/node-definitions.d.ts.map +1 -0
  82. package/dist/standalone/node-views-data.d.ts +21 -0
  83. package/dist/standalone/node-views-data.d.ts.map +1 -0
  84. package/dist/standalone/themes.d.ts +54 -0
  85. package/dist/standalone/themes.d.ts.map +1 -0
  86. package/dist/types/component.d.ts +120 -0
  87. package/dist/types/component.d.ts.map +1 -0
  88. package/dist/types/editor.d.ts +246 -0
  89. package/dist/types/editor.d.ts.map +1 -0
  90. package/dist/types/events.d.ts +199 -0
  91. package/dist/types/events.d.ts.map +1 -0
  92. package/dist/types/index.d.ts +12 -0
  93. package/dist/types/index.d.ts.map +1 -0
  94. package/dist/types/rule-chain.d.ts +141 -0
  95. package/dist/types/rule-chain.d.ts.map +1 -0
  96. package/dist/utils/helpers.d.ts +100 -0
  97. package/dist/utils/helpers.d.ts.map +1 -0
  98. package/dist/utils/index.d.ts +6 -0
  99. package/dist/utils/index.d.ts.map +1 -0
  100. package/dist/utils/pinyin-search.d.ts +60 -0
  101. package/dist/utils/pinyin-search.d.ts.map +1 -0
  102. package/package.json +70 -0
@@ -0,0 +1,392 @@
1
+ /**
2
+ * @file standalone/HuanbanRulegoEditor.ts
3
+ * @description HuanbanRulegoEditor — 零框架依赖,一行代码启动完整编辑器
4
+ *
5
+ * 核心职责:
6
+ * 1. 创建完整 DOM 布局 (工具栏 + 侧边栏 + 画布 + 属性面板)
7
+ * 2. 初始化 LogicFlow 画布 (带 nodeTextDraggable: false 等关键配置)
8
+ * 3. 初始化 EditorCore 数据引擎
9
+ * 4. 渲染 Node-RED 风格的组件侧边栏 (带分类折叠、搜索、拖拽)
10
+ * 5. 提供简洁 API: loadData / exportData / loadComponents / destroy
11
+ *
12
+ * 所有 CSS class 使用 huanban_rulego_editor 前缀, 避免与宿主项目冲突。
13
+ *
14
+ * 使用方式:
15
+ * ```html
16
+ * <div id="editor" style="height:100vh"></div>
17
+ * <script src="editor-core.umd.js"></script>
18
+ * <script>
19
+ * const editor = new RuleGoEditorCore.HuanbanRulegoEditor({
20
+ * container: '#editor',
21
+ * apiBase: 'http://127.0.0.1:9090',
22
+ * onReady: ({ lf, core }) => console.log('就绪'),
23
+ * onNodeClick: (node) => console.log('点击节点', node),
24
+ * })
25
+ * </script>
26
+ * ```
27
+ *
28
+ * @see EditorCore 核心引擎
29
+ * @see DataAdapter 数据转换
30
+ */
31
+ import LogicFlow from '@logicflow/core';
32
+ import { EditorCore } from '../core/EditorCore';
33
+ import { I18nManager } from '../core/I18nManager';
34
+ import type { EditorOptions } from '../types/editor';
35
+ import type { RuleChainData } from '../types/rule-chain';
36
+ import type { ComponentDefinition } from '../types/component';
37
+ /**
38
+ * HuanbanRulegoEditor 配置选项
39
+ */
40
+ export interface HuanbanRulegoEditorOptions {
41
+ /** 容器 — CSS 选择器字符串 或 DOM 元素 */
42
+ container: string | HTMLElement;
43
+ /** API 基础地址 (如 'http://127.0.0.1:9090/api/v1'),用于 HuanbanRulegoEditor.fetchData */
44
+ apiBase?: string;
45
+ /** 请求超时毫秒数, 默认 5000 */
46
+ fetchTimeout?: number;
47
+ /** 初始规则链数据 */
48
+ data?: RuleChainData | null;
49
+ /** 初始组件列表 */
50
+ components?: ComponentDefinition[];
51
+ /** LogicFlow 额外配置 (会与默认配置合并) */
52
+ lfOptions?: Record<string, unknown>;
53
+ /** LogicFlow 插件数组 (不传则自动从全局获取) */
54
+ lfPlugins?: any[];
55
+ /** EditorCore 额外配置 */
56
+ coreOptions?: Partial<EditorOptions>;
57
+ /** 是否显示工具栏, 默认 true */
58
+ showToolbar?: boolean;
59
+ /** 工具栏左侧标题 (不设置则不显示标题区域) */
60
+ toolbarTitle?: string;
61
+ /** 是否显示侧边栏, 默认 true */
62
+ showSidebar?: boolean;
63
+ /** 侧边栏宽度, 默认 220 */
64
+ sidebarWidth?: number;
65
+ /** 侧边栏是否默认收起, 默认 false */
66
+ sidebarCollapsed?: boolean;
67
+ /** 是否在工具栏显示「信息」按钮, 默认 false */
68
+ showInfoButton?: boolean;
69
+ /** 编辑器就绪 */
70
+ onReady?: (ctx: {
71
+ lf: LogicFlow;
72
+ core: EditorCore;
73
+ }) => void;
74
+ /** 节点点击 */
75
+ onNodeClick?: (data: unknown) => void;
76
+ /** 节点双击 */
77
+ onNodeDbClick?: (data: unknown) => void;
78
+ /** 边点击 */
79
+ onEdgeClick?: (data: unknown) => void;
80
+ /** 数据变化 */
81
+ onChange?: () => void;
82
+ /**
83
+ * 点击「信息」按钮的回调 (slot 概念)
84
+ * 包只提供链数据, 布局渲染由调用方决定
85
+ * @param chainInfo 当前规则链的配置信息 (ruleChain 对象)
86
+ */
87
+ onInfoClick?: (chainInfo: any) => void;
88
+ /** 是否在工具栏显示「导出」按钮, 默认 true (已有导出功能则显示增强弹窗) */
89
+ showExportDialog?: boolean;
90
+ /** 劫持导出行为, 调用方自行处理; 不设则使用内置弹窗 */
91
+ onExportDSL?: (data: {
92
+ json: string;
93
+ imageDataUrl?: string;
94
+ }) => void;
95
+ /** 是否在工具栏显示「运行」按钮, 默认 false */
96
+ showRunButton?: boolean;
97
+ /** 劫持运行行为; 不设则使用内置运行 Drawer */
98
+ onRunClick?: (chainId: string) => void;
99
+ /** 是否在工具栏显示「组件管理」按钮, 默认 false */
100
+ showComponentManage?: boolean;
101
+ /** 劫持组件管理; 不设则使用内置弹窗 */
102
+ onComponentManage?: () => void;
103
+ /** 语言设置, 默认 'zh_cn' */
104
+ locale?: string;
105
+ /** 劫持语言切换 */
106
+ onLocaleChange?: (locale: string) => void;
107
+ /** 是否在节点 Drawer 中显示调试日志 Tab, 默认 true (有 apiBase 时) */
108
+ showDebugTab?: boolean;
109
+ /** 是否在工具栏显示「部署/下架/重载」按钮, 默认 true */
110
+ showDeployButton?: boolean;
111
+ /** 劫持部署行为; 不设则使用内置 API 调用 */
112
+ onDeploy?: (chainId: string, action: 'deploy' | 'undeploy' | 'reload') => void;
113
+ /** 规则链列表数据 (初始传入, 用于弹窗列表展示) */
114
+ ruleItems?: any[];
115
+ /** 规则链 API 地址 (如 '/rules'), 用于远程加载规则链列表 */
116
+ rulesApi?: string;
117
+ /** 选择规则链后的回调 */
118
+ onSelectRuleChain?: (ruleChain: any) => void;
119
+ /** 劫持删除规则链; 不设则使用内置 API 调用 */
120
+ onDeleteRuleChain?: (chainId: string) => void;
121
+ /** 是否在工具栏显示「运行记录」按钮, 默认 true (有 apiBase 时) */
122
+ showRunHistory?: boolean;
123
+ /** 劫持运行记录; 不设则根据 runHistoryUrl 打开新窗口 */
124
+ onRunHistory?: (chainId: string) => void;
125
+ /** 运行记录页面 URL (支持 {chainId} 占位符), 如 'http://xxx/ui/#/workflow/runs?chainId={chainId}' */
126
+ runHistoryUrl?: string;
127
+ }
128
+ /**
129
+ * 原生 JS 编辑器 — 一行代码启动完整的 RuleGo 规则链编辑器
130
+ *
131
+ * 内部创建完整的 DOM 布局、LogicFlow 画布、EditorCore 引擎、
132
+ * 以及 Node-RED 风格的组件侧边栏。
133
+ *
134
+ * @example
135
+ * ```js
136
+ * const editor = new HuanbanRulegoEditor({
137
+ * container: '#editor',
138
+ * data: ruleChainJSON,
139
+ * components: componentsArray,
140
+ * })
141
+ * ```
142
+ */
143
+ export declare class HuanbanRulegoEditor {
144
+ /** LogicFlow 画布实例 */
145
+ lf: LogicFlow | null;
146
+ /** EditorCore 数据引擎 */
147
+ core: EditorCore | null;
148
+ /** DOM 元素引用 (子模块通过 editor 实例访问) */
149
+ /** @internal */ rootEl: HTMLElement | null;
150
+ /** @internal */ canvasEl: HTMLElement | null;
151
+ /** @internal */ sidebarEl: HTMLElement | null;
152
+ /** @internal */ sidebarGroupsEl: HTMLElement | null;
153
+ /** @internal */ searchInputEl: HTMLInputElement | null;
154
+ private statusNodes;
155
+ private statusEdges;
156
+ /** 状态栏 — 更新时间元素 */
157
+ private statusUpdateTime;
158
+ /** 状态栏 — 运行状态元素 */
159
+ private statusRunState;
160
+ /** 侧边栏是否折叠 */
161
+ private sidebarCollapsed;
162
+ /** 组件数据 @internal */
163
+ components: ComponentDefinition[];
164
+ /** 左侧分组展开状态 @internal */
165
+ expandedGroups: Set<string>;
166
+ /** 配置 @internal */
167
+ opts: HuanbanRulegoEditorOptions;
168
+ /** 国际化管理器 @internal */
169
+ i18n: I18nManager;
170
+ /** 当前主题标识 @internal */
171
+ _currentTheme: string;
172
+ /** 键盘快捷键清理函数 @internal */
173
+ private _cleanupShortcuts;
174
+ /** 右键菜单清理函数 @internal */
175
+ private _cleanupContextMenu;
176
+ /** 小地图是否可见 @internal */
177
+ _miniMapVisible: boolean;
178
+ /** 内部剪贴板 (用于 Ctrl+C/V 复制粘贴节点) @internal */
179
+ _clipboard: any[];
180
+ constructor(options: HuanbanRulegoEditorOptions);
181
+ /**
182
+ * 翻译便捷方法 — 从当前语言包获取文本
183
+ * @param key 翻译键 (如 'editor.toolbar.save')
184
+ * @param params 插值变量
185
+ * @returns 翻译后的文本
186
+ */
187
+ t(key: string, params?: Record<string, string | number>): string;
188
+ /**
189
+ * 切换语言
190
+ * @param locale 语言标识 (zh_cn / en 等)
191
+ */
192
+ setLocale(locale: string): void;
193
+ /**
194
+ * 获取 I18nManager 实例 (供外部扩展语言包)
195
+ */
196
+ getI18n(): I18nManager;
197
+ /**
198
+ * 切换小地图 (MiniMap) 的显示/隐藏
199
+ * 使用 LogicFlow 内置 MiniMap 扩展
200
+ */
201
+ toggleMiniMap(): void;
202
+ /**
203
+ * 切换画布节点搜索栏的显示/隐藏
204
+ * 搜索匹配的节点会被高亮并定位
205
+ */
206
+ toggleNodeSearch(): void;
207
+ /**
208
+ * 在画布中搜索节点 — 匹配节点文本/类型/属性名
209
+ * 匹配节点添加高亮样式,自动聚焦第一个匹配节点
210
+ * @param keyword - 搜索关键词
211
+ * @returns 匹配的节点数量
212
+ * @internal
213
+ */
214
+ _searchNodes(keyword: string): number;
215
+ /**
216
+ * 清除画布节点搜索高亮
217
+ * @internal
218
+ */
219
+ _clearNodeSearchHighlight(): void;
220
+ /**
221
+ * 编辑器初始化入口 — 创建 DOM、LogicFlow、EditorCore 并桥接事件
222
+ * 在构造函数中被调用
223
+ */
224
+ private init;
225
+ private createDOM;
226
+ /** 工具栏按钮点击事件 — 实现已提取到 editor-toolbar.ts */
227
+ private handleToolbarClick;
228
+ /**
229
+ * 更新缩放百分比标签 — 从 LogicFlow 获取当前 transform.SCALE_X
230
+ * @internal
231
+ */
232
+ _updateZoomLabel(): void;
233
+ /** 获取当前主题标签 (供 createDOM 使用) */
234
+ private _currentThemeLabel;
235
+ /** 事件桥接 — 实现已提取到 editor-events.ts */
236
+ private bridgeEvents;
237
+ /** 渲染侧边栏组件列表 — 实现已提取到 editor-sidebar.ts */
238
+ renderSidebar(): void;
239
+ /** 当前选中的节点/边/正在添加的节点/边 @internal */
240
+ _currentNode: any;
241
+ _currentEdge: any;
242
+ _currentAddNode: any;
243
+ _currentAddEdge: any;
244
+ /** nodeComponents: 组件类型 → 组件定义 @internal */
245
+ _nodeComponents: Record<string, any>;
246
+ /**
247
+ * 处理编辑元素 — 照搬原版 handleEditElement
248
+ * @param fromAdd 是否从拖入/新增触发
249
+ */
250
+ private _handleEditElement;
251
+ /** @internal 子模块(editor-events)使用 */
252
+ _showNodeOperate(data: any): void;
253
+ /** @internal 子模块(editor-events)使用 */
254
+ _showEdgeOperate(data: any): void;
255
+ private _hideNodeOperate;
256
+ /**
257
+ * 显示节点属性编辑 Drawer
258
+ * 实现已提取到 editor-property-drawers.ts
259
+ */
260
+ private _showNodePropertyDrawer;
261
+ /**
262
+ * 显示边属性编辑 Drawer
263
+ * 实现已提取到 editor-property-drawers.ts
264
+ */
265
+ private _showEdgePropertyDrawer;
266
+ /** 关闭 Drawer */
267
+ /** @internal 子模块(editor-property-drawers)使用 */
268
+ _closeDrawer(): void;
269
+ /** 关闭弹窗 */
270
+ /** @internal 子模块(editor-dialogs)使用 */
271
+ _closeModal(): void;
272
+ /**
273
+ * 显示规则链选择器弹窗 — 支持搜索和分页
274
+ * 实现已提取到 editor-dialogs.ts
275
+ */
276
+ /** @internal 子模块(editor-toolbar)使用 */
277
+ _showRuleChainSelector(): void;
278
+ /** @internal 子模块(editor-events)使用 */
279
+ updateStatusBar(): void;
280
+ /**
281
+ * 加载组件列表
282
+ * @param components 组件定义数组
283
+ */
284
+ loadComponents(components: ComponentDefinition[]): void;
285
+ /**
286
+ * 加载规则链数据
287
+ * @param data RuleGo 规则链 JSON 数据
288
+ */
289
+ loadData(data: RuleChainData): void;
290
+ /**
291
+ * 更新状态栏中的「更新时间」和「运行状态」
292
+ * @param ruleChain 规则链配置信息 (含 updateTime / disabled 字段)
293
+ * @internal
294
+ */
295
+ _updateChainStatus(ruleChain?: import('../types/rule-chain').RuleChainConfig | null): void;
296
+ /**
297
+ * 导出当前画布数据为 RuleGo 格式
298
+ * @returns RuleGo 规则链 JSON 数据
299
+ */
300
+ exportData(): RuleChainData | null;
301
+ /** 导出并在控制台输出 */
302
+ /** @internal 子模块(editor-toolbar)使用 */
303
+ exportAndLog(): void;
304
+ /** 切换侧边栏折叠/展开 */
305
+ toggleSidebar(): void;
306
+ /** 适应画布 */
307
+ fitView(): void;
308
+ /**
309
+ * 显示导出 DSL 弹窗
310
+ * 实现已提取到 editor-dialogs.ts
311
+ */
312
+ /** @internal 子模块(editor-toolbar)使用 */
313
+ _showExportDialog(): void;
314
+ /**
315
+ * 显示运行面板 Drawer
316
+ * 实现已提取到 editor-dialogs.ts
317
+ */
318
+ /** @internal 子模块(editor-toolbar)使用 */
319
+ _showRunPanel(): void;
320
+ /**
321
+ * 显示组件管理弹窗
322
+ * 实现已提取到 editor-dialogs.ts
323
+ */
324
+ /** @internal 子模块(editor-toolbar)使用 */
325
+ _showComponentManage(): void;
326
+ /**
327
+ * 获取当前规则链信息 (公开 API)
328
+ * 调用方可随时获取当前加载的链数据
329
+ * @returns 当前规则链配置对象, 未加载时返回 null
330
+ */
331
+ getChainInfo(): any | null;
332
+ /**
333
+ * 显示链信息 (公开 API)
334
+ * 如果配置了 onInfoClick 回调, 则将链数据传给回调由调用方渲染
335
+ * 如果没有配置回调, 则使用内置的简单 Drawer 展示
336
+ */
337
+ showChainInfo(): void;
338
+ /**
339
+ * 内置的链信息 Drawer (默认实现)
340
+ * 完整还原原版 RuleGo Server 的信息面板:
341
+ * 1. 基础信息 — ID、名称、根规则链、调试模式、描述
342
+ * 2. 变量和秘钥 — vars / secrets 表格
343
+ * 3. 平台集成 — 同步/异步调用接口 + MCP 集成
344
+ */
345
+ private _showChainInfoDrawer;
346
+ /** HTML 转义工具方法 */
347
+ /** @internal 子模块(editor-property-drawers)使用 */
348
+ _escapeHtml(text: string): string;
349
+ /** 销毁编辑器 */
350
+ destroy(): void;
351
+ /**
352
+ * 通用数据请求方法 — 优先从 API 加载, 失败自动回退到 mock 文件
353
+ *
354
+ * @param apiBase - API 基础地址 (如 'http://127.0.0.1:9090/api/v1')
355
+ * @param path - 请求路径 (如 '/components')
356
+ * @param mockFile - 本地 mock 文件路径 (如 'mock/components.json')
357
+ * @param timeout - 超时毫秒数, 默认 5000
358
+ * @returns Promise<any> 解析后的 JSON 数据
359
+ *
360
+ * @example
361
+ * ```js
362
+ * HuanbanRulegoEditor.fetchData('http://api.example.com', '/components', 'mock/components.json')
363
+ * .then(data => console.log(data))
364
+ * ```
365
+ */
366
+ static fetchData(apiBase: string, path: string, mockFile: string, timeout?: number): Promise<unknown>;
367
+ /**
368
+ * 开启/关闭编辑器内部调试日志
369
+ *
370
+ * 调试日志默认关闭,开启后会在控制台输出编辑器内部的事件桥接、
371
+ * 节点注册、画布渲染等详细调试信息。
372
+ *
373
+ * @param enabled - true: 开启调试日志, false: 关闭
374
+ *
375
+ * @example
376
+ * ```js
377
+ * // UMD 用法
378
+ * RuleGoEditorCore.HuanbanRulegoEditor.setDebug(true)
379
+ *
380
+ * // ESM 用法
381
+ * import { HuanbanRulegoEditor } from '@huanban/rulego-editor-core'
382
+ * HuanbanRulegoEditor.setDebug(true)
383
+ * ```
384
+ */
385
+ static setDebug(enabled: boolean): void;
386
+ /**
387
+ * 查询调试日志是否开启
388
+ * @returns 当前调试模式是否开启
389
+ */
390
+ static isDebug(): boolean;
391
+ }
392
+ //# sourceMappingURL=HuanbanRulegoEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HuanbanRulegoEditor.d.ts","sourceRoot":"","sources":["../../src/standalone/HuanbanRulegoEditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @file standalone/code-editor.ts
3
+ * @description CodeMirror 6 代码编辑器集成模块
4
+ *
5
+ * 功能:
6
+ * - 创建 CodeMirror 6 编辑器实例 (替代 textarea)
7
+ * - 支持 JavaScript / JSON / Lua 三种语言的语法高亮
8
+ * - 内置暗色主题 (oneDark)、行号、代码折叠、自动补全
9
+ * - 自动语法校验 (JS: linter, JSON: linter, Lua: 基础括号匹配)
10
+ * - 获取/设置编辑器内容
11
+ * - 统一销毁管理,避免内存泄漏
12
+ *
13
+ * 被 editor-property-drawers.ts 调用,用于节点属性中的
14
+ * jsScript / script / json 类型字段编辑。
15
+ *
16
+ * @input createCodeEditor(options) → CodeEditorInstance
17
+ * @output CodeEditorInstance { getValue, setValue, destroy, view }
18
+ */
19
+ import { EditorView } from '@codemirror/view';
20
+ /**
21
+ * 代码编辑器语言类型
22
+ * - js: JavaScript 脚本
23
+ * - json: JSON 数据
24
+ * - lua: Lua 脚本 (仅基础高亮, 无内置 linter)
25
+ */
26
+ export type CodeEditorLang = 'js' | 'json' | 'lua';
27
+ /**
28
+ * 创建代码编辑器的配置选项
29
+ */
30
+ export interface CodeEditorOptions {
31
+ /** 挂载的 DOM 容器元素 */
32
+ parent: HTMLElement;
33
+ /** 初始代码内容 */
34
+ value?: string;
35
+ /** 语言类型: js / json / lua */
36
+ lang?: CodeEditorLang;
37
+ /** 是否只读 */
38
+ readOnly?: boolean;
39
+ /** 内容变化回调 (防抖后触发) */
40
+ onChange?: (value: string) => void;
41
+ /** 语法校验状态回调: true=通过, string=错误信息 */
42
+ onValidate?: (result: true | string) => void;
43
+ /** 编辑器最小高度 (px), 默认 200 */
44
+ minHeight?: number;
45
+ /** 编辑器最大高度 (px), 默认 500 */
46
+ maxHeight?: number;
47
+ /** Tab 缩进空格数, 默认 2 */
48
+ tabSize?: number;
49
+ }
50
+ /**
51
+ * 代码编辑器实例 — 对外提供的操作接口
52
+ */
53
+ export interface CodeEditorInstance {
54
+ /** 获取当前编辑器内容 */
55
+ getValue(): string;
56
+ /** 设置编辑器内容 (会触发 onChange 回调) */
57
+ setValue(value: string): void;
58
+ /** 销毁编辑器实例,释放 DOM 和事件 */
59
+ destroy(): void;
60
+ /** CodeMirror EditorView 实例 (高级用法) */
61
+ view: EditorView;
62
+ }
63
+ /**
64
+ * 创建 CodeMirror 6 代码编辑器实例
65
+ *
66
+ * @param options - 编辑器配置 (语言、初始值、回调等)
67
+ * @returns CodeEditorInstance — 包含 getValue / setValue / destroy 方法
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * const editor = createCodeEditor({
72
+ * parent: document.getElementById('code-container')!,
73
+ * value: 'function hello() { return "world"; }',
74
+ * lang: 'js',
75
+ * onChange: (val) => console.log('内容变化:', val),
76
+ * onValidate: (result) => {
77
+ * if (result === true) console.log('语法正确');
78
+ * else console.log('语法错误:', result);
79
+ * },
80
+ * });
81
+ * // 获取值
82
+ * const code = editor.getValue();
83
+ * // 销毁
84
+ * editor.destroy();
85
+ * ```
86
+ */
87
+ export declare function createCodeEditor(options: CodeEditorOptions): CodeEditorInstance;
88
+ /**
89
+ * 校验代码语法
90
+ * @param code - 代码内容
91
+ * @param lang - 语言类型
92
+ * @returns true 表示通过, string 表示错误信息
93
+ */
94
+ export declare function validateCode(code: string, lang: CodeEditorLang): true | string;
95
+ //# sourceMappingURL=code-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-editor.d.ts","sourceRoot":"","sources":["../../src/standalone/code-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAsF,MAAM,kBAAkB,CAAC;AAelI;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qCAAqC;IACrC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,QAAQ,IAAI,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,yBAAyB;IACzB,OAAO,IAAI,IAAI,CAAC;IAChB,sCAAsC;IACtC,IAAI,EAAE,UAAU,CAAC;CAClB;AAkJD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,CAyH/E;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,CAmB9E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * custom-nodes.ts
3
+ * ===============
4
+ * 功能:LogicFlow 自定义图元注册
5
+ *
6
+ * 完全照搬原版 RuleGo Editor v1.2.0 的节点/边类型:
7
+ * - BaseNode (RedNode / RedNodeModel): 基础矩形节点
8
+ * - SimpleNode: 带图标的标准节点
9
+ * - StartNode: 起始节点 (不可移动, 只有右锚点)
10
+ * - ChainNode: 子规则链节点 (只有左锚点)
11
+ * - FlowLink: 贝塞尔曲线连线
12
+ *
13
+ * 所有节点采用 Node-RED 风格:
14
+ * 120x30 矩形, 左侧30px图标区, 左右锚点连接
15
+ *
16
+ * 使用方式:
17
+ * import { registerCustomElements } from './custom-nodes'
18
+ * registerCustomElements(lf)
19
+ */
20
+ import LogicFlow from '@logicflow/core';
21
+ /**
22
+ * 注册所有自定义图元到 LogicFlow 实例
23
+ * @param lf - LogicFlow 画布实例
24
+ */
25
+ export declare function registerCustomElements(lf: LogicFlow): void;
26
+ //# sourceMappingURL=custom-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-nodes.d.ts","sourceRoot":"","sources":["../../src/standalone/custom-nodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,SAAgB,MAAM,iBAAiB,CAAA;AAmB9C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAwT1D"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @file standalone/editor-chain-info.ts
3
+ * @description 链信息 Drawer 模块 — 从 HuanbanRulegoEditor.ts 中提取
4
+ *
5
+ * 包含以下功能:
6
+ * - 链信息 Drawer (showChainInfoDrawer) — 基础信息、变量密钥、平台集成
7
+ * - 新增变量/密钥弹窗 (showAddVarDialog)
8
+ *
9
+ * 每个函数接收 editor 实例作为参数 (ChainInfoContext 接口),
10
+ * 避免与主类产生循环依赖。
11
+ */
12
+ /**
13
+ * 链信息模块需要访问的编辑器上下文接口
14
+ * 使用接口而非直接引用 HuanbanRulegoEditor 类, 避免循环依赖
15
+ */
16
+ export interface ChainInfoContext {
17
+ /** EditorCore 数据引擎实例 */
18
+ core: any;
19
+ /** 编辑器配置选项 (需要 apiBase, onChange 等) */
20
+ opts: any;
21
+ /** 国际化翻译方法 */
22
+ t(key: string, params?: Record<string, string>): string;
23
+ /** HTML 转义工具方法 */
24
+ _escapeHtml(str: string): string;
25
+ /** 关闭 Drawer */
26
+ _closeDrawer(): void;
27
+ }
28
+ /**
29
+ * 显示链信息 Drawer (默认实现)
30
+ * 完整还原原版 RuleGo Server 的信息面板:
31
+ * 1. 基础信息 — ID、名称、根规则链、调试模式、描述
32
+ * 2. 变量和秘钥 — vars / secrets 表格
33
+ * 3. 平台集成 — 同步/异步调用接口 + MCP 集成
34
+ *
35
+ * @param ctx - 编辑器上下文
36
+ * @param chain - 当前规则链数据对象
37
+ */
38
+ export declare function showChainInfoDrawer(ctx: ChainInfoContext, chain: any): void;
39
+ /**
40
+ * 显示新增变量/密钥弹窗
41
+ * @param ctx - 编辑器上下文
42
+ * @param chain - 当前规则链数据
43
+ * @param isSecret - true=密钥, false=变量
44
+ */
45
+ export declare function showAddVarDialog(ctx: ChainInfoContext, chain: any, isSecret: boolean): void;
46
+ //# sourceMappingURL=editor-chain-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-chain-info.d.ts","sourceRoot":"","sources":["../../src/standalone/editor-chain-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,IAAI,EAAE,GAAG,CAAA;IACT,uCAAuC;IACvC,IAAI,EAAE,GAAG,CAAA;IACT,cAAc;IACd,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACvD,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,gBAAgB;IAChB,YAAY,IAAI,IAAI,CAAA;CACrB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAyV3E;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAwE3F"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @file standalone/editor-context-menu.ts
3
+ * @description 画布右键菜单模块
4
+ *
5
+ * 功能:
6
+ * - 画布空白处右键: 全选 / 适应画布 / 粘贴节点
7
+ * - 节点右键: 编辑 / 复制 / 删除 / 断开连接
8
+ * - 自动定位在鼠标位置
9
+ * - 点击菜单外自动关闭
10
+ *
11
+ * @param editor - HuanbanRulegoEditor 实例
12
+ */
13
+ /**
14
+ * 初始化右键菜单事件绑定
15
+ * 在 HuanbanRulegoEditor.init() 中调用一次
16
+ *
17
+ * @param editor - 编辑器实例
18
+ * @returns 清理函数
19
+ */
20
+ export declare function setupContextMenu(editor: any): () => void;
21
+ //# sourceMappingURL=editor-context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-context-menu.d.ts","sourceRoot":"","sources":["../../src/standalone/editor-context-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkCH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,CAkQxD"}