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