@fudanda/workflow 1.20261015.1-beta.1 → 2.20261024.1-beta.2

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 (292) 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 +3 -3
  8. package/dist/observation-types.d.ts +6 -0
  9. package/dist/prompt-kit.d.ts +1 -1
  10. package/dist/{start-form-D_J3UIoE.js → start-form-L6xw9phk.js} +125 -125
  11. package/dist/templates.d.ts +1 -1
  12. package/package.json +106 -105
  13. package/vendor/coze/LICENSE-APACHE +177 -177
  14. package/vendor/coze/UPSTREAM.json +2 -2
  15. package/vendor/coze/original/base-test-button.tsx +22 -22
  16. package/vendor/coze/original/comment-container.tsx +68 -68
  17. package/vendor/coze/original/condition-container.tsx +60 -60
  18. package/vendor/coze/original/condition-tag.tsx +58 -58
  19. package/vendor/coze/original/coze-global.less +234 -234
  20. package/vendor/coze/original/create-loop-function-json.ts +134 -134
  21. package/vendor/coze/original/create-loop-function.ts +56 -56
  22. package/vendor/coze/original/end-registry.ts +41 -41
  23. package/vendor/coze/original/execute-result-panel.less +97 -97
  24. package/vendor/coze/original/execute-result-panel.tsx +171 -171
  25. package/vendor/coze/original/form-item.less +39 -39
  26. package/vendor/coze/original/form-item.tsx +200 -200
  27. package/vendor/coze/original/http-api-field.tsx +42 -42
  28. package/vendor/coze/original/http-form-render.tsx +102 -102
  29. package/vendor/coze/original/icon-add.svg +3 -3
  30. package/vendor/coze/original/icon-arrow-left.svg +3 -3
  31. package/vendor/coze/original/icon-auto-layout.svg +18 -18
  32. package/vendor/coze/original/icon-code.svg +13 -13
  33. package/vendor/coze/original/icon-condition.svg +12 -12
  34. package/vendor/coze/original/icon-database.svg +18 -18
  35. package/vendor/coze/original/icon-delete.svg +5 -5
  36. package/vendor/coze/original/icon-fullscreen.svg +9 -9
  37. package/vendor/coze/original/icon-more.svg +11 -11
  38. package/vendor/coze/original/icon-play-round-outlined.svg +8 -8
  39. package/vendor/coze/original/icon-plugin-tool.svg +6 -6
  40. package/vendor/coze/original/icon-standard-copy.svg +8 -8
  41. package/vendor/coze/original/icon-unknown.svg +7 -7
  42. package/vendor/coze/original/icon-var.svg +6 -6
  43. package/vendor/coze/original/icon-workflow-end.svg +5 -5
  44. package/vendor/coze/original/icon-workflow-start.svg +5 -5
  45. package/vendor/coze/original/icon-workflow.svg +21 -21
  46. package/vendor/coze/original/icon-workflows.svg +5 -5
  47. package/vendor/coze/original/if-form-meta.tsx +88 -88
  48. package/vendor/coze/original/logic-display.tsx +33 -33
  49. package/vendor/coze/original/mouse-icon.tsx +35 -35
  50. package/vendor/coze/original/mouse-pad-selector.tsx +180 -180
  51. package/vendor/coze/original/node-card.tsx +77 -77
  52. package/vendor/coze/original/node-category-panel.less +4 -4
  53. package/vendor/coze/original/node-category-panel.tsx +53 -53
  54. package/vendor/coze/original/node-config-form.tsx +67 -67
  55. package/vendor/coze/original/node-header.less +165 -165
  56. package/vendor/coze/original/node-header.tsx +552 -552
  57. package/vendor/coze/original/node-panel.less +183 -183
  58. package/vendor/coze/original/node-render.less +20 -20
  59. package/vendor/coze/original/node-side-sheet.less +57 -57
  60. package/vendor/coze/original/node-side-sheet.tsx +214 -214
  61. package/vendor/coze/original/node-wrapper.tsx +71 -71
  62. package/vendor/coze/original/pad-icon.tsx +45 -45
  63. package/vendor/coze/original/resizable-side-panel-constants.ts +18 -18
  64. package/vendor/coze/original/resizable-side-panel.tsx +42 -42
  65. package/vendor/coze/original/start-registry.ts +53 -53
  66. package/vendor/coze/original/sub-canvas-background.less +4 -4
  67. package/vendor/coze/original/sub-canvas-background.tsx +48 -48
  68. package/vendor/coze/original/sub-canvas-container.less +16 -16
  69. package/vendor/coze/original/sub-canvas-container.tsx +97 -97
  70. package/vendor/coze/original/sub-canvas-header.less +75 -75
  71. package/vendor/coze/original/sub-canvas-header.tsx +95 -95
  72. package/vendor/coze/original/test-form-sheet-header.tsx +82 -82
  73. package/vendor/coze/original/test-form-sheet.less +178 -178
  74. package/vendor/coze/original/toolbar-add-node.tsx +68 -68
  75. package/vendor/coze/original/toolbar-auto-layout.tsx +61 -61
  76. package/vendor/coze/original/toolbar-comment.tsx +121 -121
  77. package/vendor/coze/original/toolbar-container.tsx +42 -42
  78. package/vendor/coze/original/toolbar-interactive.tsx +98 -98
  79. package/vendor/coze/original/toolbar-minimap-switch.tsx +41 -41
  80. package/vendor/coze/original/toolbar-tools.less +46 -46
  81. package/vendor/coze/original/toolbar-tools.tsx +89 -89
  82. package/vendor/coze/original/toolbar-zoom.tsx +134 -134
  83. package/vendor/coze/original/tree-variable-selector.less +291 -291
  84. package/vendor/coze/original/tree-variable-selector.tsx +298 -298
  85. package/vendor/coze/original/workflow-document-custom-options.ts +151 -151
  86. package/vendor/coze/original/workflow-header.less +65 -65
  87. package/vendor/coze/original/workflow-header.tsx +85 -85
  88. package/vendor/coze/source/agent-models/model-option/index.module.less +18 -18
  89. package/vendor/coze/source/agent-models/model-option/index.tsx +321 -321
  90. package/vendor/coze/source/agent-models/model-option-avatar/index.tsx +175 -175
  91. package/vendor/coze/source/agent-models/model-option-group/index.tsx +87 -87
  92. package/vendor/coze/source/agent-models/model-option-thumb/index.tsx +41 -41
  93. package/vendor/coze/source/agent-models/model-select-ui/index.tsx +238 -238
  94. package/vendor/coze/source/agent-models/popover-model-list-view/index.tsx +146 -146
  95. package/vendor/coze/source/components/code-editor/text-editor.tsx +71 -71
  96. package/vendor/coze/source/components/comment/components/editor/block.tsx +117 -117
  97. package/vendor/coze/source/components/comment/components/editor/leaf.tsx +64 -64
  98. package/vendor/coze/source/components/comment/components/toolbar.tsx +366 -366
  99. package/vendor/coze/source/components/comment/constant.ts +94 -94
  100. package/vendor/coze/source/components/editor-container/expand-editor/index.module.less +107 -107
  101. package/vendor/coze/source/components/editor-container/expand-editor/index.tsx +117 -117
  102. package/vendor/coze/source/components/model-select/components/model-setting.tsx +300 -300
  103. package/vendor/coze/source/components/model-select/components/settings.tsx +144 -144
  104. package/vendor/coze/source/components/model-select/index.module.less +34 -34
  105. package/vendor/coze/source/components/model-select/utils/index.tsx +100 -100
  106. package/vendor/coze/source/components/node-render/node-render-new/fields/constants.tsx +79 -79
  107. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.module.less +12 -12
  108. package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.tsx +37 -37
  109. package/vendor/coze/source/components/node-render/node-render-new/fields/field.module.less +19 -19
  110. package/vendor/coze/source/components/node-render/node-render-new/fields/field.tsx +52 -52
  111. package/vendor/coze/source/components/node-render/node-render-new/fields/http-api-field/index.tsx +42 -42
  112. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.module.less +47 -47
  113. package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.tsx +162 -162
  114. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.module.less +48 -48
  115. package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.tsx +126 -126
  116. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.module.less +97 -97
  117. package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.tsx +171 -171
  118. package/vendor/coze/source/components/sub-canvas/components/background/index.module.less +4 -4
  119. package/vendor/coze/source/components/sub-canvas/components/header/index.module.less +75 -75
  120. package/vendor/coze/source/components/test-run/test-run-button/single-node.tsx +158 -158
  121. package/vendor/coze/source/execution-panel/panel.module.less +48 -48
  122. package/vendor/coze/source/execution-panel/panel.tsx +99 -99
  123. package/vendor/coze/source/execution-panel/use-resize.ts +79 -79
  124. package/vendor/coze/source/external/features/log/components/data-viewer/constants.ts +28 -28
  125. package/vendor/coze/source/external/features/log/components/data-viewer/context/context.ts +21 -21
  126. package/vendor/coze/source/external/features/log/components/data-viewer/context/create-store.ts +48 -48
  127. package/vendor/coze/source/external/features/log/components/data-viewer/context/index.ts +19 -19
  128. package/vendor/coze/source/external/features/log/components/data-viewer/context/provider.tsx +50 -50
  129. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.module.less +26 -26
  130. package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.tsx +79 -79
  131. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/index.ts +18 -18
  132. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-data-viewer-store.ts +29 -29
  133. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-expand.ts +35 -35
  134. package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-value.tsx +66 -66
  135. package/vendor/coze/source/external/features/log/components/data-viewer/index.tsx +21 -21
  136. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/index.tsx +186 -186
  137. package/vendor/coze/source/external/features/log/components/data-viewer/json-field/json-field.module.less +79 -79
  138. package/vendor/coze/source/external/features/log/components/data-viewer/types.ts +50 -50
  139. package/vendor/coze/source/external/features/log/components/data-viewer/utils/big-number.ts +35 -35
  140. package/vendor/coze/source/external/features/log/components/data-viewer/utils/generate-field.ts +104 -104
  141. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.module.less +27 -27
  142. package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.tsx +109 -109
  143. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.module.less +52 -52
  144. package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.tsx +113 -113
  145. package/vendor/coze/source/form/components/field-empty.tsx +45 -45
  146. package/vendor/coze/source/form/components/section.tsx +91 -91
  147. package/vendor/coze/source/form-extensions/components/add-item-button/index.tsx +64 -64
  148. package/vendor/coze/source/form-extensions/components/form-card/index.module.less +131 -131
  149. package/vendor/coze/source/form-extensions/components/form-card/index.tsx +309 -309
  150. package/vendor/coze/source/form-extensions/components/form-item/index.module.less +39 -39
  151. package/vendor/coze/source/form-extensions/components/form-item/index.tsx +200 -200
  152. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.module.less +7 -7
  153. package/vendor/coze/source/form-extensions/components/form-item-feedback/index.tsx +39 -39
  154. package/vendor/coze/source/form-extensions/components/level-line/index.module.less +346 -346
  155. package/vendor/coze/source/form-extensions/components/level-line/index.ts +17 -17
  156. package/vendor/coze/source/form-extensions/components/level-line/level-line.tsx +460 -460
  157. package/vendor/coze/source/form-extensions/components/level-line/types.ts +38 -38
  158. package/vendor/coze/source/form-extensions/components/level-line/utils.ts +60 -60
  159. package/vendor/coze/source/form-extensions/components/literal-value-input/constants.ts +61 -61
  160. package/vendor/coze/source/form-extensions/components/literal-value-input/input-boolean.tsx +80 -80
  161. package/vendor/coze/source/form-extensions/components/literal-value-input/input-integer.tsx +68 -68
  162. package/vendor/coze/source/form-extensions/components/literal-value-input/input-number.tsx +62 -62
  163. package/vendor/coze/source/form-extensions/components/literal-value-input/input-select.tsx +59 -59
  164. package/vendor/coze/source/form-extensions/components/literal-value-input/input-string.tsx +55 -55
  165. package/vendor/coze/source/form-extensions/components/literal-value-input/literal-value-input.tsx +35 -35
  166. package/vendor/coze/source/form-extensions/components/literal-value-input/styles.module.less +46 -46
  167. package/vendor/coze/source/form-extensions/components/literal-value-input/type.ts +61 -61
  168. package/vendor/coze/source/form-extensions/components/literal-value-input/utils.tsx +117 -117
  169. package/vendor/coze/source/form-extensions/components/node-header/components/close-button.tsx +44 -44
  170. package/vendor/coze/source/form-extensions/components/node-header/description-display.tsx +52 -52
  171. package/vendor/coze/source/form-extensions/components/node-header/description.tsx +131 -131
  172. package/vendor/coze/source/form-extensions/components/node-header/index.module.less +165 -165
  173. package/vendor/coze/source/form-extensions/components/node-header/index.tsx +552 -552
  174. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-btn/index.tsx +43 -43
  175. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/default-value-input.tsx +276 -276
  176. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.module.less +124 -124
  177. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.tsx +131 -131
  178. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/types.ts +32 -32
  179. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.module.less +38 -38
  180. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.tsx +101 -101
  181. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.module.less +51 -51
  182. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.tsx +107 -107
  183. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.module.less +17 -17
  184. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.tsx +53 -53
  185. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/constants.tsx +77 -77
  186. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.module.less +97 -97
  187. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.tsx +155 -155
  188. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.ts +38 -38
  189. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.module.less +138 -138
  190. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.tsx +360 -360
  191. package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.ts +88 -88
  192. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.module.less +36 -36
  193. package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.tsx +104 -104
  194. package/vendor/coze/source/form-extensions/components/output-tree/constants.ts +22 -22
  195. package/vendor/coze/source/form-extensions/components/output-tree/context.ts +28 -28
  196. package/vendor/coze/source/form-extensions/components/output-tree/hooks/use-columns-style.ts +39 -39
  197. package/vendor/coze/source/form-extensions/components/output-tree/index.module.less +83 -83
  198. package/vendor/coze/source/form-extensions/components/output-tree/index.tsx +692 -692
  199. package/vendor/coze/source/form-extensions/components/output-tree/utils.ts +185 -185
  200. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/index.tsx +97 -97
  201. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/option-item.tsx +30 -30
  202. package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/types.ts +23 -23
  203. package/vendor/coze/source/form-extensions/components/setting-on-error/components/retry-times/index.tsx +45 -45
  204. package/vendor/coze/source/form-extensions/components/setting-on-error/components/timeout/index.tsx +102 -102
  205. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-option.tsx +167 -167
  206. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-tree-panel.tsx +165 -165
  207. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.module.less +96 -96
  208. package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.tsx +265 -265
  209. package/vendor/coze/source/form-extensions/components/tree-variable-selector/context.tsx +42 -42
  210. package/vendor/coze/source/form-extensions/components/tree-variable-selector/expand-icon.tsx +30 -30
  211. package/vendor/coze/source/form-extensions/components/tree-variable-selector/index.module.less +291 -291
  212. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.module.less +48 -48
  213. package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.tsx +149 -149
  214. package/vendor/coze/source/form-extensions/components/tree-variable-selector/utils.tsx +500 -500
  215. package/vendor/coze/source/form-extensions/components/tree-variable-selector/value-display.tsx +130 -130
  216. package/vendor/coze/source/form-extensions/components/value-expression-input/const.ts +68 -68
  217. package/vendor/coze/source/form-extensions/components/value-expression-input/context.ts +27 -27
  218. package/vendor/coze/source/form-extensions/components/value-expression-input/index.module.less +144 -144
  219. package/vendor/coze/source/form-extensions/components/value-expression-input/value-expression-input.tsx +418 -418
  220. package/vendor/coze/source/form-extensions/components/variable-type-selector/constants.tsx +77 -77
  221. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.module.less +31 -31
  222. package/vendor/coze/source/form-extensions/components/variable-type-selector/index.tsx +17 -17
  223. package/vendor/coze/source/form-extensions/components/variable-type-selector/utils.tsx +298 -298
  224. package/vendor/coze/source/form-extensions/components/variable-type-selector/variable-type-selector.tsx +235 -235
  225. package/vendor/coze/source/form-extensions/components/variable-type-tag/index.tsx +54 -54
  226. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.module.less +9 -9
  227. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.tsx +249 -249
  228. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-header.tsx +50 -50
  229. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.module.less +13 -13
  230. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.tsx +73 -73
  231. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.module.less +10 -10
  232. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.tsx +42 -42
  233. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.module.less +9 -9
  234. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.tsx +254 -254
  235. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.module.less +7 -7
  236. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.tsx +144 -144
  237. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/value-expression-with-state/index.tsx +69 -69
  238. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/context.ts +36 -36
  239. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch-preview.tsx +44 -44
  240. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch.tsx +152 -152
  241. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/container.tsx +19 -19
  242. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/custom-drag-layer.tsx +117 -117
  243. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/types.ts +18 -18
  244. package/vendor/coze/source/form-extensions/setters/condition/multi-condition/types.ts +58 -58
  245. package/vendor/coze/source/node-registries/end/components/terminate-plan-field.tsx +29 -29
  246. package/vendor/coze/source/node-registries/end/constants.ts +34 -34
  247. package/vendor/coze/source/node-registries/end/form.tsx +66 -66
  248. package/vendor/coze/source/node-registries/end/types.ts +45 -45
  249. package/vendor/coze/source/node-registries/http/components/base-editor/raw-text-editor.tsx +80 -80
  250. package/vendor/coze/source/node-registries/http/constants.ts +80 -80
  251. package/vendor/coze/source/node-registries/http/fields/json-import-editor/index.module.less +191 -191
  252. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-expand-editor.tsx +141 -141
  253. package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-import.tsx +99 -99
  254. package/vendor/coze/source/node-registries/http/form-render.tsx +102 -102
  255. package/vendor/coze/source/node-registries/http/setters/api/curl-expand-editor.tsx +161 -161
  256. package/vendor/coze/source/node-registries/http/setters/api/curl-import.tsx +96 -96
  257. package/vendor/coze/source/node-registries/http/setters/api/index.module.less +199 -199
  258. package/vendor/coze/source/node-registries/http/setters/api/index.tsx +149 -149
  259. package/vendor/coze/source/node-registries/http/setters/api/utils.ts +41 -41
  260. package/vendor/coze/source/node-registries/http/setters/body/index.tsx +201 -201
  261. package/vendor/coze/source/node-registries/http/setters/constants.ts +83 -83
  262. package/vendor/coze/source/node-registries/if/components/else/index.tsx +41 -41
  263. package/vendor/coze/source/node-registries/intent/components/intents/index.module.less +14 -14
  264. package/vendor/coze/source/node-registries/intent/components/intents/option-item/index.tsx +189 -189
  265. package/vendor/coze/source/node-registries/json-stringify/constants.ts +32 -32
  266. package/vendor/coze/source/node-registries/json-stringify/form.tsx +46 -46
  267. package/vendor/coze/source/node-registries/loop/constants.ts +43 -43
  268. package/vendor/coze/source/node-registries/loop/loop-fields/loop-settings-section/index.tsx +48 -48
  269. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/index.tsx +81 -81
  270. package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/options.ts +34 -34
  271. package/vendor/coze/source/node-registries/start/form.tsx +209 -209
  272. package/vendor/coze/source/node-registries/text-process/components/method-selector/index.tsx +46 -46
  273. package/vendor/coze/source/node-registries/text-process/constants.ts +132 -132
  274. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.module.less +7 -7
  275. package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.tsx +47 -47
  276. package/vendor/coze/source/nodes-v2/components/system-prompt/index.module.less +66 -66
  277. package/vendor/coze/source/nodes-v2/components/system-prompt/prompt-kit-bar.tsx +129 -129
  278. package/vendor/coze/source/nodes-v2/components/system-prompt/system-prompt-editor.tsx +110 -110
  279. package/vendor/coze/source/nodes-v2/llm/user-prompt/index.tsx +64 -64
  280. package/vendor/coze/source/prompt-kit/input-config-popover/index.tsx +80 -80
  281. package/vendor/coze/source/prompt-kit/input-slot-widget/index.css +34 -34
  282. package/vendor/coze/source/prompt-kit/input-slot-widget/index.ts +169 -169
  283. package/vendor/coze/source/prompt-kit/library-item.tsx +141 -141
  284. package/vendor/coze/source/prompt-kit/prompt-info-input.tsx +90 -90
  285. package/vendor/coze/source/ui-components/add-operation/index.module.less +19 -19
  286. package/vendor/coze/source/ui-components/add-operation/index.tsx +67 -67
  287. package/vendor/coze/source/ui-components/auto-size-tooltip/index.module.less +39 -39
  288. package/vendor/coze/source/ui-components/auto-size-tooltip/index.tsx +74 -74
  289. package/vendor/coze/source/ui-components/workflow-sl-input/index.module.less +36 -36
  290. package/vendor/coze/source/ui-components/workflow-sl-input/index.tsx +194 -194
  291. package/vendor/coze/source/utils/create-slots/index.tsx +126 -126
  292. 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
+ };