@flowgram.ai/form-materials 0.4.8 → 0.4.10

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 (446) hide show
  1. package/bin/run.sh +6 -0
  2. package/dist/cjs/components/assign-row/index.js +112 -0
  3. package/dist/cjs/components/assign-row/types.js +18 -0
  4. package/dist/cjs/components/assign-rows/index.js +85 -0
  5. package/dist/cjs/components/batch-outputs/index.js +91 -0
  6. package/dist/cjs/components/batch-outputs/styles.js +60 -0
  7. package/dist/cjs/components/batch-outputs/types.js +18 -0
  8. package/dist/cjs/components/batch-variable-selector/index.js +53 -0
  9. package/dist/cjs/components/blur-input/index.js +64 -0
  10. package/dist/cjs/components/code-editor/editor.js +117 -0
  11. package/dist/cjs/components/code-editor/index.js +57 -0
  12. package/dist/cjs/components/code-editor/init-worker.js +56 -0
  13. package/dist/cjs/components/code-editor/language-features.js +21 -0
  14. package/dist/cjs/components/code-editor/theme/dark.js +188 -0
  15. package/dist/cjs/components/code-editor/theme/index.js +11 -0
  16. package/dist/cjs/components/code-editor/theme/light.js +195 -0
  17. package/dist/cjs/components/code-editor/utils.js +42 -0
  18. package/dist/cjs/components/code-editor-mini/index.js +66 -0
  19. package/dist/cjs/components/condition-row/constants.js +165 -0
  20. package/dist/cjs/components/condition-row/hooks/useOp.js +78 -0
  21. package/dist/cjs/components/condition-row/hooks/useRule.js +68 -0
  22. package/dist/cjs/components/condition-row/index.js +123 -0
  23. package/dist/cjs/components/condition-row/styles.js +77 -0
  24. package/dist/cjs/components/condition-row/types.js +52 -0
  25. package/dist/cjs/components/constant-input/index.js +80 -0
  26. package/dist/cjs/components/constant-input/types.js +18 -0
  27. package/dist/cjs/components/db-condition-row/hooks/use-left.js +86 -0
  28. package/dist/cjs/components/db-condition-row/hooks/use-op.js +79 -0
  29. package/dist/cjs/components/db-condition-row/index.js +115 -0
  30. package/dist/cjs/components/db-condition-row/styles.js +94 -0
  31. package/dist/cjs/components/db-condition-row/types.js +18 -0
  32. package/dist/cjs/components/display-flow-value/index.js +64 -0
  33. package/dist/cjs/components/display-inputs-values/index.js +76 -0
  34. package/dist/cjs/components/display-inputs-values/styles.js +51 -0
  35. package/dist/cjs/components/display-outputs/index.js +72 -0
  36. package/dist/cjs/components/display-outputs/styles.js +51 -0
  37. package/dist/cjs/components/display-schema-tag/index.js +77 -0
  38. package/dist/cjs/components/display-schema-tag/styles.js +71 -0
  39. package/dist/cjs/components/display-schema-tree/index.js +93 -0
  40. package/dist/cjs/components/display-schema-tree/styles.js +135 -0
  41. package/dist/cjs/components/dynamic-value-input/hooks.js +99 -0
  42. package/dist/cjs/components/dynamic-value-input/index.js +174 -0
  43. package/dist/cjs/components/dynamic-value-input/styles.js +107 -0
  44. package/dist/cjs/components/index.js +156 -0
  45. package/dist/cjs/components/inputs-values/index.js +112 -0
  46. package/dist/cjs/components/inputs-values/styles.js +60 -0
  47. package/dist/cjs/components/inputs-values/types.js +18 -0
  48. package/dist/cjs/components/inputs-values-tree/hooks/use-child-list.js +77 -0
  49. package/dist/cjs/components/inputs-values-tree/index.js +87 -0
  50. package/dist/cjs/components/inputs-values-tree/row.js +183 -0
  51. package/dist/cjs/components/inputs-values-tree/styles.js +177 -0
  52. package/dist/cjs/components/inputs-values-tree/types.js +18 -0
  53. package/dist/cjs/components/json-editor-with-variables/editor.js +81 -0
  54. package/dist/cjs/components/json-editor-with-variables/extensions/variable-tag.js +151 -0
  55. package/dist/cjs/components/json-editor-with-variables/extensions/variable-tree.js +97 -0
  56. package/dist/cjs/components/json-editor-with-variables/index.js +57 -0
  57. package/dist/cjs/components/json-editor-with-variables/styles.js +89 -0
  58. package/dist/cjs/components/json-schema-editor/default-value.js +54 -0
  59. package/dist/cjs/components/json-schema-editor/hooks.js +130 -0
  60. package/dist/cjs/components/json-schema-editor/index.js +246 -0
  61. package/dist/cjs/components/json-schema-editor/styles.js +231 -0
  62. package/dist/cjs/components/json-schema-editor/types.js +18 -0
  63. package/dist/cjs/components/prompt-editor/editor.js +99 -0
  64. package/dist/cjs/components/prompt-editor/extensions/jinja.js +73 -0
  65. package/dist/cjs/components/prompt-editor/extensions/language-support.js +48 -0
  66. package/dist/cjs/components/prompt-editor/extensions/markdown.js +81 -0
  67. package/dist/cjs/components/prompt-editor/index.js +57 -0
  68. package/dist/cjs/components/prompt-editor/styles.js +55 -0
  69. package/dist/cjs/components/prompt-editor/types.js +7 -0
  70. package/dist/cjs/components/prompt-editor-with-inputs/editor.js +47 -0
  71. package/dist/cjs/components/prompt-editor-with-inputs/extensions/inputs-tree.js +101 -0
  72. package/dist/cjs/components/prompt-editor-with-inputs/index.js +57 -0
  73. package/dist/cjs/components/prompt-editor-with-inputs/inputs-picker.js +104 -0
  74. package/dist/cjs/components/prompt-editor-with-variables/editor.js +49 -0
  75. package/dist/cjs/components/prompt-editor-with-variables/extensions/variable-tag.js +151 -0
  76. package/dist/cjs/components/prompt-editor-with-variables/extensions/variable-tree.js +103 -0
  77. package/dist/cjs/components/prompt-editor-with-variables/index.js +57 -0
  78. package/dist/cjs/components/prompt-editor-with-variables/styles.js +89 -0
  79. package/dist/cjs/components/type-selector/index.js +139 -0
  80. package/dist/cjs/components/variable-selector/context.js +56 -0
  81. package/dist/cjs/components/variable-selector/index.js +143 -0
  82. package/dist/cjs/components/variable-selector/styles.js +114 -0
  83. package/dist/cjs/components/variable-selector/use-variable-tree.js +100 -0
  84. package/dist/cjs/effects/auto-rename-ref/index.js +98 -0
  85. package/dist/cjs/effects/index.js +60 -0
  86. package/dist/cjs/effects/listen-ref-schema-change/index.js +57 -0
  87. package/dist/cjs/effects/listen-ref-value-change/index.js +54 -0
  88. package/dist/cjs/effects/provide-batch-input/index.js +64 -0
  89. package/dist/cjs/effects/provide-json-schema-outputs/index.js +49 -0
  90. package/dist/cjs/effects/sync-variable-title/index.js +52 -0
  91. package/dist/cjs/effects/validate-when-variable-sync/index.js +49 -0
  92. package/dist/cjs/form-plugins/batch-outputs-plugin/index.js +97 -0
  93. package/dist/cjs/form-plugins/index.js +47 -0
  94. package/dist/cjs/form-plugins/infer-assign-plugin/index.js +72 -0
  95. package/dist/cjs/form-plugins/infer-inputs-plugin/index.js +47 -0
  96. package/dist/cjs/hooks/index.js +36 -0
  97. package/dist/cjs/hooks/use-object-list/index.js +136 -0
  98. package/dist/cjs/index.js +228 -0
  99. package/dist/cjs/plugins/disable-declaration-plugin/create-disable-declaration-plugin.js +51 -0
  100. package/dist/cjs/plugins/disable-declaration-plugin/index.js +36 -0
  101. package/dist/cjs/plugins/index.js +49 -0
  102. package/dist/cjs/plugins/json-schema-preset/create-type-preset-plugin.js +49 -0
  103. package/dist/cjs/plugins/json-schema-preset/index.js +57 -0
  104. package/dist/cjs/plugins/json-schema-preset/manager.js +18 -0
  105. package/dist/cjs/plugins/json-schema-preset/type-definition/array.js +49 -0
  106. package/dist/cjs/plugins/json-schema-preset/type-definition/boolean.js +63 -0
  107. package/dist/cjs/plugins/json-schema-preset/type-definition/date-time.js +52 -0
  108. package/dist/cjs/plugins/json-schema-preset/type-definition/index.js +53 -0
  109. package/dist/cjs/plugins/json-schema-preset/type-definition/integer.js +49 -0
  110. package/dist/cjs/plugins/json-schema-preset/type-definition/number.js +49 -0
  111. package/dist/cjs/plugins/json-schema-preset/type-definition/object.js +49 -0
  112. package/dist/cjs/plugins/json-schema-preset/type-definition/string.js +54 -0
  113. package/dist/cjs/shared/flow-value/index.js +36 -0
  114. package/dist/cjs/shared/flow-value/schema.js +82 -0
  115. package/dist/cjs/shared/flow-value/types.js +18 -0
  116. package/dist/cjs/shared/flow-value/utils.js +142 -0
  117. package/dist/cjs/shared/format-legacy-refs/index.js +99 -0
  118. package/dist/cjs/shared/index.js +73 -0
  119. package/dist/cjs/shared/inject-material/index.js +65 -0
  120. package/dist/cjs/shared/lazy-suspense/index.js +58 -0
  121. package/dist/cjs/shared/polyfill-create-root/index.js +53 -0
  122. package/dist/cjs/validate/index.js +36 -0
  123. package/dist/cjs/validate/validate-flow-value/index.js +63 -0
  124. package/dist/esm/components/assign-row/index.mjs +78 -0
  125. package/dist/esm/components/assign-row/types.mjs +0 -0
  126. package/dist/esm/components/assign-rows/index.mjs +51 -0
  127. package/dist/esm/components/batch-outputs/index.mjs +57 -0
  128. package/dist/esm/components/batch-outputs/styles.mjs +13 -0
  129. package/dist/esm/components/batch-outputs/types.mjs +0 -0
  130. package/dist/esm/components/batch-variable-selector/index.mjs +19 -0
  131. package/dist/esm/components/blur-input/index.mjs +20 -0
  132. package/dist/esm/components/code-editor/editor.mjs +55 -0
  133. package/dist/esm/components/code-editor/index.mjs +5 -0
  134. package/dist/esm/components/code-editor/init-worker.mjs +19 -0
  135. package/dist/esm/components/code-editor/language-features.mjs +15 -0
  136. package/dist/esm/components/code-editor/theme/dark.mjs +154 -0
  137. package/dist/esm/components/code-editor/theme/index.mjs +5 -0
  138. package/dist/esm/components/code-editor/theme/light.mjs +161 -0
  139. package/dist/esm/components/code-editor/utils.mjs +8 -0
  140. package/dist/esm/components/code-editor-mini/index.mjs +22 -0
  141. package/dist/esm/components/condition-row/constants.mjs +128 -0
  142. package/dist/esm/components/condition-row/hooks/useOp.mjs +44 -0
  143. package/dist/esm/components/condition-row/hooks/useRule.mjs +34 -0
  144. package/dist/esm/components/condition-row/index.mjs +89 -0
  145. package/dist/esm/components/condition-row/styles.mjs +21 -0
  146. package/dist/esm/components/condition-row/types.mjs +18 -0
  147. package/dist/esm/components/constant-input/index.mjs +36 -0
  148. package/dist/esm/components/constant-input/types.mjs +0 -0
  149. package/dist/esm/components/db-condition-row/hooks/use-left.mjs +52 -0
  150. package/dist/esm/components/db-condition-row/hooks/use-op.mjs +45 -0
  151. package/dist/esm/components/db-condition-row/index.mjs +81 -0
  152. package/dist/esm/components/db-condition-row/styles.mjs +32 -0
  153. package/dist/esm/components/db-condition-row/types.mjs +0 -0
  154. package/dist/esm/components/display-flow-value/index.mjs +30 -0
  155. package/dist/esm/components/display-inputs-values/index.mjs +39 -0
  156. package/dist/esm/components/display-inputs-values/styles.mjs +7 -0
  157. package/dist/esm/components/display-outputs/index.mjs +38 -0
  158. package/dist/esm/components/display-outputs/styles.mjs +7 -0
  159. package/dist/esm/components/display-schema-tag/index.mjs +33 -0
  160. package/dist/esm/components/display-schema-tag/styles.mjs +21 -0
  161. package/dist/esm/components/display-schema-tree/index.mjs +49 -0
  162. package/dist/esm/components/display-schema-tree/styles.mjs +79 -0
  163. package/dist/esm/components/dynamic-value-input/hooks.mjs +59 -0
  164. package/dist/esm/components/dynamic-value-input/index.mjs +137 -0
  165. package/dist/esm/components/dynamic-value-input/styles.mjs +54 -0
  166. package/dist/esm/components/index.mjs +26 -0
  167. package/dist/esm/components/inputs-values/index.mjs +78 -0
  168. package/dist/esm/components/inputs-values/styles.mjs +13 -0
  169. package/dist/esm/components/inputs-values/types.mjs +0 -0
  170. package/dist/esm/components/inputs-values-tree/hooks/use-child-list.mjs +43 -0
  171. package/dist/esm/components/inputs-values-tree/index.mjs +53 -0
  172. package/dist/esm/components/inputs-values-tree/row.mjs +149 -0
  173. package/dist/esm/components/inputs-values-tree/styles.mjs +105 -0
  174. package/dist/esm/components/inputs-values-tree/types.mjs +0 -0
  175. package/dist/esm/components/json-editor-with-variables/editor.mjs +47 -0
  176. package/dist/esm/components/json-editor-with-variables/extensions/variable-tag.mjs +117 -0
  177. package/dist/esm/components/json-editor-with-variables/extensions/variable-tree.mjs +63 -0
  178. package/dist/esm/components/json-editor-with-variables/index.mjs +5 -0
  179. package/dist/esm/components/json-editor-with-variables/styles.mjs +36 -0
  180. package/dist/esm/components/json-schema-editor/default-value.mjs +20 -0
  181. package/dist/esm/components/json-schema-editor/hooks.mjs +96 -0
  182. package/dist/esm/components/json-schema-editor/index.mjs +212 -0
  183. package/dist/esm/components/json-schema-editor/styles.mjs +138 -0
  184. package/dist/esm/components/json-schema-editor/types.mjs +0 -0
  185. package/dist/esm/components/prompt-editor/editor.mjs +52 -0
  186. package/dist/esm/components/prompt-editor/extensions/jinja.mjs +39 -0
  187. package/dist/esm/components/prompt-editor/extensions/language-support.mjs +14 -0
  188. package/dist/esm/components/prompt-editor/extensions/markdown.mjs +47 -0
  189. package/dist/esm/components/prompt-editor/index.mjs +5 -0
  190. package/dist/esm/components/prompt-editor/styles.mjs +11 -0
  191. package/dist/esm/components/prompt-editor/types.mjs +1 -0
  192. package/dist/esm/components/prompt-editor-with-inputs/editor.mjs +13 -0
  193. package/dist/esm/components/prompt-editor-with-inputs/extensions/inputs-tree.mjs +67 -0
  194. package/dist/esm/components/prompt-editor-with-inputs/index.mjs +5 -0
  195. package/dist/esm/components/prompt-editor-with-inputs/inputs-picker.mjs +70 -0
  196. package/dist/esm/components/prompt-editor-with-variables/editor.mjs +15 -0
  197. package/dist/esm/components/prompt-editor-with-variables/extensions/variable-tag.mjs +117 -0
  198. package/dist/esm/components/prompt-editor-with-variables/extensions/variable-tree.mjs +69 -0
  199. package/dist/esm/components/prompt-editor-with-variables/index.mjs +5 -0
  200. package/dist/esm/components/prompt-editor-with-variables/styles.mjs +36 -0
  201. package/dist/esm/components/type-selector/index.mjs +96 -0
  202. package/dist/esm/components/variable-selector/context.mjs +16 -0
  203. package/dist/esm/components/variable-selector/index.mjs +100 -0
  204. package/dist/esm/components/variable-selector/styles.mjs +58 -0
  205. package/dist/esm/components/variable-selector/use-variable-tree.mjs +66 -0
  206. package/dist/esm/effects/auto-rename-ref/index.mjs +64 -0
  207. package/dist/esm/effects/index.mjs +8 -0
  208. package/dist/esm/effects/listen-ref-schema-change/index.mjs +23 -0
  209. package/dist/esm/effects/listen-ref-value-change/index.mjs +20 -0
  210. package/dist/esm/effects/provide-batch-input/index.mjs +30 -0
  211. package/dist/esm/effects/provide-json-schema-outputs/index.mjs +15 -0
  212. package/dist/esm/effects/sync-variable-title/index.mjs +18 -0
  213. package/dist/esm/effects/validate-when-variable-sync/index.mjs +15 -0
  214. package/dist/esm/form-plugins/batch-outputs-plugin/index.mjs +60 -0
  215. package/dist/esm/form-plugins/index.mjs +4 -0
  216. package/dist/esm/form-plugins/infer-assign-plugin/index.mjs +38 -0
  217. package/dist/esm/form-plugins/infer-inputs-plugin/index.mjs +13 -0
  218. package/dist/esm/hooks/index.mjs +2 -0
  219. package/dist/esm/hooks/use-object-list/index.mjs +102 -0
  220. package/dist/esm/index.mjs +8 -0
  221. package/dist/esm/plugins/disable-declaration-plugin/create-disable-declaration-plugin.mjs +17 -0
  222. package/dist/esm/plugins/disable-declaration-plugin/index.mjs +2 -0
  223. package/dist/esm/plugins/index.mjs +3 -0
  224. package/dist/esm/plugins/json-schema-preset/create-type-preset-plugin.mjs +15 -0
  225. package/dist/esm/plugins/json-schema-preset/index.mjs +14 -0
  226. package/dist/esm/plugins/json-schema-preset/manager.mjs +0 -0
  227. package/dist/esm/plugins/json-schema-preset/type-definition/array.mjs +15 -0
  228. package/dist/esm/plugins/json-schema-preset/type-definition/boolean.mjs +29 -0
  229. package/dist/esm/plugins/json-schema-preset/type-definition/date-time.mjs +18 -0
  230. package/dist/esm/plugins/json-schema-preset/type-definition/index.mjs +19 -0
  231. package/dist/esm/plugins/json-schema-preset/type-definition/integer.mjs +15 -0
  232. package/dist/esm/plugins/json-schema-preset/type-definition/number.mjs +15 -0
  233. package/dist/esm/plugins/json-schema-preset/type-definition/object.mjs +15 -0
  234. package/dist/esm/plugins/json-schema-preset/type-definition/string.mjs +20 -0
  235. package/dist/esm/shared/flow-value/index.mjs +2 -0
  236. package/dist/esm/shared/flow-value/schema.mjs +26 -0
  237. package/dist/esm/shared/flow-value/types.mjs +0 -0
  238. package/dist/esm/shared/flow-value/utils.mjs +108 -0
  239. package/dist/esm/shared/format-legacy-refs/index.mjs +50 -0
  240. package/dist/esm/shared/index.mjs +6 -0
  241. package/dist/esm/shared/inject-material/index.mjs +21 -0
  242. package/dist/esm/shared/lazy-suspense/index.mjs +21 -0
  243. package/dist/esm/shared/polyfill-create-root/index.mjs +16 -0
  244. package/dist/esm/validate/index.mjs +2 -0
  245. package/dist/esm/validate/validate-flow-value/index.mjs +29 -0
  246. package/dist/tsconfig.tsbuildinfo +1 -0
  247. package/dist/types/components/assign-row/index.d.ts +8 -0
  248. package/dist/types/components/assign-row/types.d.ts +20 -0
  249. package/dist/types/components/assign-rows/index.d.ts +11 -0
  250. package/dist/types/components/batch-outputs/index.d.ts +7 -0
  251. package/dist/types/components/batch-outputs/styles.d.ts +6 -0
  252. package/dist/types/components/batch-outputs/types.d.ts +18 -0
  253. package/dist/types/components/batch-variable-selector/index.d.ts +7 -0
  254. package/dist/types/components/blur-input/index.d.ts +7 -0
  255. package/dist/types/components/code-editor/editor.d.ts +23 -0
  256. package/dist/types/components/code-editor/index.d.ts +6 -0
  257. package/{src/validate/index.tsx → dist/types/components/code-editor/init-worker.d.ts} +1 -2
  258. package/{src/typings/index.ts → dist/types/components/code-editor/language-features.d.ts} +1 -2
  259. package/dist/types/components/code-editor/theme/dark.d.ts +6 -0
  260. package/{src/hooks/index.tsx → dist/types/components/code-editor/theme/index.d.ts} +1 -2
  261. package/dist/types/components/code-editor/theme/light.d.ts +6 -0
  262. package/dist/types/components/code-editor/utils.d.ts +5 -0
  263. package/dist/types/components/code-editor-mini/index.d.ts +7 -0
  264. package/dist/types/components/condition-row/constants.d.ts +7 -0
  265. package/dist/types/components/condition-row/hooks/useOp.d.ts +18 -0
  266. package/dist/types/components/condition-row/hooks/useRule.d.ts +9 -0
  267. package/dist/types/components/condition-row/index.d.ts +22 -0
  268. package/dist/types/components/condition-row/styles.d.ts +9 -0
  269. package/dist/types/components/condition-row/types.d.ts +34 -0
  270. package/dist/types/components/constant-input/index.d.ts +8 -0
  271. package/dist/types/components/constant-input/types.d.ts +16 -0
  272. package/dist/types/components/db-condition-row/hooks/use-left.d.ts +18 -0
  273. package/dist/types/components/db-condition-row/hooks/use-op.d.ts +18 -0
  274. package/dist/types/components/db-condition-row/index.d.ts +19 -0
  275. package/dist/types/components/db-condition-row/styles.d.ts +12 -0
  276. package/dist/types/components/db-condition-row/types.d.ts +25 -0
  277. package/dist/types/components/display-flow-value/index.d.ts +15 -0
  278. package/dist/types/components/display-inputs-values/index.d.ts +14 -0
  279. package/dist/types/components/display-inputs-values/styles.d.ts +5 -0
  280. package/dist/types/components/display-outputs/index.d.ts +14 -0
  281. package/dist/types/components/display-outputs/styles.d.ts +5 -0
  282. package/dist/types/components/display-schema-tag/index.d.ts +14 -0
  283. package/dist/types/components/display-schema-tag/styles.d.ts +8 -0
  284. package/dist/types/components/display-schema-tree/index.d.ts +16 -0
  285. package/dist/types/components/display-schema-tree/styles.d.ts +11 -0
  286. package/dist/types/components/dynamic-value-input/hooks.d.ts +28 -0
  287. package/dist/types/components/dynamic-value-input/index.d.ts +27 -0
  288. package/dist/types/components/dynamic-value-input/styles.d.ts +8 -0
  289. package/dist/types/components/index.d.ts +29 -0
  290. package/dist/types/components/inputs-values/index.d.ts +7 -0
  291. package/dist/types/components/inputs-values/styles.d.ts +6 -0
  292. package/dist/types/components/inputs-values/types.d.ts +19 -0
  293. package/dist/types/components/inputs-values-tree/hooks/use-child-list.d.ts +19 -0
  294. package/dist/types/components/inputs-values-tree/index.d.ts +7 -0
  295. package/dist/types/components/inputs-values-tree/row.d.ts +15 -0
  296. package/dist/types/components/inputs-values-tree/styles.d.ts +23 -0
  297. package/dist/types/components/inputs-values-tree/types.d.ts +18 -0
  298. package/dist/types/components/json-editor-with-variables/editor.d.ts +9 -0
  299. package/dist/types/components/json-editor-with-variables/extensions/variable-tag.d.ts +5 -0
  300. package/dist/types/components/json-editor-with-variables/extensions/variable-tree.d.ts +6 -0
  301. package/dist/types/components/json-editor-with-variables/index.d.ts +6 -0
  302. package/dist/types/components/json-editor-with-variables/styles.d.ts +9 -0
  303. package/dist/types/components/json-schema-editor/default-value.d.ts +17 -0
  304. package/dist/types/components/json-schema-editor/hooks.d.ts +12 -0
  305. package/dist/types/components/json-schema-editor/index.d.ts +14 -0
  306. package/dist/types/components/json-schema-editor/styles.d.ts +30 -0
  307. package/dist/types/components/json-schema-editor/types.d.ts +20 -0
  308. package/dist/types/components/prompt-editor/editor.d.ts +15 -0
  309. package/dist/types/components/prompt-editor/extensions/jinja.d.ts +6 -0
  310. package/dist/types/components/prompt-editor/extensions/language-support.d.ts +6 -0
  311. package/dist/types/components/prompt-editor/extensions/markdown.d.ts +6 -0
  312. package/dist/types/components/prompt-editor/index.d.ts +6 -0
  313. package/dist/types/components/prompt-editor/styles.d.ts +7 -0
  314. package/dist/types/components/prompt-editor/types.d.ts +16 -0
  315. package/dist/types/components/prompt-editor-with-inputs/editor.d.ts +10 -0
  316. package/dist/types/components/prompt-editor-with-inputs/extensions/inputs-tree.d.ts +9 -0
  317. package/dist/types/components/prompt-editor-with-inputs/index.d.ts +6 -0
  318. package/dist/types/components/prompt-editor-with-inputs/inputs-picker.d.ts +9 -0
  319. package/dist/types/components/prompt-editor-with-variables/editor.d.ts +9 -0
  320. package/dist/types/components/prompt-editor-with-variables/extensions/variable-tag.d.ts +5 -0
  321. package/dist/types/components/prompt-editor-with-variables/extensions/variable-tree.d.ts +6 -0
  322. package/dist/types/components/prompt-editor-with-variables/index.d.ts +6 -0
  323. package/dist/types/components/prompt-editor-with-variables/styles.d.ts +9 -0
  324. package/dist/types/components/type-selector/index.d.ts +23 -0
  325. package/dist/types/components/variable-selector/context.d.ts +16 -0
  326. package/dist/types/components/variable-selector/index.d.ts +29 -0
  327. package/dist/types/components/variable-selector/styles.d.ts +14 -0
  328. package/dist/types/components/variable-selector/use-variable-tree.d.ts +18 -0
  329. package/dist/types/effects/auto-rename-ref/index.d.ts +17 -0
  330. package/dist/types/effects/index.d.ts +11 -0
  331. package/dist/types/effects/listen-ref-schema-change/index.d.ts +22 -0
  332. package/dist/types/effects/listen-ref-value-change/index.d.ts +22 -0
  333. package/dist/types/effects/provide-batch-input/index.d.ts +6 -0
  334. package/dist/types/effects/provide-json-schema-outputs/index.d.ts +6 -0
  335. package/dist/types/effects/sync-variable-title/index.d.ts +6 -0
  336. package/dist/types/effects/validate-when-variable-sync/index.d.ts +8 -0
  337. package/dist/types/form-plugins/batch-outputs-plugin/index.d.ts +12 -0
  338. package/dist/types/form-plugins/index.d.ts +7 -0
  339. package/dist/types/form-plugins/infer-assign-plugin/index.d.ts +10 -0
  340. package/dist/types/form-plugins/infer-inputs-plugin/index.d.ts +11 -0
  341. package/dist/types/hooks/index.d.ts +5 -0
  342. package/dist/types/hooks/use-object-list/index.d.ts +22 -0
  343. package/dist/types/index.d.ts +11 -0
  344. package/dist/types/plugins/disable-declaration-plugin/create-disable-declaration-plugin.d.ts +5 -0
  345. package/dist/types/plugins/disable-declaration-plugin/index.d.ts +5 -0
  346. package/dist/types/plugins/index.d.ts +6 -0
  347. package/dist/types/plugins/json-schema-preset/create-type-preset-plugin.d.ts +9 -0
  348. package/dist/types/plugins/json-schema-preset/index.d.ts +13 -0
  349. package/dist/types/plugins/json-schema-preset/manager.d.ts +17 -0
  350. package/dist/types/plugins/json-schema-preset/type-definition/array.d.ts +6 -0
  351. package/dist/types/plugins/json-schema-preset/type-definition/boolean.d.ts +6 -0
  352. package/dist/types/plugins/json-schema-preset/type-definition/date-time.d.ts +6 -0
  353. package/dist/types/plugins/json-schema-preset/type-definition/index.d.ts +5 -0
  354. package/dist/types/plugins/json-schema-preset/type-definition/integer.d.ts +6 -0
  355. package/dist/types/plugins/json-schema-preset/type-definition/number.d.ts +6 -0
  356. package/dist/types/plugins/json-schema-preset/type-definition/object.d.ts +6 -0
  357. package/dist/types/plugins/json-schema-preset/type-definition/string.d.ts +6 -0
  358. package/dist/types/shared/flow-value/index.d.ts +6 -0
  359. package/dist/types/shared/flow-value/schema.d.ts +107 -0
  360. package/dist/types/shared/flow-value/types.d.ts +32 -0
  361. package/dist/types/shared/flow-value/utils.d.ts +65 -0
  362. package/dist/types/shared/format-legacy-refs/index.d.ts +84 -0
  363. package/dist/types/shared/index.d.ts +9 -0
  364. package/dist/types/shared/inject-material/index.d.ts +46 -0
  365. package/dist/types/shared/lazy-suspense/index.d.ts +7 -0
  366. package/dist/types/shared/polyfill-create-root/index.d.ts +10 -0
  367. package/dist/types/validate/index.d.ts +5 -0
  368. package/dist/types/validate/validate-flow-value/index.d.ts +19 -0
  369. package/package.json +19 -21
  370. package/src/components/assign-row/index.tsx +3 -3
  371. package/src/components/assign-row/types.ts +1 -1
  372. package/src/components/batch-outputs/types.ts +1 -1
  373. package/src/components/code-editor/editor.tsx +10 -9
  374. package/src/components/code-editor/init-worker.ts +27 -0
  375. package/src/components/code-editor/language-features.ts +6 -27
  376. package/src/components/code-editor/theme/dark.ts +1 -1
  377. package/src/components/code-editor/theme/index.ts +1 -1
  378. package/src/components/code-editor/theme/light.ts +1 -1
  379. package/src/components/condition-row/hooks/useRule.ts +1 -1
  380. package/src/components/condition-row/types.ts +1 -1
  381. package/src/components/constant-input/index.tsx +1 -1
  382. package/src/components/db-condition-row/types.ts +1 -1
  383. package/src/components/display-flow-value/index.tsx +1 -1
  384. package/src/components/dynamic-value-input/hooks.ts +1 -1
  385. package/src/components/dynamic-value-input/index.tsx +1 -1
  386. package/src/components/index.ts +50 -25
  387. package/src/components/inputs-values/index.tsx +1 -1
  388. package/src/components/inputs-values/types.ts +1 -1
  389. package/src/components/inputs-values-tree/row.tsx +1 -1
  390. package/src/components/json-editor-with-variables/editor.tsx +2 -2
  391. package/src/components/json-editor-with-variables/extensions/variable-tag.tsx +1 -1
  392. package/src/components/json-editor-with-variables/extensions/variable-tree.tsx +3 -3
  393. package/src/components/prompt-editor/editor.tsx +2 -2
  394. package/src/components/prompt-editor/extensions/jinja.tsx +2 -2
  395. package/src/components/prompt-editor/extensions/language-support.tsx +2 -2
  396. package/src/components/prompt-editor/extensions/markdown.tsx +2 -2
  397. package/src/components/prompt-editor/types.tsx +1 -1
  398. package/src/components/prompt-editor-with-inputs/extensions/inputs-tree.tsx +4 -4
  399. package/src/components/prompt-editor-with-variables/extensions/variable-tag.tsx +1 -1
  400. package/src/components/prompt-editor-with-variables/extensions/variable-tree.tsx +3 -3
  401. package/src/effects/auto-rename-ref/index.ts +1 -1
  402. package/src/effects/index.ts +7 -7
  403. package/src/effects/listen-ref-schema-change/index.ts +1 -1
  404. package/src/effects/listen-ref-value-change/index.ts +1 -1
  405. package/src/effects/provide-batch-input/index.ts +1 -1
  406. package/src/form-plugins/batch-outputs-plugin/index.ts +1 -1
  407. package/src/form-plugins/index.ts +3 -3
  408. package/src/form-plugins/infer-assign-plugin/index.ts +1 -1
  409. package/src/hooks/index.ts +6 -0
  410. package/src/index.ts +98 -8
  411. package/src/plugins/index.ts +11 -2
  412. package/src/plugins/json-schema-preset/index.tsx +4 -4
  413. package/src/shared/flow-value/index.ts +11 -1
  414. package/src/shared/flow-value/utils.ts +1 -2
  415. package/src/shared/index.ts +26 -5
  416. package/src/validate/index.ts +6 -0
  417. package/src/validate/validate-flow-value/index.tsx +1 -1
  418. package/bin/index.ts +0 -80
  419. package/bin/materials.ts +0 -134
  420. package/bin/project.ts +0 -95
  421. package/bin/utils/import.ts +0 -127
  422. package/bin/utils/traverse-file.ts +0 -60
  423. package/dist/esm/chunk-727SU246.js +0 -13
  424. package/dist/esm/chunk-727SU246.js.map +0 -1
  425. package/dist/esm/chunk-DEZUEMUM.js +0 -284
  426. package/dist/esm/chunk-DEZUEMUM.js.map +0 -1
  427. package/dist/esm/chunk-IHOHRV5V.js +0 -477
  428. package/dist/esm/chunk-IHOHRV5V.js.map +0 -1
  429. package/dist/esm/editor-4X7K477H.js +0 -282
  430. package/dist/esm/editor-4X7K477H.js.map +0 -1
  431. package/dist/esm/editor-6UMULJYB.js +0 -180
  432. package/dist/esm/editor-6UMULJYB.js.map +0 -1
  433. package/dist/esm/editor-E2BQTPCD.js +0 -388
  434. package/dist/esm/editor-E2BQTPCD.js.map +0 -1
  435. package/dist/esm/editor-OXPGKPF5.js +0 -167
  436. package/dist/esm/editor-OXPGKPF5.js.map +0 -1
  437. package/dist/esm/editor-Z24WLBPO.js +0 -249
  438. package/dist/esm/editor-Z24WLBPO.js.map +0 -1
  439. package/dist/esm/index.js +0 -2668
  440. package/dist/esm/index.js.map +0 -1
  441. package/dist/index.d.mts +0 -1002
  442. package/dist/index.d.ts +0 -1002
  443. package/dist/index.js +0 -5127
  444. package/dist/index.js.map +0 -1
  445. package/src/components/assign-row/components/blur-input.tsx +0 -27
  446. /package/src/{typings/flow-value/index.ts → shared/flow-value/types.ts} +0 -0
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../common/temp/node_modules/.pnpm/tsup@8.3.5_typescript@5.8.3/node_modules/tsup/assets/cjs_shims.js","../src/shared/format-legacy-refs/index.ts","../src/shared/inject-material/index.tsx","../src/shared/flow-value/schema.ts","../src/shared/flow-value/utils.ts","../src/shared/flow-value/index.ts","../src/shared/polyfill-create-root/index.tsx","../src/shared/lazy-suspense/index.tsx","../src/shared/index.ts","../src/plugins/json-schema-preset/type-definition/string.tsx","../src/components/code-editor/utils.ts","../src/components/code-editor/language-features.ts","../src/components/code-editor/theme/light.ts","../src/components/code-editor/theme/dark.ts","../src/components/code-editor/theme/index.ts","../src/components/code-editor/editor.tsx","../src/components/code-editor/index.tsx","../src/components/code-editor-mini/index.tsx","../src/plugins/json-schema-preset/type-definition/object.tsx","../src/plugins/json-schema-preset/type-definition/number.tsx","../src/plugins/json-schema-preset/type-definition/integer.tsx","../src/plugins/json-schema-preset/type-definition/date-time.tsx","../src/plugins/json-schema-preset/type-definition/boolean.tsx","../src/plugins/json-schema-preset/type-definition/array.tsx","../src/plugins/json-schema-preset/type-definition/index.tsx","../src/plugins/json-schema-preset/create-type-preset-plugin.tsx","../src/plugins/json-schema-preset/index.tsx","../src/plugins/disable-declaration-plugin/create-disable-declaration-plugin.ts","../src/plugins/disable-declaration-plugin/index.tsx","../src/plugins/index.ts","../src/components/variable-selector/use-variable-tree.tsx","../src/components/variable-selector/styles.tsx","../src/components/variable-selector/context.tsx","../src/components/variable-selector/index.tsx","../src/components/prompt-editor/styles.tsx","../src/components/prompt-editor/extensions/markdown.tsx","../src/components/prompt-editor/extensions/language-support.tsx","../src/components/prompt-editor/extensions/jinja.tsx","../src/components/prompt-editor/editor.tsx","../src/components/prompt-editor/index.tsx","../src/components/prompt-editor-with-variables/extensions/variable-tree.tsx","../src/components/prompt-editor-with-variables/styles.tsx","../src/components/prompt-editor-with-variables/extensions/variable-tag.tsx","../src/components/prompt-editor-with-variables/editor.tsx","../src/components/prompt-editor-with-inputs/inputs-picker.tsx","../src/components/prompt-editor-with-inputs/extensions/inputs-tree.tsx","../src/components/prompt-editor-with-inputs/editor.tsx","../src/components/json-editor-with-variables/extensions/variable-tree.tsx","../src/components/json-editor-with-variables/styles.tsx","../src/components/json-editor-with-variables/extensions/variable-tag.tsx","../src/components/json-editor-with-variables/editor.tsx","../src/index.ts","../src/components/index.ts","../src/components/type-selector/index.tsx","../src/components/json-schema-editor/index.tsx","../src/components/blur-input/index.tsx","../src/components/json-schema-editor/styles.tsx","../src/components/json-schema-editor/hooks.tsx","../src/components/json-schema-editor/default-value.tsx","../src/components/constant-input/index.tsx","../src/components/constant-input/types.ts","../src/components/batch-variable-selector/index.tsx","../src/components/dynamic-value-input/index.tsx","../src/components/dynamic-value-input/styles.tsx","../src/components/dynamic-value-input/hooks.ts","../src/components/condition-row/index.tsx","../src/components/condition-row/styles.tsx","../src/components/condition-row/hooks/useRule.ts","../src/components/condition-row/constants.ts","../src/components/condition-row/types.ts","../src/components/condition-row/hooks/useOp.tsx","../src/components/db-condition-row/index.tsx","../src/components/db-condition-row/styles.tsx","../src/components/db-condition-row/hooks/use-op.tsx","../src/components/db-condition-row/hooks/use-left.tsx","../src/components/batch-outputs/index.tsx","../src/hooks/index.tsx","../src/hooks/use-object-list/index.tsx","../src/components/batch-outputs/styles.tsx","../src/components/prompt-editor-with-variables/index.tsx","../src/components/prompt-editor-with-inputs/index.tsx","../src/components/json-editor-with-variables/index.tsx","../src/components/inputs-values/index.tsx","../src/components/inputs-values/styles.tsx","../src/components/display-schema-tree/index.tsx","../src/components/display-schema-tree/styles.tsx","../src/components/display-outputs/index.tsx","../src/components/display-schema-tag/index.tsx","../src/components/display-schema-tag/styles.ts","../src/components/display-outputs/styles.ts","../src/components/display-flow-value/index.tsx","../src/components/display-inputs-values/index.tsx","../src/components/display-inputs-values/styles.ts","../src/components/assign-rows/index.tsx","../src/components/assign-row/index.tsx","../src/components/assign-row/components/blur-input.tsx","../src/components/assign-row/types.ts","../src/components/inputs-values-tree/index.tsx","../src/components/inputs-values-tree/styles.tsx","../src/components/inputs-values-tree/row.tsx","../src/components/inputs-values-tree/hooks/use-child-list.tsx","../src/effects/index.ts","../src/effects/provide-batch-input/index.ts","../src/effects/auto-rename-ref/index.ts","../src/effects/provide-json-schema-outputs/index.ts","../src/effects/sync-variable-title/index.ts","../src/effects/validate-when-variable-sync/index.ts","../src/effects/listen-ref-value-change/index.ts","../src/effects/listen-ref-schema-change/index.ts","../src/typings/index.ts","../src/typings/flow-value/index.ts","../src/form-plugins/index.ts","../src/form-plugins/batch-outputs-plugin/index.ts","../src/form-plugins/infer-inputs-plugin/index.ts","../src/form-plugins/infer-assign-plugin/index.ts","../src/validate/index.tsx","../src/validate/validate-flow-value/index.tsx"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isObject } from 'lodash-es';\n\ninterface LegacyFlowRefValueSchema {\n type: 'ref';\n content: string;\n}\n\ninterface NewFlowRefValueSchema {\n type: 'ref';\n content: string[];\n}\n\n/**\n * In flowgram 0.2.0, for introducing Loop variable functionality,\n * the FlowRefValueSchema type definition is updated:\n *\n * interface LegacyFlowRefValueSchema {\n * type: 'ref';\n * content: string;\n * }\n *\n * interface NewFlowRefValueSchema {\n * type: 'ref';\n * content: string[];\n * }\n *\n *\n * For making sure backend json will not be changed, we provide format legacy ref utils for updating the formData\n *\n * How to use:\n *\n * 1. Call formatLegacyRefOnSubmit on the formData before submitting\n * 2. Call formatLegacyRefOnInit on the formData after submitting\n *\n * Example:\n * import { formatLegacyRefOnSubmit, formatLegacyRefOnInit } from '@flowgram.ai/form-materials';\n * formMeta: {\n * formatOnSubmit: (data) => formatLegacyRefOnSubmit(data),\n * formatOnInit: (data) => formatLegacyRefOnInit(data),\n * }\n */\nexport function formatLegacyRefOnSubmit(value: any): any {\n if (isObject(value)) {\n if (isLegacyFlowRefValueSchema(value)) {\n return formatLegacyRefToNewRef(value);\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([key, value]: [string, any]) => [\n key,\n formatLegacyRefOnSubmit(value),\n ])\n );\n }\n\n if (Array.isArray(value)) {\n return value.map(formatLegacyRefOnSubmit);\n }\n\n return value;\n}\n\n/**\n * In flowgram 0.2.0, for introducing Loop variable functionality,\n * the FlowRefValueSchema type definition is updated:\n *\n * interface LegacyFlowRefValueSchema {\n * type: 'ref';\n * content: string;\n * }\n *\n * interface NewFlowRefValueSchema {\n * type: 'ref';\n * content: string[];\n * }\n *\n *\n * For making sure backend json will not be changed, we provide format legacy ref utils for updating the formData\n *\n * How to use:\n *\n * 1. Call formatLegacyRefOnSubmit on the formData before submitting\n * 2. Call formatLegacyRefOnInit on the formData after submitting\n *\n * Example:\n * import { formatLegacyRefOnSubmit, formatLegacyRefOnInit } from '@flowgram.ai/form-materials';\n *\n * formMeta: {\n * formatOnSubmit: (data) => formatLegacyRefOnSubmit(data),\n * formatOnInit: (data) => formatLegacyRefOnInit(data),\n * }\n */\nexport function formatLegacyRefOnInit(value: any): any {\n if (isObject(value)) {\n if (isNewFlowRefValueSchema(value)) {\n return formatNewRefToLegacyRef(value);\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([key, value]: [string, any]) => [\n key,\n formatLegacyRefOnInit(value),\n ])\n );\n }\n\n if (Array.isArray(value)) {\n return value.map(formatLegacyRefOnInit);\n }\n\n return value;\n}\n\nexport function isLegacyFlowRefValueSchema(value: any): value is LegacyFlowRefValueSchema {\n return (\n isObject(value) &&\n Object.keys(value).length === 2 &&\n (value as any).type === 'ref' &&\n typeof (value as any).content === 'string'\n );\n}\n\nexport function isNewFlowRefValueSchema(value: any): value is NewFlowRefValueSchema {\n return (\n isObject(value) &&\n Object.keys(value).length === 2 &&\n (value as any).type === 'ref' &&\n Array.isArray((value as any).content)\n );\n}\n\nexport function formatLegacyRefToNewRef(value: LegacyFlowRefValueSchema) {\n const keyPath = value.content.split('.');\n\n if (keyPath[1] === 'outputs') {\n return {\n type: 'ref',\n content: [`${keyPath[0]}.${keyPath[1]}`, ...(keyPath.length > 2 ? keyPath.slice(2) : [])],\n };\n }\n\n return {\n type: 'ref',\n content: keyPath,\n };\n}\n\nexport function formatNewRefToLegacyRef(value: NewFlowRefValueSchema) {\n return {\n type: 'ref',\n content: value.content.join('.'),\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport {\n FlowRendererComponentType,\n FlowRendererRegistry,\n usePlaygroundContainer,\n} from '@flowgram.ai/editor';\n\n/**\n * Creates a material component wrapper with dependency injection support\n *\n * This Higher-Order Component (HOC) implements a dynamic component replacement mechanism\n * for material components. It automatically checks if a custom renderer is registered\n * in the editor context, using the injected component if available, otherwise\n * falling back to the default component.\n *\n * @example\n * ```tsx\n * // 1.Create an injectable material component\n * const InjectVariableSelector = createInjectMaterial(VariableSelector)\n *\n * // 2. Register custom components in editor\n * // Configure in use-editor-props.tsx:\n * const editorProps = {\n * materials: {\n * components: {\n * [VariableSelector.renderKey]: YourCustomVariableSelector\n * }\n * }\n * }\n * ```\n *\n * @description\n * Data flow explanation:\n * - Register components to FlowRendererRegistry in use-editor-props\n * - InjectMaterial reads renderers from FlowRendererRegistry\n * - If registered renderer exists and type is REACT, use injected component\n * - If not exists or type mismatch, fallback to default component\n *\n * @param Component - Default React component\n * @param params - Optional parameters\n * @param params.renderKey - Custom render key name, highest priority\n * @returns Wrapper component with dependency injection support\n */\nexport function createInjectMaterial<Props>(\n Component: React.FC<Props> & { renderKey?: string },\n params?: {\n renderKey?: string;\n }\n): React.FC<Props> {\n const InjectComponent: React.FC<Props> = (props) => {\n const container = usePlaygroundContainer();\n\n // Check if renderer registry is bound in container\n if (!container?.isBound(FlowRendererRegistry)) {\n // If no registry, use default component directly\n return React.createElement(Component as (props?: any) => any, { ...props });\n }\n\n // Get renderer registry instance\n const rendererRegistry = container.get(FlowRendererRegistry);\n\n // Determine render key: prioritize param specified, then component renderKey, finally component name\n const renderKey = params?.renderKey || Component.renderKey || Component.name || '';\n\n // Get corresponding renderer from registry\n const renderer = rendererRegistry.tryToGetRendererComponent(renderKey);\n\n // Check if renderer exists and type is React component\n if (renderer?.type !== FlowRendererComponentType.REACT) {\n // If no suitable renderer found, fallback to default component\n return React.createElement(Component as (props?: any) => any, { ...props });\n }\n\n // Render using injected React component\n return React.createElement(renderer.renderer, {\n ...props,\n });\n };\n\n return InjectComponent;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport z from 'zod';\n\n// Shared extra schema for flow value types\nexport const extraSchema = z\n .object({\n index: z.number().optional(),\n })\n .optional();\n\nexport const constantSchema = z.object({\n type: z.literal('constant'),\n content: z.any().optional(),\n schema: z.any().optional(),\n extra: extraSchema,\n});\n\nexport const refSchema = z.object({\n type: z.literal('ref'),\n content: z.array(z.string()).optional(),\n extra: extraSchema,\n});\n\nexport const expressionSchema = z.object({\n type: z.literal('expression'),\n content: z.string().optional(),\n extra: extraSchema,\n});\n\nexport const templateSchema = z.object({\n type: z.literal('template'),\n content: z.string().optional(),\n extra: extraSchema,\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isArray, isObject, isPlainObject, uniq } from 'lodash-es';\nimport { IJsonSchema, JsonSchemaUtils } from '@flowgram.ai/json-schema';\nimport { Scope } from '@flowgram.ai/editor';\n\nimport {\n IFlowConstantValue,\n IFlowRefValue,\n IFlowExpressionValue,\n IFlowTemplateValue,\n IFlowValue,\n IFlowConstantRefValue,\n FlowValueType,\n} from '@/typings';\n\nimport { constantSchema, refSchema, expressionSchema, templateSchema } from './schema';\n\nexport namespace FlowValueUtils {\n /**\n * Check if the value is a constant type\n */\n export function isConstant(value: any): value is IFlowConstantValue {\n return constantSchema.safeParse(value).success;\n }\n\n /**\n * Check if the value is a reference type\n */\n export function isRef(value: any): value is IFlowRefValue {\n return refSchema.safeParse(value).success;\n }\n\n /**\n * Check if the value is an expression type\n */\n export function isExpression(value: any): value is IFlowExpressionValue {\n return expressionSchema.safeParse(value).success;\n }\n\n /**\n * Check if the value is a template type\n */\n export function isTemplate(value: any): value is IFlowTemplateValue {\n return templateSchema.safeParse(value).success;\n }\n\n /**\n * Check if the value is either a constant or reference type\n */\n export function isConstantOrRef(value: any): value is IFlowConstantRefValue {\n return isConstant(value) || isRef(value);\n }\n\n /**\n * Check if the value is a valid flow value type\n */\n export function isFlowValue(value: any): value is IFlowValue {\n return isConstant(value) || isRef(value) || isExpression(value) || isTemplate(value);\n }\n\n /**\n * Traverse all flow values in the given value\n * @param value The value to traverse\n * @param options The options to traverse\n * @returns A generator of flow values\n */\n export function* traverse(\n value: any,\n options: {\n includeTypes?: FlowValueType[];\n path?: string;\n }\n ): Generator<{ value: IFlowValue; path: string }> {\n const { includeTypes = ['ref', 'template'], path = '' } = options;\n\n if (isPlainObject(value)) {\n if (isRef(value) && includeTypes.includes('ref')) {\n yield { value, path };\n return;\n }\n\n if (isTemplate(value) && includeTypes.includes('template')) {\n yield { value, path };\n return;\n }\n\n if (isExpression(value) && includeTypes.includes('expression')) {\n yield { value, path };\n return;\n }\n\n if (isConstant(value) && includeTypes.includes('constant')) {\n yield { value, path };\n return;\n }\n\n for (const [_key, _value] of Object.entries(value)) {\n yield* traverse(_value, { ...options, path: `${path}.${_key}` });\n }\n return;\n }\n\n if (isArray(value)) {\n for (const [_idx, _value] of value.entries()) {\n yield* traverse(_value, { ...options, path: `${path}[${_idx}]` });\n }\n return;\n }\n\n return;\n }\n\n /**\n * Get all key paths in the template value\n * @param value The template value\n * @returns A list of key paths\n */\n export function getTemplateKeyPaths(value: IFlowTemplateValue) {\n // find all keyPath wrapped in {{}}\n const keyPathReg = /\\{\\{([^\\}\\{]+)\\}\\}/g;\n return uniq(value.content?.match(keyPathReg) || []).map((_keyPath) =>\n _keyPath.slice(2, -2).split('.')\n );\n }\n\n /**\n * Infer the schema of the constant value\n * @param value\n * @returns\n */\n export function inferConstantJsonSchema(value: IFlowConstantValue): IJsonSchema | undefined {\n if (value?.schema) {\n return value.schema;\n }\n\n if (typeof value.content === 'string') {\n return {\n type: 'string',\n };\n }\n\n if (typeof value.content === 'number') {\n return {\n type: 'number',\n };\n }\n\n if (typeof value.content === 'boolean') {\n return {\n type: 'boolean',\n };\n }\n\n if (isObject(value.content)) {\n return {\n type: 'object',\n };\n }\n return undefined;\n }\n\n /**\n * Infer the schema of the flow value\n * @param values The flow value or object contains flow value\n * @param scope\n * @returns\n */\n export function inferJsonSchema(values: any, scope: Scope): IJsonSchema | undefined {\n if (isPlainObject(values)) {\n if (isConstant(values)) {\n return inferConstantJsonSchema(values);\n }\n\n if (isRef(values)) {\n const variable = scope.available.getByKeyPath(values?.content);\n const schema = variable?.type ? JsonSchemaUtils.astToSchema(variable?.type) : undefined;\n\n return schema;\n }\n\n if (isTemplate(values)) {\n return { type: 'string' };\n }\n\n return {\n type: 'object',\n properties: Object.keys(values).reduce((acc, key) => {\n const schema = inferJsonSchema((values as any)[key], scope);\n if (schema) {\n acc[key] = schema;\n }\n return acc;\n }, {} as Record<string, IJsonSchema>),\n };\n }\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './utils';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport * as ReactDOM from 'react-dom';\n\nexport interface IPolyfillRoot {\n render(children: React.ReactNode): void;\n unmount(): void;\n}\n\n/**\n * React 18 polyfill\n * @param dom\n * @returns\n */\nlet unstableCreateRoot = (dom: HTMLElement): IPolyfillRoot => ({\n render(children: JSX.Element) {\n ReactDOM.render(children, dom);\n },\n unmount() {\n ReactDOM.unmountComponentAtNode(dom);\n },\n});\n\nexport function polyfillCreateRoot(dom: HTMLElement): IPolyfillRoot {\n return unstableCreateRoot(dom);\n}\n\nexport function unstableSetCreateRoot(createRoot: (dom: HTMLElement) => IPolyfillRoot) {\n unstableCreateRoot = createRoot;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { ComponentType, lazy, Suspense } from 'react';\n\nimport { Skeleton } from '@douyinfe/semi-ui';\n\nexport function withSuspense<T extends ComponentType<any>>(\n Component: T,\n fallback?: React.ReactNode\n): T {\n const WithSuspenseComponent: T = ((props: any) => (\n <Suspense fallback={fallback || <Skeleton.Paragraph style={{ width: '100%' }} rows={1} />}>\n <Component {...props} />\n </Suspense>\n )) as any;\n\n return WithSuspenseComponent;\n}\n\nexport function lazySuspense<T extends ComponentType<any>>(\n params: Parameters<typeof lazy<T>>[0],\n fallback?: React.ReactNode\n) {\n return withSuspense(lazy(params), fallback);\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './format-legacy-refs';\nexport * from './inject-material';\nexport * from './flow-value';\nexport * from './polyfill-create-root';\nexport * from './lazy-suspense';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Input, TextArea } from '@douyinfe/semi-ui';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const stringRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'string',\n ConstantRenderer: (props) =>\n props?.enableMultiLineStr ? (\n <TextArea\n autosize\n rows={1}\n placeholder={I18n.t('Please Input String')}\n disabled={props.readonly}\n {...props}\n />\n ) : (\n <Input\n size=\"small\"\n placeholder={I18n.t('Please Input String')}\n disabled={props.readonly}\n {...props}\n />\n ),\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport function getSuffixByLanguageId(languageId: string) {\n if (languageId === 'python') {\n return '.py';\n }\n if (languageId === 'typescript') {\n return '.ts';\n }\n if (languageId === 'shell') {\n return '.sh';\n }\n if (languageId === 'json') {\n return '.json';\n }\n return '';\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { languages } from '@coze-editor/editor/preset-code';\nimport { typescript } from '@coze-editor/editor/language-typescript';\nimport { shell } from '@coze-editor/editor/language-shell';\nimport { python } from '@coze-editor/editor/language-python';\nimport { json } from '@coze-editor/editor/language-json';\nimport { mixLanguages } from '@coze-editor/editor';\n\nlanguages.register('python', python);\nlanguages.register('shell', shell);\nlanguages.register('typescript', typescript);\n\nlanguages.register('json', {\n // mixLanguages is used to solve the problem that interpolation also uses parentheses, which causes incorrect highlighting\n language: mixLanguages({\n outerLanguage: json.language,\n }),\n languageService: json.languageService,\n});\n\nlet tsWorkerInit = false;\n\nexport const initTsWorker = () => {\n if (tsWorkerInit) {\n return;\n }\n tsWorkerInit = true;\n\n const tsWorker = new Worker(\n new URL(`@coze-editor/editor/language-typescript/worker`, import.meta.url),\n { type: 'module' }\n );\n typescript.languageService.initialize(tsWorker, {\n compilerOptions: {\n // eliminate Promise error\n lib: ['es2015', 'dom'],\n noImplicitAny: false,\n },\n });\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { createTheme, tags as t } from '@coze-editor/editor/preset-code';\nimport { type Extension } from '@codemirror/state';\n\nconst colors = {\n background: '#FFFFFF',\n comment: '#6B7280',\n key: '#2563EB',\n variable: '#DC2626',\n string: '#059669',\n number: '#EA580C',\n boolean: '#7C3AED',\n null: '#7C3AED',\n separator: '#374151',\n};\n\nexport const lightTheme: Extension = createTheme({\n variant: 'light',\n settings: {\n background: '#FFFFFF',\n foreground: '#1F2937',\n caret: '#2563EB',\n selection: '#E5E7EB',\n gutterBackground: '#F9FAFB',\n gutterForeground: '#6B7280',\n gutterBorderColor: 'transparent',\n gutterBorderWidth: 0,\n lineHighlight: '#F3F4F680',\n bracketColors: ['#F59E0B', '#8B5CF6', '#06B6D4'],\n tooltip: {\n backgroundColor: '#FFFFFF',\n color: '#1F2937',\n border: '1px solid #E5E7EB',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n },\n link: {\n color: '#2563EB',\n },\n completionItemHover: {\n backgroundColor: '#F3F4F6',\n },\n completionItemSelected: {\n backgroundColor: '#E5E7EB',\n },\n completionItemIcon: {\n color: '#4B5563',\n },\n completionItemLabel: {\n color: '#1F2937',\n },\n completionItemInfo: {\n color: '#4B5563',\n },\n completionItemDetail: {\n color: '#6B7280',\n },\n },\n styles: [\n // JSON\n {\n tag: t.comment,\n color: colors.comment,\n },\n {\n tag: [t.propertyName],\n color: colors.key,\n },\n {\n tag: [t.variableName],\n color: colors.variable,\n },\n\n {\n tag: [t.string],\n color: colors.string,\n },\n {\n tag: [t.number],\n color: colors.number,\n },\n {\n tag: [t.bool],\n color: colors.boolean,\n },\n {\n tag: [t.null],\n color: colors.null,\n },\n {\n tag: [t.separator],\n color: colors.separator,\n },\n\n // markdown\n {\n tag: [t.heading],\n color: '#2563EB',\n },\n {\n tag: [t.processingInstruction],\n color: '#2563EB',\n },\n\n // js\n {\n tag: [t.definitionKeyword],\n color: '#9333EA',\n },\n {\n tag: [t.modifier],\n color: '#9333EA',\n },\n {\n tag: [t.controlKeyword],\n color: '#9333EA',\n },\n {\n tag: [t.operatorKeyword],\n color: '#9333EA',\n },\n\n // shell\n // curl\n {\n tag: [t.standard(t.variableName)],\n color: '#059669',\n },\n // -X\n {\n tag: [t.attributeName],\n color: '#EA580C',\n },\n // url in string (includes quotes), e.g. \"https://...\"\n {\n tag: [t.special(t.string)],\n color: '#2563EB',\n },\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { createTheme, tags as t } from '@coze-editor/editor/preset-code';\nimport { type Extension } from '@codemirror/state';\n\nconst colors = {\n background: '#0D1117',\n // syntax - 现代化暗色主题配色\n comment: '#8B949E',\n key: '#7DD3FC',\n variable: '#F472B6',\n string: '#34D399',\n number: '#FBBF24',\n boolean: '#A78BFA',\n null: '#A78BFA',\n separator: '#E6EDF3',\n};\n\nexport const darkTheme: Extension = createTheme({\n variant: 'dark',\n settings: {\n background: colors.background,\n foreground: '#E6EDF3',\n caret: '#7DD3FC',\n selection: '#264F7833',\n gutterBackground: colors.background,\n gutterForeground: '#6E7681',\n gutterBorderColor: 'transparent',\n gutterBorderWidth: 0,\n lineHighlight: '#21262D',\n bracketColors: ['#FBBF24', '#A78BFA', '#7DD3FC'],\n tooltip: {\n backgroundColor: '#21262D',\n color: '#E6EDF3',\n border: '1px solid #30363D',\n },\n link: {\n color: '#58A6FF',\n },\n completionItemHover: {\n backgroundColor: '#21262D',\n },\n completionItemSelected: {\n backgroundColor: '#1F6EEB',\n },\n completionItemIcon: {\n color: '#8B949E',\n },\n completionItemLabel: {\n color: '#E6EDF3',\n },\n completionItemInfo: {\n color: '#8B949E',\n },\n completionItemDetail: {\n color: '#6E7681',\n },\n },\n styles: [\n // json\n {\n tag: t.comment,\n color: colors.comment,\n },\n {\n tag: [t.propertyName],\n color: colors.key,\n },\n {\n tag: [t.string],\n color: colors.string,\n },\n {\n tag: [t.number],\n color: colors.number,\n },\n {\n tag: [t.bool],\n color: colors.boolean,\n },\n {\n tag: [t.null],\n color: colors.null,\n },\n {\n tag: [t.separator],\n color: colors.separator,\n },\n\n // js\n {\n tag: [t.definitionKeyword],\n color: '#C084FC',\n },\n {\n tag: [t.modifier],\n color: '#C084FC',\n },\n {\n tag: [t.controlKeyword],\n color: '#C084FC',\n },\n {\n tag: [t.operatorKeyword],\n color: '#C084FC',\n },\n\n // markdown\n {\n tag: [t.heading],\n color: '#7DD3FC',\n },\n {\n tag: [t.processingInstruction],\n color: '#7DD3FC',\n },\n\n // shell\n // curl\n {\n tag: [t.standard(t.variableName)],\n color: '#34D399',\n },\n // -X\n {\n tag: [t.attributeName],\n color: '#FBBF24',\n },\n // url in string (includes quotes), e.g. \"https://...\"\n {\n tag: [t.special(t.string)],\n color: '#7DD3FC',\n },\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { themes } from '@coze-editor/editor/preset-code';\n\nimport { lightTheme } from './light';\nimport { darkTheme } from './dark';\n\nthemes.register('dark', darkTheme);\nthemes.register('light', lightTheme);\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useRef } from 'react';\n\nimport {\n ActiveLinePlaceholder,\n createRenderer,\n EditorProvider,\n InferValues,\n} from '@coze-editor/editor/react';\nimport preset, { type EditorAPI } from '@coze-editor/editor/preset-code';\nimport { EditorView } from '@codemirror/view';\n\nimport { getSuffixByLanguageId } from './utils';\nimport { initTsWorker } from './language-features';\n\nimport './theme';\nimport './language-features';\n\nconst OriginCodeEditor = createRenderer(preset, [\n EditorView.theme({\n '&.cm-focused': {\n outline: 'none',\n },\n }),\n]);\n\ntype Preset = typeof preset;\ntype Options = Partial<InferValues<Preset[number]>>;\n\nexport interface CodeEditorPropsType extends React.PropsWithChildren<{}> {\n value?: string;\n onChange?: (value: string) => void;\n languageId: 'python' | 'typescript' | 'shell' | 'json';\n theme?: 'dark' | 'light';\n placeholder?: string;\n activeLinePlaceholder?: string;\n readonly?: boolean;\n options?: Options;\n}\n\nexport function CodeEditor({\n value,\n onChange,\n languageId = 'python',\n theme = 'light',\n children,\n placeholder,\n activeLinePlaceholder,\n options,\n readonly,\n}: CodeEditorPropsType) {\n const editorRef = useRef<EditorAPI | null>(null);\n\n useEffect(() => {\n if (languageId === 'typescript') {\n initTsWorker();\n }\n }, [languageId]);\n\n useEffect(() => {\n // listen to value change\n if (editorRef.current?.getValue() !== value) {\n editorRef.current?.setValue(String(value || ''));\n }\n }, [value]);\n\n return (\n <EditorProvider>\n <OriginCodeEditor\n defaultValue={String(value || '')}\n options={{\n uri: `file:///untitled${getSuffixByLanguageId(languageId)}`,\n languageId,\n theme,\n placeholder,\n readOnly: readonly,\n editable: !readonly,\n ...(options || {}),\n }}\n didMount={(editor: EditorAPI) => {\n editorRef.current = editor;\n }}\n onChange={(e) => onChange?.(e.value)}\n >\n {activeLinePlaceholder && (\n <ActiveLinePlaceholder>{activeLinePlaceholder}</ActiveLinePlaceholder>\n )}\n {children}\n </OriginCodeEditor>\n </EditorProvider>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { lazySuspense } from '@/shared';\n\nexport const CodeEditor = lazySuspense(() =>\n import('./editor').then((module) => ({ default: module.CodeEditor }))\n);\n\nexport type { CodeEditorPropsType } from './editor';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport styled from 'styled-components';\n\nimport { CodeEditor, type CodeEditorPropsType } from '@/components/code-editor';\n\nconst UIMini = styled.div`\n .ͼ1 .cm-content {\n }\n`;\n\nexport function CodeEditorMini(props: CodeEditorPropsType) {\n return (\n <UIMini>\n <CodeEditor\n {...props}\n options={{\n lineNumbersGutter: false,\n foldGutter: false,\n minHeight: 24,\n ...(props.options || {}),\n }}\n />\n </UIMini>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\n\nimport { CodeEditorMini } from '@/components/code-editor-mini';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const objectRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'object',\n ConstantRenderer: (props) => (\n <CodeEditorMini\n value={props.value}\n onChange={(v) => props.onChange?.(v)}\n languageId=\"json\"\n placeholder={I18n.t('Please Input Object')}\n readonly={props.readonly}\n />\n ),\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { InputNumber } from '@douyinfe/semi-ui';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const numberRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'number',\n ConstantRenderer: (props) => (\n <InputNumber\n placeholder={I18n.t('Please Input Number')}\n size=\"small\"\n disabled={props.readonly}\n hideButtons\n {...props}\n />\n ),\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { InputNumber } from '@douyinfe/semi-ui';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const integerRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'integer',\n ConstantRenderer: (props) => (\n <InputNumber\n placeholder={I18n.t('Please Input Integer')}\n size=\"small\"\n disabled={props.readonly}\n precision={0}\n {...props}\n />\n ),\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { DatePicker } from '@douyinfe/semi-ui';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const dateTimeRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'date-time',\n ConstantRenderer: (props) => (\n <DatePicker\n size=\"small\"\n type=\"dateTime\"\n density=\"compact\"\n style={{ width: '100%', ...(props.style || {}) }}\n disabled={props.readonly}\n {...props}\n />\n ),\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Select } from '@douyinfe/semi-ui';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const booleanRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'boolean',\n ConstantRenderer: (props) => {\n const { value, onChange, ...rest } = props;\n return (\n <Select\n placeholder={I18n.t('Please Select Boolean')}\n size=\"small\"\n disabled={props.readonly}\n optionList={[\n { label: I18n.t('True'), value: 1 },\n { label: I18n.t('False'), value: 0 },\n ]}\n value={value ? 1 : 0}\n onChange={(value) => onChange?.(!!value)}\n {...rest}\n />\n );\n },\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\n\nimport { CodeEditorMini } from '@/components/code-editor-mini';\n\nimport { type JsonSchemaTypeRegistry } from '../manager';\n\nexport const arrayRegistry: Partial<JsonSchemaTypeRegistry> = {\n type: 'array',\n ConstantRenderer: (props) => (\n <CodeEditorMini\n value={props.value}\n languageId=\"json\"\n onChange={(v) => props.onChange?.(v)}\n placeholder={I18n.t('Please Input Array')}\n readonly={props.readonly}\n />\n ),\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { jsonSchemaTypeManager } from '@flowgram.ai/json-schema';\n\nimport { stringRegistry } from './string';\nimport { objectRegistry } from './object';\nimport { numberRegistry } from './number';\nimport { integerRegistry } from './integer';\nimport { dateTimeRegistry } from './date-time';\nimport { booleanRegistry } from './boolean';\nimport { arrayRegistry } from './array';\n\nexport const jsonSchemaTypePreset = [\n stringRegistry,\n objectRegistry,\n numberRegistry,\n integerRegistry,\n booleanRegistry,\n arrayRegistry,\n dateTimeRegistry,\n];\n\njsonSchemaTypePreset.forEach((_type) => jsonSchemaTypeManager.register(_type));\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n BaseTypeManager,\n jsonSchemaContainerModule,\n JsonSchemaTypeManager,\n} from '@flowgram.ai/json-schema';\nimport { definePluginCreator } from '@flowgram.ai/editor';\n\nimport { jsonSchemaTypePreset } from './type-definition';\nimport { JsonSchemaTypeRegistry } from './manager';\n\nexport const createTypePresetPlugin = definePluginCreator<{\n types?: Partial<JsonSchemaTypeRegistry> & Pick<JsonSchemaTypeRegistry, 'type'>[];\n unregisterTypes?: string[];\n}>({\n onInit(ctx, opts) {\n const typeManager = ctx.get(BaseTypeManager) as JsonSchemaTypeManager;\n jsonSchemaTypePreset.forEach((_type) => typeManager.register(_type));\n\n opts.types?.forEach((_type) => typeManager.register(_type));\n opts.unregisterTypes?.forEach((_type) => typeManager.unregister(_type));\n },\n containerModules: [jsonSchemaContainerModule],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\nimport React from 'react';\n\nimport {\n type IJsonSchema,\n JsonSchemaUtils,\n useTypeManager as useOriginTypeManager,\n TypePresetProvider as OriginTypePresetProvider,\n JsonSchemaTypeManager,\n type JsonSchemaBasicType,\n} from '@flowgram.ai/json-schema';\n\nimport { jsonSchemaTypePreset } from './type-definition';\nimport { type JsonSchemaTypeRegistry, type ConstantRendererProps } from './manager';\nimport { createTypePresetPlugin } from './create-type-preset-plugin';\n\nconst useTypeManager = () =>\n useOriginTypeManager() as JsonSchemaTypeManager<IJsonSchema, JsonSchemaTypeRegistry>;\n\nconst JsonSchemaTypePresetProvider = ({\n types = [],\n children,\n}: React.PropsWithChildren<{ types: JsonSchemaTypeRegistry[] }>) => (\n <OriginTypePresetProvider types={[...jsonSchemaTypePreset, ...types]}>\n {children}\n </OriginTypePresetProvider>\n);\n\nexport {\n createTypePresetPlugin,\n useTypeManager,\n JsonSchemaTypePresetProvider,\n IJsonSchema,\n JsonSchemaUtils,\n JsonSchemaTypeRegistry,\n ConstantRendererProps,\n JsonSchemaBasicType,\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTMatch,\n definePluginCreator,\n type GlobalEventActionType,\n VariableEngine,\n} from '@flowgram.ai/editor';\n\nexport const createDisableDeclarationPlugin = definePluginCreator<void>({\n onInit(ctx) {\n const variableEngine = ctx.get(VariableEngine);\n\n const handleEvent = (action: GlobalEventActionType) => {\n if (ASTMatch.isVariableDeclaration(action.ast)) {\n if (!action.ast.meta?.disabled) {\n action.ast.updateMeta({\n ...(action.ast.meta || {}),\n disabled: true,\n });\n }\n }\n };\n\n variableEngine.onGlobalEvent('NewAST', handleEvent);\n variableEngine.onGlobalEvent('UpdateAST', handleEvent);\n },\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport { createDisableDeclarationPlugin } from './create-disable-declaration-plugin';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './json-schema-preset';\nexport * from './disable-declaration-plugin';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useCallback } from 'react';\n\nimport { IJsonSchema, JsonSchemaUtils } from '@flowgram.ai/json-schema';\nimport { ASTMatch, BaseVariableField, useAvailableVariables } from '@flowgram.ai/editor';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { Icon } from '@douyinfe/semi-ui';\n\nimport { useTypeManager } from '@/plugins';\n\ntype VariableField = BaseVariableField<{\n icon?: string | JSX.Element;\n title?: string;\n disabled?: boolean;\n}>;\n\nexport function useVariableTree(params: {\n includeSchema?: IJsonSchema | IJsonSchema[];\n excludeSchema?: IJsonSchema | IJsonSchema[];\n skipVariable?: (variable: VariableField) => boolean;\n}): TreeNodeData[] {\n const { includeSchema, excludeSchema, skipVariable } = params;\n\n const typeManager = useTypeManager();\n const variables = useAvailableVariables();\n\n const getVariableTypeIcon = useCallback((variable: VariableField) => {\n if (variable.meta?.icon) {\n if (typeof variable.meta.icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={variable.meta.icon} />;\n }\n\n return variable.meta.icon;\n }\n\n const schema = JsonSchemaUtils.astToSchema(variable.type, { drilldownObject: false });\n\n return <Icon size=\"small\" svg={typeManager.getDisplayIcon(schema || {})} />;\n }, []);\n\n const renderVariable = (\n variable: VariableField,\n parentFields: VariableField[] = []\n ): TreeNodeData | null => {\n let type = variable?.type;\n\n if (!type) {\n return null;\n }\n\n let children: TreeNodeData[] | undefined;\n\n if (ASTMatch.isObject(type)) {\n children = (type.properties || [])\n .map((_property) => renderVariable(_property as VariableField, [...parentFields, variable]))\n .filter(Boolean) as TreeNodeData[];\n }\n\n const keyPath = [...parentFields.map((_field) => _field.key), variable.key];\n const key = keyPath.join('.');\n\n const isSchemaInclude = includeSchema\n ? JsonSchemaUtils.isASTMatchSchema(type, includeSchema)\n : true;\n const isSchemaExclude = excludeSchema\n ? JsonSchemaUtils.isASTMatchSchema(type, excludeSchema)\n : false;\n const isCustomSkip = skipVariable ? skipVariable(variable) : false;\n\n // disabled in meta when created\n const isMetaDisabled = variable.meta?.disabled;\n\n const isSchemaMatch = isSchemaInclude && !isSchemaExclude && !isCustomSkip && !isMetaDisabled;\n\n // If not match, and no children, return null\n if (!isSchemaMatch && !children?.length) {\n return null;\n }\n\n return {\n key: key,\n label: variable.meta?.title || variable.key,\n value: key,\n keyPath,\n icon: getVariableTypeIcon(variable),\n children,\n disabled: !isSchemaMatch,\n rootMeta: parentFields[0]?.meta || variable.meta,\n isRoot: !parentFields?.length,\n };\n };\n\n return [...variables.slice(0).reverse()]\n .map((_variable) => renderVariable(_variable as VariableField))\n .filter(Boolean) as TreeNodeData[];\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled, { css } from 'styled-components';\nimport { Tag, TreeSelect } from '@douyinfe/semi-ui';\n\nexport const UIRootTitle = styled.div`\n margin-right: 4px;\n min-width: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--semi-color-text-2);\n`;\n\nexport const UIVarName = styled.div<{ $inSelector?: boolean }>`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ${({ $inSelector }) =>\n $inSelector &&\n css`\n min-width: 50%;\n `}\n`;\n\nexport const UITag = styled(Tag)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n & .semi-tag-content-center {\n justify-content: flex-start;\n }\n\n &.semi-tag {\n margin: 0;\n height: 22px;\n }\n`;\n\nexport const UITreeSelect = styled(TreeSelect)<{ $error?: boolean }>`\n outline: ${({ $error }) => ($error ? '1px solid red' : 'none')};\n\n & .semi-tree-select-selection {\n padding: 0px;\n height: 22px;\n }\n\n & .semi-tree-select-selection-content {\n width: 100%;\n }\n\n & .semi-tree-select-selection-placeholder {\n padding-left: 10px;\n }\n`;\n\nexport const UIPopoverContent = styled.div`\n padding: 10px;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n white-space: nowrap;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { createContext, useContext, useMemo } from 'react';\n\nimport { BaseVariableField } from '@flowgram.ai/editor';\n\nexport const VariableSelectorContext = createContext<{\n skipVariable?: (variable?: BaseVariableField) => boolean;\n}>({});\n\nexport const useVariableSelectorContext = () => useContext(VariableSelectorContext);\n\nexport const VariableSelectorProvider = ({\n children,\n skipVariable,\n}: {\n skipVariable?: (variable?: BaseVariableField) => boolean;\n children: React.ReactNode;\n}) => {\n const context = useMemo(() => ({ skipVariable }), [skipVariable]);\n\n return (\n <VariableSelectorContext.Provider value={context}>{children}</VariableSelectorContext.Provider>\n );\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { I18n } from '@flowgram.ai/editor';\nimport { TriggerRenderProps } from '@douyinfe/semi-ui/lib/es/treeSelect';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { Popover } from '@douyinfe/semi-ui';\nimport { IconChevronDownStroked, IconIssueStroked } from '@douyinfe/semi-icons';\n\nimport { createInjectMaterial } from '@/shared';\n\nimport { useVariableTree } from './use-variable-tree';\nimport { UIPopoverContent, UIRootTitle, UITag, UITreeSelect, UIVarName } from './styles';\nimport { useVariableSelectorContext } from './context';\n\nexport interface VariableSelectorProps {\n value?: string[];\n config?: {\n placeholder?: string;\n notFoundContent?: string;\n };\n onChange: (value?: string[]) => void;\n includeSchema?: IJsonSchema | IJsonSchema[];\n excludeSchema?: IJsonSchema | IJsonSchema[];\n readonly?: boolean;\n hasError?: boolean;\n style?: React.CSSProperties;\n triggerRender?: (props: TriggerRenderProps) => React.ReactNode;\n}\n\nexport { useVariableTree };\n\nexport const VariableSelector = ({\n value,\n config = {},\n onChange,\n style,\n readonly = false,\n includeSchema,\n excludeSchema,\n hasError,\n triggerRender,\n}: VariableSelectorProps) => {\n const { skipVariable } = useVariableSelectorContext();\n\n const treeData = useVariableTree({\n includeSchema,\n excludeSchema,\n skipVariable,\n });\n\n const treeValue = useMemo(() => {\n if (typeof value === 'string') {\n console.warn(\n 'The Value of VariableSelector is a string, it should be an ARRAY. \\n',\n 'Please check the value of VariableSelector \\n'\n );\n return value;\n }\n return value?.join('.');\n }, [value]);\n\n const renderIcon = (icon: string | JSX.Element) => {\n if (typeof icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={icon} />;\n }\n\n return icon;\n };\n\n return (\n <>\n <UITreeSelect\n dropdownMatchSelectWidth={false}\n disabled={readonly}\n treeData={treeData}\n size=\"small\"\n value={treeValue}\n clearIcon={null}\n $error={hasError}\n style={style}\n validateStatus={hasError ? 'error' : undefined}\n onChange={(_, _config) => {\n onChange((_config as TreeNodeData).keyPath as string[]);\n }}\n renderSelectedItem={(_option: TreeNodeData) => {\n if (!_option?.keyPath) {\n return (\n <UITag\n prefixIcon={<IconIssueStroked />}\n color=\"amber\"\n closable={!readonly}\n onClose={() => onChange(undefined)}\n >\n {config?.notFoundContent ?? 'Undefined'}\n </UITag>\n );\n }\n\n const rootIcon = renderIcon(_option.rootMeta?.icon || _option?.icon);\n\n const rootTitle = (\n <UIRootTitle>\n {_option.rootMeta?.title\n ? `${_option.rootMeta?.title} ${_option.isRoot ? '' : '-'} `\n : null}\n </UIRootTitle>\n );\n\n return (\n <div>\n <Popover\n content={\n <UIPopoverContent>\n {rootIcon}\n {rootTitle}\n <UIVarName>{_option.keyPath.slice(1).join('.')}</UIVarName>\n </UIPopoverContent>\n }\n >\n <UITag\n prefixIcon={rootIcon}\n closable={!readonly}\n onClose={() => onChange(undefined)}\n >\n {rootTitle}\n {!_option.isRoot && <UIVarName $inSelector>{_option.label}</UIVarName>}\n </UITag>\n </Popover>\n </div>\n );\n }}\n showClear={false}\n arrowIcon={<IconChevronDownStroked size=\"small\" />}\n triggerRender={triggerRender}\n placeholder={config?.placeholder ?? I18n.t('Select Variable')}\n />\n </>\n );\n};\n\nVariableSelector.renderKey = 'variable-selector-render-key';\nexport const InjectVariableSelector = createInjectMaterial(VariableSelector);\n\nexport { VariableSelectorProvider } from './context';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled, { css } from 'styled-components';\n\nexport const UIContainer = styled.div<{ $hasError?: boolean }>`\n background-color: var(--semi-color-fill-0);\n padding-left: 10px;\n padding-right: 6px;\n\n ${({ $hasError }) =>\n $hasError &&\n css`\n border: 1px solid var(--semi-color-danger-6);\n `}\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { astDecorator } from '@coze-editor/editor';\nimport { EditorView } from '@codemirror/view';\n\nfunction MarkdownHighlight() {\n const injector = useInjector();\n\n useLayoutEffect(\n () =>\n injector.inject([\n astDecorator.whole.of((cursor) => {\n // # heading\n if (cursor.name.startsWith('ATXHeading')) {\n return {\n type: 'className',\n className: 'heading',\n };\n }\n\n // *italic*\n if (cursor.name === 'Emphasis') {\n return {\n type: 'className',\n className: 'emphasis',\n };\n }\n\n // **bold**\n if (cursor.name === 'StrongEmphasis') {\n return {\n type: 'className',\n className: 'strong-emphasis',\n };\n }\n\n // -\n // 1.\n // >\n if (cursor.name === 'ListMark' || cursor.name === 'QuoteMark') {\n return {\n type: 'className',\n className: 'mark',\n };\n }\n }),\n EditorView.theme({\n '.heading': {\n color: '#00818C',\n fontWeight: 'bold',\n },\n '.emphasis': {\n fontStyle: 'italic',\n },\n '.strong-emphasis': {\n fontWeight: 'bold',\n },\n '.mark': {\n color: '#4E40E5',\n },\n }),\n ]),\n [injector]\n );\n\n return null;\n}\n\nexport default MarkdownHighlight;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { languageSupport } from '@coze-editor/editor/preset-prompt';\n\nfunction LanguageSupport() {\n const injector = useInjector();\n\n useLayoutEffect(() => injector.inject([languageSupport]), [injector]);\n\n return null;\n}\n\nexport default LanguageSupport;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useLayoutEffect } from 'react';\n\nimport { useInjector } from '@coze-editor/editor/react';\nimport { astDecorator } from '@coze-editor/editor';\nimport { EditorView } from '@codemirror/view';\n\nfunction JinjaHighlight() {\n const injector = useInjector();\n\n useLayoutEffect(\n () =>\n injector.inject([\n astDecorator.whole.of((cursor) => {\n if (cursor.name === 'JinjaStatementStart' || cursor.name === 'JinjaStatementEnd') {\n return {\n type: 'className',\n className: 'jinja-statement-bracket',\n };\n }\n\n if (cursor.name === 'JinjaComment') {\n return {\n type: 'className',\n className: 'jinja-comment',\n };\n }\n\n if (cursor.name === 'JinjaExpression') {\n return {\n type: 'className',\n className: 'jinja-expression',\n };\n }\n }),\n EditorView.theme({\n '.jinja-statement-bracket': {\n color: '#D1009D',\n },\n '.jinja-comment': {\n color: '#0607094D',\n },\n '.jinja-expression': {\n color: '#4E40E5',\n },\n }),\n ]),\n [injector]\n );\n\n return null;\n}\n\nexport default JinjaHighlight;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useRef } from 'react';\n\nimport {\n Renderer,\n EditorProvider,\n ActiveLinePlaceholder,\n InferValues,\n} from '@coze-editor/editor/react';\nimport preset, { EditorAPI } from '@coze-editor/editor/preset-prompt';\n\nimport { PropsType } from './types';\nimport { UIContainer } from './styles';\nimport MarkdownHighlight from './extensions/markdown';\nimport LanguageSupport from './extensions/language-support';\nimport JinjaHighlight from './extensions/jinja';\n\ntype Preset = typeof preset;\ntype Options = Partial<InferValues<Preset[number]>>;\n\nexport interface PromptEditorPropsType extends PropsType {\n options?: Options;\n}\n\nexport function PromptEditor(props: PromptEditorPropsType) {\n const {\n value,\n onChange,\n readonly,\n placeholder,\n activeLinePlaceholder,\n style,\n hasError,\n children,\n disableMarkdownHighlight,\n options,\n } = props || {};\n\n const editorRef = useRef<EditorAPI | null>(null);\n\n useEffect(() => {\n // listen to value change\n if (editorRef.current?.getValue() !== value?.content) {\n editorRef.current?.setValue(String(value?.content || ''));\n }\n }, [value]);\n\n return (\n <UIContainer $hasError={hasError} style={style}>\n <EditorProvider>\n <Renderer\n didMount={(editor: EditorAPI) => {\n editorRef.current = editor;\n }}\n plugins={preset}\n defaultValue={String(value?.content)}\n options={{\n readOnly: readonly,\n editable: !readonly,\n placeholder,\n ...options,\n }}\n onChange={(e) => {\n onChange({ type: 'template', content: e.value });\n }}\n />\n {activeLinePlaceholder && (\n <ActiveLinePlaceholder>{activeLinePlaceholder}</ActiveLinePlaceholder>\n )}\n {!disableMarkdownHighlight && <MarkdownHighlight />}\n <LanguageSupport />\n <JinjaHighlight />\n {children}\n </EditorProvider>\n </UIContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { lazySuspense } from '@/shared';\n\nexport const PromptEditor = lazySuspense(() =>\n import('./editor').then((module) => ({ default: module.PromptEditor }))\n);\n\nexport type { PromptEditorPropsType } from './editor';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Popover, Tree } from '@douyinfe/semi-ui';\nimport {\n Mention,\n MentionOpenChangeEvent,\n getCurrentMentionReplaceRange,\n useEditor,\n PositionMirror,\n} from '@coze-editor/editor/react';\nimport { EditorAPI } from '@coze-editor/editor/preset-prompt';\n\nimport { useVariableTree } from '@/components/variable-selector';\n\nexport function VariableTree() {\n const [posKey, setPosKey] = useState('');\n const [visible, setVisible] = useState(false);\n const [position, setPosition] = useState(-1);\n const editor = useEditor<EditorAPI>();\n\n function insert(variablePath: string) {\n const range = getCurrentMentionReplaceRange(editor.$view.state);\n\n if (!range) {\n return;\n }\n\n /**\n * When user input {{xxxx}}, {{{xxx}}}(more brackets if possible), replace all brackets with {{xxxx}}\n */\n let { from, to } = range;\n while (editor.$view.state.doc.sliceString(from - 1, from) === '{') {\n from--;\n }\n while (editor.$view.state.doc.sliceString(to, to + 1) === '}') {\n to++;\n }\n\n editor.replaceText({\n from,\n to,\n text: '{{' + variablePath + '}}',\n });\n\n setVisible(false);\n }\n\n function handleOpenChange(e: MentionOpenChangeEvent) {\n setPosition(e.state.selection.main.head);\n setVisible(e.value);\n }\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n }, [editor, visible]);\n\n const treeData = useVariableTree({});\n\n return (\n <>\n <Mention triggerCharacters={['{', '{}', '@']} onOpenChange={handleOpenChange} />\n\n <Popover\n visible={visible}\n trigger=\"custom\"\n position=\"topLeft\"\n rePosKey={posKey}\n content={\n <div style={{ width: 300 }}>\n <Tree\n treeData={treeData}\n onSelect={(v) => {\n insert(v);\n }}\n />\n </div>\n }\n >\n {/* PositionMirror allows the Popover to appear at the specified cursor position */}\n <PositionMirror\n position={position}\n // When Doc scroll, update position\n onChange={() => setPosKey(String(Math.random()))}\n />\n </Popover>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Tag } from '@douyinfe/semi-ui';\n\nexport const UIRootTitle = styled.div`\n margin-right: 4px;\n min-width: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--semi-color-text-2);\n`;\n\nexport const UIVarName = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const UITag = styled(Tag)`\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n max-width: 300px;\n\n & .semi-tag-content-center {\n justify-content: flex-start;\n }\n\n &.semi-tag {\n margin: 0 5px;\n }\n`;\n\nexport const UIPopoverContent = styled.div`\n padding: 10px;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useLayoutEffect } from 'react';\n\nimport { isEqual, last } from 'lodash-es';\nimport {\n BaseVariableField,\n Disposable,\n DisposableCollection,\n Scope,\n useCurrentScope,\n} from '@flowgram.ai/editor';\nimport { Popover } from '@douyinfe/semi-ui';\nimport { IconIssueStroked } from '@douyinfe/semi-icons';\nimport { useInjector } from '@coze-editor/editor/react';\nimport {\n Decoration,\n DecorationSet,\n EditorView,\n MatchDecorator,\n ViewPlugin,\n WidgetType,\n} from '@codemirror/view';\n\nimport { IPolyfillRoot, polyfillCreateRoot } from '@/shared';\n\nimport { UIPopoverContent, UIRootTitle, UITag, UIVarName } from '../styles';\n\nclass VariableTagWidget extends WidgetType {\n keyPath?: string[];\n\n toDispose = new DisposableCollection();\n\n scope: Scope;\n\n root: IPolyfillRoot;\n\n constructor({ keyPath, scope }: { keyPath?: string[]; scope: Scope }) {\n super();\n\n this.keyPath = keyPath;\n this.scope = scope;\n }\n\n renderIcon = (icon: string | JSX.Element) => {\n if (typeof icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={icon} />;\n }\n\n return icon;\n };\n\n renderVariable(v?: BaseVariableField) {\n if (!v) {\n this.root.render(\n <UITag prefixIcon={<IconIssueStroked />} color=\"amber\">\n Unknown\n </UITag>\n );\n return;\n }\n\n const rootField = last(v.parentFields);\n\n const rootTitle = (\n <UIRootTitle>{rootField?.meta.title ? `${rootField.meta.title} -` : ''}</UIRootTitle>\n );\n const rootIcon = this.renderIcon(rootField?.meta.icon);\n\n this.root.render(\n <Popover\n content={\n <UIPopoverContent>\n {rootIcon}\n {rootTitle}\n <UIVarName>{v?.keyPath.slice(1).join('.')}</UIVarName>\n </UIPopoverContent>\n }\n >\n <UITag prefixIcon={rootIcon}>\n {rootTitle}\n <UIVarName>{v?.key}</UIVarName>\n </UITag>\n </Popover>\n );\n }\n\n toDOM(view: EditorView): HTMLElement {\n const dom = document.createElement('span');\n\n this.root = polyfillCreateRoot(dom);\n\n this.toDispose.push(\n Disposable.create(() => {\n this.root.unmount();\n })\n );\n\n this.toDispose.push(\n this.scope.available.trackByKeyPath(\n this.keyPath,\n (v) => {\n this.renderVariable(v);\n },\n { triggerOnInit: false }\n )\n );\n\n this.renderVariable(this.scope.available.getByKeyPath(this.keyPath));\n\n return dom;\n }\n\n eq(other: VariableTagWidget) {\n return isEqual(this.keyPath, other.keyPath);\n }\n\n ignoreEvent(): boolean {\n return false;\n }\n\n destroy(dom: HTMLElement): void {\n this.toDispose.dispose();\n }\n}\n\nexport function VariableTagInject() {\n const injector = useInjector();\n\n const scope = useCurrentScope();\n\n // 基于 {{var}} 的正则进行匹配,匹配后进行自定义渲染\n useLayoutEffect(() => {\n const atMatcher = new MatchDecorator({\n regexp: /\\{\\{([^\\}\\{]+)\\}\\}/g,\n decoration: (match) =>\n Decoration.replace({\n widget: new VariableTagWidget({\n keyPath: match[1]?.split('.') ?? [],\n scope,\n }),\n }),\n });\n\n return injector.inject([\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(private view: EditorView) {\n this.decorations = atMatcher.createDeco(view);\n }\n\n update() {\n this.decorations = atMatcher.createDeco(this.view);\n }\n },\n {\n decorations: (p) => p.decorations,\n provide(p) {\n return EditorView.atomicRanges.of(\n (view) => view.plugin(p)?.decorations ?? Decoration.none\n );\n },\n }\n ),\n ]);\n }, [injector]);\n\n return null;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { PromptEditor, PromptEditorPropsType } from '@/components/prompt-editor';\n\nimport { VariableTree } from './extensions/variable-tree';\nimport { VariableTagInject } from './extensions/variable-tag';\n\nexport interface PromptEditorWithVariablesProps extends PromptEditorPropsType {}\n\nexport function PromptEditorWithVariables(props: PromptEditorWithVariablesProps) {\n return (\n <PromptEditor {...props}>\n <VariableTree />\n <VariableTagInject />\n </PromptEditor>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { isPlainObject, last } from 'lodash-es';\nimport {\n type ArrayType,\n ASTMatch,\n type BaseType,\n type BaseVariableField,\n useScopeAvailable,\n} from '@flowgram.ai/editor';\nimport { TreeNodeData } from '@douyinfe/semi-ui/lib/es/tree';\nimport { Tree } from '@douyinfe/semi-ui';\n\nimport { FlowValueUtils } from '@/shared';\n\ntype VariableField = BaseVariableField<{ icon?: string | JSX.Element; title?: string }>;\n\nexport function InputsPicker({\n inputsValues,\n onSelect,\n}: {\n inputsValues: any;\n onSelect: (v: string) => void;\n}) {\n const available = useScopeAvailable();\n\n const getArrayDrilldown = (type: ArrayType, depth = 1): { type: BaseType; depth: number } => {\n if (ASTMatch.isArray(type.items)) {\n return getArrayDrilldown(type.items, depth + 1);\n }\n\n return { type: type.items, depth: depth };\n };\n\n const renderVariable = (variable: VariableField, keyPath: string[]): TreeNodeData => {\n let type = variable?.type;\n\n let children: TreeNodeData[] | undefined;\n\n if (ASTMatch.isObject(type)) {\n children = (type.properties || [])\n .map((_property) => renderVariable(_property as VariableField, [...keyPath, _property.key]))\n .filter(Boolean) as TreeNodeData[];\n }\n\n if (ASTMatch.isArray(type)) {\n const drilldown = getArrayDrilldown(type);\n\n if (ASTMatch.isObject(drilldown.type)) {\n children = (drilldown.type.properties || [])\n .map((_property) =>\n renderVariable(_property as VariableField, [\n ...keyPath,\n ...new Array(drilldown.depth).fill('[0]'),\n _property.key,\n ])\n )\n .filter(Boolean) as TreeNodeData[];\n }\n }\n\n const key = keyPath\n .map((_key, idx) => (_key === '[0]' || idx === 0 ? _key : `.${_key}`))\n .join('');\n\n return {\n key: key,\n label: last(keyPath),\n value: key,\n children,\n };\n };\n\n const getTreeData = (value: any, keyPath: string[]): TreeNodeData | undefined => {\n const currKey = keyPath.join('.');\n\n if (FlowValueUtils.isFlowValue(value)) {\n if (FlowValueUtils.isRef(value)) {\n const variable = available.getByKeyPath(value.content || []);\n if (variable) {\n return renderVariable(variable, keyPath);\n }\n }\n return {\n key: currKey,\n value: currKey,\n label: last(keyPath),\n };\n }\n\n if (isPlainObject(value)) {\n return {\n key: currKey,\n value: currKey,\n label: last(keyPath),\n children: Object.entries(value)\n .map(([key, value]) => getTreeData(value, [...keyPath, key])!)\n .filter(Boolean),\n };\n }\n };\n\n const treeData: TreeNodeData[] = useMemo(\n () =>\n Object.entries(inputsValues)\n .map(([key, value]) => getTreeData(value, [key])!)\n .filter(Boolean),\n []\n );\n\n return <Tree treeData={treeData} onSelect={(v) => onSelect(v)} />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Popover } from '@douyinfe/semi-ui';\nimport {\n Mention,\n MentionOpenChangeEvent,\n getCurrentMentionReplaceRange,\n useEditor,\n PositionMirror,\n} from '@coze-editor/editor/react';\nimport { EditorAPI } from '@coze-editor/editor/preset-prompt';\n\nimport { IFlowValue } from '@/typings';\n\nimport { InputsPicker } from '../inputs-picker';\n\nexport function InputsTree({ inputsValues }: { inputsValues: Record<string, IFlowValue> }) {\n const [posKey, setPosKey] = useState('');\n const [visible, setVisible] = useState(false);\n const [position, setPosition] = useState(-1);\n const editor = useEditor<EditorAPI>();\n\n function insert(variablePath: string) {\n const range = getCurrentMentionReplaceRange(editor.$view.state);\n\n if (!range) {\n return;\n }\n\n /**\n * When user input {{xxxx}}, {{{xxx}}}(more brackets if possible), replace all brackets with {{xxxx}}\n */\n let { from, to } = range;\n while (editor.$view.state.doc.sliceString(from - 1, from) === '{') {\n from--;\n }\n while (editor.$view.state.doc.sliceString(to, to + 1) === '}') {\n to++;\n }\n\n editor.replaceText({\n ...range,\n text: '{{' + variablePath + '}}',\n });\n\n setVisible(false);\n }\n\n function handleOpenChange(e: MentionOpenChangeEvent) {\n setPosition(e.state.selection.main.head);\n setVisible(e.value);\n }\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n }, [editor, visible]);\n\n return (\n <>\n <Mention triggerCharacters={['{', '{}', '@']} onOpenChange={handleOpenChange} />\n\n <Popover\n visible={visible}\n trigger=\"custom\"\n position=\"topLeft\"\n rePosKey={posKey}\n content={\n <div style={{ width: 300 }}>\n <InputsPicker\n inputsValues={inputsValues}\n onSelect={(v) => {\n insert(v);\n }}\n />\n </div>\n }\n >\n {/* PositionMirror allows the Popover to appear at the specified cursor position */}\n <PositionMirror\n position={position}\n // When Doc scroll, update position\n onChange={() => setPosKey(String(Math.random()))}\n />\n </Popover>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { PromptEditor, PromptEditorPropsType } from '@/components/prompt-editor';\n\nimport { InputsTree } from './extensions/inputs-tree';\n\nexport interface PromptEditorWithInputsProps extends PromptEditorPropsType {\n inputsValues: any;\n}\n\nexport function PromptEditorWithInputs({\n inputsValues,\n ...restProps\n}: PromptEditorWithInputsProps) {\n return (\n <PromptEditor {...restProps}>\n <InputsTree inputsValues={inputsValues} />\n </PromptEditor>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Popover, Tree } from '@douyinfe/semi-ui';\nimport {\n Mention,\n MentionOpenChangeEvent,\n getCurrentMentionReplaceRange,\n useEditor,\n PositionMirror,\n} from '@coze-editor/editor/react';\nimport { EditorAPI } from '@coze-editor/editor/preset-prompt';\n\nimport { useVariableTree } from '@/components/variable-selector';\n\nexport function VariableTree() {\n const [posKey, setPosKey] = useState('');\n const [visible, setVisible] = useState(false);\n const [position, setPosition] = useState(-1);\n const editor = useEditor<EditorAPI>();\n\n function insert(variablePath: string) {\n const range = getCurrentMentionReplaceRange(editor.$view.state);\n\n if (!range) {\n return;\n }\n\n editor.replaceText({\n ...range,\n text: '{{' + variablePath + '}}',\n });\n\n setVisible(false);\n }\n\n function handleOpenChange(e: MentionOpenChangeEvent) {\n setPosition(e.state.selection.main.head);\n setVisible(e.value);\n }\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n }, [editor, visible]);\n\n const treeData = useVariableTree({});\n\n return (\n <>\n <Mention triggerCharacters={['@']} onOpenChange={handleOpenChange} />\n\n <Popover\n visible={visible}\n trigger=\"custom\"\n position=\"topLeft\"\n rePosKey={posKey}\n content={\n <div style={{ width: 300 }}>\n <Tree\n treeData={treeData}\n onSelect={(v) => {\n insert(v);\n }}\n />\n </div>\n }\n >\n {/* PositionMirror allows the Popover to appear at the specified cursor position */}\n <PositionMirror\n position={position}\n // When Doc scroll, update position\n onChange={() => setPosKey(String(Math.random()))}\n />\n </Popover>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Tag } from '@douyinfe/semi-ui';\n\nexport const UIRootTitle = styled.div`\n margin-right: 4px;\n min-width: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--semi-color-text-2);\n`;\n\nexport const UIVarName = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const UITag = styled(Tag)`\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n max-width: 300px;\n\n & .semi-tag-content-center {\n justify-content: flex-start;\n }\n\n &.semi-tag {\n margin: 0 5px;\n }\n`;\n\nexport const UIPopoverContent = styled.div`\n padding: 10px;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useLayoutEffect } from 'react';\n\nimport { isEqual, last } from 'lodash-es';\nimport {\n BaseVariableField,\n Disposable,\n DisposableCollection,\n Scope,\n useCurrentScope,\n} from '@flowgram.ai/editor';\nimport { Popover } from '@douyinfe/semi-ui';\nimport { IconIssueStroked } from '@douyinfe/semi-icons';\nimport { useInjector } from '@coze-editor/editor/react';\nimport {\n Decoration,\n DecorationSet,\n EditorView,\n MatchDecorator,\n ViewPlugin,\n WidgetType,\n} from '@codemirror/view';\n\nimport { IPolyfillRoot, polyfillCreateRoot } from '@/shared';\n\nimport { UIPopoverContent, UIRootTitle, UITag, UIVarName } from '../styles';\n\nclass VariableTagWidget extends WidgetType {\n keyPath?: string[];\n\n toDispose = new DisposableCollection();\n\n scope: Scope;\n\n root: IPolyfillRoot;\n\n constructor({ keyPath, scope }: { keyPath?: string[]; scope: Scope }) {\n super();\n\n this.keyPath = keyPath;\n this.scope = scope;\n }\n\n renderIcon = (icon: string | JSX.Element) => {\n if (typeof icon === 'string') {\n return <img style={{ marginRight: 8 }} width={12} height={12} src={icon} />;\n }\n\n return icon;\n };\n\n renderVariable(v?: BaseVariableField) {\n if (!v) {\n this.root.render(\n <UITag prefixIcon={<IconIssueStroked />} color=\"amber\">\n Unknown\n </UITag>\n );\n return;\n }\n\n const rootField = last(v.parentFields);\n\n const rootTitle = (\n <UIRootTitle>{rootField?.meta.title ? `${rootField.meta.title} -` : ''}</UIRootTitle>\n );\n const rootIcon = this.renderIcon(rootField?.meta.icon);\n\n this.root.render(\n <Popover\n content={\n <UIPopoverContent>\n {rootIcon}\n {rootTitle}\n <UIVarName>{v?.keyPath.slice(1).join('.')}</UIVarName>\n </UIPopoverContent>\n }\n >\n <UITag prefixIcon={rootIcon}>\n {rootTitle}\n <UIVarName>{v?.key}</UIVarName>\n </UITag>\n </Popover>\n );\n }\n\n toDOM(view: EditorView): HTMLElement {\n const dom = document.createElement('span');\n\n this.root = polyfillCreateRoot(dom);\n\n this.toDispose.push(\n Disposable.create(() => {\n this.root.unmount();\n })\n );\n\n this.toDispose.push(\n this.scope.available.trackByKeyPath(\n this.keyPath,\n (v) => {\n this.renderVariable(v);\n },\n { triggerOnInit: false }\n )\n );\n\n this.renderVariable(this.scope.available.getByKeyPath(this.keyPath));\n\n return dom;\n }\n\n eq(other: VariableTagWidget) {\n return isEqual(this.keyPath, other.keyPath);\n }\n\n ignoreEvent(): boolean {\n return false;\n }\n\n destroy(dom: HTMLElement): void {\n this.toDispose.dispose();\n }\n}\n\nexport function VariableTagInject() {\n const injector = useInjector();\n\n const scope = useCurrentScope();\n\n // 基于 {{var}} 的正则进行匹配,匹配后进行自定义渲染\n useLayoutEffect(() => {\n const atMatcher = new MatchDecorator({\n regexp: /\\{\\{([^\\}\\{]+)\\}\\}/g,\n decoration: (match) =>\n Decoration.replace({\n widget: new VariableTagWidget({\n keyPath: match[1]?.split('.') ?? [],\n scope,\n }),\n }),\n });\n\n return injector.inject([\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(private view: EditorView) {\n this.decorations = atMatcher.createDeco(view);\n }\n\n update() {\n this.decorations = atMatcher.createDeco(this.view);\n }\n },\n {\n decorations: (p) => p.decorations,\n provide(p) {\n return EditorView.atomicRanges.of(\n (view) => view.plugin(p)?.decorations ?? Decoration.none\n );\n },\n }\n ),\n ]);\n }, [injector]);\n\n return null;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { transformerCreator } from '@coze-editor/editor/preset-code';\nimport { Text } from '@coze-editor/editor/language-json';\n\nimport { CodeEditor, type CodeEditorPropsType } from '@/components/code-editor';\n\nimport { VariableTree } from './extensions/variable-tree';\nimport { VariableTagInject } from './extensions/variable-tag';\n\ntype Match = { match: string; range: [number, number] };\nfunction findAllMatches(inputString: string, regex: RegExp): Match[] {\n const globalRegex = new RegExp(\n regex,\n regex.flags.includes('g') ? regex.flags : regex.flags + 'g'\n );\n let match;\n const matches: Match[] = [];\n\n while ((match = globalRegex.exec(inputString)) !== null) {\n if (match.index === globalRegex.lastIndex) {\n globalRegex.lastIndex++;\n }\n matches.push({\n match: match[0],\n range: [match.index, match.index + match[0].length],\n });\n }\n\n return matches;\n}\n\nconst transformer = transformerCreator((text: Text) => {\n const originalSource = text.toString();\n const matches = findAllMatches(originalSource, /\\{\\{([^\\}]*)\\}\\}/g);\n\n if (matches.length > 0) {\n matches.forEach(({ range }) => {\n text.replaceRange(range[0], range[1], 'null');\n });\n }\n\n return text;\n});\n\nexport interface JsonEditorWithVariablesProps extends Omit<CodeEditorPropsType, 'languageId'> {}\n\nexport function JsonEditorWithVariables(props: JsonEditorWithVariablesProps) {\n return (\n <CodeEditor\n languageId=\"json\"\n activeLinePlaceholder={I18n.t(\"Press '@' to Select variable\")}\n {...props}\n options={{\n transformer,\n ...(props.options || {}),\n }}\n >\n <VariableTree />\n <VariableTagInject />\n </CodeEditor>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './components';\nexport * from './effects';\nexport * from './shared';\nexport * from './typings';\nexport * from './form-plugins';\nexport * from './plugins';\nexport * from './validate';\nexport * from './hooks';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './variable-selector';\nexport * from './type-selector';\nexport * from './json-schema-editor';\nexport * from './batch-variable-selector';\nexport * from './constant-input';\nexport * from './dynamic-value-input';\nexport * from './condition-row';\nexport * from './db-condition-row';\nexport * from './batch-outputs';\nexport * from './prompt-editor';\nexport * from './prompt-editor-with-variables';\nexport * from './prompt-editor-with-inputs';\nexport * from './code-editor';\nexport * from './code-editor-mini';\nexport * from './json-editor-with-variables';\nexport * from './inputs-values';\nexport * from './display-schema-tree';\nexport * from './display-outputs';\nexport * from './display-schema-tag';\nexport * from './display-flow-value';\nexport * from './display-inputs-values';\nexport * from './assign-rows';\nexport * from './assign-row';\nexport * from './blur-input';\nexport * from './inputs-values-tree';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { Cascader, Icon, IconButton } from '@douyinfe/semi-ui';\n\nimport { createInjectMaterial } from '@/shared/inject-material';\nimport { useTypeManager } from '@/plugins';\n\nexport interface TypeSelectorProps {\n value?: Partial<IJsonSchema>;\n onChange?: (value?: Partial<IJsonSchema>) => void;\n readonly?: boolean;\n /**\n * @deprecated use readonly instead\n */\n disabled?: boolean;\n style?: React.CSSProperties;\n}\n\nconst labelStyle: React.CSSProperties = { display: 'flex', alignItems: 'center', gap: 5 };\n\nexport const getTypeSelectValue = (value?: Partial<IJsonSchema>): string[] | undefined => {\n if (value?.type === 'array' && value?.items) {\n return [value.type, ...(getTypeSelectValue(value.items) || [])];\n }\n\n return value?.type ? [value.type] : undefined;\n};\n\nexport const parseTypeSelectValue = (value?: string[]): Partial<IJsonSchema> | undefined => {\n const [type, ...subTypes] = value || [];\n\n if (type === 'array') {\n return { type: 'array', items: parseTypeSelectValue(subTypes) };\n }\n\n return { type };\n};\n\nexport function TypeSelector(props: TypeSelectorProps) {\n const { value, onChange, readonly, disabled, style } = props;\n\n const selectValue = useMemo(() => getTypeSelectValue(value), [value]);\n\n const typeManager = useTypeManager();\n\n const icon = typeManager.getDisplayIcon(value || {});\n\n const options = useMemo(\n () =>\n typeManager.getTypeRegistriesWithParentType().map((_type) => {\n const isArray = _type.type === 'array';\n\n return {\n label: (\n <div style={labelStyle}>\n <Icon size=\"small\" svg={_type.icon} />\n {typeManager.getTypeBySchema(_type)?.label || _type.type}\n </div>\n ),\n value: _type.type,\n children: isArray\n ? typeManager.getTypeRegistriesWithParentType('array').map((_type) => ({\n label: (\n <div style={labelStyle}>\n <Icon\n size=\"small\"\n svg={typeManager.getDisplayIcon({\n type: 'array',\n items: { type: _type.type },\n })}\n />\n {typeManager.getTypeBySchema(_type)?.label || _type.type}\n </div>\n ),\n value: _type.type,\n }))\n : [],\n };\n }),\n []\n );\n\n const isDisabled = readonly || disabled;\n\n return (\n <Cascader\n disabled={isDisabled}\n size=\"small\"\n triggerRender={() => (\n <IconButton\n size=\"small\"\n style={{\n ...(isDisabled ? { pointerEvents: 'none' } : {}),\n ...(style || {}),\n }}\n disabled={isDisabled}\n icon={icon}\n />\n )}\n treeData={options}\n value={selectValue}\n leafOnly={true}\n onChange={(value) => {\n onChange?.(parseTypeSelectValue(value as string[]));\n }}\n />\n );\n}\n\nTypeSelector.renderKey = 'type-selector-render-key';\nexport const InjectTypeSelector = createInjectMaterial(TypeSelector);\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo, useState } from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { I18n } from '@flowgram.ai/editor';\nimport { Button, Checkbox, IconButton } from '@douyinfe/semi-ui';\nimport {\n IconExpand,\n IconShrink,\n IconPlus,\n IconChevronDown,\n IconChevronRight,\n IconMinus,\n} from '@douyinfe/semi-icons';\n\nimport { InjectTypeSelector } from '@/components/type-selector';\nimport { BlurInput } from '@/components/blur-input';\n\nimport { ConfigType, PropertyValueType } from './types';\nimport {\n IconAddChildren,\n UIActions,\n UICollapseTrigger,\n UICollapsible,\n UIContainer,\n UIExpandDetail,\n UILabel,\n UITreeItems,\n UITreeItemLeft,\n UITreeItemMain,\n UITreeItemRight,\n UIRequired,\n UIType,\n} from './styles';\nimport { UIName } from './styles';\nimport { DefaultValueWrapper, UIRow } from './styles';\nimport { usePropertiesEdit } from './hooks';\nimport { DefaultValue } from './default-value';\n\nconst DEFAULT = { type: 'object' };\n\nexport function JsonSchemaEditor(props: {\n value?: IJsonSchema;\n onChange?: (value: IJsonSchema) => void;\n config?: ConfigType;\n className?: string;\n readonly?: boolean;\n}) {\n const { value = DEFAULT, config = {}, onChange: onChangeProps, readonly } = props;\n const { propertyList, onAddProperty, onRemoveProperty, onEditProperty } = usePropertiesEdit(\n value,\n onChangeProps\n );\n\n return (\n <UIContainer className={props.className}>\n <UITreeItems>\n {propertyList.map((_property) => (\n <PropertyEdit\n readonly={readonly}\n key={_property.key}\n value={_property}\n config={config}\n onChange={(_v) => {\n onEditProperty(_property.key!, _v);\n }}\n onRemove={() => {\n onRemoveProperty(_property.key!);\n }}\n />\n ))}\n </UITreeItems>\n <Button\n disabled={readonly}\n size=\"small\"\n style={{ marginTop: 10, marginLeft: 16 }}\n icon={<IconPlus />}\n onClick={onAddProperty}\n >\n {config?.addButtonText ?? I18n.t('Add')}\n </Button>\n </UIContainer>\n );\n}\n\nfunction PropertyEdit(props: {\n value?: PropertyValueType;\n config?: ConfigType;\n onChange?: (value: PropertyValueType) => void;\n onRemove?: () => void;\n readonly?: boolean;\n $isLast?: boolean;\n $level?: number; // 添加层级属性\n}) {\n const { value, config, readonly, $level = 0, onChange: onChangeProps, onRemove, $isLast } = props;\n\n const [expand, setExpand] = useState(false);\n const [collapse, setCollapse] = useState(false);\n\n const { name, type, items, default: defaultValue, description, isPropertyRequired } = value || {};\n\n const typeSelectorValue = useMemo(() => ({ type, items }), [type, items]);\n\n const { propertyList, canAddField, onAddProperty, onRemoveProperty, onEditProperty } =\n usePropertiesEdit(value, onChangeProps);\n\n const onChange = (key: string, _value: any) => {\n onChangeProps?.({\n ...(value || {}),\n [key]: _value,\n });\n };\n\n const showCollapse = canAddField && propertyList.length > 0;\n\n return (\n <>\n <UITreeItemLeft $isLast={$isLast} $showLine={$level > 0} $showCollapse={showCollapse}>\n {showCollapse && (\n <UICollapseTrigger onClick={() => setCollapse((_collapse) => !_collapse)}>\n {collapse ? <IconChevronDown size=\"small\" /> : <IconChevronRight size=\"small\" />}\n </UICollapseTrigger>\n )}\n </UITreeItemLeft>\n <UITreeItemRight>\n <UITreeItemMain>\n <UIRow>\n <UIName>\n <BlurInput\n disabled={readonly}\n placeholder={config?.placeholder ?? I18n.t('Input Variable Name')}\n size=\"small\"\n value={name}\n onChange={(value) => onChange('name', value)}\n />\n </UIName>\n <UIType>\n <InjectTypeSelector\n value={typeSelectorValue}\n readonly={readonly}\n onChange={(_value) => {\n onChangeProps?.({\n ...(value || {}),\n ..._value,\n });\n }}\n />\n </UIType>\n <UIRequired>\n <Checkbox\n disabled={readonly}\n checked={isPropertyRequired}\n onChange={(e) => onChange('isPropertyRequired', e.target.checked)}\n />\n </UIRequired>\n <UIActions>\n <IconButton\n disabled={readonly}\n size=\"small\"\n theme=\"borderless\"\n icon={expand ? <IconShrink size=\"small\" /> : <IconExpand size=\"small\" />}\n onClick={() => {\n setExpand((_expand) => !_expand);\n }}\n />\n {canAddField && (\n <IconButton\n disabled={readonly}\n size=\"small\"\n theme=\"borderless\"\n icon={<IconAddChildren />}\n onClick={() => {\n onAddProperty();\n setCollapse(true);\n }}\n />\n )}\n <IconButton\n disabled={readonly}\n size=\"small\"\n theme=\"borderless\"\n icon={<IconMinus size=\"small\" />}\n onClick={onRemove}\n />\n </UIActions>\n </UIRow>\n {expand && (\n <UIExpandDetail>\n <UILabel>{config?.descTitle ?? I18n.t('Description')}</UILabel>\n <BlurInput\n disabled={readonly}\n size=\"small\"\n value={description}\n onChange={(value) => onChange('description', value)}\n placeholder={\n config?.descPlaceholder ?? I18n.t('Help LLM to understand the property')\n }\n />\n {$level === 0 && (\n <>\n <UILabel style={{ marginTop: 10 }}>\n {config?.defaultValueTitle ?? I18n.t('Default Value')}\n </UILabel>\n <DefaultValueWrapper>\n <DefaultValue\n value={defaultValue}\n schema={value}\n placeholder={config?.defaultValuePlaceholder ?? I18n.t('Default Value')}\n onChange={(value) => onChange('default', value)}\n />\n </DefaultValueWrapper>\n </>\n )}\n </UIExpandDetail>\n )}\n </UITreeItemMain>\n {showCollapse && (\n <UICollapsible $collapse={collapse}>\n <UITreeItems $shrink={true}>\n {propertyList.map((_property, index) => (\n <PropertyEdit\n readonly={readonly}\n key={_property.key}\n value={_property}\n config={config}\n $level={$level + 1} // 传递递增的层级\n onChange={(_v) => {\n onEditProperty(_property.key!, _v);\n }}\n onRemove={() => {\n onRemoveProperty(_property.key!);\n }}\n $isLast={index === propertyList.length - 1}\n />\n ))}\n </UITreeItems>\n </UICollapsible>\n )}\n </UITreeItemRight>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport Input, { InputProps } from '@douyinfe/semi-ui/lib/es/input';\n\nexport function BlurInput(props: InputProps) {\n const [value, setValue] = useState('');\n\n useEffect(() => {\n setValue(props.value as string);\n }, [props.value]);\n\n return (\n <Input\n {...props}\n value={value}\n onChange={(value) => {\n setValue(value);\n }}\n onBlur={(e) => props.onChange?.(value, e)}\n />\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport styled, { css } from 'styled-components';\nimport Icon from '@douyinfe/semi-icons';\n\nexport const UIContainer = styled.div`\n /* & .semi-input {\n background-color: #fff;\n border-radius: 6px;\n height: 24px;\n } */\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n`;\n\nexport const UICollapseTrigger = styled.div`\n cursor: pointer;\n margin-right: 5px;\n`;\n\nexport const UIExpandDetail = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const UILabel = styled.div`\n font-size: 12px;\n color: #999;\n font-weight: 400;\n margin-bottom: 2px;\n`;\n\nexport const UITreeItems = styled.div<{ $shrink?: boolean }>`\n display: grid;\n grid-template-columns: auto 1fr;\n\n ${({ $shrink }) =>\n $shrink &&\n css`\n padding-left: 3px;\n margin-top: 10px;\n `}\n`;\n\nexport const UITreeItemLeft = styled.div<{\n $isLast?: boolean;\n $showLine?: boolean;\n $showCollapse?: boolean;\n}>`\n grid-column: 1;\n position: relative;\n width: 16px;\n\n ${({ $showLine, $isLast, $showCollapse }) => {\n let height = $isLast ? '24px' : '100%';\n let width = $showCollapse ? '12px' : '30px';\n\n return (\n $showLine &&\n css`\n &::before {\n /* 竖线 */\n content: '';\n height: ${height};\n position: absolute;\n left: -14px;\n top: -16px;\n width: 1px;\n background: #d9d9d9;\n display: block;\n }\n\n &::after {\n /* 横线 */\n content: '';\n position: absolute;\n left: -14px; // 横线起点和竖线对齐\n top: 8px; // 跟随你的行高调整\n width: ${width}; // 横线长度\n height: 1px;\n background: #d9d9d9;\n display: block;\n }\n `\n );\n }}\n`;\n\nexport const UITreeItemRight = styled.div`\n grid-column: 2;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0px;\n }\n`;\n\nexport const UITreeItemMain = styled.div<{}>`\n display: flex;\n flex-direction: column;\n gap: 10px;\n position: relative;\n`;\n\nexport const UICollapsible = styled.div<{ $collapse?: boolean }>`\n display: none;\n\n ${({ $collapse }) =>\n $collapse &&\n css`\n display: block;\n `}\n`;\n\nexport const UIName = styled.div`\n flex-grow: 1;\n`;\n\nexport const UIType = styled.div``;\n\nexport const UIRequired = styled.div``;\n\nexport const UIActions = styled.div`\n white-space: nowrap;\n`;\n\nconst iconAddChildrenSvg = (\n <svg\n className=\"icon-icon icon-icon-coz_add_node \"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 6.49988C11 8.64148 9.50397 10.4337 7.49995 10.8884V15.4998C7.49995 16.0521 7.94767 16.4998 8.49995 16.4998H11.208C11.0742 16.8061 11 17.1443 11 17.4998C11 17.8554 11.0742 18.1936 11.208 18.4998H8.49995C6.8431 18.4998 5.49995 17.1567 5.49995 15.4998V10.8884C3.49599 10.4336 2 8.64145 2 6.49988C2 4.0146 4.01472 1.99988 6.5 1.99988C8.98528 1.99988 11 4.0146 11 6.49988ZM6.5 8.99988C7.88071 8.99988 9 7.88059 9 6.49988C9 5.11917 7.88071 3.99988 6.5 3.99988C5.11929 3.99988 4 5.11917 4 6.49988C4 7.88059 5.11929 8.99988 6.5 8.99988Z\"\n ></path>\n <path d=\"M17.5 12.4999C18.0523 12.4999 18.5 12.9476 18.5 13.4999V16.4999H21.5C22.0523 16.4999 22.5 16.9476 22.5 17.4999C22.5 18.0522 22.0523 18.4999 21.5 18.4999H18.5V21.4999C18.5 22.0522 18.0523 22.4999 17.5 22.4999C16.9477 22.4999 16.5 22.0522 16.5 21.4999V18.4999H13.5C12.9477 18.4999 12.5 18.0522 12.5 17.4999C12.5 16.9476 12.9477 16.4999 13.5 16.4999H16.5V13.4999C16.5 12.9476 16.9477 12.4999 17.5 12.4999Z\"></path>\n </svg>\n);\n\nexport const IconAddChildren = () => <Icon size=\"small\" svg={iconAddChildrenSvg} />;\n\nexport const DefaultValueWrapper = styled.div`\n margin: 0;\n`;\n\nexport const ConstantInputWrapper = styled.div`\n flex-grow: 1;\n\n & .semi-tree-select,\n & .semi-input-number,\n & .semi-select {\n width: 100%;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { difference, omit } from 'lodash-es';\nimport { produce } from 'immer';\nimport { IJsonSchema, type JsonSchemaTypeManager, useTypeManager } from '@flowgram.ai/json-schema';\n\nimport { PropertyValueType } from './types';\n\nlet _id = 0;\nfunction genId() {\n return _id++;\n}\n\nexport function usePropertiesEdit(\n value?: PropertyValueType,\n onChange?: (value: PropertyValueType) => void\n) {\n const typeManager = useTypeManager() as JsonSchemaTypeManager;\n\n // Get drilldown properties (array.items.items.properties...)\n const drilldownSchema = typeManager.getPropertiesParent(value || {});\n const canAddField = typeManager.canAddField(value || {});\n\n const [propertyList, setPropertyList] = useState<PropertyValueType[]>([]);\n\n const effectVersion = useRef(0);\n const changeVersion = useRef(0);\n\n useEffect(() => {\n effectVersion.current = effectVersion.current + 1;\n if (effectVersion.current === changeVersion.current) {\n return;\n }\n effectVersion.current = changeVersion.current;\n\n // If the value is changed, update the property list\n setPropertyList((_list) => {\n const newNames = Object.entries(drilldownSchema?.properties || {})\n .sort(([, a], [, b]) => (a.extra?.index ?? 0) - (b.extra?.index ?? 0))\n .map(([key]) => key);\n\n const oldNames = _list.map((item) => item.name).filter(Boolean) as string[];\n const addNames = difference(newNames, oldNames);\n\n return _list\n .filter((item) => !item.name || newNames.includes(item.name))\n .map((item) => ({\n key: item.key,\n name: item.name,\n isPropertyRequired: drilldownSchema?.required?.includes(item.name || '') || false,\n ...(drilldownSchema?.properties?.[item.name || ''] || item || {}),\n }))\n .concat(\n addNames.map((_name) => ({\n key: genId(),\n name: _name,\n isPropertyRequired: drilldownSchema?.required?.includes(_name) || false,\n ...(drilldownSchema?.properties?.[_name] || {}),\n }))\n );\n });\n }, [drilldownSchema]);\n\n const updatePropertyList = (updater: (list: PropertyValueType[]) => PropertyValueType[]) => {\n changeVersion.current = changeVersion.current + 1;\n\n setPropertyList((_list) => {\n const next = updater(_list);\n\n // onChange to parent\n const nextProperties: Record<string, IJsonSchema> = {};\n const nextRequired: string[] = [];\n\n for (const _property of next) {\n if (!_property.name) {\n continue;\n }\n\n nextProperties[_property.name] = omit(_property, ['key', 'name', 'isPropertyRequired']);\n\n if (_property.isPropertyRequired) {\n nextRequired.push(_property.name);\n }\n }\n\n onChange?.(\n produce(value || {}, (draft) => {\n const propertiesParent = typeManager.getPropertiesParent(draft);\n\n if (propertiesParent) {\n propertiesParent.properties = nextProperties;\n propertiesParent.required = nextRequired;\n return;\n }\n })\n );\n\n return next;\n });\n };\n\n const onAddProperty = () => {\n // set property list only, not trigger updatePropertyList\n setPropertyList((_list) => [\n ..._list,\n { key: genId(), name: '', type: 'string', extra: { index: _list.length + 1 } },\n ]);\n };\n\n const onRemoveProperty = (key: number) => {\n updatePropertyList((_list) => _list.filter((_property) => _property.key !== key));\n };\n\n const onEditProperty = (key: number, nextValue: PropertyValueType) => {\n updatePropertyList((_list) =>\n _list.map((_property) => (_property.key === key ? nextValue : _property))\n );\n };\n\n useEffect(() => {\n if (!canAddField) {\n setPropertyList([]);\n }\n }, [canAddField]);\n\n return {\n propertyList,\n canAddField,\n onAddProperty,\n onRemoveProperty,\n onEditProperty,\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { I18n } from '@flowgram.ai/editor';\n\nimport { ConstantInput } from '@/components/constant-input';\n\nimport { ConstantInputWrapper } from './styles';\n\n/**\n * Renders the corresponding default value input component based on different data types.\n * @param props - Component properties, including value, type, placeholder, onChange.\n * @returns Returns the input component of the corresponding type or null.\n */\nexport function DefaultValue(props: {\n value: any;\n schema?: IJsonSchema;\n placeholder?: string;\n onChange: (value: any) => void;\n}) {\n const { value, schema, onChange, placeholder } = props;\n\n return (\n <ConstantInputWrapper>\n <ConstantInput\n value={value}\n onChange={(_v) => onChange(_v)}\n schema={schema || { type: 'string' }}\n placeholder={placeholder ?? I18n.t('Default value if parameter is not provided')}\n enableMultiLineStr\n />\n </ConstantInputWrapper>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\n/* eslint-disable react/prop-types */\nimport React, { useMemo } from 'react';\n\nimport { Input } from '@douyinfe/semi-ui';\n\nimport { useTypeManager } from '@/plugins';\n\nimport { PropsType, Strategy as ConstantInputStrategy } from './types';\n\nexport { ConstantInputStrategy };\n\nexport function ConstantInput(props: PropsType) {\n const { value, onChange, schema, strategies, fallbackRenderer, readonly, ...rest } = props;\n\n const typeManager = useTypeManager();\n\n const Renderer = useMemo(() => {\n const strategy = (strategies || []).find((_strategy) => _strategy.hit(schema));\n\n if (!strategy) {\n return typeManager.getTypeBySchema(schema)?.ConstantRenderer;\n }\n\n return strategy?.Renderer;\n }, [strategies, schema]);\n\n if (!Renderer) {\n if (fallbackRenderer) {\n return React.createElement(fallbackRenderer, {\n value,\n onChange,\n readonly,\n ...rest,\n });\n }\n return <Input size=\"small\" disabled placeholder=\"Unsupported type\" />;\n }\n\n return <Renderer value={value} onChange={onChange} readonly={readonly} {...rest} />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\n\nimport { ConstantRendererProps } from '@/plugins';\n\nexport interface Strategy<Value = any> {\n hit: (schema: IJsonSchema) => boolean;\n Renderer: React.FC<ConstantRendererProps<Value>>;\n}\n\nexport interface PropsType extends ConstantRendererProps {\n schema: IJsonSchema;\n strategies?: Strategy[];\n fallbackRenderer?: React.FC<ConstantRendererProps>;\n [key: string]: any;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { PrivateScopeProvider } from '@flowgram.ai/editor';\n\nimport { VariableSelector, VariableSelectorProps } from '@/components/variable-selector';\n\nconst batchVariableSchema: IJsonSchema = {\n type: 'array',\n extra: { weak: true },\n};\n\nexport function BatchVariableSelector(props: VariableSelectorProps) {\n return (\n <PrivateScopeProvider>\n <VariableSelector {...props} includeSchema={batchVariableSchema} />\n </PrivateScopeProvider>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport {\n JsonSchemaUtils,\n IJsonSchema,\n useTypeManager,\n type JsonSchemaTypeManager,\n} from '@flowgram.ai/json-schema';\nimport { IconButton } from '@douyinfe/semi-ui';\nimport { IconSetting } from '@douyinfe/semi-icons';\n\nimport { IFlowConstantRefValue, IFlowConstantValue } from '@/typings';\nimport { createInjectMaterial } from '@/shared';\nimport { InjectVariableSelector } from '@/components/variable-selector';\nimport { TypeSelector } from '@/components/type-selector';\nimport { ConstantInput, ConstantInputStrategy } from '@/components/constant-input';\n\nimport { UIContainer, UIMain, UITrigger, UIType } from './styles';\nimport { useIncludeSchema, useRefVariable, useSelectSchema } from './hooks';\n\ninterface PropsType {\n value?: IFlowConstantRefValue;\n onChange: (value?: IFlowConstantRefValue) => void;\n readonly?: boolean;\n hasError?: boolean;\n style?: React.CSSProperties;\n schema?: IJsonSchema;\n constantProps?: {\n strategies?: ConstantInputStrategy[];\n schema?: IJsonSchema; // set schema of constant input only\n [key: string]: any;\n };\n}\n\nconst DEFAULT_VALUE: IFlowConstantValue = {\n type: 'constant',\n content: '',\n schema: { type: 'string' },\n};\n\nexport function DynamicValueInput({\n value,\n onChange,\n readonly,\n style,\n schema: schemaFromProps,\n constantProps,\n}: PropsType) {\n const refVariable = useRefVariable(value);\n const [selectSchema, setSelectSchema] = useSelectSchema(schemaFromProps, constantProps, value);\n const includeSchema = useIncludeSchema(schemaFromProps);\n\n const typeManager = useTypeManager() as JsonSchemaTypeManager;\n\n const renderTypeSelector = () => {\n if (schemaFromProps) {\n return <TypeSelector value={schemaFromProps} readonly={true} />;\n }\n\n if (value?.type === 'ref') {\n const schema = refVariable?.type ? JsonSchemaUtils.astToSchema(refVariable?.type) : undefined;\n\n return <TypeSelector value={schema} readonly={true} />;\n }\n\n return (\n <TypeSelector\n value={selectSchema}\n onChange={(_v) => {\n setSelectSchema(_v || { type: 'string' });\n\n const schema = _v || { type: 'string' };\n let content = typeManager.getDefaultValue(schema);\n if (_v?.type === 'object') {\n content = '{}';\n }\n if (_v?.type === 'array') {\n content = '[]';\n }\n\n onChange({\n type: 'constant',\n content,\n schema,\n });\n }}\n readonly={readonly}\n />\n );\n };\n\n const renderMain = () => {\n if (value?.type === 'ref') {\n // Display Variable Or Delete\n return (\n <InjectVariableSelector\n style={{ width: '100%' }}\n value={value?.content}\n onChange={(_v) => onChange(_v ? { type: 'ref', content: _v } : DEFAULT_VALUE)}\n includeSchema={includeSchema}\n readonly={readonly}\n />\n );\n }\n\n const constantSchema = schemaFromProps || selectSchema || { type: 'string' };\n\n return (\n <ConstantInput\n value={value?.content}\n onChange={(_v) => onChange({ type: 'constant', content: _v, schema: constantSchema })}\n schema={constantSchema || { type: 'string' }}\n readonly={readonly}\n fallbackRenderer={() => (\n <InjectVariableSelector\n style={{ width: '100%' }}\n onChange={(_v) => onChange(_v ? { type: 'ref', content: _v } : DEFAULT_VALUE)}\n includeSchema={includeSchema}\n readonly={readonly}\n />\n )}\n {...constantProps}\n strategies={[...(constantProps?.strategies || [])]}\n />\n );\n };\n\n const renderTrigger = () => (\n <InjectVariableSelector\n style={{ width: '100%' }}\n value={value?.type === 'ref' ? value?.content : undefined}\n onChange={(_v) => onChange({ type: 'ref', content: _v })}\n includeSchema={includeSchema}\n readonly={readonly}\n triggerRender={() => (\n <IconButton disabled={readonly} size=\"small\" icon={<IconSetting size=\"small\" />} />\n )}\n />\n );\n\n return (\n <UIContainer style={style}>\n <UIType>{renderTypeSelector()}</UIType>\n <UIMain>{renderMain()}</UIMain>\n <UITrigger>{renderTrigger()}</UITrigger>\n </UIContainer>\n );\n}\n\nDynamicValueInput.renderKey = 'dynamic-value-input-render-key';\nexport const InjectDynamicValueInput = createInjectMaterial(DynamicValueInput);\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n border-radius: 4px;\n border: 1px solid var(--semi-color-border);\n\n overflow: hidden;\n\n background-color: var(--semi-color-fill-0);\n`;\n\nexport const UIMain = styled.div`\n flex-grow: 1;\n overflow: hidden;\n min-width: 0;\n border-left: 1px solid var(--semi-color-border);\n border-right: 1px solid var(--semi-color-border);\n\n & .semi-tree-select,\n & .semi-input-number,\n & .semi-select {\n width: 100%;\n border: none;\n border-radius: 0;\n }\n\n & .semi-input-wrapper {\n border: none;\n border-radius: 0;\n }\n\n & .semi-input-textarea-wrapper {\n border: none;\n border-radius: 0;\n }\n\n & .semi-input-textarea {\n padding: 2px 6px;\n border: none;\n border-radius: 0;\n word-break: break-all;\n }\n`;\n\nexport const UIType = styled.div`\n & .semi-button {\n border-radius: 0;\n }\n`;\n\nexport const UITrigger = styled.div`\n & .semi-button {\n border-radius: 0;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { useScopeAvailable } from '@flowgram.ai/editor';\n\nimport { IFlowConstantRefValue } from '@/typings';\n\nexport function useRefVariable(value?: IFlowConstantRefValue) {\n const available = useScopeAvailable();\n const refVariable = useMemo(() => {\n if (value?.type === 'ref') {\n return available.getByKeyPath(value.content);\n }\n }, [value, available]);\n\n return refVariable;\n}\n\nexport function useSelectSchema(\n schemaFromProps?: IJsonSchema,\n constantProps?: {\n schema?: IJsonSchema;\n },\n value?: IFlowConstantRefValue\n) {\n let defaultSelectSchema = schemaFromProps || constantProps?.schema || { type: 'string' };\n if (value?.type === 'constant') {\n defaultSelectSchema = value?.schema || defaultSelectSchema;\n }\n\n const changeVersion = useRef(0);\n const effectVersion = useRef(0);\n\n const [selectSchema, setSelectSchema] = useState(defaultSelectSchema);\n\n useEffect(() => {\n effectVersion.current += 1;\n if (changeVersion.current === effectVersion.current) {\n return;\n }\n effectVersion.current = changeVersion.current;\n\n if (value?.type === 'constant' && value?.schema) {\n setSelectSchema(value?.schema);\n return;\n }\n }, [value]);\n\n const setSelectSchemaWithVersionUpdate = (schema: IJsonSchema) => {\n setSelectSchema(schema);\n changeVersion.current += 1;\n };\n\n return [selectSchema, setSelectSchemaWithVersionUpdate] as const;\n}\n\nexport function useIncludeSchema(schemaFromProps?: IJsonSchema) {\n const includeSchema = useMemo(() => {\n if (!schemaFromProps) {\n return;\n }\n if (schemaFromProps?.type === 'number') {\n return [schemaFromProps, { type: 'integer' }];\n }\n return { ...schemaFromProps, extra: { weak: true, ...schemaFromProps?.extra } };\n }, [schemaFromProps]);\n\n return includeSchema;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Input } from '@douyinfe/semi-ui';\n\nimport { InjectVariableSelector } from '@/components/variable-selector';\nimport { InjectDynamicValueInput } from '@/components/dynamic-value-input';\n\nimport { ConditionRowValueType, IRules, OpConfigs } from './types';\nimport { UIContainer, UILeft, UIOperator, UIRight, UIValues } from './styles';\nimport { useRule } from './hooks/useRule';\nimport { useOp } from './hooks/useOp';\nimport { defaultOpConfigs, defaultRules } from './constants';\n\ninterface PropTypes {\n value?: ConditionRowValueType;\n onChange: (value?: ConditionRowValueType) => void;\n style?: React.CSSProperties;\n readonly?: boolean;\n ruleConfig?: {\n ops?: OpConfigs;\n rules?: IRules;\n };\n}\n\nconst defaultRuleConfig = {\n ops: {},\n rules: {},\n};\n\nexport function ConditionRow({\n style,\n value,\n onChange,\n readonly,\n ruleConfig = defaultRuleConfig,\n}: PropTypes) {\n const { left, operator, right } = value || {};\n const { rule } = useRule(left, ruleConfig.rules);\n const { renderOpSelect, opConfig } = useOp({\n rule,\n op: operator,\n onChange: (v) => onChange({ ...value, operator: v }),\n readonly,\n userOps: ruleConfig.ops,\n });\n\n const targetSchema = useMemo(() => {\n const targetType: string | null = rule?.[operator || ''] || null;\n return targetType ? { type: targetType, extra: { weak: true } } : null;\n }, [rule, opConfig]);\n\n return (\n <UIContainer style={style}>\n <UIOperator>{renderOpSelect()}</UIOperator>\n <UIValues>\n <UILeft>\n <InjectVariableSelector\n readonly={readonly}\n style={{ width: '100%' }}\n value={left?.content}\n onChange={(v) =>\n onChange({\n ...value,\n left: {\n type: 'ref',\n content: v,\n },\n })\n }\n />\n </UILeft>\n <UIRight>\n {targetSchema ? (\n <InjectDynamicValueInput\n readonly={readonly || !rule}\n value={right}\n schema={targetSchema}\n onChange={(v) => onChange({ ...value, right: v })}\n />\n ) : (\n <Input\n size=\"small\"\n disabled\n style={{ pointerEvents: 'none' }}\n value={opConfig?.rightDisplay || I18n.t('Empty')}\n />\n )}\n </UIRight>\n </UIValues>\n </UIContainer>\n );\n}\n\nConditionRow.defaultRules = defaultRules;\nConditionRow.defaultOpConfigs = defaultOpConfigs;\n\nexport { type ConditionRowValueType };\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const UIOperator = styled.div``;\n\nexport const UILeft = styled.div`\n width: 100%;\n`;\n\nexport const UIRight = styled.div`\n width: 100%;\n`;\n\nexport const UIValues = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useMemo } from 'react';\n\nimport { JsonSchemaUtils, JsonSchemaBasicType } from '@flowgram.ai/json-schema';\nimport { useScopeAvailable } from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '@/typings';\n\nimport { IRules } from '../types';\nimport { defaultRules } from '../constants';\n\nexport function useRule(left?: IFlowRefValue, userRules?: IRules) {\n const available = useScopeAvailable();\n\n const rules = useMemo(() => ({ ...defaultRules, ...(userRules || {}) }), [userRules]);\n\n const variable = useMemo(() => {\n if (!left) return undefined;\n return available.getByKeyPath(left.content);\n }, [available, left]);\n\n const rule = useMemo(() => {\n if (!variable) return undefined;\n\n const schema = JsonSchemaUtils.astToSchema(variable.type, { drilldown: false });\n\n return rules[schema?.type as JsonSchemaBasicType];\n }, [variable?.type, rules]);\n\n return { rule };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IRules, Op, OpConfigs } from './types';\n\nexport const defaultRules: IRules = {\n string: {\n [Op.EQ]: 'string',\n [Op.NEQ]: 'string',\n [Op.CONTAINS]: 'string',\n [Op.NOT_CONTAINS]: 'string',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n number: {\n [Op.EQ]: 'number',\n [Op.NEQ]: 'number',\n [Op.GT]: 'number',\n [Op.GTE]: 'number',\n [Op.LT]: 'number',\n [Op.LTE]: 'number',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n },\n integer: {\n [Op.EQ]: 'number',\n [Op.NEQ]: 'number',\n [Op.GT]: 'number',\n [Op.GTE]: 'number',\n [Op.LT]: 'number',\n [Op.LTE]: 'number',\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n },\n boolean: {\n [Op.EQ]: 'boolean',\n [Op.NEQ]: 'boolean',\n [Op.IS_TRUE]: null,\n [Op.IS_FALSE]: null,\n [Op.IN]: 'array',\n [Op.NIN]: 'array',\n },\n object: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n array: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n [Op.CONTAINS]: 'array',\n [Op.NOT_CONTAINS]: 'array',\n [Op.EQ]: 'array',\n [Op.NEQ]: 'array',\n },\n map: {\n [Op.IS_EMPTY]: null,\n [Op.IS_NOT_EMPTY]: null,\n },\n ['date-time']: {\n [Op.EQ]: 'date-time',\n [Op.NEQ]: 'date-time',\n [Op.GT]: 'date-time',\n [Op.GTE]: 'date-time',\n [Op.LT]: 'date-time',\n [Op.LTE]: 'date-time',\n },\n};\n\nexport const defaultOpConfigs: OpConfigs = {\n [Op.EQ]: {\n label: 'Equal',\n abbreviation: '=',\n },\n [Op.NEQ]: {\n label: 'Not Equal',\n abbreviation: '≠',\n },\n [Op.GT]: {\n label: 'Greater Than',\n abbreviation: '>',\n },\n [Op.GTE]: {\n label: 'Greater Than or Equal',\n abbreviation: '>=',\n },\n [Op.LT]: {\n label: 'Less Than',\n abbreviation: '<',\n },\n [Op.LTE]: {\n label: 'Less Than or Equal',\n abbreviation: '<=',\n },\n [Op.IN]: {\n label: 'In',\n abbreviation: '∈',\n },\n [Op.NIN]: {\n label: 'Not In',\n abbreviation: '∉',\n },\n [Op.CONTAINS]: {\n label: 'Contains',\n abbreviation: '⊇',\n },\n [Op.NOT_CONTAINS]: {\n label: 'Not Contains',\n abbreviation: '⊉',\n },\n [Op.IS_EMPTY]: {\n label: 'Is Empty',\n abbreviation: '=',\n rightDisplay: 'Empty',\n },\n [Op.IS_NOT_EMPTY]: {\n label: 'Is Not Empty',\n abbreviation: '≠',\n rightDisplay: 'Empty',\n },\n [Op.IS_TRUE]: {\n label: 'Is True',\n abbreviation: '=',\n rightDisplay: 'True',\n },\n [Op.IS_FALSE]: {\n label: 'Is False',\n abbreviation: '=',\n rightDisplay: 'False',\n },\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IFlowConstantRefValue, IFlowRefValue } from '@/typings';\n\nexport enum Op {\n EQ = 'eq',\n NEQ = 'neq',\n GT = 'gt',\n GTE = 'gte',\n LT = 'lt',\n LTE = 'lte',\n IN = 'in',\n NIN = 'nin',\n CONTAINS = 'contains',\n NOT_CONTAINS = 'not_contains',\n IS_EMPTY = 'is_empty',\n IS_NOT_EMPTY = 'is_not_empty',\n IS_TRUE = 'is_true',\n IS_FALSE = 'is_false',\n}\n\nexport interface OpConfig {\n label: string;\n abbreviation: string;\n // When right is not a value, display this text\n rightDisplay?: string;\n}\n\nexport type OpConfigs = Record<string, OpConfig>;\n\nexport type IRule = Partial<Record<string, string | null>>;\n\nexport type IRules = Record<string, IRule>;\n\nexport interface ConditionRowValueType {\n left?: IFlowRefValue;\n operator?: string;\n right?: IFlowConstantRefValue;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Button, Select } from '@douyinfe/semi-ui';\nimport { IconChevronDownStroked } from '@douyinfe/semi-icons';\n\nimport { IRule, OpConfigs } from '../types';\nimport { defaultOpConfigs } from '../constants';\n\ninterface HookParams {\n rule?: IRule;\n op?: string;\n onChange: (op: string) => void;\n readonly?: boolean;\n userOps?: OpConfigs;\n}\n\nexport function useOp({ rule, op, onChange, readonly, userOps }: HookParams) {\n const options = useMemo(\n () =>\n Object.keys(rule || {}).map((_op) => ({\n ...(defaultOpConfigs[_op] || {}),\n ...(userOps?.[_op] || {}),\n value: _op,\n label: I18n.t(userOps?.[_op]?.label || defaultOpConfigs[_op]?.label),\n })),\n [rule, userOps]\n );\n\n const opConfig = useMemo(() => defaultOpConfigs[op as string], [op]);\n\n const renderOpSelect = () => (\n <Select\n style={{ height: 22 }}\n disabled={readonly}\n size=\"small\"\n value={op}\n optionList={options}\n onChange={(v) => {\n onChange(v as string);\n }}\n triggerRender={({ value }) => (\n <Button size=\"small\" disabled={!rule}>\n {opConfig?.abbreviation || <IconChevronDownStroked size=\"small\" />}\n </Button>\n )}\n />\n );\n\n return { renderOpSelect, opConfig };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Input } from '@douyinfe/semi-ui';\n\nimport { InjectDynamicValueInput } from '@/components/dynamic-value-input';\n\nimport { DBConditionOptionType, DBConditionRowValueType, IRules, OpConfigs } from './types';\nimport { UIContainer, UILeft, UIOperator, UIRight, UIValues } from './styles';\nimport { useOp } from './hooks/use-op';\nimport { useLeft } from './hooks/use-left';\n\ninterface PropTypes {\n value?: DBConditionRowValueType;\n onChange: (value?: DBConditionRowValueType) => void;\n style?: React.CSSProperties;\n options?: DBConditionOptionType[];\n readonly?: boolean;\n ruleConfig?: {\n ops?: OpConfigs;\n rules?: IRules;\n };\n}\n\nconst defaultRuleConfig = {\n ops: {},\n rules: {},\n};\n\nexport function DBConditionRow({\n style,\n value,\n onChange,\n readonly,\n options,\n ruleConfig = defaultRuleConfig,\n}: PropTypes) {\n const { left, operator, right } = value || {};\n\n const { rule, renderDBOptionSelect } = useLeft({\n left,\n options,\n onChange: (leftKey) => onChange({ ...value, left: leftKey }),\n readonly,\n userRules: ruleConfig.rules,\n });\n\n const { renderOpSelect, opConfig } = useOp({\n rule,\n op: operator,\n onChange: (v) => onChange({ ...value, operator: v }),\n readonly,\n userOps: ruleConfig.ops,\n });\n\n const targetSchema = useMemo(() => {\n const targetType: string | null = rule?.[operator || ''] || null;\n return targetType ? { type: targetType, extra: { weak: true } } : null;\n }, [rule, opConfig]);\n\n return (\n <UIContainer style={style}>\n <UIOperator>{renderOpSelect()}</UIOperator>\n <UIValues>\n <UILeft>{renderDBOptionSelect()}</UILeft>\n <UIRight>\n {targetSchema ? (\n <InjectDynamicValueInput\n readonly={readonly || !rule}\n value={right}\n schema={targetSchema}\n onChange={(v) => onChange({ ...value, right: v })}\n />\n ) : (\n <Input\n size=\"small\"\n disabled\n style={{ pointerEvents: 'none' }}\n value={opConfig?.rightDisplay || I18n.t('Empty')}\n />\n )}\n </UIRight>\n </UIValues>\n </UIContainer>\n );\n}\n\nexport { type DBConditionRowValueType, type DBConditionOptionType };\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Select } from '@douyinfe/semi-ui';\n\nexport const UIContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const UIOperator = styled.div``;\n\nexport const UILeft = styled.div`\n width: 100%;\n`;\n\nexport const UIRight = styled.div`\n width: 100%;\n`;\n\nexport const UIValues = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n`;\n\nexport const UIOptionLabel = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nexport const UISelect = styled(Select)`\n & .semi-select-selection {\n margin-left: 5px;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Button, Select } from '@douyinfe/semi-ui';\nimport { IconChevronDownStroked } from '@douyinfe/semi-icons';\n\nimport { ConditionRow } from '@/components';\n\nimport { IRule, OpConfigs } from '../types';\n\nconst defaultOpConfigs = ConditionRow.defaultOpConfigs;\n\ninterface HookParams {\n rule?: IRule;\n op?: string;\n onChange: (op: string) => void;\n readonly?: boolean;\n userOps?: OpConfigs;\n}\n\nexport function useOp({ rule, op, onChange, readonly, userOps }: HookParams) {\n const options = useMemo(\n () =>\n Object.keys(rule || {}).map((_op) => ({\n ...(defaultOpConfigs[_op] || {}),\n ...(userOps?.[_op] || {}),\n value: _op,\n label: I18n.t(userOps?.[_op]?.label || defaultOpConfigs[_op]?.label),\n })),\n [rule, userOps]\n );\n\n const opConfig = useMemo(() => defaultOpConfigs[op as string], [op]);\n\n const renderOpSelect = () => (\n <Select\n style={{ height: 22 }}\n disabled={readonly}\n size=\"small\"\n value={op}\n optionList={options}\n onChange={(v) => {\n onChange(v as string);\n }}\n triggerRender={({ value }) => (\n <Button size=\"small\" disabled={!rule}>\n {opConfig?.abbreviation || <IconChevronDownStroked size=\"small\" />}\n </Button>\n )}\n />\n );\n\n return { renderOpSelect, opConfig };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useMemo } from 'react';\nimport React from 'react';\n\nimport { JsonSchemaTypeManager, useTypeManager } from '@flowgram.ai/json-schema';\nimport { Icon } from '@douyinfe/semi-ui';\n\nimport { ConditionRow } from '@/components';\n\nimport { DBConditionOptionType, IRules } from '../types';\nimport { UIOptionLabel, UISelect } from '../styles';\n\nconst defaultRules = ConditionRow.defaultRules;\n\ninterface HookParams {\n left?: string;\n options?: DBConditionOptionType[];\n userRules?: IRules;\n readonly?: boolean;\n onChange: (leftKey: string) => void;\n}\n\nexport function useLeft({ left, options, userRules, readonly, onChange }: HookParams) {\n const rules = useMemo(() => ({ ...defaultRules, ...(userRules || {}) }), [userRules]);\n\n const typeManager = useTypeManager() as JsonSchemaTypeManager;\n\n const rule = useMemo(() => {\n if (!left) return undefined;\n\n const option = options?.find((item) => item.value === left);\n\n if (!option?.schema?.type) {\n return undefined;\n }\n\n return rules[option.schema.type];\n }, [left, options, rules]);\n\n const renderDBOptionSelect = () => (\n <UISelect\n disabled={readonly}\n size=\"small\"\n style={{ width: '100%' }}\n value={left}\n onChange={(v) => onChange(v as string)}\n optionList={\n options?.map((item) => ({\n label: (\n <UIOptionLabel>\n <Icon size=\"small\" svg={typeManager.getDisplayIcon(item.schema)} />\n {item.label}\n </UIOptionLabel>\n ),\n value: item.value,\n })) || []\n }\n />\n );\n\n return { rule, renderDBOptionSelect };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Button, Input } from '@douyinfe/semi-ui';\nimport { IconDelete, IconPlus } from '@douyinfe/semi-icons';\n\nimport { useObjectList } from '@/hooks';\nimport { InjectVariableSelector } from '@/components/variable-selector';\n\nimport { PropsType } from './types';\nimport { UIRow, UIRows } from './styles';\n\nexport function BatchOutputs(props: PropsType) {\n const { readonly, style } = props;\n\n const { list, add, updateKey, updateValue, remove } = useObjectList(props);\n\n return (\n <div>\n <UIRows style={style}>\n {list.map((item) => (\n <UIRow key={item.id}>\n <Input\n style={{ width: 100 }}\n disabled={readonly}\n size=\"small\"\n value={item.key}\n onChange={(v) => updateKey(item.id, v)}\n />\n <InjectVariableSelector\n style={{ flexGrow: 1 }}\n readonly={readonly}\n value={item.value?.content}\n onChange={(v) => updateValue(item.id, { type: 'ref', content: v })}\n />\n <Button\n disabled={readonly}\n icon={<IconDelete />}\n size=\"small\"\n onClick={() => remove(item.id)}\n />\n </UIRow>\n ))}\n </UIRows>\n <Button disabled={readonly} icon={<IconPlus />} size=\"small\" onClick={() => add()}>\n {I18n.t('Add')}\n </Button>\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './use-object-list';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { nanoid } from 'nanoid';\nimport { difference, get, isObject, set } from 'lodash-es';\n\nfunction genId() {\n return nanoid();\n}\n\ninterface ListItem<ValueType> {\n id: string;\n key?: string;\n value?: ValueType;\n}\n\ntype ObjectType<ValueType> = Record<string, ValueType | undefined>;\n\nexport function useObjectList<ValueType>({\n value,\n onChange,\n sortIndexKey,\n}: {\n value?: ObjectType<ValueType>;\n onChange: (value?: ObjectType<ValueType>) => void;\n sortIndexKey?: string | ((item: ValueType | undefined) => string);\n}) {\n const [list, setList] = useState<ListItem<ValueType>[]>([]);\n\n const effectVersion = useRef(0);\n const changeVersion = useRef(0);\n\n const getSortIndex = (value?: ValueType) => {\n if (typeof sortIndexKey === 'function') {\n return get(value, sortIndexKey(value)) || 0;\n }\n return get(value, sortIndexKey || '') || 0;\n };\n\n useEffect(() => {\n effectVersion.current = effectVersion.current + 1;\n if (effectVersion.current === changeVersion.current) {\n return;\n }\n effectVersion.current = changeVersion.current;\n\n setList((_prevList) => {\n const newKeys = Object.entries(value || {})\n .sort((a, b) => getSortIndex(a[1]) - getSortIndex(b[1]))\n .map(([key]) => key);\n\n const oldKeys = _prevList.map((item) => item.key).filter(Boolean) as string[];\n const addKeys = difference(newKeys, oldKeys);\n\n return _prevList\n .filter((item) => !item.key || newKeys.includes(item.key))\n .map((item) => ({\n id: item.id,\n key: item.key,\n value: item.key ? value?.[item.key!] : item.value,\n }))\n .concat(\n addKeys.map((_key) => ({\n id: genId(),\n key: _key,\n value: value?.[_key],\n }))\n );\n });\n }, [value]);\n\n const add = (defaultValue?: ValueType) => {\n setList((prevList) => [\n ...prevList,\n {\n id: genId(),\n value: defaultValue,\n },\n ]);\n };\n\n const updateValue = (itemId: string, value: ValueType) => {\n changeVersion.current = changeVersion.current + 1;\n\n setList((prevList) => {\n const nextList = prevList.map((_item) => {\n if (_item.id === itemId) {\n return {\n ..._item,\n value,\n };\n }\n return _item;\n });\n\n onChange(\n Object.fromEntries(\n nextList\n .filter((item) => item.key)\n .map((item) => [item.key!, item.value])\n .map((_res, idx) => {\n const indexKey =\n typeof sortIndexKey === 'function'\n ? sortIndexKey(_res[1] as ValueType | undefined)\n : sortIndexKey;\n\n if (isObject(_res[1]) && indexKey) {\n set(_res[1], indexKey, idx);\n }\n return _res;\n })\n )\n );\n\n return nextList;\n });\n };\n\n const updateKey = (itemId: string, key: string) => {\n changeVersion.current = changeVersion.current + 1;\n\n setList((prevList) => {\n const nextList = prevList.map((_item) => {\n if (_item.id === itemId) {\n return {\n ..._item,\n key,\n };\n }\n return _item;\n });\n\n onChange(\n Object.fromEntries(\n nextList.filter((item) => item.key).map((item) => [item.key!, item.value])\n )\n );\n\n return nextList;\n });\n };\n\n const remove = (itemId: string) => {\n changeVersion.current = changeVersion.current + 1;\n\n setList((prevList) => {\n const nextList = prevList.filter((_item) => _item.id !== itemId);\n\n onChange(\n Object.fromEntries(\n nextList.filter((item) => item.key).map((item) => [item.key!, item.value])\n )\n );\n\n return nextList;\n });\n };\n\n return { list, add, updateKey, updateValue, remove };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIRows = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { lazySuspense } from '@/shared';\n\nexport const PromptEditorWithVariables = lazySuspense(() =>\n import('./editor').then((module) => ({ default: module.PromptEditorWithVariables }))\n);\n\nexport type { PromptEditorWithVariablesProps } from './editor';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { lazySuspense } from '@/shared';\n\nexport const PromptEditorWithInputs = lazySuspense(() =>\n import('./editor').then((module) => ({ default: module.PromptEditorWithInputs }))\n);\n\nexport type { PromptEditorWithInputsProps } from './editor';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { lazySuspense } from '@/shared';\n\nexport const JsonEditorWithVariables = lazySuspense(() =>\n import('./editor').then((module) => ({ default: module.JsonEditorWithVariables }))\n);\n\nexport type { JsonEditorWithVariablesProps } from './editor';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Button, IconButton } from '@douyinfe/semi-ui';\nimport { IconDelete, IconPlus } from '@douyinfe/semi-icons';\n\nimport { IFlowConstantRefValue, IFlowValue } from '@/typings';\nimport { useObjectList } from '@/hooks';\nimport { InjectDynamicValueInput } from '@/components/dynamic-value-input';\nimport { BlurInput } from '@/components/blur-input';\n\nimport { PropsType } from './types';\nimport { UIRow, UIRows } from './styles';\n\nexport function InputsValues({\n value,\n onChange,\n style,\n readonly,\n constantProps,\n schema,\n hasError,\n}: PropsType) {\n const { list, updateKey, updateValue, remove, add } = useObjectList<IFlowValue | undefined>({\n value,\n onChange,\n sortIndexKey: 'extra.index',\n });\n\n return (\n <div>\n <UIRows style={style}>\n {list.map((item) => (\n <UIRow key={item.id}>\n <BlurInput\n style={{ width: 100, minWidth: 100, maxWidth: 100 }}\n disabled={readonly}\n size=\"small\"\n value={item.key}\n onChange={(v) => updateKey(item.id, v)}\n placeholder={I18n.t('Input Key')}\n />\n <InjectDynamicValueInput\n style={{ flexGrow: 1 }}\n readonly={readonly}\n value={item.value as IFlowConstantRefValue}\n onChange={(v) => updateValue(item.id, v)}\n schema={schema}\n hasError={hasError}\n constantProps={{\n ...constantProps,\n strategies: [...(constantProps?.strategies || [])],\n }}\n />\n <IconButton\n disabled={readonly}\n theme=\"borderless\"\n icon={<IconDelete size=\"small\" />}\n size=\"small\"\n onClick={() => remove(item.id)}\n />\n </UIRow>\n ))}\n </UIRows>\n <Button\n disabled={readonly}\n icon={<IconPlus />}\n size=\"small\"\n onClick={() =>\n add({\n type: 'constant',\n content: '',\n schema: { type: 'string' },\n })\n }\n >\n {I18n.t('Add')}\n </Button>\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIRows = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n`;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 5px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { IJsonSchema, JsonSchemaTypeManager } from '@flowgram.ai/json-schema';\n\nimport { useTypeManager } from '@/plugins';\n\nimport { HorizontalLine, TreeItem, TreeLevel, TreeRow, TreeTitle } from './styles';\n\ninterface PropsType {\n value?: IJsonSchema;\n parentKey?: string;\n depth?: number;\n drilldown?: boolean;\n showIcon?: boolean;\n typeManager?: JsonSchemaTypeManager;\n}\n\nexport function DisplaySchemaTree(props: Omit<PropsType, 'parentKey' | 'depth'>) {\n return <SchemaTree {...props} />;\n}\n\nfunction SchemaTree(props: PropsType) {\n const {\n value: schema = {},\n drilldown = true,\n depth = 0,\n showIcon = true,\n parentKey = '',\n } = props || {};\n\n const typeManager = useTypeManager();\n\n const config = typeManager.getTypeBySchema(schema);\n const title = typeManager.getComplexText(schema);\n const icon = typeManager?.getDisplayIcon(schema);\n let properties: IJsonSchema['properties'] =\n drilldown && config ? config.getTypeSchemaProperties(schema) : {};\n const childEntries = Object.entries(properties || {});\n\n return (\n <TreeItem depth={depth} key={parentKey || 'root'}>\n <TreeRow>\n {depth !== 0 && <HorizontalLine />}\n {showIcon &&\n icon &&\n React.cloneElement(icon, {\n className: 'tree-icon',\n })}\n <TreeTitle>\n {parentKey ? (\n <>\n {`${parentKey} (`}\n {title}\n {')'}\n </>\n ) : (\n title\n )}\n </TreeTitle>\n </TreeRow>\n {childEntries?.length ? (\n <TreeLevel>\n {childEntries.map(([key, value]) => (\n <SchemaTree key={key} {...props} parentKey={key} value={value} depth={depth + 1} />\n ))}\n </TreeLevel>\n ) : null}\n </TreeItem>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled, { css } from 'styled-components';\n\nexport const TreeRow = styled.div`\n display: flex;\n align-items: center;\n\n .tree-icon {\n margin-right: 8px;\n width: 14px;\n height: 14px;\n }\n\n height: 27px;\n white-space: nowrap;\n`;\n\nexport const HorizontalLine = styled.div`\n position: relative;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n background-color: var(--semi-color-text-3);\n }\n\n &::after {\n top: 0px;\n right: 6px;\n width: 15px;\n height: 1px;\n }\n`;\n\nexport const TreeTitle = styled.div`\n // overflow: hidden;\n // text-overflow: ellipsis;\n`;\n\nexport const TreeLevel = styled.div`\n padding-left: 30px;\n position: relative;\n\n /* &::before {\n content: '';\n position: absolute;\n background-color: var(--semi-color-text-3);\n top: 0px;\n bottom: 0px;\n left: -22px;\n width: 1px;\n } */\n`;\n\nexport const TreeItem = styled.div<{ depth: number }>`\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n background-color: var(--semi-color-text-3);\n }\n\n &:not(:last-child)::before {\n width: 1px;\n top: 0;\n bottom: 0;\n left: -22px;\n }\n\n &:last-child::before {\n width: 1px;\n top: 0;\n height: 14px;\n left: -22px;\n }\n\n ${(props) =>\n props.depth === 0 &&\n css`\n &::before {\n width: 0px !important;\n }\n `}\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect } from 'react';\n\nimport { IJsonSchema, JsonSchemaTypeManager, JsonSchemaUtils } from '@flowgram.ai/json-schema';\nimport { useCurrentScope, useRefresh } from '@flowgram.ai/editor';\n\nimport { DisplaySchemaTag } from '@/components/display-schema-tag';\n\nimport { DisplayOutputsWrapper } from './styles';\n\ninterface PropsType {\n value?: IJsonSchema;\n showIconInTree?: boolean;\n displayFromScope?: boolean;\n typeManager?: JsonSchemaTypeManager;\n}\n\nexport function DisplayOutputs({ value, showIconInTree, displayFromScope }: PropsType) {\n const scope = useCurrentScope();\n const refresh = useRefresh();\n\n useEffect(() => {\n if (!displayFromScope) {\n return () => null;\n }\n\n const disposable = scope.output.onListOrAnyVarChange(() => {\n refresh();\n });\n\n return () => {\n disposable.dispose();\n };\n }, [displayFromScope]);\n\n const properties: IJsonSchema['properties'] = displayFromScope\n ? scope.output.variables?.reduce((acm, curr) => {\n acm = {\n ...acm,\n ...(JsonSchemaUtils.astToSchema(curr.type)?.properties || {}),\n };\n return acm;\n }, {})\n : value?.properties || {};\n\n const childEntries = Object.entries(properties || {});\n\n return (\n <DisplayOutputsWrapper>\n {childEntries.map(([key, schema]) => (\n <DisplaySchemaTag\n key={key}\n title={key}\n value={schema}\n showIconInTree={showIconInTree}\n warning={!schema}\n />\n ))}\n </DisplayOutputsWrapper>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\nimport { Popover } from '@douyinfe/semi-ui';\n\nimport { useTypeManager } from '@/plugins';\nimport { DisplaySchemaTree } from '@/components/display-schema-tree';\n\nimport { PopoverContent, StyledTag, TitleSpan } from './styles';\n\ninterface PropsType {\n title?: JSX.Element | string;\n value?: IJsonSchema;\n showIconInTree?: boolean;\n warning?: boolean;\n}\n\nexport function DisplaySchemaTag({ value = {}, showIconInTree, title, warning }: PropsType) {\n const typeManager = useTypeManager();\n const icon =\n typeManager?.getDisplayIcon(value) || typeManager.getDisplayIcon({ type: 'unknown' });\n\n return (\n <Popover\n content={\n <PopoverContent>\n <DisplaySchemaTree value={value} typeManager={typeManager} showIcon={showIconInTree} />\n </PopoverContent>\n }\n >\n <StyledTag color={warning ? 'amber' : 'white'}>\n {icon &&\n React.cloneElement(icon, {\n className: 'tag-icon',\n })}\n {title && <TitleSpan>{title}</TitleSpan>}\n </StyledTag>\n </Popover>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { Tag } from '@douyinfe/semi-ui';\n\nexport const PopoverContent = styled.div`\n padding: 10px;\n`;\n\nexport const StyledTag = styled(Tag)`\n padding: 4px;\n\n .tag-icon {\n width: 12px;\n height: 12px;\n }\n`;\n\nexport const TitleSpan = styled.span`\n display: inline-block;\n margin-left: 4px;\n margin-top: -1px;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const DisplayOutputsWrapper = styled.div`\n display: flex;\n gap: 5px;\n flex-wrap: wrap;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { JsonSchemaTypeManager, JsonSchemaUtils } from '@flowgram.ai/json-schema';\nimport { useScopeAvailable } from '@flowgram.ai/editor';\n\nimport { IFlowValue } from '@/typings';\nimport { FlowValueUtils } from '@/shared';\nimport { DisplaySchemaTag } from '@/components/display-schema-tag';\n\ninterface PropsType {\n value?: IFlowValue;\n title?: JSX.Element | string;\n showIconInTree?: boolean;\n typeManager?: JsonSchemaTypeManager;\n}\n\nexport function DisplayFlowValue({ value, title, showIconInTree }: PropsType) {\n const available = useScopeAvailable();\n\n const variable = value?.type === 'ref' ? available.getByKeyPath(value?.content) : undefined;\n\n const schema = useMemo(() => {\n if (value?.type === 'ref') {\n return JsonSchemaUtils.astToSchema(variable?.type);\n }\n if (value?.type === 'template') {\n return { type: 'string' };\n }\n if (value?.type === 'constant') {\n return FlowValueUtils.inferConstantJsonSchema(value);\n }\n\n return { type: 'unknown' };\n }, [value, variable?.hash]);\n\n return (\n <DisplaySchemaTag\n title={title}\n value={schema}\n showIconInTree={showIconInTree}\n warning={value?.type === 'ref' && !variable}\n />\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo } from 'react';\n\nimport { isPlainObject } from 'lodash-es';\nimport { useScopeAvailable } from '@flowgram.ai/editor';\n\nimport { FlowValueUtils } from '@/shared';\nimport { DisplayFlowValue } from '@/components/display-flow-value';\n\nimport { DisplayInputsWrapper } from './styles';\nimport { DisplaySchemaTag } from '../display-schema-tag';\n\ninterface PropsType {\n value?: any;\n showIconInTree?: boolean;\n}\n\nexport function DisplayInputsValues({ value, showIconInTree }: PropsType) {\n const childEntries = Object.entries(value || {});\n\n return (\n <DisplayInputsWrapper>\n {childEntries.map(([key, value]) => {\n if (FlowValueUtils.isFlowValue(value)) {\n return (\n <DisplayFlowValue key={key} title={key} value={value} showIconInTree={showIconInTree} />\n );\n }\n\n if (isPlainObject(value)) {\n return (\n <DisplayInputsValueAllInTag\n key={key}\n title={key}\n value={value}\n showIconInTree={showIconInTree}\n />\n );\n }\n\n return null;\n })}\n </DisplayInputsWrapper>\n );\n}\n\nexport function DisplayInputsValueAllInTag({\n value,\n title,\n showIconInTree,\n}: PropsType & {\n title: string;\n}) {\n const available = useScopeAvailable();\n\n const schema = useMemo(\n () => FlowValueUtils.inferJsonSchema(value, available.scope),\n [available.version, value]\n );\n\n return <DisplaySchemaTag title={title} value={schema} showIconInTree={showIconInTree} />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const DisplayInputsWrapper = styled.div`\n display: flex;\n gap: 5px;\n flex-wrap: wrap;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { FieldArray, FieldArrayRenderProps } from '@flowgram.ai/editor';\nimport { Button } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\nimport { AssignRow, AssignValueType } from '@/components/assign-row';\n\ninterface AssignRowsProps {\n name: string;\n readonly?: boolean;\n}\n\nexport function AssignRows(props: AssignRowsProps) {\n const { name, readonly } = props;\n\n return (\n <FieldArray name={name}>\n {({ field }: FieldArrayRenderProps<AssignValueType | undefined>) => (\n <>\n {field.map((childField, index) => (\n <AssignRow\n key={childField.key}\n readonly={readonly}\n value={childField.value}\n onChange={(value) => {\n childField.onChange(value);\n }}\n onDelete={() => field.remove(index)}\n />\n ))}\n <div style={{ display: 'flex', gap: 5 }}>\n <Button\n size=\"small\"\n theme=\"borderless\"\n icon={<IconPlus />}\n onClick={() => field.append({ operator: 'assign' })}\n >\n Assign\n </Button>\n <Button\n size=\"small\"\n theme=\"borderless\"\n icon={<IconPlus />}\n onClick={() => field.append({ operator: 'declare' })}\n >\n Declaration\n </Button>\n </div>\n </>\n )}\n </FieldArray>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { IconButton } from '@douyinfe/semi-ui';\nimport { IconMinus } from '@douyinfe/semi-icons';\n\nimport { IFlowConstantRefValue } from '@/typings';\nimport { InjectVariableSelector } from '@/components/variable-selector';\nimport { InjectDynamicValueInput } from '@/components/dynamic-value-input';\n\nimport { AssignRowProps } from './types';\nimport { BlurInput } from './components/blur-input';\n\nexport function AssignRow(props: AssignRowProps) {\n const {\n value = {\n operator: 'assign',\n },\n onChange,\n onDelete,\n readonly,\n } = props;\n\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: 5 }}>\n <div style={{ width: 150, minWidth: 150, maxWidth: 150 }}>\n {value?.operator === 'assign' ? (\n <InjectVariableSelector\n style={{ width: '100%', height: 26 }}\n value={value?.left?.content}\n config={{ placeholder: 'Select Left' }}\n onChange={(v) =>\n onChange?.({\n ...value,\n left: { type: 'ref', content: v },\n })\n }\n />\n ) : (\n <BlurInput\n style={{ height: 26 }}\n size=\"small\"\n placeholder=\"Input Name\"\n value={value?.left}\n onChange={(v) =>\n onChange?.({\n ...value,\n left: v,\n })\n }\n />\n )}\n </div>\n <div style={{ flexGrow: 1 }}>\n <InjectDynamicValueInput\n readonly={readonly}\n value={value?.right as IFlowConstantRefValue | undefined}\n onChange={(v) =>\n onChange?.({\n ...value,\n right: v,\n })\n }\n />\n </div>\n {onDelete && (\n <div>\n <IconButton\n size=\"small\"\n theme=\"borderless\"\n icon={<IconMinus />}\n onClick={() => onDelete?.()}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport { AssignValueType } from './types';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useEffect, useState } from 'react';\n\nimport Input, { InputProps } from '@douyinfe/semi-ui/lib/es/input';\n\nexport function BlurInput(props: InputProps) {\n const [value, setValue] = useState('');\n\n useEffect(() => {\n setValue(props.value as string);\n }, [props.value]);\n\n return (\n <Input\n {...props}\n value={value}\n onChange={(value) => {\n setValue(value);\n }}\n onBlur={(e) => props.onChange?.(value, e)}\n />\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IFlowRefValue, IFlowValue } from '@/typings';\n\nexport type AssignValueType =\n | {\n operator: 'assign';\n left?: IFlowRefValue;\n right?: IFlowValue;\n }\n | {\n operator: 'declare';\n left?: string;\n right?: IFlowValue;\n };\n\nexport interface AssignRowProps {\n value?: AssignValueType;\n onChange?: (value?: AssignValueType) => void;\n onDelete?: () => void;\n readonly?: boolean;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { Button } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\nimport { FlowValueUtils } from '@/shared';\nimport { useObjectList } from '@/hooks';\n\nimport { PropsType } from './types';\nimport { UITreeItems } from './styles';\nimport { InputValueRow } from './row';\n\nexport function InputsValuesTree(props: PropsType) {\n const { value, onChange, readonly, hasError, constantProps } = props;\n\n const { list, updateKey, updateValue, remove, add } = useObjectList({\n value,\n onChange,\n sortIndexKey: (value) => (FlowValueUtils.isFlowValue(value) ? 'extra.index' : ''),\n });\n\n return (\n <div>\n <UITreeItems>\n {list.map((item) => (\n <InputValueRow\n key={item.id}\n keyName={item.key}\n value={item.value}\n onUpdateKey={(key) => updateKey(item.id, key)}\n onUpdateValue={(value) => updateValue(item.id, value)}\n onRemove={() => remove(item.id)}\n readonly={readonly}\n hasError={hasError}\n constantProps={constantProps}\n />\n ))}\n </UITreeItems>\n <Button\n style={{ marginTop: 10, marginLeft: 16 }}\n disabled={readonly}\n icon={<IconPlus />}\n size=\"small\"\n onClick={() => {\n add({\n type: 'constant',\n content: '',\n schema: { type: 'string' },\n });\n }}\n >\n {I18n.t('Add')}\n </Button>\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport styled, { css } from 'styled-components';\nimport Icon from '@douyinfe/semi-icons';\n\nexport const UIContainer = styled.div``;\n\nexport const UIRow = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 5px;\n`;\n\nexport const UICollapseTrigger = styled.div`\n cursor: pointer;\n margin-right: 5px;\n`;\n\nexport const UITreeItems = styled.div<{ $shrink?: boolean }>`\n display: grid;\n grid-template-columns: auto 1fr;\n\n ${({ $shrink }) =>\n $shrink &&\n css`\n padding-left: 3px;\n margin-top: 10px;\n `}\n`;\n\nexport const UITreeItemLeft = styled.div<{\n $isLast?: boolean;\n $showLine?: boolean;\n $showCollapse?: boolean;\n}>`\n grid-column: 1;\n position: relative;\n width: 16px;\n\n ${({ $showLine, $isLast, $showCollapse }) => {\n let height = $isLast ? '24px' : '100%';\n let width = $showCollapse ? '12px' : '30px';\n\n return (\n $showLine &&\n css`\n &::before {\n /* 竖线 */\n content: '';\n height: ${height};\n position: absolute;\n left: -14px;\n top: -16px;\n width: 1px;\n background: #d9d9d9;\n display: block;\n }\n\n &::after {\n /* 横线 */\n content: '';\n position: absolute;\n left: -14px; // 横线起点和竖线对齐\n top: 8px; // 跟随你的行高调整\n width: ${width}; // 横线长度\n height: 1px;\n background: #d9d9d9;\n display: block;\n }\n `\n );\n }}\n`;\n\nexport const UITreeItemRight = styled.div`\n grid-column: 2;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0px;\n }\n`;\n\nexport const UITreeItemMain = styled.div<{}>`\n display: flex;\n flex-direction: column;\n gap: 10px;\n position: relative;\n`;\n\nexport const UICollapsible = styled.div<{ $collapse?: boolean }>`\n display: none;\n\n ${({ $collapse }) =>\n $collapse &&\n css`\n display: block;\n `}\n`;\n\nexport const UIActions = styled.div`\n white-space: nowrap;\n`;\n\nconst iconAddChildrenSvg = (\n <svg\n className=\"icon-icon icon-icon-coz_add_node \"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 6.49988C11 8.64148 9.50397 10.4337 7.49995 10.8884V15.4998C7.49995 16.0521 7.94767 16.4998 8.49995 16.4998H11.208C11.0742 16.8061 11 17.1443 11 17.4998C11 17.8554 11.0742 18.1936 11.208 18.4998H8.49995C6.8431 18.4998 5.49995 17.1567 5.49995 15.4998V10.8884C3.49599 10.4336 2 8.64145 2 6.49988C2 4.0146 4.01472 1.99988 6.5 1.99988C8.98528 1.99988 11 4.0146 11 6.49988ZM6.5 8.99988C7.88071 8.99988 9 7.88059 9 6.49988C9 5.11917 7.88071 3.99988 6.5 3.99988C5.11929 3.99988 4 5.11917 4 6.49988C4 7.88059 5.11929 8.99988 6.5 8.99988Z\"\n ></path>\n <path d=\"M17.5 12.4999C18.0523 12.4999 18.5 12.9476 18.5 13.4999V16.4999H21.5C22.0523 16.4999 22.5 16.9476 22.5 17.4999C22.5 18.0522 22.0523 18.4999 21.5 18.4999H18.5V21.4999C18.5 22.0522 18.0523 22.4999 17.5 22.4999C16.9477 22.4999 16.5 22.0522 16.5 21.4999V18.4999H13.5C12.9477 18.4999 12.5 18.0522 12.5 17.4999C12.5 16.9476 12.9477 16.4999 13.5 16.4999H16.5V13.4999C16.5 12.9476 16.9477 12.4999 17.5 12.4999Z\"></path>\n </svg>\n);\n\nexport const IconAddChildren = () => <Icon size=\"small\" svg={iconAddChildrenSvg} />;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useMemo, useState } from 'react';\n\nimport { I18n } from '@flowgram.ai/editor';\nimport { IconButton, Input } from '@douyinfe/semi-ui';\nimport { IconChevronDown, IconChevronRight, IconDelete } from '@douyinfe/semi-icons';\n\nimport { IFlowConstantValue } from '@/typings';\nimport { ConstantInputStrategy } from '@/components/constant-input';\n\nimport { PropsType } from './types';\nimport {\n IconAddChildren,\n UIActions,\n UICollapseTrigger,\n UICollapsible,\n UIRow,\n UITreeItemLeft,\n UITreeItemMain,\n UITreeItemRight,\n UITreeItems,\n} from './styles';\nimport { useChildList } from './hooks/use-child-list';\nimport { InjectDynamicValueInput } from '../dynamic-value-input';\nimport { BlurInput } from '../blur-input';\n\nconst AddObjectChildStrategy: ConstantInputStrategy = {\n hit: (schema) => schema.type === 'object',\n Renderer: () => (\n <Input\n size=\"small\"\n disabled\n style={{ pointerEvents: 'none' }}\n value={I18n.t('Configure via child fields')}\n />\n ),\n};\n\nexport function InputValueRow(\n props: {\n keyName?: string;\n value?: any;\n onUpdateKey: (key: string) => void;\n onUpdateValue: (value: any) => void;\n onRemove?: () => void;\n $isLast?: boolean;\n $level?: number;\n } & Pick<PropsType, 'constantProps' | 'hasError' | 'readonly'>\n) {\n const {\n keyName,\n value,\n $level = 0,\n onUpdateKey,\n onUpdateValue,\n $isLast,\n onRemove,\n constantProps,\n hasError,\n readonly,\n } = props;\n const [collapse, setCollapse] = useState(false);\n\n const { canAddField, hasChildren, list, add, updateKey, updateValue, remove } = useChildList(\n value,\n onUpdateValue\n );\n\n const strategies = useMemo(\n () => [...(hasChildren ? [AddObjectChildStrategy] : []), ...(constantProps?.strategies || [])],\n [hasChildren, constantProps?.strategies]\n );\n\n const flowDisplayValue = useMemo(\n () =>\n hasChildren\n ? ({\n type: 'constant',\n schema: { type: 'object' },\n } as IFlowConstantValue)\n : value,\n [hasChildren, value]\n );\n\n return (\n <>\n <UITreeItemLeft $isLast={$isLast} $showLine={$level > 0} $showCollapse={hasChildren}>\n {hasChildren && (\n <UICollapseTrigger onClick={() => setCollapse((_collapse) => !_collapse)}>\n {collapse ? <IconChevronDown size=\"small\" /> : <IconChevronRight size=\"small\" />}\n </UICollapseTrigger>\n )}\n </UITreeItemLeft>\n <UITreeItemRight>\n <UITreeItemMain>\n <UIRow>\n <BlurInput\n style={{ width: 100, minWidth: 100, maxWidth: 100 }}\n disabled={readonly}\n size=\"small\"\n value={keyName}\n onChange={(v) => onUpdateKey?.(v)}\n placeholder={I18n.t('Input Key')}\n />\n <InjectDynamicValueInput\n style={{ flexGrow: 1 }}\n readonly={readonly}\n value={flowDisplayValue}\n onChange={(v) => onUpdateValue(v)}\n hasError={hasError}\n constantProps={{\n ...constantProps,\n strategies,\n }}\n />\n <UIActions>\n {canAddField && (\n <IconButton\n disabled={readonly}\n size=\"small\"\n theme=\"borderless\"\n icon={<IconAddChildren />}\n onClick={() => {\n add({\n type: 'constant',\n content: '',\n schema: { type: 'string' },\n });\n setCollapse(true);\n }}\n />\n )}\n <IconButton\n disabled={readonly}\n theme=\"borderless\"\n icon={<IconDelete size=\"small\" />}\n size=\"small\"\n onClick={() => onRemove?.()}\n />\n </UIActions>\n </UIRow>\n </UITreeItemMain>\n {hasChildren && (\n <UICollapsible $collapse={collapse}>\n <UITreeItems $shrink={true}>\n {list.map((_item, index) => (\n <InputValueRow\n readonly={readonly}\n hasError={hasError}\n constantProps={constantProps}\n key={_item.id}\n keyName={_item.key}\n value={_item.value}\n $level={$level + 1} // 传递递增的层级\n onUpdateValue={(_v) => {\n updateValue(_item.id, _v);\n }}\n onUpdateKey={(k) => {\n updateKey(_item.id, k);\n }}\n onRemove={() => {\n remove(_item.id);\n }}\n $isLast={index === list.length - 1}\n />\n ))}\n </UITreeItems>\n </UICollapsible>\n )}\n </UITreeItemRight>\n </>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { useMemo } from 'react';\n\nimport { isPlainObject } from 'lodash-es';\n\nimport { FlowValueUtils } from '@/shared';\nimport { useObjectList } from '@/hooks';\n\ninterface ListItem {\n id: string;\n key?: string;\n value?: any;\n}\n\nexport function useChildList(\n value?: any,\n onChange?: (value: any) => void\n): {\n canAddField: boolean;\n hasChildren: boolean;\n list: ListItem[];\n add: (defaultValue?: any) => void;\n updateKey: (id: string, key: string) => void;\n updateValue: (id: string, value: any) => void;\n remove: (id: string) => void;\n} {\n const canAddField = useMemo(() => {\n if (!isPlainObject(value)) {\n return false;\n }\n\n if (FlowValueUtils.isFlowValue(value)) {\n // Constant Object Value Can Add child fields\n return FlowValueUtils.isConstant(value) && value?.schema?.type === 'object';\n }\n\n return true;\n }, [value]);\n\n const objectListValue = useMemo(() => {\n if (isPlainObject(value)) {\n if (FlowValueUtils.isFlowValue(value)) {\n return undefined;\n }\n return value;\n }\n return undefined;\n }, [value]);\n\n const { list, add, updateKey, updateValue, remove } = useObjectList<any>({\n value: objectListValue,\n onChange: (value) => {\n onChange?.(value);\n },\n sortIndexKey: (value) => (FlowValueUtils.isFlowValue(value) ? 'extra.index' : ''),\n });\n\n const hasChildren = useMemo(\n () => canAddField && (list.length > 0 || Object.keys(objectListValue || {}).length > 0),\n [canAddField, list.length, Object.keys(objectListValue || {}).length]\n );\n\n return {\n canAddField,\n hasChildren,\n list,\n add,\n updateKey,\n updateValue,\n remove,\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './provide-batch-input';\nexport * from './auto-rename-ref';\nexport * from './provide-json-schema-outputs';\nexport * from './sync-variable-title';\nexport * from './validate-when-variable-sync';\nexport * from './listen-ref-value-change';\nexport * from './listen-ref-schema-change';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '@/typings';\n\nexport const provideBatchInputEffect: EffectOptions[] = createEffectFromVariableProvider({\n private: true,\n parse: (value: IFlowRefValue, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}_locals`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: [\n ASTFactory.createProperty({\n key: 'item',\n initializer: ASTFactory.createEnumerateExpression({\n enumerateFor: ASTFactory.createKeyPathExpression({\n keyPath: value.content || [],\n }),\n }),\n }),\n ASTFactory.createProperty({\n key: 'index',\n type: ASTFactory.createNumber(),\n }),\n ],\n }),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n VariableFieldKeyRenameService,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue, IFlowTemplateValue } from '@/typings';\nimport { FlowValueUtils } from '@/shared';\n\n/**\n * Auto rename ref when form item's key is renamed\n *\n * Example:\n *\n * formMeta: {\n * effects: {\n * \"inputsValues\": autoRenameRefEffect,\n * }\n * }\n */\nexport const autoRenameRefEffect: EffectOptions[] = [\n {\n event: DataEvent.onValueInit,\n effect: ((params) => {\n const { context, form, name } = params;\n\n const renameService = context.node.getService(VariableFieldKeyRenameService);\n\n const disposable = renameService.onRename(({ before, after }) => {\n const beforeKeyPath = [\n ...before.parentFields.map((_field) => _field.key).reverse(),\n before.key,\n ];\n const afterKeyPath = [\n ...after.parentFields.map((_field) => _field.key).reverse(),\n after.key,\n ];\n\n // traverse rename refs inside form item 'name'\n traverseRef(name, form.getValueIn(name), (_drilldownName, _v) => {\n if (_v.type === 'ref') {\n // ref auto rename\n if (isKeyPathMatch(_v.content, beforeKeyPath)) {\n _v.content = [...afterKeyPath, ...(_v.content || [])?.slice(beforeKeyPath.length)];\n form.setValueIn(_drilldownName, _v);\n }\n } else if (_v.type === 'template') {\n // template auto rename\n const templateKeyPaths = FlowValueUtils.getTemplateKeyPaths(_v);\n let hasMatch = false;\n\n templateKeyPaths.forEach((_keyPath) => {\n if (isKeyPathMatch(_keyPath, beforeKeyPath)) {\n hasMatch = true;\n const nextKeyPath = [\n ...afterKeyPath,\n ...(_keyPath || [])?.slice(beforeKeyPath.length),\n ];\n _v.content = _v.content?.replace(\n `{{${_keyPath.join('.')}}`,\n `{{${nextKeyPath.join('.')}}`\n );\n }\n });\n\n if (hasMatch) {\n form.setValueIn(_drilldownName, { ..._v });\n }\n }\n });\n });\n\n return () => {\n disposable.dispose();\n };\n }) as Effect,\n },\n];\n\n/**\n * If ref value's keyPath is the under as targetKeyPath\n * @param value\n * @param targetKeyPath\n * @returns\n */\nfunction isKeyPathMatch(keyPath: string[] = [], targetKeyPath: string[]) {\n return targetKeyPath.every((_key, index) => _key === keyPath[index]);\n}\n\n/**\n * Traverse value to find ref\n * @param value\n * @param options\n * @returns\n */\nfunction traverseRef(\n name: string,\n value: any,\n cb: (name: string, _v: IFlowRefValue | IFlowTemplateValue) => void\n) {\n for (const { value: _v, path } of FlowValueUtils.traverse(value, {\n includeTypes: ['ref', 'template'],\n path: name,\n })) {\n cb(path, _v as IFlowRefValue | IFlowTemplateValue);\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { JsonSchemaUtils, IJsonSchema } from '@flowgram.ai/json-schema';\nimport {\n ASTFactory,\n EffectOptions,\n FlowNodeRegistry,\n createEffectFromVariableProvider,\n getNodeForm,\n} from '@flowgram.ai/editor';\n\nexport const provideJsonSchemaOutputs: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: IJsonSchema, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title') || ctx.node.id,\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: JsonSchemaUtils.schemaToAST(value),\n }),\n ],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n FlowNodeRegistry,\n FlowNodeVariableData,\n} from '@flowgram.ai/editor';\n\nexport const syncVariableTitle: EffectOptions[] = [\n {\n event: DataEvent.onValueChange,\n effect: (({ value, context }) => {\n context.node.getData(FlowNodeVariableData).allScopes.forEach((_scope) => {\n _scope.output.variables.forEach((_var) => {\n _var.updateMeta({\n ...(_var.meta || {}),\n title: value || context.node.id,\n icon: context.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n });\n });\n });\n }) as Effect,\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isEmpty } from 'lodash-es';\nimport {\n DataEvent,\n Effect,\n EffectOptions,\n getNodeScope,\n getNodePrivateScope,\n} from '@flowgram.ai/editor';\n\nexport const validateWhenVariableSync = ({\n scope,\n}: {\n scope?: 'private' | 'public';\n} = {}): EffectOptions[] => [\n {\n event: DataEvent.onValueInit,\n effect: (({ context, form }) => {\n const nodeScope =\n scope === 'private' ? getNodePrivateScope(context.node) : getNodeScope(context.node);\n\n const disposable = nodeScope.available.onListOrAnyVarChange(() => {\n if (!isEmpty(form.state.errors)) {\n form.validate();\n }\n });\n\n return () => disposable.dispose();\n }) as Effect,\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n BaseVariableField,\n DataEvent,\n Effect,\n EffectFuncProps,\n EffectOptions,\n getNodeScope,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '@/typings';\n\n/**\n * Example:\n * const formMeta = {\n * effect: {\n * 'inputsValues.*': listenRefValueChange(({ name, variable, form }) => {\n * const schema = JsonSchemaUtils.astToSchema(variable?.type);\n * form.setValueIn(`${name}.schema`, schema);\n * })\n * }\n * }\n * @param cb\n * @returns\n */\nexport const listenRefValueChange = (\n cb: (props: EffectFuncProps<IFlowRefValue> & { variable?: BaseVariableField }) => void\n): EffectOptions[] => [\n {\n event: DataEvent.onValueInitOrChange,\n effect: ((params) => {\n const { context, value } = params;\n\n if (value?.type !== 'ref') {\n return () => null;\n }\n\n const disposable = getNodeScope(context.node).available.trackByKeyPath(\n value?.content || [],\n (v) => {\n cb({ ...params, variable: v });\n }\n );\n return () => {\n disposable.dispose();\n };\n }) as Effect,\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IJsonSchema, JsonSchemaUtils } from '@flowgram.ai/json-schema';\nimport {\n BaseType,\n DataEvent,\n Effect,\n EffectFuncProps,\n EffectOptions,\n getNodeScope,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '@/typings';\n\n/**\n * Example:\n * const formMeta = {\n * effect: {\n * 'inputsValues.*': listenRefSchemaChange(({ name, schema, form }) => {\n * form.setValueIn(`${name}.schema`, schema);\n * })\n * }\n * }\n * @param cb\n * @returns\n */\nexport const listenRefSchemaChange = (\n cb: (props: EffectFuncProps<IFlowRefValue> & { schema?: IJsonSchema }) => void\n): EffectOptions[] => [\n {\n event: DataEvent.onValueInitOrChange,\n effect: ((params) => {\n const { context, value } = params;\n\n if (value?.type !== 'ref') {\n return () => null;\n }\n\n const disposable = getNodeScope(context.node).available.trackByKeyPath<BaseType | undefined>(\n value?.content || [],\n (_type) => {\n cb({ ...params, schema: JsonSchemaUtils.astToSchema(_type) });\n },\n {\n selector: (_v) => _v?.type,\n }\n );\n return () => {\n disposable.dispose();\n };\n }) as Effect,\n },\n];\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './flow-value';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { IJsonSchema } from '@flowgram.ai/json-schema';\n\nexport interface IFlowValueExtra {\n index?: number;\n}\n\nexport type FlowValueType = 'constant' | 'ref' | 'expression' | 'template';\n\nexport interface IFlowConstantValue {\n type: 'constant';\n content?: any;\n schema?: IJsonSchema;\n extra?: IFlowValueExtra;\n}\n\nexport interface IFlowRefValue {\n type: 'ref';\n content?: string[];\n extra?: IFlowValueExtra;\n}\n\nexport interface IFlowExpressionValue {\n type: 'expression';\n content?: string;\n extra?: IFlowValueExtra;\n}\n\nexport interface IFlowTemplateValue {\n type: 'template';\n content?: string;\n extra?: IFlowValueExtra;\n}\n\nexport type IFlowValue =\n | IFlowConstantValue\n | IFlowRefValue\n | IFlowExpressionValue\n | IFlowTemplateValue;\n\nexport type IFlowConstantRefValue = IFlowConstantValue | IFlowRefValue;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './batch-outputs-plugin';\nexport * from './infer-inputs-plugin';\nexport * from './infer-assign-plugin';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n ASTFactory,\n createEffectFromVariableProvider,\n defineFormPluginCreator,\n FlowNodeRegistry,\n getNodeForm,\n getNodePrivateScope,\n getNodeScope,\n ScopeChainTransformService,\n type EffectOptions,\n type FormPluginCreator,\n FlowNodeScopeType,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue } from '@/typings';\n\nexport const provideBatchOutputsEffect: EffectOptions[] = createEffectFromVariableProvider({\n parse: (value: Record<string, IFlowRefValue>, ctx) => [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: Object.entries(value).map(([_key, value]) =>\n ASTFactory.createProperty({\n key: _key,\n initializer: ASTFactory.createWrapArrayExpression({\n wrapFor: ASTFactory.createKeyPathExpression({\n keyPath: value?.content || [],\n }),\n }),\n })\n ),\n }),\n }),\n ],\n});\n\n/**\n * Free Layout only right now\n */\nexport const createBatchOutputsFormPlugin: FormPluginCreator<{ outputKey: string }> =\n defineFormPluginCreator({\n name: 'batch-outputs-plugin',\n onSetupFormMeta({ mergeEffect }, { outputKey }) {\n mergeEffect({\n [outputKey]: provideBatchOutputsEffect,\n });\n },\n onInit(ctx, { outputKey }) {\n const chainTransformService = ctx.node.getService(ScopeChainTransformService);\n\n const batchNodeType = ctx.node.flowNodeType;\n\n const transformerId = `${batchNodeType}-outputs`;\n\n if (chainTransformService.hasTransformer(transformerId)) {\n return;\n }\n\n chainTransformService.registerTransformer(transformerId, {\n transformCovers: (covers, ctx) => {\n const node = ctx.scope.meta?.node;\n\n // Child Node's variable can cover parent\n if (node?.parent?.flowNodeType === batchNodeType) {\n return [...covers, getNodeScope(node.parent)];\n }\n\n return covers;\n },\n transformDeps(scopes, ctx) {\n const scopeMeta = ctx.scope.meta;\n\n if (scopeMeta?.type === FlowNodeScopeType.private) {\n return scopes;\n }\n\n const node = scopeMeta?.node;\n\n // Public of Loop Node depends on child Node\n if (node?.flowNodeType === batchNodeType) {\n // Get all child blocks\n const childBlocks = node.blocks;\n\n // public scope of all child blocks\n return [\n getNodePrivateScope(node),\n ...childBlocks.map((_childBlock) => getNodeScope(_childBlock)),\n ];\n }\n\n return scopes;\n },\n });\n },\n });\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { get, set } from 'lodash-es';\nimport { defineFormPluginCreator, getNodePrivateScope, getNodeScope } from '@flowgram.ai/editor';\n\nimport { FlowValueUtils } from '@/shared';\n\ninterface InputConfig {\n sourceKey: string;\n targetKey: string;\n scope?: 'private' | 'public';\n}\n\nexport const createInferInputsPlugin = defineFormPluginCreator<InputConfig>({\n onSetupFormMeta({ addFormatOnSubmit }, { sourceKey, targetKey, scope }) {\n if (!sourceKey || !targetKey) {\n return;\n }\n\n addFormatOnSubmit((formData, ctx) => {\n set(\n formData,\n targetKey,\n FlowValueUtils.inferJsonSchema(\n get(formData, sourceKey),\n scope === 'private' ? getNodePrivateScope(ctx.node) : getNodeScope(ctx.node)\n )\n );\n\n return formData;\n });\n },\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { set, uniqBy } from 'lodash-es';\nimport { JsonSchemaUtils } from '@flowgram.ai/json-schema';\nimport {\n ASTFactory,\n createEffectFromVariableProvider,\n defineFormPluginCreator,\n FlowNodeRegistry,\n getNodeForm,\n getNodeScope,\n} from '@flowgram.ai/editor';\n\nimport { IFlowRefValue, IFlowValue } from '@/typings';\n\ntype AssignValueType =\n | {\n operator: 'assign';\n left?: IFlowRefValue;\n right?: IFlowValue;\n }\n | {\n operator: 'declare';\n left?: string;\n right?: IFlowValue;\n };\n\ninterface InputConfig {\n assignKey: string;\n outputKey: string;\n}\n\nexport const createInferAssignPlugin = defineFormPluginCreator<InputConfig>({\n onSetupFormMeta({ addFormatOnSubmit, mergeEffect }, { assignKey, outputKey }) {\n if (!assignKey || !outputKey) {\n return;\n }\n\n mergeEffect({\n [assignKey]: createEffectFromVariableProvider({\n parse: (value: AssignValueType[], ctx) => {\n const declareRows = uniqBy(\n value.filter((_v) => _v.operator === 'declare' && _v.left && _v.right),\n 'left'\n );\n\n return [\n ASTFactory.createVariableDeclaration({\n key: `${ctx.node.id}`,\n meta: {\n title: getNodeForm(ctx.node)?.getValueIn('title'),\n icon: ctx.node.getNodeRegistry<FlowNodeRegistry>().info?.icon,\n },\n type: ASTFactory.createObject({\n properties: declareRows.map((_v) =>\n ASTFactory.createProperty({\n key: _v.left as string,\n type:\n _v.right?.type === 'constant'\n ? JsonSchemaUtils.schemaToAST(_v.right?.schema || {})\n : undefined,\n initializer:\n _v.right?.type === 'ref'\n ? ASTFactory.createKeyPathExpression({\n keyPath: _v.right?.content || [],\n })\n : {},\n })\n ),\n }),\n }),\n ];\n },\n }),\n });\n\n addFormatOnSubmit((formData, ctx) => {\n set(\n formData,\n outputKey,\n JsonSchemaUtils.astToSchema(getNodeScope(ctx.node).output.variables?.[0]?.type)\n );\n\n return formData;\n });\n },\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './validate-flow-value';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { isNil } from 'lodash-es';\nimport { FeedbackLevel, FlowNodeEntity, getNodeScope } from '@flowgram.ai/editor';\n\nimport { IFlowValue } from '@/typings';\nimport { FlowValueUtils } from '@/shared';\n\ninterface Context {\n node: FlowNodeEntity;\n required?: boolean;\n errorMessages?: {\n required?: string;\n unknownVariable?: string;\n };\n}\n\nexport function validateFlowValue(value: IFlowValue | undefined, ctx: Context) {\n const { node, required, errorMessages } = ctx;\n\n const {\n required: requiredMessage = 'Field is required',\n unknownVariable: unknownVariableMessage = 'Unknown Variable',\n } = errorMessages || {};\n\n if (required && (isNil(value) || isNil(value?.content) || value?.content === '')) {\n return {\n level: FeedbackLevel.Error,\n message: requiredMessage,\n };\n }\n\n if (value?.type === 'ref') {\n const variable = getNodeScope(node).available.getByKeyPath(value?.content || []);\n if (!variable) {\n return {\n level: FeedbackLevel.Error,\n message: unknownVariableMessage,\n };\n }\n }\n\n if (value?.type === 'template') {\n const allRefs = FlowValueUtils.getTemplateKeyPaths(value);\n\n for (const ref of allRefs) {\n const variable = getNodeScope(node).available.getByKeyPath(ref);\n if (!variable) {\n return {\n level: FeedbackLevel.Error,\n message: unknownVariableMessage,\n };\n }\n }\n }\n\n return undefined;\n}\n"],"mappings":"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","names":["value","React","z","import_lodash_es","FlowValueUtils","React","import_react","import_react","import_editor","import_semi_ui","React","init_utils","import_editor","import_preset_code","t","import_preset_code","colors","t","import_preset_code","React","import_react","import_preset_code","init_utils","preset","CodeEditor","module","React","CodeEditor","import_react","styled","import_react","import_editor","React","import_react","import_editor","import_semi_ui","React","import_react","import_editor","import_semi_ui","React","import_react","import_semi_ui","React","import_react","import_editor","import_semi_ui","React","value","import_react","import_editor","React","import_json_schema","import_json_schema","import_editor","import_react","import_json_schema","useOriginTypeManager","React","OriginTypePresetProvider","import_editor","React","import_react","import_json_schema","import_editor","import_semi_ui","import_styled_components","import_semi_ui","styled","import_react","React","import_react","import_editor","import_semi_ui","React","import_styled_components","UIContainer","init_styles","styled","import_react","import_editor","import_view","import_react","import_react","import_editor","import_view","editor_exports","React","UIContainer","preset","import_react","import_preset_prompt","init_editor","init_styles","PromptEditor","module","React","import_react","import_semi_ui","import_styled_components","import_semi_ui","UIRootTitle","UIVarName","UITag","UIPopoverContent","init_styles","styled","import_react","import_lodash_es","import_editor","import_semi_ui","import_semi_icons","import_view","init_styles","React","UITag","UIRootTitle","UIPopoverContent","UIVarName","editor_exports","React","PromptEditor","import_react","init_editor","value","React","import_react","import_lodash_es","import_editor","import_semi_ui","React","import_react","import_semi_ui","editor_exports","React","PromptEditor","import_react","init_editor","VariableTree","React","import_react","import_semi_ui","init_variable_tree","import_styled_components","import_semi_ui","UIRootTitle","UIVarName","UITag","UIPopoverContent","init_styles","styled","VariableTagInject","VariableTagWidget","import_react","import_lodash_es","import_editor","import_semi_ui","import_semi_icons","import_view","init_variable_tag","init_styles","React","UITag","UIRootTitle","UIPopoverContent","UIVarName","editor_exports","React","CodeEditor","VariableTree","VariableTagInject","import_react","import_editor","import_preset_code","init_editor","init_variable_tree","init_variable_tag","CodeEditor","JsonEditorWithVariables","PromptEditor","PromptEditorWithInputs","PromptEditorWithVariables","import_react","import_semi_ui","isArray","React","_type","value","import_react","import_editor","import_semi_ui","import_semi_icons","import_react","React","Input","value","import_react","import_styled_components","import_semi_icons","styled","React","Icon","import_react","import_lodash_es","import_json_schema","import_react","import_editor","import_react","import_semi_ui","Renderer","React","React","React","value","import_react","import_editor","React","import_react","import_json_schema","import_semi_ui","import_semi_icons","import_styled_components","UIContainer","styled","UIType","import_react","import_editor","React","constantSchema","UIContainer","UIType","import_react","import_editor","import_semi_ui","import_styled_components","UIContainer","styled","import_react","import_json_schema","import_editor","import_react","import_editor","import_semi_ui","import_semi_icons","React","React","UIContainer","import_react","import_editor","import_semi_ui","import_styled_components","import_semi_ui","UIContainer","styled","UIOperator","UILeft","UIRight","UIValues","import_react","import_editor","import_semi_ui","import_semi_icons","defaultOpConfigs","useOp","React","import_react","import_json_schema","import_semi_ui","defaultRules","React","defaultRuleConfig","useOp","React","UIContainer","UIOperator","UIValues","UILeft","UIRight","import_react","import_editor","import_semi_ui","import_semi_icons","import_react","import_lodash_es","genId","value","import_styled_components","styled","UIRow","React","UIRow","PromptEditorWithVariables","module","PromptEditorWithInputs","module","JsonEditorWithVariables","module","import_react","import_editor","import_semi_ui","import_semi_icons","import_styled_components","UIRows","styled","UIRow","React","UIRows","UIRow","import_react","import_styled_components","styled","React","import_react","import_json_schema","import_editor","import_react","import_semi_ui","import_styled_components","import_semi_ui","styled","React","import_styled_components","styled","React","import_react","import_json_schema","import_editor","React","import_react","import_lodash_es","import_editor","import_styled_components","styled","React","value","import_react","import_editor","import_semi_ui","import_semi_icons","import_react","import_semi_ui","import_semi_icons","import_react","import_input","BlurInput","React","Input","value","React","BlurInput","React","import_react","import_editor","import_semi_ui","import_semi_icons","import_react","import_styled_components","import_semi_icons","UIContainer","styled","UIRow","UICollapseTrigger","UITreeItems","UITreeItemLeft","UITreeItemRight","UITreeItemMain","UICollapsible","UIActions","iconAddChildrenSvg","React","IconAddChildren","Icon","import_react","import_editor","import_semi_ui","import_semi_icons","import_react","import_lodash_es","value","React","UITreeItemLeft","UICollapseTrigger","UITreeItemRight","UITreeItemMain","UIRow","UIActions","IconAddChildren","UICollapsible","UITreeItems","value","React","UITreeItems","import_editor","import_editor","import_json_schema","import_editor","import_editor","import_lodash_es","import_editor","import_editor","import_json_schema","import_editor","import_editor","value","ctx","import_lodash_es","import_editor","import_lodash_es","import_json_schema","import_editor","import_lodash_es","import_editor"]}