@fudanda/workflow 1.20261015.1-beta.1 → 2.20261024.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 (290) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +114 -114
  3. package/THIRD-PARTY-NOTICES.md +57 -57
  4. package/dist/chrome.js +1 -1
  5. package/dist/flowgram-designer.d.ts +2 -1
  6. package/dist/graph-scope.d.ts +16 -85
  7. package/dist/index.js +2 -2
  8. package/dist/observation-types.d.ts +6 -0
  9. package/dist/{start-form-D_J3UIoE.js → start-form-L6xw9phk.js} +125 -125
  10. package/package.json +2 -2
  11. package/vendor/coze/LICENSE-APACHE +177 -177
  12. package/vendor/coze/UPSTREAM.json +2 -2
  13. package/vendor/coze/original/base-test-button.tsx +22 -22
  14. package/vendor/coze/original/comment-container.tsx +68 -68
  15. package/vendor/coze/original/condition-container.tsx +60 -60
  16. package/vendor/coze/original/condition-tag.tsx +58 -58
  17. package/vendor/coze/original/coze-global.less +234 -234
  18. package/vendor/coze/original/create-loop-function-json.ts +134 -134
  19. package/vendor/coze/original/create-loop-function.ts +56 -56
  20. package/vendor/coze/original/end-registry.ts +41 -41
  21. package/vendor/coze/original/execute-result-panel.less +97 -97
  22. package/vendor/coze/original/execute-result-panel.tsx +171 -171
  23. package/vendor/coze/original/form-item.less +39 -39
  24. package/vendor/coze/original/form-item.tsx +200 -200
  25. package/vendor/coze/original/http-api-field.tsx +42 -42
  26. package/vendor/coze/original/http-form-render.tsx +102 -102
  27. package/vendor/coze/original/icon-add.svg +3 -3
  28. package/vendor/coze/original/icon-arrow-left.svg +3 -3
  29. package/vendor/coze/original/icon-auto-layout.svg +18 -18
  30. package/vendor/coze/original/icon-code.svg +13 -13
  31. package/vendor/coze/original/icon-condition.svg +12 -12
  32. package/vendor/coze/original/icon-database.svg +18 -18
  33. package/vendor/coze/original/icon-delete.svg +5 -5
  34. package/vendor/coze/original/icon-fullscreen.svg +9 -9
  35. package/vendor/coze/original/icon-more.svg +11 -11
  36. package/vendor/coze/original/icon-play-round-outlined.svg +8 -8
  37. package/vendor/coze/original/icon-plugin-tool.svg +6 -6
  38. package/vendor/coze/original/icon-standard-copy.svg +8 -8
  39. package/vendor/coze/original/icon-unknown.svg +7 -7
  40. package/vendor/coze/original/icon-var.svg +6 -6
  41. package/vendor/coze/original/icon-workflow-end.svg +5 -5
  42. package/vendor/coze/original/icon-workflow-start.svg +5 -5
  43. package/vendor/coze/original/icon-workflow.svg +21 -21
  44. package/vendor/coze/original/icon-workflows.svg +5 -5
  45. package/vendor/coze/original/if-form-meta.tsx +88 -88
  46. package/vendor/coze/original/logic-display.tsx +33 -33
  47. package/vendor/coze/original/mouse-icon.tsx +35 -35
  48. package/vendor/coze/original/mouse-pad-selector.tsx +180 -180
  49. package/vendor/coze/original/node-card.tsx +77 -77
  50. package/vendor/coze/original/node-category-panel.less +4 -4
  51. package/vendor/coze/original/node-category-panel.tsx +53 -53
  52. package/vendor/coze/original/node-config-form.tsx +67 -67
  53. package/vendor/coze/original/node-header.less +165 -165
  54. package/vendor/coze/original/node-header.tsx +552 -552
  55. package/vendor/coze/original/node-panel.less +183 -183
  56. package/vendor/coze/original/node-render.less +20 -20
  57. package/vendor/coze/original/node-side-sheet.less +57 -57
  58. package/vendor/coze/original/node-side-sheet.tsx +214 -214
  59. package/vendor/coze/original/node-wrapper.tsx +71 -71
  60. package/vendor/coze/original/pad-icon.tsx +45 -45
  61. package/vendor/coze/original/resizable-side-panel-constants.ts +18 -18
  62. package/vendor/coze/original/resizable-side-panel.tsx +42 -42
  63. package/vendor/coze/original/start-registry.ts +53 -53
  64. package/vendor/coze/original/sub-canvas-background.less +4 -4
  65. package/vendor/coze/original/sub-canvas-background.tsx +48 -48
  66. package/vendor/coze/original/sub-canvas-container.less +16 -16
  67. package/vendor/coze/original/sub-canvas-container.tsx +97 -97
  68. package/vendor/coze/original/sub-canvas-header.less +75 -75
  69. package/vendor/coze/original/sub-canvas-header.tsx +95 -95
  70. package/vendor/coze/original/test-form-sheet-header.tsx +82 -82
  71. package/vendor/coze/original/test-form-sheet.less +178 -178
  72. package/vendor/coze/original/toolbar-add-node.tsx +68 -68
  73. package/vendor/coze/original/toolbar-auto-layout.tsx +61 -61
  74. package/vendor/coze/original/toolbar-comment.tsx +121 -121
  75. package/vendor/coze/original/toolbar-container.tsx +42 -42
  76. package/vendor/coze/original/toolbar-interactive.tsx +98 -98
  77. package/vendor/coze/original/toolbar-minimap-switch.tsx +41 -41
  78. package/vendor/coze/original/toolbar-tools.less +46 -46
  79. package/vendor/coze/original/toolbar-tools.tsx +89 -89
  80. package/vendor/coze/original/toolbar-zoom.tsx +134 -134
  81. package/vendor/coze/original/tree-variable-selector.less +291 -291
  82. package/vendor/coze/original/tree-variable-selector.tsx +298 -298
  83. package/vendor/coze/original/workflow-document-custom-options.ts +151 -151
  84. package/vendor/coze/original/workflow-header.less +65 -65
  85. package/vendor/coze/original/workflow-header.tsx +85 -85
  86. package/vendor/coze/source/agent-models/model-option/index.module.less +18 -18
  87. package/vendor/coze/source/agent-models/model-option/index.tsx +321 -321
  88. package/vendor/coze/source/agent-models/model-option-avatar/index.tsx +175 -175
  89. package/vendor/coze/source/agent-models/model-option-group/index.tsx +87 -87
  90. package/vendor/coze/source/agent-models/model-option-thumb/index.tsx +41 -41
  91. package/vendor/coze/source/agent-models/model-select-ui/index.tsx +238 -238
  92. package/vendor/coze/source/agent-models/popover-model-list-view/index.tsx +146 -146
  93. package/vendor/coze/source/components/code-editor/text-editor.tsx +71 -71
  94. package/vendor/coze/source/components/comment/components/editor/block.tsx +117 -117
  95. package/vendor/coze/source/components/comment/components/editor/leaf.tsx +64 -64
  96. package/vendor/coze/source/components/comment/components/toolbar.tsx +366 -366
  97. package/vendor/coze/source/components/comment/constant.ts +94 -94
  98. package/vendor/coze/source/components/editor-container/expand-editor/index.module.less +107 -107
  99. package/vendor/coze/source/components/editor-container/expand-editor/index.tsx +117 -117
  100. package/vendor/coze/source/components/model-select/components/model-setting.tsx +300 -300
  101. package/vendor/coze/source/components/model-select/components/settings.tsx +144 -144
  102. package/vendor/coze/source/components/model-select/index.module.less +34 -34
  103. package/vendor/coze/source/components/model-select/utils/index.tsx +100 -100
  104. package/vendor/coze/source/components/node-render/node-render-new/fields/constants.tsx +79 -79
  105. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.module.less +12 -12
  106. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.tsx +37 -37
  107. package/vendor/coze/source/components/node-render/node-render-new/fields/field.module.less +19 -19
  108. package/vendor/coze/source/components/node-render/node-render-new/fields/field.tsx +52 -52
  109. package/vendor/coze/source/components/node-render/node-render-new/fields/http-api-field/index.tsx +42 -42
  110. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.module.less +47 -47
  111. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.tsx +162 -162
  112. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.module.less +48 -48
  113. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.tsx +126 -126
  114. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.module.less +97 -97
  115. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.tsx +171 -171
  116. package/vendor/coze/source/components/sub-canvas/components/background/index.module.less +4 -4
  117. package/vendor/coze/source/components/sub-canvas/components/header/index.module.less +75 -75
  118. package/vendor/coze/source/components/test-run/test-run-button/single-node.tsx +158 -158
  119. package/vendor/coze/source/execution-panel/panel.module.less +48 -48
  120. package/vendor/coze/source/execution-panel/panel.tsx +99 -99
  121. package/vendor/coze/source/execution-panel/use-resize.ts +79 -79
  122. package/vendor/coze/source/external/features/log/components/data-viewer/constants.ts +28 -28
  123. package/vendor/coze/source/external/features/log/components/data-viewer/context/context.ts +21 -21
  124. package/vendor/coze/source/external/features/log/components/data-viewer/context/create-store.ts +48 -48
  125. package/vendor/coze/source/external/features/log/components/data-viewer/context/index.ts +19 -19
  126. package/vendor/coze/source/external/features/log/components/data-viewer/context/provider.tsx +50 -50
  127. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.module.less +26 -26
  128. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.tsx +79 -79
  129. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/index.ts +18 -18
  130. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-data-viewer-store.ts +29 -29
  131. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-expand.ts +35 -35
  132. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-value.tsx +66 -66
  133. package/vendor/coze/source/external/features/log/components/data-viewer/index.tsx +21 -21
  134. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/index.tsx +186 -186
  135. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/json-field.module.less +79 -79
  136. package/vendor/coze/source/external/features/log/components/data-viewer/types.ts +50 -50
  137. package/vendor/coze/source/external/features/log/components/data-viewer/utils/big-number.ts +35 -35
  138. package/vendor/coze/source/external/features/log/components/data-viewer/utils/generate-field.ts +104 -104
  139. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.module.less +27 -27
  140. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.tsx +109 -109
  141. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.module.less +52 -52
  142. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.tsx +113 -113
  143. package/vendor/coze/source/form/components/field-empty.tsx +45 -45
  144. package/vendor/coze/source/form/components/section.tsx +91 -91
  145. package/vendor/coze/source/form-extensions/components/add-item-button/index.tsx +64 -64
  146. package/vendor/coze/source/form-extensions/components/form-card/index.module.less +131 -131
  147. package/vendor/coze/source/form-extensions/components/form-card/index.tsx +309 -309
  148. package/vendor/coze/source/form-extensions/components/form-item/index.module.less +39 -39
  149. package/vendor/coze/source/form-extensions/components/form-item/index.tsx +200 -200
  150. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.module.less +7 -7
  151. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.tsx +39 -39
  152. package/vendor/coze/source/form-extensions/components/level-line/index.module.less +346 -346
  153. package/vendor/coze/source/form-extensions/components/level-line/index.ts +17 -17
  154. package/vendor/coze/source/form-extensions/components/level-line/level-line.tsx +460 -460
  155. package/vendor/coze/source/form-extensions/components/level-line/types.ts +38 -38
  156. package/vendor/coze/source/form-extensions/components/level-line/utils.ts +60 -60
  157. package/vendor/coze/source/form-extensions/components/literal-value-input/constants.ts +61 -61
  158. package/vendor/coze/source/form-extensions/components/literal-value-input/input-boolean.tsx +80 -80
  159. package/vendor/coze/source/form-extensions/components/literal-value-input/input-integer.tsx +68 -68
  160. package/vendor/coze/source/form-extensions/components/literal-value-input/input-number.tsx +62 -62
  161. package/vendor/coze/source/form-extensions/components/literal-value-input/input-select.tsx +59 -59
  162. package/vendor/coze/source/form-extensions/components/literal-value-input/input-string.tsx +55 -55
  163. package/vendor/coze/source/form-extensions/components/literal-value-input/literal-value-input.tsx +35 -35
  164. package/vendor/coze/source/form-extensions/components/literal-value-input/styles.module.less +46 -46
  165. package/vendor/coze/source/form-extensions/components/literal-value-input/type.ts +61 -61
  166. package/vendor/coze/source/form-extensions/components/literal-value-input/utils.tsx +117 -117
  167. package/vendor/coze/source/form-extensions/components/node-header/components/close-button.tsx +44 -44
  168. package/vendor/coze/source/form-extensions/components/node-header/description-display.tsx +52 -52
  169. package/vendor/coze/source/form-extensions/components/node-header/description.tsx +131 -131
  170. package/vendor/coze/source/form-extensions/components/node-header/index.module.less +165 -165
  171. package/vendor/coze/source/form-extensions/components/node-header/index.tsx +552 -552
  172. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-btn/index.tsx +43 -43
  173. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/default-value-input.tsx +276 -276
  174. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.module.less +124 -124
  175. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.tsx +131 -131
  176. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/types.ts +32 -32
  177. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.module.less +38 -38
  178. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.tsx +101 -101
  179. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.module.less +51 -51
  180. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.tsx +107 -107
  181. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.module.less +17 -17
  182. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.tsx +53 -53
  183. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/constants.tsx +77 -77
  184. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.module.less +97 -97
  185. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.tsx +155 -155
  186. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.ts +38 -38
  187. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.module.less +138 -138
  188. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.tsx +360 -360
  189. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.ts +88 -88
  190. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.module.less +36 -36
  191. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.tsx +104 -104
  192. package/vendor/coze/source/form-extensions/components/output-tree/constants.ts +22 -22
  193. package/vendor/coze/source/form-extensions/components/output-tree/context.ts +28 -28
  194. package/vendor/coze/source/form-extensions/components/output-tree/hooks/use-columns-style.ts +39 -39
  195. package/vendor/coze/source/form-extensions/components/output-tree/index.module.less +83 -83
  196. package/vendor/coze/source/form-extensions/components/output-tree/index.tsx +692 -692
  197. package/vendor/coze/source/form-extensions/components/output-tree/utils.ts +185 -185
  198. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/index.tsx +97 -97
  199. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/option-item.tsx +30 -30
  200. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/types.ts +23 -23
  201. package/vendor/coze/source/form-extensions/components/setting-on-error/components/retry-times/index.tsx +45 -45
  202. package/vendor/coze/source/form-extensions/components/setting-on-error/components/timeout/index.tsx +102 -102
  203. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-option.tsx +167 -167
  204. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-tree-panel.tsx +165 -165
  205. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.module.less +96 -96
  206. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.tsx +265 -265
  207. package/vendor/coze/source/form-extensions/components/tree-variable-selector/context.tsx +42 -42
  208. package/vendor/coze/source/form-extensions/components/tree-variable-selector/expand-icon.tsx +30 -30
  209. package/vendor/coze/source/form-extensions/components/tree-variable-selector/index.module.less +291 -291
  210. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.module.less +48 -48
  211. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.tsx +149 -149
  212. package/vendor/coze/source/form-extensions/components/tree-variable-selector/utils.tsx +500 -500
  213. package/vendor/coze/source/form-extensions/components/tree-variable-selector/value-display.tsx +130 -130
  214. package/vendor/coze/source/form-extensions/components/value-expression-input/const.ts +68 -68
  215. package/vendor/coze/source/form-extensions/components/value-expression-input/context.ts +27 -27
  216. package/vendor/coze/source/form-extensions/components/value-expression-input/index.module.less +144 -144
  217. package/vendor/coze/source/form-extensions/components/value-expression-input/value-expression-input.tsx +418 -418
  218. package/vendor/coze/source/form-extensions/components/variable-type-selector/constants.tsx +77 -77
  219. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.module.less +31 -31
  220. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.tsx +17 -17
  221. package/vendor/coze/source/form-extensions/components/variable-type-selector/utils.tsx +298 -298
  222. package/vendor/coze/source/form-extensions/components/variable-type-selector/variable-type-selector.tsx +235 -235
  223. package/vendor/coze/source/form-extensions/components/variable-type-tag/index.tsx +54 -54
  224. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.module.less +9 -9
  225. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.tsx +249 -249
  226. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-header.tsx +50 -50
  227. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.module.less +13 -13
  228. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.tsx +73 -73
  229. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.module.less +10 -10
  230. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.tsx +42 -42
  231. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.module.less +9 -9
  232. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.tsx +254 -254
  233. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.module.less +7 -7
  234. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.tsx +144 -144
  235. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/value-expression-with-state/index.tsx +69 -69
  236. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/context.ts +36 -36
  237. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch-preview.tsx +44 -44
  238. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch.tsx +152 -152
  239. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/container.tsx +19 -19
  240. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/custom-drag-layer.tsx +117 -117
  241. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/types.ts +18 -18
  242. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/types.ts +58 -58
  243. package/vendor/coze/source/node-registries/end/components/terminate-plan-field.tsx +29 -29
  244. package/vendor/coze/source/node-registries/end/constants.ts +34 -34
  245. package/vendor/coze/source/node-registries/end/form.tsx +66 -66
  246. package/vendor/coze/source/node-registries/end/types.ts +45 -45
  247. package/vendor/coze/source/node-registries/http/components/base-editor/raw-text-editor.tsx +80 -80
  248. package/vendor/coze/source/node-registries/http/constants.ts +80 -80
  249. package/vendor/coze/source/node-registries/http/fields/json-import-editor/index.module.less +191 -191
  250. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-expand-editor.tsx +141 -141
  251. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-import.tsx +99 -99
  252. package/vendor/coze/source/node-registries/http/form-render.tsx +102 -102
  253. package/vendor/coze/source/node-registries/http/setters/api/curl-expand-editor.tsx +161 -161
  254. package/vendor/coze/source/node-registries/http/setters/api/curl-import.tsx +96 -96
  255. package/vendor/coze/source/node-registries/http/setters/api/index.module.less +199 -199
  256. package/vendor/coze/source/node-registries/http/setters/api/index.tsx +149 -149
  257. package/vendor/coze/source/node-registries/http/setters/api/utils.ts +41 -41
  258. package/vendor/coze/source/node-registries/http/setters/body/index.tsx +201 -201
  259. package/vendor/coze/source/node-registries/http/setters/constants.ts +83 -83
  260. package/vendor/coze/source/node-registries/if/components/else/index.tsx +41 -41
  261. package/vendor/coze/source/node-registries/intent/components/intents/index.module.less +14 -14
  262. package/vendor/coze/source/node-registries/intent/components/intents/option-item/index.tsx +189 -189
  263. package/vendor/coze/source/node-registries/json-stringify/constants.ts +32 -32
  264. package/vendor/coze/source/node-registries/json-stringify/form.tsx +46 -46
  265. package/vendor/coze/source/node-registries/loop/constants.ts +43 -43
  266. package/vendor/coze/source/node-registries/loop/loop-fields/loop-settings-section/index.tsx +48 -48
  267. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/index.tsx +81 -81
  268. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/options.ts +34 -34
  269. package/vendor/coze/source/node-registries/start/form.tsx +209 -209
  270. package/vendor/coze/source/node-registries/text-process/components/method-selector/index.tsx +46 -46
  271. package/vendor/coze/source/node-registries/text-process/constants.ts +132 -132
  272. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.module.less +7 -7
  273. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.tsx +47 -47
  274. package/vendor/coze/source/nodes-v2/components/system-prompt/index.module.less +66 -66
  275. package/vendor/coze/source/nodes-v2/components/system-prompt/prompt-kit-bar.tsx +129 -129
  276. package/vendor/coze/source/nodes-v2/components/system-prompt/system-prompt-editor.tsx +110 -110
  277. package/vendor/coze/source/nodes-v2/llm/user-prompt/index.tsx +64 -64
  278. package/vendor/coze/source/prompt-kit/input-config-popover/index.tsx +80 -80
  279. package/vendor/coze/source/prompt-kit/input-slot-widget/index.css +34 -34
  280. package/vendor/coze/source/prompt-kit/input-slot-widget/index.ts +169 -169
  281. package/vendor/coze/source/prompt-kit/library-item.tsx +141 -141
  282. package/vendor/coze/source/prompt-kit/prompt-info-input.tsx +90 -90
  283. package/vendor/coze/source/ui-components/add-operation/index.module.less +19 -19
  284. package/vendor/coze/source/ui-components/add-operation/index.tsx +67 -67
  285. package/vendor/coze/source/ui-components/auto-size-tooltip/index.module.less +39 -39
  286. package/vendor/coze/source/ui-components/auto-size-tooltip/index.tsx +74 -74
  287. package/vendor/coze/source/ui-components/workflow-sl-input/index.module.less +36 -36
  288. package/vendor/coze/source/ui-components/workflow-sl-input/index.tsx +194 -194
  289. package/vendor/coze/source/utils/create-slots/index.tsx +126 -126
  290. package/vendor/coze/source/utils/create-slots/use-force-update.ts +23 -23
