udm-rules-vue 0.0.2 → 0.0.4

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 (171) hide show
  1. package/dist/EventBus.d.ts +1 -0
  2. package/dist/FileDeployPackageBuilder.d.ts +0 -2
  3. package/dist/FileUtils.d.ts +17 -22
  4. package/dist/OutputChannelManager.d.ts +37 -6
  5. package/dist/ServerRequestResponse.d.ts +6 -0
  6. package/dist/assets/builtin/Constants.bom +9 -0
  7. package/dist/assets/builtin/Constants_zh_CN.voc +11 -1
  8. package/dist/assets/builtin/Scorecard.bom +8 -0
  9. package/dist/assets/builtin/Scorecard_zh_CN.voc +10 -0
  10. package/dist/assets/builtin/StaticMethod.bom +1 -0
  11. package/dist/assets/builtin/StaticMethod_zh_CN.voc +1 -0
  12. package/dist/assets/css/index.css +1 -1
  13. package/dist/bom/bomSerialize.d.ts +2 -1
  14. package/dist/bom/model.d.ts +2 -1
  15. package/dist/brl/PureWebRuleEditor.vue.d.ts +4 -3
  16. package/dist/brl/RuleDocument.d.ts +1 -1
  17. package/dist/brl/RuleEditor.vue.d.ts +2 -2
  18. package/dist/brl/RuleEditorComponent.vue.d.ts +3 -3
  19. package/dist/brl/RuleUtils.d.ts +1 -1
  20. package/dist/command/CompileB2xFilesCommand.d.ts +4 -0
  21. package/dist/command/CompileRuleFilesCommand.d.ts +9 -4
  22. package/dist/command/DiagnoseFileCommand.d.ts +6 -0
  23. package/dist/command/SyncCompiledFilesCommand.d.ts +3 -0
  24. package/dist/command/UpdateUuidCommand.d.ts +2 -2
  25. package/dist/compile/BomCompiler.d.ts +96 -0
  26. package/dist/compile/DecisionTableCompiler.d.ts +4 -4
  27. package/dist/compile/ExpressionBuilder.d.ts +0 -3
  28. package/dist/compile/FileCompiler.d.ts +11 -2
  29. package/dist/compile/FlowCompiler.d.ts +20 -4
  30. package/dist/compile/PureWebCompiler.d.ts +1 -0
  31. package/dist/compile/RuleCompiler.d.ts +2 -2
  32. package/dist/compile/ScoreCardCompiler.d.ts +14 -0
  33. package/dist/compile/compileRuleScript.d.ts +6 -1
  34. package/dist/components/message/Toast.vue.d.ts +6 -0
  35. package/dist/components/message/events.d.ts +20 -0
  36. package/dist/components/process/events.d.ts +0 -3
  37. package/dist/components/tree/TreeNode.vue.d.ts +2 -0
  38. package/dist/content.d.ts +2 -0
  39. package/dist/dta/DecisionTableDeserialize.d.ts +2 -1
  40. package/dist/dta/DecisionTableJsonSerialize.d.ts +2 -0
  41. package/dist/dta/DecisionTableXmlSerialize.d.ts +2 -0
  42. package/dist/dta/component/DecisionTable.d.ts +1 -0
  43. package/dist/dta/model/DecisionTableModel.d.ts +3 -0
  44. package/dist/dta/webview/DecisionTableDocument.d.ts +1 -1
  45. package/dist/dtr/webview/DecisionTreeDocument.d.ts +1 -1
  46. package/dist/extension.d.ts +2 -1
  47. package/dist/grammar/BusinessParseRuleContext.d.ts +5 -0
  48. package/dist/grammar/ParserHelper.d.ts +20 -2
  49. package/dist/grammar/TokenAssertor.d.ts +0 -4
  50. package/dist/grammar/bom/BomLexer.d.ts +33 -32
  51. package/dist/grammar/bom/BomParser.d.ts +35 -33
  52. package/dist/grammar/diagnostic/SemanticDiagnostic.d.ts +13 -2
  53. package/dist/grammar/parser/BoostRuleParser.d.ts +36 -2
  54. package/dist/grammar/rule/RuleParser.d.ts +42 -35
  55. package/dist/index.d.ts +12 -4
  56. package/dist/index.js +91342 -80573
  57. package/dist/index.umd.js +398 -313
  58. package/dist/model/BO.d.ts +15 -1
  59. package/dist/model/Datatype.d.ts +1 -0
  60. package/dist/model/NavigationTree.d.ts +3 -3
  61. package/dist/model/VscodeBuiltinObjectsLoader.d.ts +2 -0
  62. package/dist/model/WebBuiltinObjectsLoader.d.ts +3 -1
  63. package/dist/model/WebViewBomFilesReader.d.ts +1 -1
  64. package/dist/model/expression/ArithExpression.d.ts +2 -1
  65. package/dist/model/expression/BatchExpression.d.ts +2 -1
  66. package/dist/model/expression/Expression.d.ts +2 -1
  67. package/dist/model/expression/MethodExpression.d.ts +5 -3
  68. package/dist/model/expression/PredefineExpression.d.ts +2 -1
  69. package/dist/model/expression/RuleExpression.d.ts +3 -2
  70. package/dist/model/expression/compile/commonMethodScriptCompile.d.ts +2 -1
  71. package/dist/model/expression/compile/compareMethodScriptCompile.d.ts +2 -1
  72. package/dist/monaco/ExpressionFinder.d.ts +4 -3
  73. package/dist/monaco/MonacoHoverProvider.d.ts +0 -2
  74. package/dist/monaco/parseTargetPartRuleScript.d.ts +1 -1
  75. package/dist/projectprops/ProjectProperties.d.ts +2 -0
  76. package/dist/projectprops/ProjectPropertiesEditor.vue.d.ts +20 -0
  77. package/dist/projectprops/PureWebProjectPropertiesEditor.vue.d.ts +20 -0
  78. package/dist/projectprops/Ruleset.vue.d.ts +10 -0
  79. package/dist/quicktest/TestUtils.d.ts +12 -4
  80. package/dist/rfl/MenuFactory.d.ts +3 -3
  81. package/dist/rfl/config/Enums.d.ts +2 -1
  82. package/dist/rfl/data/ActionNodeData.d.ts +1 -0
  83. package/dist/rfl/data/ConnectionData.d.ts +7 -4
  84. package/dist/rfl/data/NodeData.d.ts +7 -0
  85. package/dist/rfl/data/RuleFile.d.ts +4 -1
  86. package/dist/rfl/data/RuleNodeData.d.ts +1 -0
  87. package/dist/rfl/data/SubflowNodeData.d.ts +1 -0
  88. package/dist/rfl/data/TaskNodeData.d.ts +5 -0
  89. package/dist/rfl/definition/ProcessDef.d.ts +53 -7
  90. package/dist/rfl/definition/ProcessNodeDef.d.ts +11 -0
  91. package/dist/rfl/definition/node/ActionTaskNodeDef.d.ts +1 -6
  92. package/dist/rfl/definition/node/ConnectionFactoryDef.d.ts +2 -1
  93. package/dist/rfl/definition/node/CustomTaskNodeDef.d.ts +32 -0
  94. package/dist/rfl/definition/node/FlowConnectionDef.d.ts +12 -0
  95. package/dist/rfl/definition/node/FlowProcessNodeDef.d.ts +1 -0
  96. package/dist/rfl/definition/node/ForkNodeDef.d.ts +7 -0
  97. package/dist/rfl/definition/node/JoinNodeDef.d.ts +11 -0
  98. package/dist/rfl/definition/node/NodeType.d.ts +16 -3
  99. package/dist/rfl/definition/node/RuleTaskNodeDef.d.ts +5 -0
  100. package/dist/rfl/definition/node/StartTaskNodeDef.d.ts +1 -5
  101. package/dist/rfl/definition/node/StopTaskNodeDef.d.ts +1 -0
  102. package/dist/rfl/definition/node/SubflowTaskNodeDef.d.ts +5 -0
  103. package/dist/rfl/designer/Designer.vue.d.ts +2 -2
  104. package/dist/rfl/designer/DesignerComponent.vue.d.ts +2 -2
  105. package/dist/rfl/designer/ProcessUtils.d.ts +2 -2
  106. package/dist/rfl/designer/PureWebFlowEditor.vue.d.ts +4 -2
  107. package/dist/rfl/designer/editor/BezierEdge.vue.d.ts +5 -0
  108. package/dist/rfl/designer/editor/HelperLines.vue.d.ts +9 -0
  109. package/dist/rfl/designer/editor/HelperLinseUtils.d.ts +8 -0
  110. package/dist/rfl/designer/editor/ProcessEditor.vue.d.ts +1 -1
  111. package/dist/rfl/designer/editor/SmoothStepEdge.vue.d.ts +5 -0
  112. package/dist/rfl/events.d.ts +7 -1
  113. package/dist/rfl/node/NodeUtils.d.ts +10 -4
  114. package/dist/rfl/props/ConnectionProperty.vue.d.ts +2 -1
  115. package/dist/rfl/props/ForkNodeProperty.vue.d.ts +1 -1
  116. package/dist/rfl/props/JoinNodeProperty.vue.d.ts +1 -1
  117. package/dist/rfl/props/SchemaFormProperty.vue.d.ts +13 -0
  118. package/dist/rfl/registry/TaskNodeTypeRegistry.d.ts +195 -0
  119. package/dist/rfl/webview/RuleFlowDocument.d.ts +1 -1
  120. package/dist/rfl/webview/RuleFlowEditorProvider.d.ts +5 -0
  121. package/dist/sca/AvaliablePredefineBuilder.d.ts +4 -0
  122. package/dist/sca/ContentEditableController.d.ts +50 -0
  123. package/dist/sca/PureWebScoreCardEditor.vue.d.ts +71 -0
  124. package/dist/sca/ScoreCardComponent.vue.d.ts +45 -0
  125. package/dist/sca/ScoreCardDeserialize.d.ts +5 -0
  126. package/dist/sca/ScoreCardEditor.vue.d.ts +24 -0
  127. package/dist/sca/ScoreCardModelInitializer.d.ts +8 -0
  128. package/dist/sca/ScoreCardSettingDialog.vue.d.ts +15 -0
  129. package/dist/sca/ScoreCardWebEditor.d.ts +1 -0
  130. package/dist/sca/component/ScoreCardTable.d.ts +81 -0
  131. package/dist/sca/component/ScoreCardTableCrossHeader.d.ts +11 -0
  132. package/dist/sca/component/ScoreCardTableHeader.d.ts +27 -0
  133. package/dist/sca/component/ScoreCardTableRowIndicate.d.ts +26 -0
  134. package/dist/sca/component/contextMenuBuilder.d.ts +3 -0
  135. package/dist/sca/component/edit/ScoreCardChangeEdit.d.ts +4 -0
  136. package/dist/sca/model/ScoreCardAttribute.d.ts +86 -0
  137. package/dist/sca/model/ScoreCardTableModel.d.ts +67 -0
  138. package/dist/sca/webview/ScoreCardDocument.d.ts +1 -1
  139. package/dist/sca/webview/ScoreCardEditorProvider.d.ts +1 -1
  140. package/dist/sync/SyncFileUitls.d.ts +1 -0
  141. package/dist/tst/PredictFormDialog.vue.d.ts +1 -1
  142. package/dist/utils.d.ts +28 -1
  143. package/dist/webviewFiles.d.ts +4 -0
  144. package/dist/webviewFilesOperator.d.ts +3 -2
  145. package/package.json +10 -3
  146. package/dist/FileSystemEventBus.d.ts +0 -6
  147. package/dist/components/process/Connection.d.ts +0 -122
  148. package/dist/components/process/Menu.d.ts +0 -12
  149. package/dist/components/process/MenuItemFactory.d.ts +0 -5
  150. package/dist/components/process/MergeGroup.d.ts +0 -12
  151. package/dist/components/process/OrthogonalPath.d.ts +0 -225
  152. package/dist/components/process/Process.d.ts +0 -111
  153. package/dist/components/process/ProcessNode.d.ts +0 -340
  154. package/dist/components/process/Tooltip.d.ts +0 -20
  155. package/dist/components/process/colors.d.ts +0 -2
  156. package/dist/dta/DecisionTableSerialize.d.ts +0 -2
  157. package/dist/rfl/FlowProcess.d.ts +0 -85
  158. package/dist/rfl/node/ActionTaskNode.d.ts +0 -22
  159. package/dist/rfl/node/BasicNode.d.ts +0 -8
  160. package/dist/rfl/node/BranchNode.d.ts +0 -48
  161. package/dist/rfl/node/ConnectionFactory.d.ts +0 -10
  162. package/dist/rfl/node/FlowConnection.d.ts +0 -52
  163. package/dist/rfl/node/FlowProcessNode.d.ts +0 -128
  164. package/dist/rfl/node/ForkNode.d.ts +0 -54
  165. package/dist/rfl/node/JoinNode.d.ts +0 -54
  166. package/dist/rfl/node/ProcessNodeFactory.d.ts +0 -41
  167. package/dist/rfl/node/RuleTaskNode.d.ts +0 -76
  168. package/dist/rfl/node/StartTaskNode.d.ts +0 -74
  169. package/dist/rfl/node/StopTaskNode.d.ts +0 -84
  170. package/dist/rfl/node/SubflowTaskNode.d.ts +0 -70
  171. package/dist/rfl/node/TaskNode.d.ts +0 -42
