@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,418 +1,418 @@
1
- /*
2
- * Copyright 2025 coze-dev Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- /* eslint-disable complexity -- no need to check */
18
- import React, {
19
- useCallback,
20
- type CSSProperties,
21
- useState,
22
- useMemo,
23
- useRef,
24
- } from 'react';
25
-
26
- import classnames from 'classnames';
27
- import { type SchemaObject } from 'ajv';
28
- import {
29
- ValueExpression,
30
- ValueExpressionType,
31
- ViewVariableType,
32
- useNodeTestId,
33
- type LiteralExpression,
34
- } from '@coze-workflow/base';
35
- import { I18n } from '@coze-arch/i18n';
36
- import { type SelectProps } from '@coze-arch/bot-semi/Select';
37
- import { IconCozApply } from '@coze-arch/coze-design/icons';
38
- import { IconButton } from '@coze-arch/coze-design';
39
-
40
- import { useRefInputNode } from '@/hooks/use-ref-input';
41
- import {
42
- LiteralValueInput,
43
- type LiteralValueType,
44
- type InputType as LiteralInputType,
45
- } from '@/form-extensions/components/literal-value-input';
46
-
47
- import {
48
- type RenderDisplayVarName,
49
- type CustomFilterVar,
50
- } from '../tree-variable-selector/types';
51
- import { FileInput } from '../file-input';
52
- import { type VariableSelectorProps } from '../../components/tree-variable-selector';
53
- import { VoiceTag } from './voice/voice-option';
54
- import useVoice from './voice/use-voice';
55
- import {
56
- type RefTagColor,
57
- type RefValueDisplayProps,
58
- } from './ref-value-display';
59
- import { ObjectRefValueDisplay } from './object-ref-display';
60
- import { ValueExpressionInputContext } from './context';
61
- import { SELECT_POPOVER_MIN_WIDTH, VARIABLE_SELECTOR_STYLE } from './const';
62
-
63
- import styles from './index.module.less';
64
-
65
- export interface ValueExpressionInputProps {
66
- className?: string;
67
- testId?: string;
68
- value: ValueExpression | undefined;
69
- onChange: (value: ValueExpression | undefined) => void;
70
- onBlur?: () => void;
71
- disabled?: boolean;
72
- /**
73
- * After specifying inputType, the parameter type is fixed and cannot be switched, but variables that are not of this data type can still be selected, and the running state will perform type conversion
74
- */
75
- inputType?: LiteralInputType;
76
- /**
77
- * You can switch between several specified types. When length = 1, the usage is the same as inputType.
78
- * Effective only in TypedValueExpressionInput
79
- * When inputType is specified at the same time, the union of two props is taken
80
- */
81
- inputTypes?: LiteralInputType[];
82
- /**
83
- * Default selected data type
84
- */
85
- defaultInputType?: LiteralInputType;
86
- availableFileTypes?: Array<ViewVariableType>;
87
- validateStatus?: SelectProps['validateStatus'];
88
- optionFilter?: VariableSelectorProps['optionFilter'];
89
- handleDataSource?: VariableSelectorProps['handleDataSource'];
90
- invalidContent?: string;
91
- style?: CSSProperties;
92
- selectStyle?: CSSProperties;
93
- literalStyle?: CSSProperties;
94
- variableTagStyle?: CSSProperties;
95
- readonly?: boolean;
96
- /** Prohibited data types */
97
- disabledTypes?: Array<ViewVariableType>;
98
- literalDisabled?: boolean;
99
-
100
- /** Whether to disable variable reference mode */
101
- refDisabled?: boolean;
102
- literalConfig?: {
103
- min?: number;
104
- max?: number;
105
- optionsList?: { label: string; value: string }[];
106
- /**
107
- * Schema configuration of object types for json editor code hints and validation
108
- */
109
- jsonSchema?: SchemaObject;
110
- };
111
- showClear?: boolean;
112
- customFilterVar?: CustomFilterVar;
113
- refTagColor?: RefTagColor;
114
- placeholder?: string;
115
- inputPlaceholder?: string;
116
- renderDisplayVarName?: RenderDisplayVarName;
117
- hideSettingIcon?: boolean;
118
- hideDeleteIcon?: boolean;
119
- enableSelectNode?: boolean;
120
- variablesDatasource?: VariableSelectorProps['dataSource'];
121
- /**
122
- * Forbid type conversion. Switching variable types is not supported when a reference variable (ValueExpression) is selected
123
- */
124
- forbidTypeCast?: boolean;
125
- /* Type restrictions, when the reference type does not meet the restrictions, a warning message is displayed */
126
- variableTypeConstraints?: RefValueDisplayProps['variableTypeConstraints'];
127
- }
128
-
129
- export const ValueExpressionInput = ({
130
- className,
131
- value,
132
- onChange,
133
- onBlur,
134
- disabled,
135
- variablesDatasource: variablesDataSource,
136
- inputType = ViewVariableType.String,
137
- availableFileTypes = [],
138
- validateStatus,
139
- invalidContent,
140
- style,
141
- literalStyle,
142
- readonly,
143
- testId,
144
- disabledTypes,
145
- optionFilter,
146
- literalDisabled = false,
147
- refDisabled = false,
148
- showClear = false,
149
- hideDeleteIcon = false,
150
- hideSettingIcon = false,
151
- enableSelectNode = false,
152
- renderDisplayVarName,
153
- customFilterVar,
154
- literalConfig = {},
155
- refTagColor,
156
- placeholder,
157
- inputPlaceholder,
158
- variableTagStyle,
159
- handleDataSource,
160
- variableTypeConstraints,
161
- }: ValueExpressionInputProps) => {
162
- const { concatTestId } = useNodeTestId();
163
- const containerRef = useRef<HTMLDivElement>(null);
164
-
165
- const onLiteralChange = useCallback(
166
- (v?: LiteralValueType): void => {
167
- onChange({ type: ValueExpressionType.LITERAL, content: v ?? undefined });
168
- },
169
- [onChange],
170
- );
171
-
172
- const onImageChange = useCallback(
173
- v => {
174
- onChange({
175
- type: ValueExpressionType.LITERAL,
176
- content: v?.url || '',
177
- rawMeta: { fileName: v?.name, type: inputType },
178
- });
179
- },
180
- [onChange],
181
- );
182
-
183
- const [focused, setFocused] = useState(false);
184
-
185
- const handleFocus = () => setFocused(true);
186
- const handleBlur = () => {
187
- setFocused(false);
188
- onBlur?.();
189
- };
190
-
191
- const isRefValue =
192
- !!value && ValueExpression.isRef(value) && !!value.content?.keyPath;
193
-
194
- const isLiteralJsonValue = useMemo(
195
- () =>
196
- !!value &&
197
- ValueExpression.isLiteral(value) &&
198
- ViewVariableType.isJSONInputType(inputType),
199
- [value, inputType],
200
- );
201
-
202
- const [isUploadingFile, setIsUploadingFile] = useState(false);
203
-
204
- const isLiteralMultiFileValue =
205
- ((value &&
206
- !ValueExpression.isEmpty(value) &&
207
- ValueExpression.isLiteral(value)) ||
208
- isUploadingFile) &&
209
- ViewVariableType.isArrayType(inputType) &&
210
- ViewVariableType.isFileType(inputType) &&
211
- inputType !== ViewVariableType.ArrayVoice;
212
-
213
- const isLiteralMultiLineValue =
214
- isLiteralJsonValue &&
215
- String((value as LiteralExpression)?.content)?.includes('\n');
216
-
217
- const [expandLiteralInput, setExpandLiteralInput] = useState(false);
218
-
219
- const isVoiceValue =
220
- ViewVariableType.isVoiceType(inputType) &&
221
- !!value &&
222
- ValueExpression.isLiteral(value) &&
223
- value.content;
224
-
225
- const { renderVariableSelectorExtraOption, selectVoiceModal, voiceSelector } =
226
- useVoice({
227
- inputType,
228
- onChange,
229
- onBlur,
230
- disabled,
231
- validateStatus,
232
- value,
233
- });
234
-
235
- const renderInputRight = () => {
236
- if (ViewVariableType.isVoiceType(inputType)) {
237
- return voiceSelector;
238
- }
239
-
240
- if (ViewVariableType.isFileType(inputType)) {
241
- return (
242
- <FileInput
243
- value={value as LiteralExpression}
244
- inputType={inputType}
245
- availableFileTypes={availableFileTypes}
246
- onChange={onImageChange}
247
- onUploadChange={uploading => setIsUploadingFile(uploading)}
248
- onBlur={onBlur}
249
- />
250
- );
251
- }
252
-
253
- return (
254
- <LiteralValueInput
255
- className={classnames(styles['literal-value-input'], {
256
- 'pb-[24px]':
257
- isLiteralMultiLineValue ||
258
- (ViewVariableType.isJSONInputType(inputType) && expandLiteralInput),
259
- })}
260
- testId={concatTestId(testId ?? '', 'literal-input')}
261
- readonly={readonly}
262
- disabled={disabled}
263
- value={(value as LiteralExpression)?.content}
264
- inputType={inputType}
265
- onBlur={handleBlur}
266
- onFocus={handleFocus}
267
- onChange={onLiteralChange}
268
- config={{
269
- ...literalConfig,
270
- onRequestInputExpand: isLiteralJsonValue
271
- ? setExpandLiteralInput
272
- : undefined,
273
- }}
274
- style={literalStyle}
275
- placeholder={inputPlaceholder ?? I18n.t('workflow_241015_01')}
276
- />
277
- );
278
- };
279
-
280
- const { renderVariableSelect, renderVariableDisplay } = useRefInputNode({
281
- value,
282
- onChange,
283
- onBlur,
284
- disabled,
285
- variablesDataSource,
286
- validateStatus,
287
- readonly,
288
- testId,
289
- disabledTypes,
290
- showClear,
291
- invalidContent,
292
- renderDisplayVarName,
293
- customFilterVar,
294
- setFocused,
295
- style: VARIABLE_SELECTOR_STYLE,
296
- refTagColor,
297
- hideDeleteIcon,
298
- variableTagStyle,
299
- optionFilter,
300
- renderExtraOption: renderVariableSelectorExtraOption,
301
- enableSelectNode,
302
- handleDataSource,
303
- popoverStyle: containerRef.current
304
- ? {
305
- minWidth: Math.max(
306
- containerRef.current.clientWidth,
307
- SELECT_POPOVER_MIN_WIDTH,
308
- ),
309
- }
310
- : undefined,
311
- variableTypeConstraints,
312
- });
313
-
314
- const renderInput = () => {
315
- if (isVoiceValue) {
316
- return renderVariableSelect(
317
- <div
318
- className={classnames(
319
- 'cursor-pointer w-full overflow-hidden flex items-center pl-0.5',
320
- )}
321
- >
322
- <VoiceTag
323
- name={
324
- (value as LiteralExpression)?.rawMeta?.fileName || value?.content
325
- }
326
- onClose={() => onChange?.(undefined)}
327
- />
328
- </div>,
329
- );
330
- }
331
-
332
- return isRefValue ? renderVariableDisplay() : renderInputRight();
333
- };
334
- const finalClassName = useMemo(
335
- () =>
336
- classnames(
337
- className,
338
- 'flex items-start border border-solid bg-transparent max-w-[100%] py-[1px]',
339
- {
340
- 'semi-input-wrapper-error': validateStatus === 'error',
341
- 'coz-stroke-plus': validateStatus !== 'error',
342
- '!bg-transparent': focused,
343
- '!coz-stroke-hglt': focused && validateStatus !== 'error',
344
- 'pointer-events-none': readonly,
345
- },
346
- 'hover:coz-mg-primary-hovered',
347
- isLiteralMultiLineValue || isLiteralMultiFileValue || expandLiteralInput
348
- ? 'h-full'
349
- : 'h-[24px]',
350
- styles['value-expression-input-wrap-new'],
351
- 'semi-input-wrapper semi-input-wrapper-small',
352
- ),
353
- [
354
- className,
355
- validateStatus,
356
- focused,
357
- readonly,
358
- styles,
359
- isLiteralMultiLineValue,
360
- isLiteralMultiFileValue,
361
- expandLiteralInput,
362
- ],
363
- );
364
-
365
- if (value && ValueExpression.isObjectRef(value)) {
366
- return (
367
- <div className={finalClassName} style={style} ref={containerRef}>
368
- <ObjectRefValueDisplay />
369
- </div>
370
- );
371
- }
372
-
373
- return (
374
- <ValueExpressionInputContext.Provider value={{ testId }}>
375
- <div className={finalClassName} style={style} ref={containerRef}>
376
- <div className="ref-wrapper flex-1 flex w-full h-full items-center overflow-hidden">
377
- {/* Determine whether the variable selects the scene */}
378
- {!refDisabled && // When reference mode is enabled, check for:
379
- literalDisabled && // Scenario 1: Literals are disabled
380
- !isRefValue ? ( // Scenario 2: The current value is not a reference type
381
- renderVariableSelect(
382
- <div className="cursor-pointer w-full h-full overflow-hidden flex items-center px-1">
383
- <p className="text-[12px] text-[var(--coz-fg-secondary)] pointer-events-none whitespace-nowrap">
384
- {placeholder || I18n.t('workflow_variable_ref_placeholder')}
385
- </p>
386
- </div>,
387
- )
388
- ) : (
389
- <div className={styles['input-wrapper']}>{renderInput()}</div>
390
- )}
391
- </div>
392
- {refDisabled || hideSettingIcon ? null : (
393
- <div
394
- className={classnames(
395
- styles['setting-button-wrap'],
396
- 'flex-none leading-none',
397
- {
398
- [styles['pos-absolute']]: isLiteralJsonValue,
399
- [styles['self-end']]: isLiteralMultiFileValue,
400
- },
401
- )}
402
- >
403
- {renderVariableSelect(
404
- <IconButton
405
- color="secondary"
406
- size="small"
407
- icon={<IconCozApply className="coz-fg-primary text-sm" />}
408
- data-testid={concatTestId(testId ?? '', 'variable-trigger')}
409
- ></IconButton>,
410
- )}
411
- </div>
412
- )}
413
-
414
- {selectVoiceModal}
415
- </div>
416
- </ValueExpressionInputContext.Provider>
417
- );
418
- };
1
+ /*
2
+ * Copyright 2025 coze-dev Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /* eslint-disable complexity -- no need to check */
18
+ import React, {
19
+ useCallback,
20
+ type CSSProperties,
21
+ useState,
22
+ useMemo,
23
+ useRef,
24
+ } from 'react';
25
+
26
+ import classnames from 'classnames';
27
+ import { type SchemaObject } from 'ajv';
28
+ import {
29
+ ValueExpression,
30
+ ValueExpressionType,
31
+ ViewVariableType,
32
+ useNodeTestId,
33
+ type LiteralExpression,
34
+ } from '@coze-workflow/base';
35
+ import { I18n } from '@coze-arch/i18n';
36
+ import { type SelectProps } from '@coze-arch/bot-semi/Select';
37
+ import { IconCozApply } from '@coze-arch/coze-design/icons';
38
+ import { IconButton } from '@coze-arch/coze-design';
39
+
40
+ import { useRefInputNode } from '@/hooks/use-ref-input';
41
+ import {
42
+ LiteralValueInput,
43
+ type LiteralValueType,
44
+ type InputType as LiteralInputType,
45
+ } from '@/form-extensions/components/literal-value-input';
46
+
47
+ import {
48
+ type RenderDisplayVarName,
49
+ type CustomFilterVar,
50
+ } from '../tree-variable-selector/types';
51
+ import { FileInput } from '../file-input';
52
+ import { type VariableSelectorProps } from '../../components/tree-variable-selector';
53
+ import { VoiceTag } from './voice/voice-option';
54
+ import useVoice from './voice/use-voice';
55
+ import {
56
+ type RefTagColor,
57
+ type RefValueDisplayProps,
58
+ } from './ref-value-display';
59
+ import { ObjectRefValueDisplay } from './object-ref-display';
60
+ import { ValueExpressionInputContext } from './context';
61
+ import { SELECT_POPOVER_MIN_WIDTH, VARIABLE_SELECTOR_STYLE } from './const';
62
+
63
+ import styles from './index.module.less';
64
+
65
+ export interface ValueExpressionInputProps {
66
+ className?: string;
67
+ testId?: string;
68
+ value: ValueExpression | undefined;
69
+ onChange: (value: ValueExpression | undefined) => void;
70
+ onBlur?: () => void;
71
+ disabled?: boolean;
72
+ /**
73
+ * After specifying inputType, the parameter type is fixed and cannot be switched, but variables that are not of this data type can still be selected, and the running state will perform type conversion
74
+ */
75
+ inputType?: LiteralInputType;
76
+ /**
77
+ * You can switch between several specified types. When length = 1, the usage is the same as inputType.
78
+ * Effective only in TypedValueExpressionInput
79
+ * When inputType is specified at the same time, the union of two props is taken
80
+ */
81
+ inputTypes?: LiteralInputType[];
82
+ /**
83
+ * Default selected data type
84
+ */
85
+ defaultInputType?: LiteralInputType;
86
+ availableFileTypes?: Array<ViewVariableType>;
87
+ validateStatus?: SelectProps['validateStatus'];
88
+ optionFilter?: VariableSelectorProps['optionFilter'];
89
+ handleDataSource?: VariableSelectorProps['handleDataSource'];
90
+ invalidContent?: string;
91
+ style?: CSSProperties;
92
+ selectStyle?: CSSProperties;
93
+ literalStyle?: CSSProperties;
94
+ variableTagStyle?: CSSProperties;
95
+ readonly?: boolean;
96
+ /** Prohibited data types */
97
+ disabledTypes?: Array<ViewVariableType>;
98
+ literalDisabled?: boolean;
99
+
100
+ /** Whether to disable variable reference mode */
101
+ refDisabled?: boolean;
102
+ literalConfig?: {
103
+ min?: number;
104
+ max?: number;
105
+ optionsList?: { label: string; value: string }[];
106
+ /**
107
+ * Schema configuration of object types for json editor code hints and validation
108
+ */
109
+ jsonSchema?: SchemaObject;
110
+ };
111
+ showClear?: boolean;
112
+ customFilterVar?: CustomFilterVar;
113
+ refTagColor?: RefTagColor;
114
+ placeholder?: string;
115
+ inputPlaceholder?: string;
116
+ renderDisplayVarName?: RenderDisplayVarName;
117
+ hideSettingIcon?: boolean;
118
+ hideDeleteIcon?: boolean;
119
+ enableSelectNode?: boolean;
120
+ variablesDatasource?: VariableSelectorProps['dataSource'];
121
+ /**
122
+ * Forbid type conversion. Switching variable types is not supported when a reference variable (ValueExpression) is selected
123
+ */
124
+ forbidTypeCast?: boolean;
125
+ /* Type restrictions, when the reference type does not meet the restrictions, a warning message is displayed */
126
+ variableTypeConstraints?: RefValueDisplayProps['variableTypeConstraints'];
127
+ }
128
+
129
+ export const ValueExpressionInput = ({
130
+ className,
131
+ value,
132
+ onChange,
133
+ onBlur,
134
+ disabled,
135
+ variablesDatasource: variablesDataSource,
136
+ inputType = ViewVariableType.String,
137
+ availableFileTypes = [],
138
+ validateStatus,
139
+ invalidContent,
140
+ style,
141
+ literalStyle,
142
+ readonly,
143
+ testId,
144
+ disabledTypes,
145
+ optionFilter,
146
+ literalDisabled = false,
147
+ refDisabled = false,
148
+ showClear = false,
149
+ hideDeleteIcon = false,
150
+ hideSettingIcon = false,
151
+ enableSelectNode = false,
152
+ renderDisplayVarName,
153
+ customFilterVar,
154
+ literalConfig = {},
155
+ refTagColor,
156
+ placeholder,
157
+ inputPlaceholder,
158
+ variableTagStyle,
159
+ handleDataSource,
160
+ variableTypeConstraints,
161
+ }: ValueExpressionInputProps) => {
162
+ const { concatTestId } = useNodeTestId();
163
+ const containerRef = useRef<HTMLDivElement>(null);
164
+
165
+ const onLiteralChange = useCallback(
166
+ (v?: LiteralValueType): void => {
167
+ onChange({ type: ValueExpressionType.LITERAL, content: v ?? undefined });
168
+ },
169
+ [onChange],
170
+ );
171
+
172
+ const onImageChange = useCallback(
173
+ v => {
174
+ onChange({
175
+ type: ValueExpressionType.LITERAL,
176
+ content: v?.url || '',
177
+ rawMeta: { fileName: v?.name, type: inputType },
178
+ });
179
+ },
180
+ [onChange],
181
+ );
182
+
183
+ const [focused, setFocused] = useState(false);
184
+
185
+ const handleFocus = () => setFocused(true);
186
+ const handleBlur = () => {
187
+ setFocused(false);
188
+ onBlur?.();
189
+ };
190
+
191
+ const isRefValue =
192
+ !!value && ValueExpression.isRef(value) && !!value.content?.keyPath;
193
+
194
+ const isLiteralJsonValue = useMemo(
195
+ () =>
196
+ !!value &&
197
+ ValueExpression.isLiteral(value) &&
198
+ ViewVariableType.isJSONInputType(inputType),
199
+ [value, inputType],
200
+ );
201
+
202
+ const [isUploadingFile, setIsUploadingFile] = useState(false);
203
+
204
+ const isLiteralMultiFileValue =
205
+ ((value &&
206
+ !ValueExpression.isEmpty(value) &&
207
+ ValueExpression.isLiteral(value)) ||
208
+ isUploadingFile) &&
209
+ ViewVariableType.isArrayType(inputType) &&
210
+ ViewVariableType.isFileType(inputType) &&
211
+ inputType !== ViewVariableType.ArrayVoice;
212
+
213
+ const isLiteralMultiLineValue =
214
+ isLiteralJsonValue &&
215
+ String((value as LiteralExpression)?.content)?.includes('\n');
216
+
217
+ const [expandLiteralInput, setExpandLiteralInput] = useState(false);
218
+
219
+ const isVoiceValue =
220
+ ViewVariableType.isVoiceType(inputType) &&
221
+ !!value &&
222
+ ValueExpression.isLiteral(value) &&
223
+ value.content;
224
+
225
+ const { renderVariableSelectorExtraOption, selectVoiceModal, voiceSelector } =
226
+ useVoice({
227
+ inputType,
228
+ onChange,
229
+ onBlur,
230
+ disabled,
231
+ validateStatus,
232
+ value,
233
+ });
234
+
235
+ const renderInputRight = () => {
236
+ if (ViewVariableType.isVoiceType(inputType)) {
237
+ return voiceSelector;
238
+ }
239
+
240
+ if (ViewVariableType.isFileType(inputType)) {
241
+ return (
242
+ <FileInput
243
+ value={value as LiteralExpression}
244
+ inputType={inputType}
245
+ availableFileTypes={availableFileTypes}
246
+ onChange={onImageChange}
247
+ onUploadChange={uploading => setIsUploadingFile(uploading)}
248
+ onBlur={onBlur}
249
+ />
250
+ );
251
+ }
252
+
253
+ return (
254
+ <LiteralValueInput
255
+ className={classnames(styles['literal-value-input'], {
256
+ 'pb-[24px]':
257
+ isLiteralMultiLineValue ||
258
+ (ViewVariableType.isJSONInputType(inputType) && expandLiteralInput),
259
+ })}
260
+ testId={concatTestId(testId ?? '', 'literal-input')}
261
+ readonly={readonly}
262
+ disabled={disabled}
263
+ value={(value as LiteralExpression)?.content}
264
+ inputType={inputType}
265
+ onBlur={handleBlur}
266
+ onFocus={handleFocus}
267
+ onChange={onLiteralChange}
268
+ config={{
269
+ ...literalConfig,
270
+ onRequestInputExpand: isLiteralJsonValue
271
+ ? setExpandLiteralInput
272
+ : undefined,
273
+ }}
274
+ style={literalStyle}
275
+ placeholder={inputPlaceholder ?? I18n.t('workflow_241015_01')}
276
+ />
277
+ );
278
+ };
279
+
280
+ const { renderVariableSelect, renderVariableDisplay } = useRefInputNode({
281
+ value,
282
+ onChange,
283
+ onBlur,
284
+ disabled,
285
+ variablesDataSource,
286
+ validateStatus,
287
+ readonly,
288
+ testId,
289
+ disabledTypes,
290
+ showClear,
291
+ invalidContent,
292
+ renderDisplayVarName,
293
+ customFilterVar,
294
+ setFocused,
295
+ style: VARIABLE_SELECTOR_STYLE,
296
+ refTagColor,
297
+ hideDeleteIcon,
298
+ variableTagStyle,
299
+ optionFilter,
300
+ renderExtraOption: renderVariableSelectorExtraOption,
301
+ enableSelectNode,
302
+ handleDataSource,
303
+ popoverStyle: containerRef.current
304
+ ? {
305
+ minWidth: Math.max(
306
+ containerRef.current.clientWidth,
307
+ SELECT_POPOVER_MIN_WIDTH,
308
+ ),
309
+ }
310
+ : undefined,
311
+ variableTypeConstraints,
312
+ });
313
+
314
+ const renderInput = () => {
315
+ if (isVoiceValue) {
316
+ return renderVariableSelect(
317
+ <div
318
+ className={classnames(
319
+ 'cursor-pointer w-full overflow-hidden flex items-center pl-0.5',
320
+ )}
321
+ >
322
+ <VoiceTag
323
+ name={
324
+ (value as LiteralExpression)?.rawMeta?.fileName || value?.content
325
+ }
326
+ onClose={() => onChange?.(undefined)}
327
+ />
328
+ </div>,
329
+ );
330
+ }
331
+
332
+ return isRefValue ? renderVariableDisplay() : renderInputRight();
333
+ };
334
+ const finalClassName = useMemo(
335
+ () =>
336
+ classnames(
337
+ className,
338
+ 'flex items-start border border-solid bg-transparent max-w-[100%] py-[1px]',
339
+ {
340
+ 'semi-input-wrapper-error': validateStatus === 'error',
341
+ 'coz-stroke-plus': validateStatus !== 'error',
342
+ '!bg-transparent': focused,
343
+ '!coz-stroke-hglt': focused && validateStatus !== 'error',
344
+ 'pointer-events-none': readonly,
345
+ },
346
+ 'hover:coz-mg-primary-hovered',
347
+ isLiteralMultiLineValue || isLiteralMultiFileValue || expandLiteralInput
348
+ ? 'h-full'
349
+ : 'h-[24px]',
350
+ styles['value-expression-input-wrap-new'],
351
+ 'semi-input-wrapper semi-input-wrapper-small',
352
+ ),
353
+ [
354
+ className,
355
+ validateStatus,
356
+ focused,
357
+ readonly,
358
+ styles,
359
+ isLiteralMultiLineValue,
360
+ isLiteralMultiFileValue,
361
+ expandLiteralInput,
362
+ ],
363
+ );
364
+
365
+ if (value && ValueExpression.isObjectRef(value)) {
366
+ return (
367
+ <div className={finalClassName} style={style} ref={containerRef}>
368
+ <ObjectRefValueDisplay />
369
+ </div>
370
+ );
371
+ }
372
+
373
+ return (
374
+ <ValueExpressionInputContext.Provider value={{ testId }}>
375
+ <div className={finalClassName} style={style} ref={containerRef}>
376
+ <div className="ref-wrapper flex-1 flex w-full h-full items-center overflow-hidden">
377
+ {/* Determine whether the variable selects the scene */}
378
+ {!refDisabled && // When reference mode is enabled, check for:
379
+ literalDisabled && // Scenario 1: Literals are disabled
380
+ !isRefValue ? ( // Scenario 2: The current value is not a reference type
381
+ renderVariableSelect(
382
+ <div className="cursor-pointer w-full h-full overflow-hidden flex items-center px-1">
383
+ <p className="text-[12px] text-[var(--coz-fg-secondary)] pointer-events-none whitespace-nowrap">
384
+ {placeholder || I18n.t('workflow_variable_ref_placeholder')}
385
+ </p>
386
+ </div>,
387
+ )
388
+ ) : (
389
+ <div className={styles['input-wrapper']}>{renderInput()}</div>
390
+ )}
391
+ </div>
392
+ {refDisabled || hideSettingIcon ? null : (
393
+ <div
394
+ className={classnames(
395
+ styles['setting-button-wrap'],
396
+ 'flex-none leading-none',
397
+ {
398
+ [styles['pos-absolute']]: isLiteralJsonValue,
399
+ [styles['self-end']]: isLiteralMultiFileValue,
400
+ },
401
+ )}
402
+ >
403
+ {renderVariableSelect(
404
+ <IconButton
405
+ color="secondary"
406
+ size="small"
407
+ icon={<IconCozApply className="coz-fg-primary text-sm" />}
408
+ data-testid={concatTestId(testId ?? '', 'variable-trigger')}
409
+ ></IconButton>,
410
+ )}
411
+ </div>
412
+ )}
413
+
414
+ {selectVoiceModal}
415
+ </div>
416
+ </ValueExpressionInputContext.Provider>
417
+ );
418
+ };