@fudanda/workflow 0.0.0-stage → 1.20261015.1-beta.1

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 (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +113 -2
  3. package/THIRD-PARTY-NOTICES.md +57 -0
  4. package/dist/ai-markdown-esl-I5ck.js +7 -0
  5. package/dist/chrome.d.ts +11 -0
  6. package/dist/chrome.js +358 -0
  7. package/dist/core.d.ts +11 -0
  8. package/dist/core.js +3 -0
  9. package/dist/coze/compat/base.d.ts +116 -0
  10. package/dist/coze/control-icon.d.ts +15 -0
  11. package/dist/coze/execution-panel.d.ts +8 -0
  12. package/dist/coze/schema-tree.d.ts +9 -0
  13. package/dist/coze/side-panel.d.ts +12 -0
  14. package/dist/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.d.ts +13 -0
  15. package/dist/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.d.ts +34 -0
  16. package/dist/coze/start-form.d.ts +9 -0
  17. package/dist/coze/test-input.d.ts +9 -0
  18. package/dist/coze/test-run-button.d.ts +4 -0
  19. package/dist/coze/workflow-header.d.ts +5 -0
  20. package/dist/designer.d.ts +2 -0
  21. package/dist/flowgram-designer.d.ts +62 -0
  22. package/dist/graph-scope.d.ts +147 -0
  23. package/dist/header-shortcuts-BQZuNfpA.js +6 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.js +8694 -0
  26. package/dist/input-fields.d.ts +4 -0
  27. package/dist/panel-focus.d.ts +3 -0
  28. package/dist/prompt-kit.d.ts +47 -0
  29. package/dist/result-preview.d.ts +5 -0
  30. package/dist/schema-tree-CTM6hEdm.js +309 -0
  31. package/dist/start-form-D_J3UIoE.js +9330 -0
  32. package/dist/styles.css +2 -0
  33. package/dist/templates.d.ts +1 -0
  34. package/dist/test-input-validation-CkORPCfm.js +55 -0
  35. package/dist/test-input-validation.d.ts +11 -0
  36. package/dist/theme.d.ts +17 -0
  37. package/package.json +103 -4
  38. package/vendor/coze/LICENSE-APACHE +177 -0
  39. package/vendor/coze/UPSTREAM.json +2247 -0
  40. package/vendor/coze/original/base-test-button.tsx +22 -0
  41. package/vendor/coze/original/comment-container.tsx +68 -0
  42. package/vendor/coze/original/condition-container.tsx +60 -0
  43. package/vendor/coze/original/condition-tag.tsx +58 -0
  44. package/vendor/coze/original/coze-global.less +234 -0
  45. package/vendor/coze/original/create-loop-function-json.ts +134 -0
  46. package/vendor/coze/original/create-loop-function.ts +56 -0
  47. package/vendor/coze/original/end-registry.ts +41 -0
  48. package/vendor/coze/original/execute-result-panel.less +97 -0
  49. package/vendor/coze/original/execute-result-panel.tsx +171 -0
  50. package/vendor/coze/original/form-item.less +39 -0
  51. package/vendor/coze/original/form-item.tsx +200 -0
  52. package/vendor/coze/original/http-api-field.tsx +42 -0
  53. package/vendor/coze/original/http-form-render.tsx +102 -0
  54. package/vendor/coze/original/icon-add.svg +3 -0
  55. package/vendor/coze/original/icon-arrow-left.svg +3 -0
  56. package/vendor/coze/original/icon-auto-layout.svg +18 -0
  57. package/vendor/coze/original/icon-batch.jpg +0 -0
  58. package/vendor/coze/original/icon-break.jpg +0 -0
  59. package/vendor/coze/original/icon-code.svg +13 -0
  60. package/vendor/coze/original/icon-condition.jpg +0 -0
  61. package/vendor/coze/original/icon-condition.svg +12 -0
  62. package/vendor/coze/original/icon-continue.jpg +0 -0
  63. package/vendor/coze/original/icon-database-query.jpg +0 -0
  64. package/vendor/coze/original/icon-database-update.jpg +0 -0
  65. package/vendor/coze/original/icon-database.svg +18 -0
  66. package/vendor/coze/original/icon-delete.svg +5 -0
  67. package/vendor/coze/original/icon-end.jpg +0 -0
  68. package/vendor/coze/original/icon-fullscreen.svg +9 -0
  69. package/vendor/coze/original/icon-http.jpg +0 -0
  70. package/vendor/coze/original/icon-intent.jpg +0 -0
  71. package/vendor/coze/original/icon-json-parser.jpg +0 -0
  72. package/vendor/coze/original/icon-json-stringify.jpg +0 -0
  73. package/vendor/coze/original/icon-llm.jpg +0 -0
  74. package/vendor/coze/original/icon-loop.jpg +0 -0
  75. package/vendor/coze/original/icon-more.svg +11 -0
  76. package/vendor/coze/original/icon-play-round-outlined.svg +8 -0
  77. package/vendor/coze/original/icon-plugin-tool.svg +6 -0
  78. package/vendor/coze/original/icon-standard-copy.svg +8 -0
  79. package/vendor/coze/original/icon-start.jpg +0 -0
  80. package/vendor/coze/original/icon-text.jpg +0 -0
  81. package/vendor/coze/original/icon-unknown.svg +7 -0
  82. package/vendor/coze/original/icon-var.svg +6 -0
  83. package/vendor/coze/original/icon-variable-assign.jpg +0 -0
  84. package/vendor/coze/original/icon-variable-merge.jpg +0 -0
  85. package/vendor/coze/original/icon-workflow-end.svg +5 -0
  86. package/vendor/coze/original/icon-workflow-start.svg +5 -0
  87. package/vendor/coze/original/icon-workflow.jpg +0 -0
  88. package/vendor/coze/original/icon-workflow.svg +21 -0
  89. package/vendor/coze/original/icon-workflows.svg +5 -0
  90. package/vendor/coze/original/if-form-meta.tsx +88 -0
  91. package/vendor/coze/original/logic-display.tsx +33 -0
  92. package/vendor/coze/original/mouse-icon.tsx +35 -0
  93. package/vendor/coze/original/mouse-pad-selector.tsx +180 -0
  94. package/vendor/coze/original/node-card.tsx +77 -0
  95. package/vendor/coze/original/node-category-panel.less +4 -0
  96. package/vendor/coze/original/node-category-panel.tsx +53 -0
  97. package/vendor/coze/original/node-config-form.tsx +67 -0
  98. package/vendor/coze/original/node-header.less +165 -0
  99. package/vendor/coze/original/node-header.tsx +552 -0
  100. package/vendor/coze/original/node-panel.less +183 -0
  101. package/vendor/coze/original/node-render.less +20 -0
  102. package/vendor/coze/original/node-side-sheet.less +57 -0
  103. package/vendor/coze/original/node-side-sheet.tsx +214 -0
  104. package/vendor/coze/original/node-wrapper.tsx +71 -0
  105. package/vendor/coze/original/pad-icon.tsx +45 -0
  106. package/vendor/coze/original/resizable-side-panel-constants.ts +18 -0
  107. package/vendor/coze/original/resizable-side-panel.tsx +42 -0
  108. package/vendor/coze/original/start-registry.ts +53 -0
  109. package/vendor/coze/original/sub-canvas-background.less +4 -0
  110. package/vendor/coze/original/sub-canvas-background.tsx +48 -0
  111. package/vendor/coze/original/sub-canvas-container.less +16 -0
  112. package/vendor/coze/original/sub-canvas-container.tsx +97 -0
  113. package/vendor/coze/original/sub-canvas-header.less +75 -0
  114. package/vendor/coze/original/sub-canvas-header.tsx +95 -0
  115. package/vendor/coze/original/test-form-sheet-header.tsx +82 -0
  116. package/vendor/coze/original/test-form-sheet.less +178 -0
  117. package/vendor/coze/original/toolbar-add-node.tsx +68 -0
  118. package/vendor/coze/original/toolbar-auto-layout.tsx +61 -0
  119. package/vendor/coze/original/toolbar-comment.tsx +121 -0
  120. package/vendor/coze/original/toolbar-container.tsx +42 -0
  121. package/vendor/coze/original/toolbar-interactive.tsx +98 -0
  122. package/vendor/coze/original/toolbar-minimap-switch.tsx +41 -0
  123. package/vendor/coze/original/toolbar-tools.less +46 -0
  124. package/vendor/coze/original/toolbar-tools.tsx +89 -0
  125. package/vendor/coze/original/toolbar-zoom.tsx +134 -0
  126. package/vendor/coze/original/tree-variable-selector.less +292 -0
  127. package/vendor/coze/original/tree-variable-selector.tsx +298 -0
  128. package/vendor/coze/original/workflow-document-custom-options.ts +151 -0
  129. package/vendor/coze/original/workflow-header.less +65 -0
  130. package/vendor/coze/original/workflow-header.tsx +85 -0
  131. package/vendor/coze/source/agent-models/model-option/index.module.less +19 -0
  132. package/vendor/coze/source/agent-models/model-option/index.tsx +321 -0
  133. package/vendor/coze/source/agent-models/model-option-avatar/index.tsx +175 -0
  134. package/vendor/coze/source/agent-models/model-option-group/index.tsx +87 -0
  135. package/vendor/coze/source/agent-models/model-option-thumb/index.tsx +41 -0
  136. package/vendor/coze/source/agent-models/model-select-ui/index.tsx +238 -0
  137. package/vendor/coze/source/agent-models/popover-model-list-view/index.tsx +146 -0
  138. package/vendor/coze/source/components/code-editor/text-editor.tsx +71 -0
  139. package/vendor/coze/source/components/comment/components/editor/block.tsx +117 -0
  140. package/vendor/coze/source/components/comment/components/editor/leaf.tsx +64 -0
  141. package/vendor/coze/source/components/comment/components/toolbar.tsx +366 -0
  142. package/vendor/coze/source/components/comment/constant.ts +94 -0
  143. package/vendor/coze/source/components/editor-container/expand-editor/index.module.less +107 -0
  144. package/vendor/coze/source/components/editor-container/expand-editor/index.tsx +117 -0
  145. package/vendor/coze/source/components/model-select/components/model-setting.tsx +300 -0
  146. package/vendor/coze/source/components/model-select/components/settings.tsx +144 -0
  147. package/vendor/coze/source/components/model-select/index.module.less +34 -0
  148. package/vendor/coze/source/components/model-select/utils/index.tsx +100 -0
  149. package/vendor/coze/source/components/node-render/node-render-new/fields/constants.tsx +79 -0
  150. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.module.less +12 -0
  151. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.tsx +37 -0
  152. package/vendor/coze/source/components/node-render/node-render-new/fields/field.module.less +19 -0
  153. package/vendor/coze/source/components/node-render/node-render-new/fields/field.tsx +52 -0
  154. package/vendor/coze/source/components/node-render/node-render-new/fields/http-api-field/index.tsx +42 -0
  155. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.module.less +47 -0
  156. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.tsx +162 -0
  157. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.module.less +48 -0
  158. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.tsx +126 -0
  159. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.module.less +97 -0
  160. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.tsx +171 -0
  161. package/vendor/coze/source/components/sub-canvas/components/background/index.module.less +4 -0
  162. package/vendor/coze/source/components/sub-canvas/components/header/index.module.less +75 -0
  163. package/vendor/coze/source/components/test-run/test-run-button/single-node.tsx +158 -0
  164. package/vendor/coze/source/execution-panel/panel.module.less +48 -0
  165. package/vendor/coze/source/execution-panel/panel.tsx +99 -0
  166. package/vendor/coze/source/execution-panel/use-resize.ts +79 -0
  167. package/vendor/coze/source/external/features/log/components/data-viewer/constants.ts +28 -0
  168. package/vendor/coze/source/external/features/log/components/data-viewer/context/context.ts +21 -0
  169. package/vendor/coze/source/external/features/log/components/data-viewer/context/create-store.ts +48 -0
  170. package/vendor/coze/source/external/features/log/components/data-viewer/context/index.ts +19 -0
  171. package/vendor/coze/source/external/features/log/components/data-viewer/context/provider.tsx +50 -0
  172. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.module.less +26 -0
  173. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.tsx +79 -0
  174. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/index.ts +18 -0
  175. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-data-viewer-store.ts +29 -0
  176. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-expand.ts +35 -0
  177. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-value.tsx +66 -0
  178. package/vendor/coze/source/external/features/log/components/data-viewer/index.tsx +21 -0
  179. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/index.tsx +186 -0
  180. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/json-field.module.less +79 -0
  181. package/vendor/coze/source/external/features/log/components/data-viewer/types.ts +50 -0
  182. package/vendor/coze/source/external/features/log/components/data-viewer/utils/big-number.ts +35 -0
  183. package/vendor/coze/source/external/features/log/components/data-viewer/utils/generate-field.ts +104 -0
  184. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.module.less +27 -0
  185. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.tsx +109 -0
  186. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.module.less +52 -0
  187. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.tsx +113 -0
  188. package/vendor/coze/source/form/components/field-empty.tsx +45 -0
  189. package/vendor/coze/source/form/components/section.tsx +91 -0
  190. package/vendor/coze/source/form-extensions/components/add-item-button/index.tsx +64 -0
  191. package/vendor/coze/source/form-extensions/components/form-card/index.module.less +131 -0
  192. package/vendor/coze/source/form-extensions/components/form-card/index.tsx +309 -0
  193. package/vendor/coze/source/form-extensions/components/form-item/index.module.less +39 -0
  194. package/vendor/coze/source/form-extensions/components/form-item/index.tsx +200 -0
  195. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.module.less +7 -0
  196. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.tsx +39 -0
  197. package/vendor/coze/source/form-extensions/components/level-line/index.module.less +346 -0
  198. package/vendor/coze/source/form-extensions/components/level-line/index.ts +17 -0
  199. package/vendor/coze/source/form-extensions/components/level-line/level-line.tsx +460 -0
  200. package/vendor/coze/source/form-extensions/components/level-line/types.ts +38 -0
  201. package/vendor/coze/source/form-extensions/components/level-line/utils.ts +60 -0
  202. package/vendor/coze/source/form-extensions/components/literal-value-input/constants.ts +61 -0
  203. package/vendor/coze/source/form-extensions/components/literal-value-input/input-boolean.tsx +80 -0
  204. package/vendor/coze/source/form-extensions/components/literal-value-input/input-integer.tsx +68 -0
  205. package/vendor/coze/source/form-extensions/components/literal-value-input/input-number.tsx +62 -0
  206. package/vendor/coze/source/form-extensions/components/literal-value-input/input-select.tsx +59 -0
  207. package/vendor/coze/source/form-extensions/components/literal-value-input/input-string.tsx +55 -0
  208. package/vendor/coze/source/form-extensions/components/literal-value-input/literal-value-input.tsx +35 -0
  209. package/vendor/coze/source/form-extensions/components/literal-value-input/styles.module.less +46 -0
  210. package/vendor/coze/source/form-extensions/components/literal-value-input/type.ts +61 -0
  211. package/vendor/coze/source/form-extensions/components/literal-value-input/utils.tsx +117 -0
  212. package/vendor/coze/source/form-extensions/components/node-header/components/close-button.tsx +44 -0
  213. package/vendor/coze/source/form-extensions/components/node-header/description-display.tsx +52 -0
  214. package/vendor/coze/source/form-extensions/components/node-header/description.tsx +131 -0
  215. package/vendor/coze/source/form-extensions/components/node-header/index.module.less +165 -0
  216. package/vendor/coze/source/form-extensions/components/node-header/index.tsx +552 -0
  217. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-btn/index.tsx +43 -0
  218. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/default-value-input.tsx +276 -0
  219. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.module.less +124 -0
  220. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.tsx +131 -0
  221. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/types.ts +32 -0
  222. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.module.less +38 -0
  223. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.tsx +101 -0
  224. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.module.less +51 -0
  225. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.tsx +107 -0
  226. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.module.less +17 -0
  227. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.tsx +53 -0
  228. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/constants.tsx +77 -0
  229. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.module.less +97 -0
  230. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.tsx +155 -0
  231. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.ts +38 -0
  232. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.module.less +138 -0
  233. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.tsx +360 -0
  234. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.ts +88 -0
  235. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.module.less +36 -0
  236. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.tsx +104 -0
  237. package/vendor/coze/source/form-extensions/components/output-tree/constants.ts +22 -0
  238. package/vendor/coze/source/form-extensions/components/output-tree/context.ts +28 -0
  239. package/vendor/coze/source/form-extensions/components/output-tree/hooks/use-columns-style.ts +39 -0
  240. package/vendor/coze/source/form-extensions/components/output-tree/index.module.less +83 -0
  241. package/vendor/coze/source/form-extensions/components/output-tree/index.tsx +692 -0
  242. package/vendor/coze/source/form-extensions/components/output-tree/utils.ts +185 -0
  243. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/index.tsx +97 -0
  244. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/option-item.tsx +30 -0
  245. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/types.ts +23 -0
  246. package/vendor/coze/source/form-extensions/components/setting-on-error/components/retry-times/index.tsx +45 -0
  247. package/vendor/coze/source/form-extensions/components/setting-on-error/components/timeout/index.tsx +102 -0
  248. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-option.tsx +167 -0
  249. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-tree-panel.tsx +165 -0
  250. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.module.less +96 -0
  251. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.tsx +265 -0
  252. package/vendor/coze/source/form-extensions/components/tree-variable-selector/context.tsx +42 -0
  253. package/vendor/coze/source/form-extensions/components/tree-variable-selector/expand-icon.tsx +30 -0
  254. package/vendor/coze/source/form-extensions/components/tree-variable-selector/index.module.less +292 -0
  255. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.module.less +49 -0
  256. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.tsx +149 -0
  257. package/vendor/coze/source/form-extensions/components/tree-variable-selector/utils.tsx +500 -0
  258. package/vendor/coze/source/form-extensions/components/tree-variable-selector/value-display.tsx +130 -0
  259. package/vendor/coze/source/form-extensions/components/value-expression-input/const.ts +68 -0
  260. package/vendor/coze/source/form-extensions/components/value-expression-input/context.ts +27 -0
  261. package/vendor/coze/source/form-extensions/components/value-expression-input/index.module.less +144 -0
  262. package/vendor/coze/source/form-extensions/components/value-expression-input/value-expression-input.tsx +418 -0
  263. package/vendor/coze/source/form-extensions/components/variable-type-selector/constants.tsx +77 -0
  264. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.module.less +31 -0
  265. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.tsx +17 -0
  266. package/vendor/coze/source/form-extensions/components/variable-type-selector/utils.tsx +298 -0
  267. package/vendor/coze/source/form-extensions/components/variable-type-selector/variable-type-selector.tsx +235 -0
  268. package/vendor/coze/source/form-extensions/components/variable-type-tag/index.tsx +54 -0
  269. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.module.less +9 -0
  270. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.tsx +249 -0
  271. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-header.tsx +50 -0
  272. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.module.less +13 -0
  273. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.tsx +73 -0
  274. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.module.less +10 -0
  275. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.tsx +42 -0
  276. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.module.less +9 -0
  277. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.tsx +254 -0
  278. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.module.less +7 -0
  279. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.tsx +144 -0
  280. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/value-expression-with-state/index.tsx +69 -0
  281. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/context.ts +36 -0
  282. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch-preview.tsx +44 -0
  283. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch.tsx +152 -0
  284. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/container.tsx +19 -0
  285. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/custom-drag-layer.tsx +117 -0
  286. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/types.ts +18 -0
  287. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/types.ts +58 -0
  288. package/vendor/coze/source/node-registries/end/components/terminate-plan-field.tsx +29 -0
  289. package/vendor/coze/source/node-registries/end/constants.ts +34 -0
  290. package/vendor/coze/source/node-registries/end/form.tsx +66 -0
  291. package/vendor/coze/source/node-registries/end/types.ts +45 -0
  292. package/vendor/coze/source/node-registries/http/components/base-editor/raw-text-editor.tsx +80 -0
  293. package/vendor/coze/source/node-registries/http/constants.ts +80 -0
  294. package/vendor/coze/source/node-registries/http/fields/json-import-editor/index.module.less +191 -0
  295. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-expand-editor.tsx +141 -0
  296. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-import.tsx +99 -0
  297. package/vendor/coze/source/node-registries/http/form-render.tsx +102 -0
  298. package/vendor/coze/source/node-registries/http/setters/api/curl-expand-editor.tsx +161 -0
  299. package/vendor/coze/source/node-registries/http/setters/api/curl-import.tsx +96 -0
  300. package/vendor/coze/source/node-registries/http/setters/api/index.module.less +199 -0
  301. package/vendor/coze/source/node-registries/http/setters/api/index.tsx +149 -0
  302. package/vendor/coze/source/node-registries/http/setters/api/utils.ts +41 -0
  303. package/vendor/coze/source/node-registries/http/setters/body/index.tsx +201 -0
  304. package/vendor/coze/source/node-registries/http/setters/constants.ts +83 -0
  305. package/vendor/coze/source/node-registries/if/components/else/index.tsx +41 -0
  306. package/vendor/coze/source/node-registries/intent/components/intents/index.module.less +15 -0
  307. package/vendor/coze/source/node-registries/intent/components/intents/option-item/index.tsx +189 -0
  308. package/vendor/coze/source/node-registries/json-stringify/constants.ts +32 -0
  309. package/vendor/coze/source/node-registries/json-stringify/form.tsx +46 -0
  310. package/vendor/coze/source/node-registries/loop/constants.ts +43 -0
  311. package/vendor/coze/source/node-registries/loop/loop-fields/loop-settings-section/index.tsx +48 -0
  312. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/index.tsx +81 -0
  313. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/options.ts +34 -0
  314. package/vendor/coze/source/node-registries/start/form.tsx +209 -0
  315. package/vendor/coze/source/node-registries/text-process/components/method-selector/index.tsx +46 -0
  316. package/vendor/coze/source/node-registries/text-process/constants.ts +132 -0
  317. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.module.less +7 -0
  318. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.tsx +47 -0
  319. package/vendor/coze/source/nodes-v2/components/system-prompt/index.module.less +66 -0
  320. package/vendor/coze/source/nodes-v2/components/system-prompt/prompt-kit-bar.tsx +129 -0
  321. package/vendor/coze/source/nodes-v2/components/system-prompt/system-prompt-editor.tsx +110 -0
  322. package/vendor/coze/source/nodes-v2/llm/user-prompt/index.tsx +64 -0
  323. package/vendor/coze/source/prompt-kit/input-config-popover/index.tsx +80 -0
  324. package/vendor/coze/source/prompt-kit/input-slot-widget/index.css +34 -0
  325. package/vendor/coze/source/prompt-kit/input-slot-widget/index.ts +169 -0
  326. package/vendor/coze/source/prompt-kit/library-item.tsx +141 -0
  327. package/vendor/coze/source/prompt-kit/prompt-info-input.tsx +90 -0
  328. package/vendor/coze/source/ui-components/add-operation/index.module.less +19 -0
  329. package/vendor/coze/source/ui-components/add-operation/index.tsx +67 -0
  330. package/vendor/coze/source/ui-components/auto-size-tooltip/index.module.less +39 -0
  331. package/vendor/coze/source/ui-components/auto-size-tooltip/index.tsx +74 -0
  332. package/vendor/coze/source/ui-components/workflow-sl-input/index.module.less +36 -0
  333. package/vendor/coze/source/ui-components/workflow-sl-input/index.tsx +194 -0
  334. package/vendor/coze/source/utils/create-slots/index.tsx +126 -0
  335. package/vendor/coze/source/utils/create-slots/use-force-update.ts +23 -0
@@ -0,0 +1,249 @@
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React, { type ReactNode } from 'react';
18
+
19
+ import { useNodeTestId } from '@coze-workflow/base';
20
+ import { I18n } from '@coze-arch/i18n';
21
+ import { IconCozMinus, IconCozPlus } from '@coze-arch/coze-design/icons';
22
+ import { IconButton, Tag } from '@coze-arch/coze-design';
23
+
24
+ import { FormCard } from '../../../components/form-card';
25
+ import { type ConditionValidateResult } from './validate/validate';
26
+ import { Logic, type ConditionBranchValueWithUid } from './types';
27
+ import { useConditionContext } from './context';
28
+ import ConditionParamsItem, {
29
+ type ConditionParamsItemProps,
30
+ } from './condition-params-item';
31
+ import {
32
+ ConditionItemLogic,
33
+ type ConditionItemLogicProps,
34
+ } from './condition-item-logic';
35
+
36
+ import styles from './condition-branch.module.less';
37
+
38
+ function getDefaultConditionItems() {
39
+ return {
40
+ left: undefined,
41
+ operator: undefined,
42
+ right: undefined,
43
+ };
44
+ }
45
+
46
+ export interface ConditionBranchProps {
47
+ index: number;
48
+ prefixName: string;
49
+ portId?: string;
50
+ titleIcon?: ReactNode;
51
+ branch: ConditionBranchValueWithUid;
52
+ onChange?: (branch: ConditionBranchValueWithUid) => void;
53
+ onDelete?: () => void;
54
+ deletable?: boolean;
55
+ priority?: number;
56
+ isFirstBranch?: boolean;
57
+ branchValidateResult?: ConditionValidateResult[];
58
+ }
59
+
60
+ export const ConditionBranch = (props: ConditionBranchProps) => {
61
+ const { readonly, expanded } = useConditionContext();
62
+ const { concatTestId } = useNodeTestId();
63
+ const { setterPath } = useConditionContext();
64
+
65
+ const {
66
+ index: branchIndex,
67
+ branch,
68
+ onChange,
69
+ onDelete,
70
+ deletable = true,
71
+ prefixName,
72
+ priority,
73
+ branchValidateResult,
74
+ titleIcon,
75
+ isFirstBranch,
76
+ } = props;
77
+
78
+ const { condition } = branch;
79
+
80
+ const handleAdd = () => {
81
+ onChange?.({
82
+ ...branch,
83
+ condition: {
84
+ ...condition,
85
+ logic: condition.logic ?? Logic.AND,
86
+ conditions: (condition.conditions ?? []).concat([
87
+ getDefaultConditionItems(),
88
+ ]),
89
+ },
90
+ });
91
+ };
92
+
93
+ const handleLogicChange: ConditionItemLogicProps['onChange'] = logic => {
94
+ onChange?.({
95
+ ...branch,
96
+ condition: {
97
+ ...condition,
98
+ logic,
99
+ },
100
+ });
101
+ };
102
+
103
+ const handleConditionItemChange: (
104
+ index: number,
105
+ ) => ConditionParamsItemProps['onDataChange'] = index => conditionItem => {
106
+ const newConditions = condition.conditions.map((item, subIndex) => {
107
+ if (subIndex === index) {
108
+ return {
109
+ ...conditionItem,
110
+ };
111
+ } else {
112
+ return item;
113
+ }
114
+ });
115
+ onChange?.({
116
+ ...branch,
117
+ condition: {
118
+ ...condition,
119
+ conditions: newConditions,
120
+ },
121
+ });
122
+ };
123
+
124
+ const handleDeleteBranch = () => {
125
+ // Move the port to be deleted to the end so that the deletion does not affect other connection sequences
126
+ onDelete?.();
127
+ };
128
+
129
+ const handleDeleteConditionItem: (
130
+ deleteIndex: number,
131
+ ) => ConditionParamsItemProps['onDelete'] = deleteIndex => () => {
132
+ // removeValidateResult(index);
133
+ const newConditions = condition.conditions.filter(
134
+ (item, subIndex) => subIndex !== deleteIndex,
135
+ );
136
+ if (newConditions.length) {
137
+ onChange?.({
138
+ ...branch,
139
+ condition: {
140
+ ...condition,
141
+ conditions: newConditions,
142
+ },
143
+ });
144
+ } else {
145
+ handleDeleteBranch();
146
+ }
147
+ };
148
+
149
+ return (
150
+ <FormCard
151
+ expand={expanded}
152
+ motion={false}
153
+ className="coz-bg-max coz-stroke-plus border border-solid rounded-lg mb-2 !px-2 pb-2"
154
+ header={
155
+ <div className="flex items-center">
156
+ {titleIcon}
157
+ {prefixName}
158
+ {priority ? (
159
+ <Tag className="ml-2" color="primary">
160
+ {I18n.t('worklfow_condition_priority', {}, 'Priority')} {priority}
161
+ </Tag>
162
+ ) : null}
163
+ </div>
164
+ }
165
+ collapsible={false}
166
+ actionButton={
167
+ readonly ? (
168
+ <></>
169
+ ) : (
170
+ <>
171
+ <IconButton
172
+ data-testid={concatTestId(
173
+ setterPath,
174
+ `${branchIndex}`,
175
+ 'branch',
176
+ 'delete',
177
+ )}
178
+ color="secondary"
179
+ size="small"
180
+ icon={<IconCozMinus className="text-sm" />}
181
+ disabled={!deletable}
182
+ onClick={handleDeleteBranch}
183
+ />
184
+ </>
185
+ )
186
+ }
187
+ portInfo={undefined}
188
+ >
189
+ <div>
190
+ <div
191
+ style={
192
+ readonly
193
+ ? {
194
+ pointerEvents: 'none',
195
+ }
196
+ : {}
197
+ }
198
+ >
199
+ <div className="flex">
200
+ {condition.conditions.length > 1 && (
201
+ <div className="flex-none w-[50px] mt-4 mb-12">
202
+ <ConditionItemLogic
203
+ logic={condition.logic}
204
+ onChange={handleLogicChange}
205
+ showStroke={condition?.conditions?.length > 1}
206
+ />
207
+ </div>
208
+ )}
209
+ <div className="flex-1">
210
+ {condition.conditions.map((item, index) => (
211
+ <ConditionParamsItem
212
+ key={index}
213
+ branchIndex={branchIndex}
214
+ index={index}
215
+ readonly={readonly}
216
+ deletable={!isFirstBranch || index > 0}
217
+ data={item}
218
+ onDataChange={handleConditionItemChange(index)}
219
+ onDelete={handleDeleteConditionItem(index)}
220
+ className={styles.item}
221
+ conditionValidateResult={branchValidateResult?.[index]}
222
+ />
223
+ ))}
224
+ <IconButton
225
+ wrapperClass="ml-[48px]"
226
+ size="small"
227
+ color="highlight"
228
+ onClick={handleAdd}
229
+ icon={<IconCozPlus />}
230
+ data-testid={concatTestId(
231
+ setterPath,
232
+ `${branchIndex}`,
233
+ 'item',
234
+ 'add',
235
+ )}
236
+ >
237
+ {I18n.t(
238
+ 'worklfow_condition_add_condition',
239
+ {},
240
+ 'Add condition',
241
+ )}
242
+ </IconButton>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </FormCard>
248
+ );
249
+ };
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { type FC } from 'react';
18
+
19
+ import { useNodeTestId } from '@coze-workflow/base';
20
+ import { I18n } from '@coze-arch/i18n';
21
+ import { IconCozPlus } from '@coze-arch/coze-design/icons';
22
+ import { IconButton } from '@coze-arch/coze-design';
23
+
24
+ import { useConditionContext } from './context';
25
+
26
+ interface ConditionHeaderProps {
27
+ onAdd: () => void;
28
+ }
29
+
30
+ export const ConditionHeader: FC<ConditionHeaderProps> = props => {
31
+ const { readonly, setterPath } = useConditionContext();
32
+ const { concatTestId } = useNodeTestId();
33
+
34
+ const { onAdd } = props;
35
+ return (
36
+ <div className="flex justify-between items-center mb-2 cursor-pointer">
37
+ <div className="font-semibold">
38
+ {I18n.t('worklfow_condition_condition_branch', {}, 'Condition branch')}
39
+ </div>
40
+ <IconButton
41
+ size="small"
42
+ disabled={readonly}
43
+ onClick={readonly ? () => null : onAdd}
44
+ color="highlight"
45
+ icon={<IconCozPlus className="text-sm" />}
46
+ data-testid={concatTestId(setterPath, 'branch', 'add')}
47
+ />
48
+ </div>
49
+ );
50
+ };
@@ -0,0 +1,13 @@
1
+ /* stylelint-disable declaration-no-important */
2
+ .condition-logic-select {
3
+ border: none !important;
4
+
5
+ :global(.semi-select-selection) {
6
+ font-weight: 400;
7
+ color: rgba(var(--semi-brand-5), 1)
8
+ }
9
+
10
+ :global(.semi-select-selection-text) {
11
+ font-size: var(--coze-12) !important;
12
+ }
13
+ }
@@ -0,0 +1,73 @@
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { type FC } from 'react';
18
+
19
+ import { I18n } from '@coze-arch/i18n';
20
+ import { Select } from '@coze-arch/coze-design';
21
+
22
+ import { Logic, logicTextMap } from './constants';
23
+
24
+ import styles from './condition-item-logic.module.less';
25
+
26
+ export interface ConditionItemLogicProps {
27
+ /**
28
+ * And Logic Or
29
+ */
30
+ logic: Logic;
31
+ /**
32
+ * And Or change the logic
33
+ */
34
+ onChange: (logic: Logic) => void;
35
+ showStroke?: boolean;
36
+ }
37
+
38
+ export const ConditionItemLogic: FC<ConditionItemLogicProps> = props => {
39
+ const { logic, onChange, showStroke = false } = props;
40
+
41
+ return (
42
+ <div className="flex flex-col h-full">
43
+ <div className="flex-1 relative">
44
+ {showStroke ? (
45
+ <div className="absolute left-1/2 right-0 top-2.5 bottom-0 rounded-tl-lg border-solid border-0 border-t border-l coz-stroke-plus" />
46
+ ) : null}
47
+ </div>
48
+ <Select
49
+ className={styles['condition-logic-select']}
50
+ placeholder={I18n.t('workflow_detail_condition_pleaseselect')}
51
+ style={{ marginRight: 4 }}
52
+ value={logic}
53
+ size="small"
54
+ optionList={[
55
+ {
56
+ label: logicTextMap.get(Logic.AND),
57
+ value: Logic.AND,
58
+ },
59
+ {
60
+ label: logicTextMap.get(Logic.OR),
61
+ value: Logic.OR,
62
+ },
63
+ ]}
64
+ onChange={val => onChange(val as Logic)}
65
+ />
66
+ <div className="flex-1 relative">
67
+ {showStroke ? (
68
+ <div className="absolute left-1/2 right-0 top-0 bottom-2.5 rounded-bl-lg border-solid border-0 border-b border-l coz-stroke-plus" />
69
+ ) : null}
70
+ </div>
71
+ </div>
72
+ );
73
+ };
@@ -0,0 +1,10 @@
1
+ @import '../../../../../../assets/styles/common.less';
2
+
3
+ .container {
4
+ display: flex;
5
+ width: 100%;
6
+ height: 100%;
7
+ align-items: center;
8
+ justify-content: center;
9
+ margin-top: 5px;
10
+ }
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React from 'react';
18
+
19
+ import { IconCozMinus } from '@coze-arch/coze-design/icons';
20
+ import { IconButton } from '@coze-arch/coze-design';
21
+
22
+ interface DeleteProps {
23
+ hidden?: boolean;
24
+ remove?: () => void;
25
+ testId: string;
26
+ }
27
+
28
+ export default function Delete({ hidden, remove, testId }: DeleteProps) {
29
+ return (
30
+ <div>
31
+ {hidden ? null : (
32
+ <IconButton
33
+ data-testid={testId}
34
+ color="secondary"
35
+ size="small"
36
+ icon={<IconCozMinus className="text-sm" />}
37
+ onClick={remove}
38
+ />
39
+ )}
40
+ </div>
41
+ );
42
+ }
@@ -0,0 +1,9 @@
1
+ .multi-mode-input {
2
+ .semi-input-group {
3
+ flex-wrap: nowrap;
4
+ }
5
+
6
+ .input {
7
+ width: 100px;
8
+ }
9
+ }
@@ -0,0 +1,254 @@
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /* eslint-disable @coze-arch/no-deep-relative-import */
18
+ import React, { useMemo } from 'react';
19
+
20
+ import classNames from 'classnames';
21
+ import { useService } from '@flowgram-adapter/free-layout-editor';
22
+ import { useCurrentEntity } from '@flowgram-adapter/free-layout-editor';
23
+ import { useVariableTypeChange } from '@coze-workflow/variable';
24
+ import {
25
+ WorkflowVariableService,
26
+ type RefExpression,
27
+ type ValueExpression,
28
+ ValueExpressionType,
29
+ } from '@coze-workflow/variable';
30
+ import { useNodeTestId } from '@coze-workflow/base';
31
+
32
+ import { type ValueExpressionInputProps } from '@/form-extensions/components/value-expression-input';
33
+
34
+ import { withValidationField } from '../validate/ValidationField';
35
+ import { type ConditionValidateResult } from '../validate/validate';
36
+ import { type ConditionItem, type ElementOfRecord } from '../types';
37
+ import { useConditionContext } from '../context';
38
+ import { VariableSelector } from '../../../../components/tree-variable-selector';
39
+ import { ValueExpressionWithState } from './value-expression-with-state';
40
+ import {
41
+ calcComparisonDisabled,
42
+ processConditionData,
43
+ processLeftSourceTypeChange,
44
+ processRightDefaultValue,
45
+ getRightValueInputType,
46
+ } from './utils';
47
+ import Operator from './operator';
48
+ import Delete from './delete';
49
+ const VariableSelectorField =
50
+ withValidationField<typeof VariableSelector>(VariableSelector);
51
+ const OperatorField = withValidationField<typeof Operator>(Operator);
52
+ const ValueExpressionInputField = withValidationField<
53
+ typeof ValueExpressionWithState
54
+ >(ValueExpressionWithState);
55
+
56
+ export interface ConditionParamsItemProps {
57
+ branchIndex: number;
58
+ /**
59
+ * Current condition data index
60
+ */
61
+ index: number;
62
+ /**
63
+ * Current condition data
64
+ */
65
+ data: ConditionItem;
66
+ /**
67
+ * read only
68
+ */
69
+ readonly?: boolean;
70
+ /**
71
+ * Callback after the current condition data has changed
72
+ */
73
+ onDataChange: (value: ConditionItem) => void;
74
+ /**
75
+ * Remove callback on current condition
76
+ */
77
+ onDelete?: () => void;
78
+ /**
79
+ * verification result
80
+ */
81
+ conditionValidateResult?: ConditionValidateResult;
82
+ className?: string;
83
+ style?: React.CSSProperties;
84
+ deletable?: boolean;
85
+ }
86
+
87
+ // TODO conversion is received uniformly in one place.
88
+ const valueToRefExpression = (value: string[]): RefExpression => ({
89
+ type: ValueExpressionType.REF,
90
+ content: {
91
+ keyPath: value,
92
+ },
93
+ });
94
+
95
+ export default function ConditionParamsItem({
96
+ index,
97
+ branchIndex,
98
+ data,
99
+ onDataChange,
100
+ onDelete,
101
+ className,
102
+ conditionValidateResult,
103
+ style,
104
+ readonly,
105
+ deletable,
106
+ }: ConditionParamsItemProps) {
107
+ const { concatTestId } = useNodeTestId();
108
+ const { setterPath } = useConditionContext();
109
+ const workflowVariableService = useService<WorkflowVariableService>(
110
+ WorkflowVariableService,
111
+ );
112
+
113
+ const node = useCurrentEntity();
114
+
115
+ const sourceType = workflowVariableService.getWorkflowVariableByKeyPath(
116
+ data.left?.content?.keyPath,
117
+ { node },
118
+ )?.viewType;
119
+
120
+ const handleConditionChange =
121
+ <T extends ElementOfRecord<ConditionItem>>(
122
+ key: 'left' | 'operator' | 'right',
123
+ ) =>
124
+ (value: T): void => {
125
+ let newData = { ...data, [key]: value };
126
+
127
+ newData = processLeftSourceTypeChange(
128
+ data,
129
+ newData,
130
+ workflowVariableService,
131
+ node,
132
+ );
133
+
134
+ newData = processRightDefaultValue(sourceType, newData);
135
+
136
+ newData = processConditionData(
137
+ data,
138
+ newData,
139
+ workflowVariableService,
140
+ node,
141
+ );
142
+
143
+ onDataChange?.(newData);
144
+ };
145
+
146
+ // Monitor changes in linkage variables to re-trigger the effect
147
+ useVariableTypeChange({
148
+ keyPath: data.left?.content?.keyPath,
149
+ onTypeChange: ({ variableMeta }) => {
150
+ if (!variableMeta) {
151
+ // Variables have been deleted
152
+ onDataChange?.({});
153
+ return;
154
+ }
155
+
156
+ onDataChange?.({
157
+ left: data.left,
158
+ });
159
+ },
160
+ });
161
+ const rightInputTypes = getRightValueInputType({
162
+ sourceType,
163
+ operator: data.operator,
164
+ rightValue: data.right,
165
+ useCompatibleType: true,
166
+ });
167
+ const rightInputTypeProps = useMemo<
168
+ Pick<ValueExpressionInputProps, 'inputType' | 'inputTypes'>
169
+ >(() => ({ inputTypes: rightInputTypes }), [rightInputTypes]);
170
+
171
+ return (
172
+ <div
173
+ className={classNames('flex items-center gap-1 mb-2', className)}
174
+ style={style}
175
+ >
176
+ <div
177
+ className="overflow-hidden"
178
+ style={{
179
+ flex: '0 0 44px',
180
+ }}
181
+ >
182
+ <OperatorField
183
+ sourceType={sourceType}
184
+ value={data.operator}
185
+ onChange={handleConditionChange<ConditionItem['operator']>(
186
+ 'operator',
187
+ )}
188
+ validateResult={conditionValidateResult?.operator}
189
+ testId={concatTestId(
190
+ setterPath,
191
+ `${branchIndex}`,
192
+ `${index}`,
193
+ 'operator',
194
+ )}
195
+ />
196
+ </div>
197
+ <div className="flex-1">
198
+ <VariableSelectorField
199
+ style={{ width: '100%', marginBottom: 4 }}
200
+ readonly={readonly}
201
+ value={data.left?.content?.keyPath}
202
+ onChange={(value: string[]) =>
203
+ handleConditionChange<RefExpression>('left')(
204
+ valueToRefExpression(value),
205
+ )
206
+ }
207
+ validateResult={conditionValidateResult?.left}
208
+ testId={concatTestId(
209
+ setterPath,
210
+ `${branchIndex}`,
211
+ `${index}`,
212
+ 'left',
213
+ )}
214
+ />
215
+ <ValueExpressionInputField
216
+ readonly={readonly}
217
+ {...rightInputTypeProps}
218
+ disabled={calcComparisonDisabled(data.operator)}
219
+ value={JSON.parse(JSON.stringify(data))?.right}
220
+ onChange={handleConditionChange<ValueExpression>('right')}
221
+ validateResult={conditionValidateResult?.right}
222
+ operator={data.operator}
223
+ testId={concatTestId(
224
+ setterPath,
225
+ `${branchIndex}`,
226
+ `${index}`,
227
+ 'right',
228
+ )}
229
+ />
230
+ </div>
231
+ {readonly ? (
232
+ <></>
233
+ ) : (
234
+ <div
235
+ style={{
236
+ flex: '0 0 24px',
237
+ }}
238
+ >
239
+ <Delete
240
+ testId={concatTestId(
241
+ setterPath,
242
+ `${branchIndex}`,
243
+ `${index}`,
244
+ 'item',
245
+ 'remove',
246
+ )}
247
+ remove={onDelete}
248
+ hidden={!deletable}
249
+ />
250
+ </div>
251
+ )}
252
+ </div>
253
+ );
254
+ }