@@ -1,3 +1,4 @@
1
+ import { ActionLanguage } from '../config/Enums';
1
2
  import { default as ConnectionDef } from './ConnectionDef';
2
3
  import { default as ProcessDef } from './ProcessDef';
3
4
  /**
@@ -72,6 +73,10 @@ export default abstract class ProcessNodeDef {
72
73
  * @param processNode 流程节点
73
74
  */
74
75
  protected abstract addOutConnection(processNode: ProcessNodeDef): void;
76
+ /**
77
+ * 验证节点数据抽象方法
78
+ */
79
+ abstract validate(): void;
75
80
  /**
76
81
  * 是否显示加号图标
77
82
  * @returns 布尔值,true表示显示加号图标
@@ -142,4 +147,10 @@ export default abstract class ProcessNodeDef {
142
147
  x: number;
143
148
  y: number;
144
149
  };
150
+ /**
151
+ * 验证并转换语言类型
152
+ * @param language 语言字符串
153
+ * @returns 有效的 ActionLanguage 枚举值,如果无效则返回 null
154
+ */
155
+ validateLanguage(language: string): ActionLanguage | null;
145
156
  }
@@ -48,12 +48,6 @@ export default class ActionTaskNodeDef extends TaskNodeDef {
48
48
  * @param importType 导入类型
49
49
  */
50
50
  initFromJson(taskNode: any, taskDataNode: any, positionInfo: any, importType: string): void;
51
- /**
52
- * 验证并转换语言类型
53
- * @param language 语言字符串
54
- * @returns 有效的 ActionLanguage 枚举值,如果无效则返回 null
55
- */
56
- private validateLanguage;
57
51
  /**
58
52
  * 解析动作配置
59
53
  * @param actionNodes 动作节点
@@ -71,4 +65,5 @@ export default class ActionTaskNodeDef extends TaskNodeDef {
71
65
  * @returns 是否允许添加连接
72
66
  */
73
67
  canAdd(sourceNode: ProcessNodeDef): boolean;
68
+ validate(): void;
74
69
  }