@@ -1,500 +1,500 @@
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 ReactNode } from 'react';
18
-
19
- import { groupBy } from 'lodash-es';
20
- import {
21
- ViewVariableType,
22
- type ViewVariableTreeNode,
23
- variableUtils,
24
- isGlobalVariableKey,
25
- GlobalVariableKey,
26
- GLOBAL_VAR_ALIAS_MAP,
27
- } from '@coze-workflow/variable';
28
- import {
29
- type StandardNodeType,
30
- VARIABLE_TYPE_ALIAS_MAP,
31
- } from '@coze-workflow/base';
32
- import { I18n } from '@coze-arch/i18n';
33
- import { type TreeNodeData } from '@coze-arch/bot-semi/Tree';
34
- import { Tooltip, Space } from '@coze-arch/coze-design';
35
-
36
- import { VariableTypeTag } from '../variable-type-tag';
37
- import { type VariableMetaWithNode } from '../../typings';
38
- import {
39
- type ITreeNodeData,
40
- type CustomFilterVar,
41
- type RenderDisplayVarName,
42
- type VariableTreeDataNode,
43
- } from './types';
44
-
45
- /** Filter variables that do not match the criteria (types) */
46
- export const doesNodeIncludeEnabledTypes = (
47
- node: ViewVariableTreeNode,
48
- enabledTypes: Array<ViewVariableType>,
49
- ): boolean => {
50
- if (enabledTypes.includes(node.type)) {
51
- return true;
52
- }
53
-
54
- if (!node.children?.length) {
55
- return false;
56
- }
57
-
58
- return node.children
59
- .map(childNode => doesNodeIncludeEnabledTypes(childNode, enabledTypes))
60
- .includes(true);
61
- };
62
-
63
- export const normalizeTreeData = (
64
- dataSource: Array<ViewVariableTreeNode>,
65
- disabledTypes: Array<ViewVariableType>,
66
- ) => {
67
- const enabledTypes = ViewVariableType.getComplement(disabledTypes);
68
- return filterTreeNode(dataSource, node =>
69
- doesNodeIncludeEnabledTypes(node, enabledTypes),
70
- );
71
- };
72
-
73
- function filterTreeNode(
74
- treeData: Array<ViewVariableTreeNode & { nodeId?: string }>,
75
- condition: (item: ViewVariableTreeNode) => boolean,
76
- parent?: VariableTreeDataNode,
77
- ): Array<VariableTreeDataNode> {
78
- return treeData.reduce<Array<VariableTreeDataNode>>((buf, item) => {
79
- if (!condition(item)) {
80
- return buf;
81
- } else {
82
- const { children, ...others } = item;
83
-
84
- let value = item.key;
85
- if (parent?.value) {
86
- value = `${parent?.value}-${item.key}`;
87
- } else if (item?.nodeId) {
88
- value = `${item.nodeId}-${item.key}`;
89
- }
90
-
91
- const newItem: VariableTreeDataNode = {
92
- ...others,
93
- label: item.label || item.name,
94
- value,
95
- parent,
96
- };
97
-
98
- if (item.children) {
99
- newItem.children = filterTreeNode(item.children, condition, newItem);
100
- }
101
-
102
- buf.push(newItem);
103
- return buf;
104
- }
105
- }, []);
106
- }
107
-
108
- export function formatWithNodeVariables(
109
- withNodeVariables: VariableMetaWithNode[],
110
- disabledTypes: Array<ViewVariableType>,
111
- ): VariableTreeDataNode[] {
112
- const groupedVariableList = groupBy(withNodeVariables, 'nodeId');
113
-
114
- return Object.entries(groupedVariableList)
115
- .map(([key, value]) => {
116
- const nodeVariables = normalizeTreeData(value, disabledTypes);
117
-
118
- // Nodes without variables do not need to be displayed
119
- if (!nodeVariables?.length) {
120
- return null;
121
- }
122
-
123
- return {
124
- label: value[0]?.nodeTitle ?? key,
125
- value: key,
126
- isTop: true,
127
- type: ViewVariableType.Object,
128
- children: nodeVariables,
129
- nodeId: value[0]?.nodeId,
130
- nodeType: value[0]?.nodeType,
131
- nodeTitle: value[0]?.nodeTitle,
132
- };
133
- })
134
- .filter(Boolean) as VariableTreeDataNode[];
135
- }
136
-
137
- export const renderLabelWithItem = (
138
- item?: TreeNodeData,
139
- forArrayItem?: boolean,
140
- searchKey?: string,
141
- testId = '',
142
- // eslint-disable-next-line max-params
143
- ) => {
144
- if (!item) {
145
- return null;
146
- }
147
-
148
- const { label, type } = item;
149
-
150
- let searchLabelIndex = 0;
151
-
152
- let renderLabel = label;
153
-
154
- if (searchKey && label) {
155
- const labelStr = String(label);
156
- searchLabelIndex = labelStr.toLowerCase().indexOf(searchKey.toLowerCase());
157
- if (searchLabelIndex >= 0) {
158
- renderLabel = (
159
- <>
160
- {labelStr.substring(0, searchLabelIndex)}
161
- <span className="coz-fg-hglt-yellow">
162
- {labelStr.substring(
163
- searchLabelIndex,
164
- searchLabelIndex + searchKey.length,
165
- )}
166
- </span>
167
- {labelStr.substring(
168
- searchLabelIndex + searchKey.length,
169
- labelStr.length,
170
- )}
171
- </>
172
- );
173
- }
174
- }
175
-
176
- if (!type) {
177
- return <div data-testid={testId}>{renderLabel}</div>;
178
- }
179
-
180
- if (forArrayItem && variableUtils.ARRAY_TYPES.includes(type)) {
181
- return (
182
- <Tooltip
183
- content={I18n.t('workflow_detail_batch_item_tooltip', {
184
- name: label,
185
- })}
186
- position="left"
187
- style={{ maxWidth: 800, display: 'block', wordBreak: 'break-word' }}
188
- spacing={16}
189
- // The canvas can move freely, but flipping will lead to wrong positioning.
190
- autoAdjustOverflow={false}
191
- >
192
- <Space spacing={4}>
193
- <span className="tree-variable-select-label">
194
- {renderLabel}
195
- <>{' [n]'}</>
196
- </span>
197
- <VariableTypeTag size="xs">
198
- {VARIABLE_TYPE_ALIAS_MAP[type]}
199
- </VariableTypeTag>
200
- </Space>
201
- </Tooltip>
202
- );
203
- }
204
-
205
- return (
206
- <Space spacing={4}>
207
- <span data-testid={testId} className="tree-variable-select-label">
208
- {renderLabel}
209
- </span>
210
- <VariableTypeTag size="xs">
211
- {VARIABLE_TYPE_ALIAS_MAP[type]}
212
- </VariableTypeTag>
213
- </Space>
214
- );
215
- };
216
-
217
- export const genGlobalVariableData = (
218
- dataSource: VariableTreeDataNode[] = [],
219
- ) => {
220
- const global = [
221
- {
222
- label: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.User],
223
- value: GlobalVariableKey.User,
224
- children: [],
225
- isTop: true,
226
- type: ViewVariableType.Object,
227
- nodeId: GlobalVariableKey.User,
228
- nodeType: undefined,
229
- nodeTitle: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.User],
230
- },
231
- {
232
- label: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.App],
233
- value: GlobalVariableKey.App,
234
- children: [],
235
- isTop: true,
236
- type: ViewVariableType.Object,
237
- nodeId: GlobalVariableKey.App,
238
- nodeType: undefined,
239
- nodeTitle: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.App],
240
- },
241
- {
242
- label: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.System],
243
- value: GlobalVariableKey.System,
244
- children: [],
245
- isTop: true,
246
- type: ViewVariableType.Object,
247
- nodeId: GlobalVariableKey.System,
248
- nodeType: undefined,
249
- nodeTitle: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.System],
250
- },
251
- ] as unknown as VariableTreeDataNode[];
252
-
253
- const others: VariableTreeDataNode[] = [];
254
-
255
- dataSource?.forEach(item => {
256
- if (!isGlobalVariableKey(item.value)) {
257
- others.push(item);
258
- } else {
259
- const index = global.findIndex(
260
- globalVar => globalVar.value === item.value,
261
- );
262
- if (index !== -1) {
263
- global[index] = item;
264
- }
265
- }
266
- });
267
-
268
- return [...global, ...others];
269
- };
270
-
271
- /**
272
- * Process DataSource data, add partial fields/renders
273
- * For TreeSelect, you need to put the path on each dataSource Item to help TreeSelect determine the path when selecting.
274
- */
275
- export const processDataSourceLabelRender = (params: {
276
- dataSource?: VariableTreeDataNode[];
277
- disabledTypes?: Array<ViewVariableType>;
278
- prevPath?: string[];
279
- prevNamePath?: string[];
280
- icon?: (node: VariableTreeDataNode) => ReactNode | undefined;
281
- renderDisplayVarName?: RenderDisplayVarName;
282
- customFilterVar?: CustomFilterVar;
283
- enableSelectNode?: boolean;
284
- }): TreeNodeData[] | undefined => {
285
- const {
286
- dataSource,
287
- prevPath,
288
- prevNamePath,
289
- disabledTypes,
290
- icon,
291
- renderDisplayVarName,
292
- customFilterVar,
293
- enableSelectNode,
294
- } = params;
295
-
296
- if (!dataSource) {
297
- return undefined;
298
- }
299
- if (!dataSource.length) {
300
- return [];
301
- }
302
-
303
- return (
304
- dataSource
305
- .filter(
306
- item =>
307
- item.isTop ||
308
- (customFilterVar
309
- ? customFilterVar({
310
- meta: item,
311
- path: [...(prevPath || []), item.key || item.value],
312
- })
313
- : item.name),
314
- )
315
- .map(item => {
316
- const path: string[] = [
317
- ...(prevPath || []),
318
- item.key || item.value,
319
- ] as string[];
320
-
321
- const namePath: string[] = [
322
- ...(prevNamePath || []),
323
- item.name ?? item.value,
324
- ];
325
-
326
- let { label } = item;
327
- if (renderDisplayVarName && !item.isTop) {
328
- label = renderDisplayVarName({ meta: item, path });
329
- }
330
-
331
- return {
332
- ...item,
333
- label,
334
- key: path.join('-') as string,
335
- path,
336
- namePath,
337
- // TODO: can also be judged by disableTypes
338
- // Nodes in the first layer should not be selected & & Nodes that do not pass the optionFilter cannot be selected
339
- disabled:
340
- path?.length === 1 ||
341
- (disabledTypes &&
342
- Boolean(disabledTypes.length) &&
343
- disabledTypes.includes(item.type)) ||
344
- item.disabled,
345
- icon: icon && icon(item),
346
- children: processDataSourceLabelRender({
347
- dataSource: item.children,
348
- prevPath: path,
349
- prevNamePath: namePath,
350
- disabledTypes,
351
- renderDisplayVarName,
352
- customFilterVar,
353
- }),
354
- };
355
- })
356
- // Filter nodes without output variables
357
- .filter(_item => {
358
- if (enableSelectNode) {
359
- // No filtering required if root node selection is allowed
360
- return true;
361
- }
362
- if (!_item.isTop) {
363
- return true;
364
- }
365
-
366
- if (isGlobalVariableKey(_item.key)) {
367
- return true;
368
- }
369
-
370
- return (_item.children || []).length > 0;
371
- }) as TreeNodeData[]
372
- );
373
- };
374
-
375
- export const getLabelPath = (
376
- dataSource: TreeNodeData[],
377
- value: string[],
378
- ): string[] => {
379
- if (!value?.length) {
380
- return [];
381
- }
382
- const path: string[] = [];
383
- let i = 0;
384
- let currValue = value.slice(0, i + 1).join('-');
385
-
386
- let cur = dataSource.find(item => item.value === currValue);
387
- while (cur && i < value.length) {
388
- path.push(cur.label || cur.name);
389
- i++;
390
- currValue = value.slice(0, i + 1).join('-');
391
- cur = cur.children?.find(item => item.value === currValue);
392
- }
393
- return path;
394
- };
395
-
396
- // Look up the mount node
397
- export const findActivityDOM = (node?: HTMLElement | null): HTMLElement => {
398
- if (!node) {
399
- return document.body;
400
- }
401
- if (node.classList.contains('gedit-flow-activity-node')) {
402
- return node;
403
- }
404
-
405
- if (node.parentElement) {
406
- return findActivityDOM(node.parentElement);
407
- }
408
-
409
- return document.body;
410
- };
411
-
412
- /** Go up and find the node information. */
413
- export const findNodeInfo = (
414
- node: TreeNodeData,
415
- ): {
416
- nodeTitle?: string;
417
- nodeType?: StandardNodeType;
418
- nodeId?: string;
419
- } => {
420
- if (node.parent) {
421
- return findNodeInfo(node.parent);
422
- }
423
- return {
424
- nodeTitle: node.nodeTitle,
425
- nodeType: node.nodeType,
426
- nodeId: node.nodeId,
427
- };
428
- };
429
-
430
- export const formatDataWithGlobalVariable = (data?: TreeNodeData[]) => {
431
- if (!data) {
432
- return [];
433
- }
434
-
435
- return data.map(item => {
436
- if (item.key && isGlobalVariableKey(item.key)) {
437
- return {
438
- groupId: 'global_variable',
439
- ...item,
440
- };
441
- }
442
-
443
- return item;
444
- });
445
- };
446
-
447
- const matchVariableDataByType = (
448
- data: VariableTreeDataNode[],
449
- type: ViewVariableType,
450
- ) =>
451
- data.map(item => {
452
- const { children = [], disabled, ...rest } = item;
453
-
454
- return {
455
- disabled: disabled || item.type !== type,
456
- children: matchVariableDataByType(children, type),
457
- ...rest,
458
- };
459
- });
460
-
461
- export const formatVariableDataByMatchType = (
462
- data?: VariableTreeDataNode[],
463
- type?: ViewVariableType,
464
- ) => {
465
- if (!data?.length || !type) {
466
- return data;
467
- }
468
-
469
- return data.map(item => {
470
- const { children = [], ...rest } = item;
471
- return {
472
- children: matchVariableDataByType(children, type),
473
- ...rest,
474
- };
475
- });
476
- };
477
-
478
- export const sortTreeDataByGroup = (
479
- treeData?: ITreeNodeData[],
480
- ): ITreeNodeData[] => {
481
- if (!treeData) {
482
- return [];
483
- }
484
-
485
- const groupMap: Record<string, ITreeNodeData[]> = {};
486
- const noGroupArr: ITreeNodeData[] = [];
487
-
488
- treeData.forEach(item => {
489
- if (item.groupId) {
490
- return groupMap[item.groupId]
491
- ? groupMap[item.groupId].push(item)
492
- : (groupMap[item.groupId] = [item]);
493
- }
494
- noGroupArr.push(item);
495
- });
496
-
497
- return Object.keys(groupMap)
498
- .reduce<ITreeNodeData[]>((acc, cur) => acc.concat(groupMap[cur]), [])
499
- .concat(noGroupArr);
500
- };
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 ReactNode } from 'react';
18
+
19
+ import { groupBy } from 'lodash-es';
20
+ import {
21
+ ViewVariableType,
22
+ type ViewVariableTreeNode,
23
+ variableUtils,
24
+ isGlobalVariableKey,
25
+ GlobalVariableKey,
26
+ GLOBAL_VAR_ALIAS_MAP,
27
+ } from '@coze-workflow/variable';
28
+ import {
29
+ type StandardNodeType,
30
+ VARIABLE_TYPE_ALIAS_MAP,
31
+ } from '@coze-workflow/base';
32
+ import { I18n } from '@coze-arch/i18n';
33
+ import { type TreeNodeData } from '@coze-arch/bot-semi/Tree';
34
+ import { Tooltip, Space } from '@coze-arch/coze-design';
35
+
36
+ import { VariableTypeTag } from '../variable-type-tag';
37
+ import { type VariableMetaWithNode } from '../../typings';
38
+ import {
39
+ type ITreeNodeData,
40
+ type CustomFilterVar,
41
+ type RenderDisplayVarName,
42
+ type VariableTreeDataNode,
43
+ } from './types';
44
+
45
+ /** Filter variables that do not match the criteria (types) */
46
+ export const doesNodeIncludeEnabledTypes = (
47
+ node: ViewVariableTreeNode,
48
+ enabledTypes: Array<ViewVariableType>,
49
+ ): boolean => {
50
+ if (enabledTypes.includes(node.type)) {
51
+ return true;
52
+ }
53
+
54
+ if (!node.children?.length) {
55
+ return false;
56
+ }
57
+
58
+ return node.children
59
+ .map(childNode => doesNodeIncludeEnabledTypes(childNode, enabledTypes))
60
+ .includes(true);
61
+ };
62
+
63
+ export const normalizeTreeData = (
64
+ dataSource: Array<ViewVariableTreeNode>,
65
+ disabledTypes: Array<ViewVariableType>,
66
+ ) => {
67
+ const enabledTypes = ViewVariableType.getComplement(disabledTypes);
68
+ return filterTreeNode(dataSource, node =>
69
+ doesNodeIncludeEnabledTypes(node, enabledTypes),
70
+ );
71
+ };
72
+
73
+ function filterTreeNode(
74
+ treeData: Array<ViewVariableTreeNode & { nodeId?: string }>,
75
+ condition: (item: ViewVariableTreeNode) => boolean,
76
+ parent?: VariableTreeDataNode,
77
+ ): Array<VariableTreeDataNode> {
78
+ return treeData.reduce<Array<VariableTreeDataNode>>((buf, item) => {
79
+ if (!condition(item)) {
80
+ return buf;
81
+ } else {
82
+ const { children, ...others } = item;
83
+
84
+ let value = item.key;
85
+ if (parent?.value) {
86
+ value = `${parent?.value}-${item.key}`;
87
+ } else if (item?.nodeId) {
88
+ value = `${item.nodeId}-${item.key}`;
89
+ }
90
+
91
+ const newItem: VariableTreeDataNode = {
92
+ ...others,
93
+ label: item.label || item.name,
94
+ value,
95
+ parent,
96
+ };
97
+
98
+ if (item.children) {
99
+ newItem.children = filterTreeNode(item.children, condition, newItem);
100
+ }
101
+
102
+ buf.push(newItem);
103
+ return buf;
104
+ }
105
+ }, []);
106
+ }
107
+
108
+ export function formatWithNodeVariables(
109
+ withNodeVariables: VariableMetaWithNode[],
110
+ disabledTypes: Array<ViewVariableType>,
111
+ ): VariableTreeDataNode[] {
112
+ const groupedVariableList = groupBy(withNodeVariables, 'nodeId');
113
+
114
+ return Object.entries(groupedVariableList)
115
+ .map(([key, value]) => {
116
+ const nodeVariables = normalizeTreeData(value, disabledTypes);
117
+
118
+ // Nodes without variables do not need to be displayed
119
+ if (!nodeVariables?.length) {
120
+ return null;
121
+ }
122
+
123
+ return {
124
+ label: value[0]?.nodeTitle ?? key,
125
+ value: key,
126
+ isTop: true,
127
+ type: ViewVariableType.Object,
128
+ children: nodeVariables,
129
+ nodeId: value[0]?.nodeId,
130
+ nodeType: value[0]?.nodeType,
131
+ nodeTitle: value[0]?.nodeTitle,
132
+ };
133
+ })
134
+ .filter(Boolean) as VariableTreeDataNode[];
135
+ }
136
+
137
+ export const renderLabelWithItem = (
138
+ item?: TreeNodeData,
139
+ forArrayItem?: boolean,
140
+ searchKey?: string,
141
+ testId = '',
142
+ // eslint-disable-next-line max-params
143
+ ) => {
144
+ if (!item) {
145
+ return null;
146
+ }
147
+
148
+ const { label, type } = item;
149
+
150
+ let searchLabelIndex = 0;
151
+
152
+ let renderLabel = label;
153
+
154
+ if (searchKey && label) {
155
+ const labelStr = String(label);
156
+ searchLabelIndex = labelStr.toLowerCase().indexOf(searchKey.toLowerCase());
157
+ if (searchLabelIndex >= 0) {
158
+ renderLabel = (
159
+ <>
160
+ {labelStr.substring(0, searchLabelIndex)}
161
+ <span className="coz-fg-hglt-yellow">
162
+ {labelStr.substring(
163
+ searchLabelIndex,
164
+ searchLabelIndex + searchKey.length,
165
+ )}
166
+ </span>
167
+ {labelStr.substring(
168
+ searchLabelIndex + searchKey.length,
169
+ labelStr.length,
170
+ )}
171
+ </>
172
+ );
173
+ }
174
+ }
175
+
176
+ if (!type) {
177
+ return <div data-testid={testId}>{renderLabel}</div>;
178
+ }
179
+
180
+ if (forArrayItem && variableUtils.ARRAY_TYPES.includes(type)) {
181
+ return (
182
+ <Tooltip
183
+ content={I18n.t('workflow_detail_batch_item_tooltip', {
184
+ name: label,
185
+ })}
186
+ position="left"
187
+ style={{ maxWidth: 800, display: 'block', wordBreak: 'break-word' }}
188
+ spacing={16}
189
+ // The canvas can move freely, but flipping will lead to wrong positioning.
190
+ autoAdjustOverflow={false}
191
+ >
192
+ <Space spacing={4}>
193
+ <span className="tree-variable-select-label">
194
+ {renderLabel}
195
+ <>{' [n]'}</>
196
+ </span>
197
+ <VariableTypeTag size="xs">
198
+ {VARIABLE_TYPE_ALIAS_MAP[type]}
199
+ </VariableTypeTag>
200
+ </Space>
201
+ </Tooltip>
202
+ );
203
+ }
204
+
205
+ return (
206
+ <Space spacing={4}>
207
+ <span data-testid={testId} className="tree-variable-select-label">
208
+ {renderLabel}
209
+ </span>
210
+ <VariableTypeTag size="xs">
211
+ {VARIABLE_TYPE_ALIAS_MAP[type]}
212
+ </VariableTypeTag>
213
+ </Space>
214
+ );
215
+ };
216
+
217
+ export const genGlobalVariableData = (
218
+ dataSource: VariableTreeDataNode[] = [],
219
+ ) => {
220
+ const global = [
221
+ {
222
+ label: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.User],
223
+ value: GlobalVariableKey.User,
224
+ children: [],
225
+ isTop: true,
226
+ type: ViewVariableType.Object,
227
+ nodeId: GlobalVariableKey.User,
228
+ nodeType: undefined,
229
+ nodeTitle: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.User],
230
+ },
231
+ {
232
+ label: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.App],
233
+ value: GlobalVariableKey.App,
234
+ children: [],
235
+ isTop: true,
236
+ type: ViewVariableType.Object,
237
+ nodeId: GlobalVariableKey.App,
238
+ nodeType: undefined,
239
+ nodeTitle: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.App],
240
+ },
241
+ {
242
+ label: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.System],
243
+ value: GlobalVariableKey.System,
244
+ children: [],
245
+ isTop: true,
246
+ type: ViewVariableType.Object,
247
+ nodeId: GlobalVariableKey.System,
248
+ nodeType: undefined,
249
+ nodeTitle: GLOBAL_VAR_ALIAS_MAP[GlobalVariableKey.System],
250
+ },
251
+ ] as unknown as VariableTreeDataNode[];
252
+
253
+ const others: VariableTreeDataNode[] = [];
254
+
255
+ dataSource?.forEach(item => {
256
+ if (!isGlobalVariableKey(item.value)) {
257
+ others.push(item);
258
+ } else {
259
+ const index = global.findIndex(
260
+ globalVar => globalVar.value === item.value,
261
+ );
262
+ if (index !== -1) {
263
+ global[index] = item;
264
+ }
265
+ }
266
+ });
267
+
268
+ return [...global, ...others];
269
+ };
270
+
271
+ /**
272
+ * Process DataSource data, add partial fields/renders
273
+ * For TreeSelect, you need to put the path on each dataSource Item to help TreeSelect determine the path when selecting.
274
+ */
275
+ export const processDataSourceLabelRender = (params: {
276
+ dataSource?: VariableTreeDataNode[];
277
+ disabledTypes?: Array<ViewVariableType>;
278
+ prevPath?: string[];
279
+ prevNamePath?: string[];
280
+ icon?: (node: VariableTreeDataNode) => ReactNode | undefined;
281
+ renderDisplayVarName?: RenderDisplayVarName;
282
+ customFilterVar?: CustomFilterVar;
283
+ enableSelectNode?: boolean;
284
+ }): TreeNodeData[] | undefined => {
285
+ const {
286
+ dataSource,
287
+ prevPath,
288
+ prevNamePath,
289
+ disabledTypes,
290
+ icon,
291
+ renderDisplayVarName,
292
+ customFilterVar,
293
+ enableSelectNode,
294
+ } = params;
295
+
296
+ if (!dataSource) {
297
+ return undefined;
298
+ }
299
+ if (!dataSource.length) {
300
+ return [];
301
+ }
302
+
303
+ return (
304
+ dataSource
305
+ .filter(
306
+ item =>
307
+ item.isTop ||
308
+ (customFilterVar
309
+ ? customFilterVar({
310
+ meta: item,
311
+ path: [...(prevPath || []), item.key || item.value],
312
+ })
313
+ : item.name),
314
+ )
315
+ .map(item => {
316
+ const path: string[] = [
317
+ ...(prevPath || []),
318
+ item.key || item.value,
319
+ ] as string[];
320
+
321
+ const namePath: string[] = [
322
+ ...(prevNamePath || []),
323
+ item.name ?? item.value,
324
+ ];
325
+
326
+ let { label } = item;
327
+ if (renderDisplayVarName && !item.isTop) {
328
+ label = renderDisplayVarName({ meta: item, path });
329
+ }
330
+
331
+ return {
332
+ ...item,
333
+ label,
334
+ key: path.join('-') as string,
335
+ path,
336
+ namePath,
337
+ // TODO: can also be judged by disableTypes
338
+ // Nodes in the first layer should not be selected & & Nodes that do not pass the optionFilter cannot be selected
339
+ disabled:
340
+ path?.length === 1 ||
341
+ (disabledTypes &&
342
+ Boolean(disabledTypes.length) &&
343
+ disabledTypes.includes(item.type)) ||
344
+ item.disabled,
345
+ icon: icon && icon(item),
346
+ children: processDataSourceLabelRender({
347
+ dataSource: item.children,
348
+ prevPath: path,
349
+ prevNamePath: namePath,
350
+ disabledTypes,
351
+ renderDisplayVarName,
352
+ customFilterVar,
353
+ }),
354
+ };
355
+ })
356
+ // Filter nodes without output variables
357
+ .filter(_item => {
358
+ if (enableSelectNode) {
359
+ // No filtering required if root node selection is allowed
360
+ return true;
361
+ }
362
+ if (!_item.isTop) {
363
+ return true;
364
+ }
365
+
366
+ if (isGlobalVariableKey(_item.key)) {
367
+ return true;
368
+ }
369
+
370
+ return (_item.children || []).length > 0;
371
+ }) as TreeNodeData[]
372
+ );
373
+ };
374
+
375
+ export const getLabelPath = (
376
+ dataSource: TreeNodeData[],
377
+ value: string[],
378
+ ): string[] => {
379
+ if (!value?.length) {
380
+ return [];
381
+ }
382
+ const path: string[] = [];
383
+ let i = 0;
384
+ let currValue = value.slice(0, i + 1).join('-');
385
+
386
+ let cur = dataSource.find(item => item.value === currValue);
387
+ while (cur && i < value.length) {
388
+ path.push(cur.label || cur.name);
389
+ i++;
390
+ currValue = value.slice(0, i + 1).join('-');
391
+ cur = cur.children?.find(item => item.value === currValue);
392
+ }
393
+ return path;
394
+ };
395
+
396
+ // Look up the mount node
397
+ export const findActivityDOM = (node?: HTMLElement | null): HTMLElement => {
398
+ if (!node) {
399
+ return document.body;
400
+ }
401
+ if (node.classList.contains('gedit-flow-activity-node')) {
402
+ return node;
403
+ }
404
+
405
+ if (node.parentElement) {
406
+ return findActivityDOM(node.parentElement);
407
+ }
408
+
409
+ return document.body;
410
+ };
411
+
412
+ /** Go up and find the node information. */
413
+ export const findNodeInfo = (
414
+ node: TreeNodeData,
415
+ ): {
416
+ nodeTitle?: string;
417
+ nodeType?: StandardNodeType;
418
+ nodeId?: string;
419
+ } => {
420
+ if (node.parent) {
421
+ return findNodeInfo(node.parent);
422
+ }
423
+ return {
424
+ nodeTitle: node.nodeTitle,
425
+ nodeType: node.nodeType,
426
+ nodeId: node.nodeId,
427
+ };
428
+ };
429
+
430
+ export const formatDataWithGlobalVariable = (data?: TreeNodeData[]) => {
431
+ if (!data) {
432
+ return [];
433
+ }
434
+
435
+ return data.map(item => {
436
+ if (item.key && isGlobalVariableKey(item.key)) {
437
+ return {
438
+ groupId: 'global_variable',
439
+ ...item,
440
+ };
441
+ }
442
+
443
+ return item;
444
+ });
445
+ };
446
+
447
+ const matchVariableDataByType = (
448
+ data: VariableTreeDataNode[],
449
+ type: ViewVariableType,
450
+ ) =>
451
+ data.map(item => {
452
+ const { children = [], disabled, ...rest } = item;
453
+
454
+ return {
455
+ disabled: disabled || item.type !== type,
456
+ children: matchVariableDataByType(children, type),
457
+ ...rest,
458
+ };
459
+ });
460
+
461
+ export const formatVariableDataByMatchType = (
462
+ data?: VariableTreeDataNode[],
463
+ type?: ViewVariableType,
464
+ ) => {
465
+ if (!data?.length || !type) {
466
+ return data;
467
+ }
468
+
469
+ return data.map(item => {
470
+ const { children = [], ...rest } = item;
471
+ return {
472
+ children: matchVariableDataByType(children, type),
473
+ ...rest,
474
+ };
475
+ });
476
+ };
477
+
478
+ export const sortTreeDataByGroup = (
479
+ treeData?: ITreeNodeData[],
480
+ ): ITreeNodeData[] => {
481
+ if (!treeData) {
482
+ return [];
483
+ }
484
+
485
+ const groupMap: Record<string, ITreeNodeData[]> = {};
486
+ const noGroupArr: ITreeNodeData[] = [];
487
+
488
+ treeData.forEach(item => {
489
+ if (item.groupId) {
490
+ return groupMap[item.groupId]
491
+ ? groupMap[item.groupId].push(item)
492
+ : (groupMap[item.groupId] = [item]);
493
+ }
494
+ noGroupArr.push(item);
495
+ });
496
+
497
+ return Object.keys(groupMap)
498
+ .reduce<ITreeNodeData[]>((acc, cur) => acc.concat(groupMap[cur]), [])
499
+ .concat(noGroupArr);
500
+ };