@@ -1,3 +1,4 @@
1
+ import { ActionLanguage } from '../../config/Enums';
1
2
  import { default as ProcessNodeDef } from '../ProcessNodeDef';
2
3
  import { default as FlowConnectionDef } from './FlowConnectionDef';
3
4
  /**
@@ -7,4 +8,4 @@ import { default as FlowConnectionDef } from './FlowConnectionDef';
7
8
  * @param conditions 连接条件(可选)
8
9
  * @returns 新创建的流程连接定义对象
9
10
  */
10
- export declare function newConnectionDef(startNode: ProcessNodeDef, endNode: ProcessNodeDef, conditions?: string): FlowConnectionDef;
11
+ export declare function newConnectionDef(startNode: ProcessNodeDef, endNode: ProcessNodeDef, conditionLanguage?: ActionLanguage, conditionScript?: string): FlowConnectionDef;
@@ -0,0 +1,32 @@
1
+ import { default as ProcessDef } from '../ProcessDef';
2
+ import { default as TaskNodeDef } from './TaskNodeDef';
3
+ import { TaskNodeType } from './NodeType';
4
+ import { default as TaskNodeData } from '../../data/TaskNodeData';
5
+ /**
6
+ * 自定义任务节点定义
7
+ * 用于支持通过 NodeTypeRegistry 注册的第三方节点类型
8
+ * 属性编辑由 JSON Schema 驱动的 SchemaFormProperty 处理
9
+ */
10
+ export default class CustomTaskNodeDef extends TaskNodeDef {
11
+ /** 任务节点类型 */
12
+ taskNodeType: string;
13
+ private nodeData;
14
+ private customType;
15
+ /**
16
+ * 构造函数
17
+ * @param id 节点唯一标识符
18
+ * @param name 节点显示名称
19
+ * @param taskId 关联的任务ID
20
+ * @param process 所属流程定义对象
21
+ * @param customType 自定义节点类型标识
22
+ */
23
+ constructor(id: string, name: string, taskId: string, process: ProcessDef, customType: string);
24
+ getTaskNodeType(): TaskNodeType;
25
+ getNodeName(): string;
26
+ getBindingNodeData(): TaskNodeData;
27
+ getIcon(): string;
28
+ toTaskXml(): string;
29
+ initFromJson(taskNode: any, taskDataNode: any, positionInfo: any, importType: string): void;
30
+ validate(): void;
31
+ private escapeXml;
32
+ }
@@ -51,6 +51,18 @@ export default class FlowConnectionDef extends ConnectionDef {
51
51
  * @param resourceSetNode 资源集节点(iLog格式时为null)
52
52
  */
53
53
  initFromJson(node: JsonNode, resourceSetNode: ResourceSetNode | null): void;
54
+ /**
55
+ * 解析动作配置
56
+ * @param actionNodes 动作节点
57
+ * @param setter 配置设置回调函数
58
+ */
59
+ private parseActionConfig;
60
+ /**
61
+ * 验证并转换语言类型
62
+ * @param language 语言字符串
63
+ * @returns 有效的 ActionLanguage 枚举值,如果无效则返回 null
64
+ */
65
+ private validateLanguage;
54
66
  /**
55
67
  * 在资源集中查找指定名称的数据节点
56
68
  * @param resourceSetNode 资源集节点
@@ -95,4 +95,5 @@ export default abstract class FlowProcessNodeDef extends ProcessNodeDef {
95
95
  * @returns 连接定义对象或null
96
96
  */
97
97
  protected addInConnection(processNode: ProcessNodeDef): ConnectionDef | null;
98
+ validate(): void;
98
99
  }
@@ -37,4 +37,11 @@ export default class ForkNodeDef extends BasicNodeDef {
37
37
  * @returns 是否允许添加连接
38
38
  */
39
39
  canAdd(sourceNode: ProcessNodeDef): boolean;
40
+ validate(): void;
41
+ /**
42
+ * 查找关联的合并节点
43
+ * @param node 流程节点
44
+ * @returns 找到的合并节点,未找到则返回null
45
+ */
46
+ private findJoinNode;
40
47
  }
@@ -37,4 +37,15 @@ export default class JoinNodeDef extends BasicNodeDef {
37
37
  * @returns 是否允许添加连接
38
38
  */
39
39
  canAdd(sourceNode: ProcessNodeDef): boolean;
40
+ /**
41
+ * 查找关联的分支节点
42
+ * @param node 流程节点
43
+ * @returns 找到的分支节点,未找到则返回null
44
+ */
45
+ private findForkNode;
46
+ /**
47
+ * 检查连接状态
48
+ * 验证Join节点与Fork节点的平衡性以及其他连接要求
49
+ */
50
+ validate(): void;
40
51
  }
@@ -50,21 +50,34 @@ export declare enum TaskNodeType {
50
50
  /** 子流程任务 */
51
51
  SubflowTask = "SubflowTask"
52
52
  }
53
+ /**
54
+ * 内置任务节点类型集合
55
+ */
56
+ export declare const BUILTIN_TASK_NODE_TYPES: Set<string>;
57
+ /**
58
+ * 判断是否为内置任务节点类型
59
+ * @param type 节点类型字符串
60
+ * @returns 是否为内置类型
61
+ */
62
+ export declare function isBuiltinTaskNodeType(type: string): boolean;
53
63
  /**
54
64
  * 根据节点类型获取对应的图标类名
65
+ * 支持内置类型和自定义注册类型
55
66
  * @param nodeType 节点类型
56
67
  * @returns 对应的图标类名
57
68
  */
58
- export declare function getNodeTypeIcon(nodeType: NodeType): string;
69
+ export declare function getNodeTypeIcon(nodeType: NodeType | string): string;
59
70
  /**
60
71
  * 根据节点类型获取对应的图标文本
72
+ * 支持内置类型和自定义注册类型
61
73
  * @param nodeType 节点类型
62
74
  * @returns 对应的图标文本
63
75
  */
64
- export declare function getNodeTypeIconText(nodeType: NodeType): string;
76
+ export declare function getNodeTypeIconText(nodeType: NodeType | string): string;
65
77
  /**
66
78
  * 根据节点类型获取对应的中文标签
79
+ * 支持内置类型和自定义注册类型
67
80
  * @param nodeType 节点类型
68
81
  * @returns 对应的中文标签
69
82
  */
70
- export declare function getNodeTypeLabel(nodeType: NodeType): string;
83
+ export declare function getNodeTypeLabel(nodeType: NodeType | string): string;
@@ -59,4 +59,9 @@ export default class RuleTaskNodeDef extends TaskNodeDef {
59
59
  * @returns 是否允许添加连接
60
60
  */
61
61
  canAdd(sourceNode: ProcessNodeDef): boolean;
62
+ /**
63
+ * 检查警告状态
64
+ * 验证节点配置是否完整
65
+ */
66
+ validate(): void;
62
67
  }
@@ -24,11 +24,6 @@ export default class StartTaskNodeDef extends TaskNodeDef {
24
24
  * @returns 开始任务节点类型
25
25
  */
26
26
  getTaskNodeType(): TaskNodeType;
27
- /**
28
- * 检查连接状态
29
- * 开始节点不需要检查连接
30
- */
31
- protected checkConnection(): void;
32
27
  /**
33
28
  * 获取节点图标
34
29
  * @returns 开始节点图标字符
@@ -68,4 +63,5 @@ export default class StartTaskNodeDef extends TaskNodeDef {
68
63
  * @returns 总是返回false,开始节点不允许被其他节点连接
69
64
  */
70
65
  canAdd(sourceNode: ProcessNodeDef): boolean;
66
+ validate(): void;
71
67
  }
@@ -68,4 +68,5 @@ export default class StopTaskNodeDef extends TaskNodeDef {
68
68
  * @returns 是否允许添加连接
69
69
  */
70
70
  canAdd(sourceNode: ProcessNodeDef): boolean;
71
+ validate(): void;
71
72
  }
@@ -52,4 +52,9 @@ export default class SubflowTaskNodeDef extends TaskNodeDef {
52
52
  * @returns 节点名称常量
53
53
  */
54
54
  getNodeName(): string;
55
+ /**
56
+ * 检查警告状态
57
+ * 验证子流程节点是否已配置子流程路径
58
+ */
59
+ validate(): void;
55
60
  }
@@ -22,7 +22,7 @@ declare const _default: DefineComponent<__VLS_Props, {
22
22
  processEditorRef: CreateComponentPublicInstanceWithMixins<Readonly<{
23
23
  readonly?: boolean;
24
24
  }> & Readonly<{}>, {
25
- serializeToXml: () => string | undefined;
25
+ serializeToXml: () => string;
26
26
  setShowFloatingActions: (value: boolean) => void;
27
27
  setReadonlyMode: (value: boolean) => void;
28
28
  getReadonlyMode: () => boolean;
@@ -38,7 +38,7 @@ declare const _default: DefineComponent<__VLS_Props, {
38
38
  }, Readonly<{
39
39
  readonly?: boolean;
40
40
  }> & Readonly<{}>, {
41
- serializeToXml: () => string | undefined;
41
+ serializeToXml: () => string;
42
42
  setShowFloatingActions: (value: boolean) => void;
43
43
  setReadonlyMode: (value: boolean) => void;
44
44
  getReadonlyMode: () => boolean;
@@ -22,7 +22,7 @@ declare const _default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixi
22
22
  processEditorRef: CreateComponentPublicInstanceWithMixins<Readonly<{
23
23
  readonly?: boolean;
24
24
  }> & Readonly<{}>, {
25
- serializeToXml: () => string | undefined;
25
+ serializeToXml: () => string;
26
26
  setShowFloatingActions: (value: boolean) => void;
27
27
  setReadonlyMode: (value: boolean) => void;
28
28
  getReadonlyMode: () => boolean;
@@ -38,7 +38,7 @@ declare const _default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixi
38
38
  }, Readonly<{
39
39
  readonly?: boolean;
40
40
  }> & Readonly<{}>, {
41
- serializeToXml: () => string | undefined;
41
+ serializeToXml: () => string;
42
42
  setShowFloatingActions: (value: boolean) => void;
43
43
  setReadonlyMode: (value: boolean) => void;
44
44
  getReadonlyMode: () => boolean;
@@ -1,6 +1,6 @@
1
- import { default as FlowProcess } from '../FlowProcess';
1
+ import { default as ProcessDef } from '../definition/ProcessDef';
2
2
  export declare class ProcessUtils {
3
3
  private static process;
4
4
  static setProcess(process: any): void;
5
- static getProcess(): FlowProcess;
5
+ static getProcess(): ProcessDef;
6
6
  }
@@ -1,3 +1,4 @@
1
+ import { CustomNodeTypeConfig } from '../registry/TaskNodeTypeRegistry';
1
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions, CreateComponentPublicInstanceWithMixins, Ref, GlobalComponents, GlobalDirectives } from '../../../npmconfig/vue/dist/vue.esm-bundler.js';
2
3
  type __VLS_Props = {
3
4
  loadFileCallback: () => Promise<any>;
@@ -24,6 +25,7 @@ declare const _default: DefineComponent<__VLS_Props, {
24
25
  showQuickTestDialog: () => any;
25
26
  setReadonlyMode: (value: boolean) => void;
26
27
  getReadonlyMode: () => any;
28
+ registerNodeType: (config: CustomNodeTypeConfig) => void;
27
29
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
28
30
  designerRef: CreateComponentPublicInstanceWithMixins<Readonly<{
29
31
  loadFileCallback: () => Promise<any>;
@@ -47,7 +49,7 @@ declare const _default: DefineComponent<__VLS_Props, {
47
49
  processEditorRef: CreateComponentPublicInstanceWithMixins<Readonly<{
48
50
  readonly?: boolean;
49
51
  }> & Readonly<{}>, {
50
- serializeToXml: () => string | undefined;
52
+ serializeToXml: () => string;
51
53
  setShowFloatingActions: (value: boolean) => void;
52
54
  setReadonlyMode: (value: boolean) => void;
53
55
  getReadonlyMode: () => boolean;
@@ -63,7 +65,7 @@ declare const _default: DefineComponent<__VLS_Props, {
63
65
  }, Readonly<{
64
66
  readonly?: boolean;
65
67
  }> & Readonly<{}>, {
66
- serializeToXml: () => string | undefined;
68
+ serializeToXml: () => string;
67
69
  setShowFloatingActions: (value: boolean) => void;
68
70
  setReadonlyMode: (value: boolean) => void;
69
71
  getReadonlyMode: () => boolean;
@@ -0,0 +1,5 @@
1
+ import { EdgeProps } from '@vue-flow/core';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from '../../../../npmconfig/vue/dist/vue.esm-bundler.js';
3
+ type __VLS_Props = EdgeProps;
4
+ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
5
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from '../../../../npmconfig/vue/dist/vue.esm-bundler.js';
2
+ interface HelperLinesProps {
3
+ horizontal?: number;
4
+ vertical?: number;
5
+ }
6
+ declare const _default: DefineComponent<HelperLinesProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<HelperLinesProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
7
+ canvasRef: HTMLCanvasElement;
8
+ }, HTMLCanvasElement>;
9
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { GraphNode, NodePositionChange, XYPosition } from '@vue-flow/core';
2
+ interface GetHelperLinesResult {
3
+ horizontal?: number;
4
+ vertical?: number;
5
+ snapPosition: Partial<XYPosition>;
6
+ }
7
+ export declare function getHelperLines(change: NodePositionChange, nodes: GraphNode[], distance?: number): GetHelperLinesResult;
8
+ export {};
@@ -3,7 +3,7 @@ type __VLS_Props = {
3
3
  readonly?: boolean;
4
4
  };
5
5
  declare const _default: DefineComponent<__VLS_Props, {
6
- serializeToXml: () => string | undefined;
6
+ serializeToXml: () => string;
7
7
  setShowFloatingActions: (value: boolean) => void;
8
8
  setReadonlyMode: (value: boolean) => void;
9
9
  getReadonlyMode: () => boolean;
@@ -0,0 +1,5 @@
1
+ import { EdgeProps } from '@vue-flow/core';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from '../../../../npmconfig/vue/dist/vue.esm-bundler.js';
3
+ type __VLS_Props = EdgeProps;
4
+ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
5
+ export default _default;
@@ -1,12 +1,19 @@
1
1
  export declare const SELECT_NODE = "select_node";
2
+ export declare const SELECT_CUSTOM_NODE = "select_custom_node";
2
3
  export declare const FOCUS_PROCESS_NODE = "focus_process_node";
3
4
  export declare const SELECT_STAGE = "select_stage";
4
5
  export declare const NODE_ID_CHANGE = "node_id_change";
5
6
  export declare const NODE_NAME_CHANGE = "node_name_change";
6
7
  export declare const NODE_NAME_CHANGED = "node_name_changed";
8
+ export declare const CONNECTION_NAME_CHANGE = "connection_name_change";
7
9
  export declare const AFTER_INSERT_NODE = "after_insert_node";
8
10
  export declare const AFTER_DELETE_NODE = "after_delete_node";
11
+ export declare const SELECT_CONNECTION = "select_connection";
12
+ export declare const DELETE_CONNECTION = "delete_connection";
13
+ export declare const CHANGE_CONNECTION_NODE = "change_connection_node";
9
14
  export declare const SHOW_NODE_COLOR_DIALOG = "show_node_color_dialog";
15
+ export declare const SHOW_PLUS_MENU = "show_plus_menu";
16
+ export declare const SELECT_PROCESS = "select_process";
10
17
  export declare const SHOW_NODE_LABEL_DIALOG = "show_node_label_dialog";
11
18
  export declare const SHOW_NIAOKAN_VIEW = "show_niaokan_view";
12
19
  export declare const FILE_LOADED = "file_loaded";
@@ -17,5 +24,4 @@ export declare const FLOW_NODE_SELECTED = "flow_node_selected";
17
24
  export declare const SHOW_FILE_SELECTED = "show_file_select";
18
25
  export declare const SHOW_FLOW_FILE_SELECT_DIALOG = "show_flow_file_select_dialog";
19
26
  export declare const SHOW_RULE_FILE_SELECT_DIALOG = "show_rule_file_select_dialog";
20
- export declare const PROCESS_SCROLL_TO_POSITION = "process_scroll_to_position";
21
27
  export declare const CREATE_LINE_CONNECTION = "create_line_connection";
@@ -1,15 +1,21 @@
1
- import { Process } from '../../components/process/Process';
2
- import { default as FlowConnection } from './FlowConnection';
1
+ import { default as FlowConnectionDef } from '../definition/node/FlowConnectionDef';
2
+ import { default as ProcessDef } from '../definition/ProcessDef';
3
3
  /**
4
4
  * 生成新的节点ID
5
5
  * @param process 流程对象
6
6
  * @returns 新的节点ID字符串
7
7
  */
8
- export declare const genNewNodeId: (process: Process) => string;
8
+ export declare const genNewNodeId: (process: ProcessDef) => string;
9
+ /**
10
+ * 构建唯一的任务ID
11
+ * @param process 流程对象
12
+ * @returns 唯一的任务ID
13
+ */
14
+ export declare const genNewTaskId: (process: ProcessDef) => string;
9
15
  /**
10
16
  * 根据ID获取连接对象
11
17
  * @param process 流程对象
12
18
  * @param id 连接ID
13
19
  * @returns 找到的连接对象,未找到则返回null
14
20
  */
15
- export declare const getConnectionById: (process: Process, id: string) => FlowConnection | null;
21
+ export declare const getConnectionById: (process: ProcessDef, id: string) => FlowConnectionDef | null;
@@ -7,6 +7,7 @@ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOp
7
7
  darkMode: boolean;
8
8
  readonly: boolean;
9
9
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
10
- conditionsEditorContainer: HTMLDivElement;
10
+ balEditorContainer: HTMLDivElement;
11
+ jrlEditorContainer: HTMLDivElement;
11
12
  }, any>;
12
13
  export default _default;
@@ -8,5 +8,5 @@ type __VLS_Props = {
8
8
  declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
9
  darkMode: boolean;
10
10
  readonly: boolean;
11
- }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
12
12
  export default _default;
@@ -8,5 +8,5 @@ type __VLS_Props = {
8
8
  declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
9
  darkMode: boolean;
10
10
  readonly: boolean;
11
- }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
12
12
  export default _default;
@@ -0,0 +1,13 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from '../../../npmconfig/vue/dist/vue.esm-bundler.js';
2
+ type __VLS_Props = {
3
+ darkMode: boolean;
4
+ readonly?: boolean;
5
+ /** 节点类型标识,用于从注册表获取 Schema */
6
+ nodeType: string;
7
+ };
8
+ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
+ darkMode: boolean;
10
+ readonly: boolean;
11
+ nodeType: string;
12
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
13
+ export default _default;
@@ -0,0 +1,195 @@
1
+ import { Component } from '../../../npmconfig/vue/dist/vue.esm-bundler.js';
2
+ import { NodeName } from '../definition/node/NodeType';
3
+ import { default as ProcessDef } from '../definition/ProcessDef';
4
+ import { default as TaskNodeDef } from '../definition/node/TaskNodeDef';
5
+ import { default as TaskNodeData } from '../data/TaskNodeData';
6
+ /**
7
+ * JSON Schema 字段类型
8
+ */
9
+ export type SchemaFieldType = 'text' | 'number' | 'textarea' | 'select' | 'checkbox' | 'code';
10
+ /**
11
+ * Schema 字段定义中的选项
12
+ */
13
+ export interface SchemaFieldOption {
14
+ label: string;
15
+ value: string;
16
+ }
17
+ /**
18
+ * JSON Schema 字段定义
19
+ */
20
+ export interface SchemaField {
21
+ /** 字段 key,对应 nodeData 上的属性名 */
22
+ key: string;
23
+ /** 显示标签 */
24
+ label: string;
25
+ /** 字段类型 */
26
+ type: SchemaFieldType;
27
+ /** 默认值 */
28
+ defaultValue?: any;
29
+ /** placeholder */
30
+ placeholder?: string;
31
+ /** select 选项 */
32
+ options?: SchemaFieldOption[];
33
+ /** 是否必填 */
34
+ required?: boolean;
35
+ /** 代码编辑器语言 (type=code 时使用) */
36
+ codeLanguage?: string;
37
+ }
38
+ /**
39
+ * Schema Tab 定义
40
+ */
41
+ export interface SchemaTab {
42
+ /** tab 名称标识 */
43
+ name: string;
44
+ /** tab 显示标签 */
45
+ label: string;
46
+ /** tab 下的字段列表 */
47
+ fields: SchemaField[];
48
+ }
49
+ /**
50
+ * 自定义节点类型配置
51
+ */
52
+ export interface CustomNodeTypeConfig {
53
+ /** 唯一类型标识,如 "MyCustomTask" */
54
+ type: string;
55
+ /** 节点分类 */
56
+ nodeName: NodeName;
57
+ /** 中文显示标签 */
58
+ label: string;
59
+ /** 图标 CSS 类名 */
60
+ iconClass: string;
61
+ /** 字体图标 unicode */
62
+ iconText: string;
63
+ /** 菜单分组 (可选) */
64
+ menuGroup?: string;
65
+ /** 菜单排序 (可选) */
66
+ menuOrder?: number;
67
+ /**
68
+ * 属性编辑器 Schema (JSON Schema 驱动)
69
+ * 如果提供,将使用通用 SchemaFormProperty 渲染
70
+ */
71
+ propertySchema?: SchemaTab[];
72
+ /**
73
+ * 自定义属性编辑器 Vue 组件(异步加载)
74
+ * 优先级高于 propertySchema
75
+ */
76
+ propertyComponent?: () => Promise<Component>;
77
+ /**
78
+ * 创建 TaskNodeDef 实例的工厂函数
79
+ */
80
+ createNodeDef: (id: string, name: string, taskId: string, process: ProcessDef) => TaskNodeDef;
81
+ /**
82
+ * 创建 NodeData 实例的工厂函数
83
+ */
84
+ createNodeData: (taskId: string) => TaskNodeData;
85
+ /**
86
+ * 自定义属性编辑器 Vue 组件源码(用于 VS Code 环境注入)
87
+ * 仅在 VS Code 插件环境下使用
88
+ */
89
+ propertyComponentSource?: string;
90
+ /**
91
+ * 自定义脚本 URI(用于 VS Code 环境注入)
92
+ * 仅在 VS Code 插件环境下使用
93
+ */
94
+ scriptUri?: string;
95
+ }
96
+ /**
97
+ * 节点类型注册中心
98
+ * 支持第三方通过注册 API 注入自定义节点类型,无需修改核心代码
99
+ */
100
+ declare class TaskNodeTypeRegistry {
101
+ /** 自定义节点类型配置映射 */
102
+ private static customTypes;
103
+ /** 已加载的属性编辑器组件映射 */
104
+ private static propertyComponents;
105
+ /**
106
+ * 注册自定义节点类型
107
+ * @param config 节点类型配置
108
+ */
109
+ static register(config: CustomNodeTypeConfig): void;
110
+ /**
111
+ * 注销自定义节点类型
112
+ * @param type 节点类型标识
113
+ */
114
+ static unregister(type: string): void;
115
+ /**
116
+ * 批量注册
117
+ * @param configs 配置数组
118
+ */
119
+ static registerAll(configs: CustomNodeTypeConfig[]): void;
120
+ /**
121
+ * 获取所有自定义节点类型配置
122
+ */
123
+ static getAllConfigs(): CustomNodeTypeConfig[];
124
+ /**
125
+ * 根据类型获取配置
126
+ * @param type 节点类型标识
127
+ */
128
+ static getConfig(type: string): CustomNodeTypeConfig | undefined;
129
+ /**
130
+ * 判断是否为已注册的自定义类型
131
+ * @param type 节点类型标识
132
+ */
133
+ static isCustomType(type: string): boolean;
134
+ /**
135
+ * 获取自定义类型的所有 TaskNodeType 标识列表
136
+ */
137
+ static getCustomTypeKeys(): string[];
138
+ /**
139
+ * 获取属性编辑器组件(同步)
140
+ * 需要提前通过 setPropertyComponent 设置
141
+ * @param type 节点类型标识
142
+ */
143
+ static getPropertyComponent(type: string): Component | undefined;
144
+ /**
145
+ * 设置属性编辑器组件
146
+ * @param type 节点类型标识
147
+ * @param component Vue 组件
148
+ */
149
+ static setPropertyComponent(type: string, component: Component): void;
150
+ /**
151
+ * 获取属性 Schema
152
+ * @param type 节点类型标识
153
+ */
154
+ static getPropertySchema(type: string): SchemaTab[] | undefined;
155
+ /**
156
+ * 获取节点类型标签
157
+ * @param type 节点类型标识
158
+ */
159
+ static getLabel(type: string): string;
160
+ /**
161
+ * 获取节点图标 CSS 类名
162
+ * @param type 节点类型标识
163
+ */
164
+ static getIconClass(type: string): string;
165
+ /**
166
+ * 获取节点图标文本
167
+ * @param type 节点类型标识
168
+ */
169
+ static getIconText(type: string): string;
170
+ /**
171
+ * 创建节点定义实例
172
+ * @param type 节点类型标识
173
+ * @param id 节点ID
174
+ * @param name 节点名称
175
+ * @param taskId 任务ID
176
+ * @param process 流程定义
177
+ */
178
+ static createNodeDef(type: string, id: string, name: string, taskId: string, process: ProcessDef): TaskNodeDef | undefined;
179
+ /**
180
+ * 创建节点数据实例
181
+ * @param type 节点类型标识
182
+ * @param taskId 任务ID
183
+ */
184
+ static createNodeData(type: string, taskId: string): TaskNodeData | undefined;
185
+ /**
186
+ * 获取可序列化的配置(用于 postMessage 传输到 webview)
187
+ * 不包含函数和组件引用
188
+ */
189
+ static getSerializableConfigs(): Array<Omit<CustomNodeTypeConfig, 'createNodeDef' | 'createNodeData' | 'propertyComponent'>>;
190
+ /**
191
+ * 清空所有注册
192
+ */
193
+ static clear(): void;
194
+ }
195
+ export default TaskNodeTypeRegistry;
@@ -1,4 +1,4 @@
1
- import { CancellationToken, CustomDocument, CustomDocumentBackup, Uri, ExtensionContext, Event } from 'vscode';
1
+ import { CancellationToken, CustomDocument, CustomDocumentBackup, ExtensionContext, Uri, Event } from 'vscode';
2
2
  import { DocumentDelegate, ViewEdit } from '../../view&document';
3
3
  export declare class RuleFlowDocument implements CustomDocument {
4
4
  private readonly _context;