weaver-e10-builder 1.2.2 → 1.2.5

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 (274) hide show
  1. package/README.md +8 -19
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +14 -1
  4. package/dist/commands/actionflow.js.map +1 -1
  5. package/dist/commands/designer-css.d.ts +15 -0
  6. package/dist/commands/designer-css.d.ts.map +1 -0
  7. package/dist/commands/designer-css.js +205 -0
  8. package/dist/commands/designer-css.js.map +1 -0
  9. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  10. package/dist/commands/form-add-detail-table.js +127 -7
  11. package/dist/commands/form-add-detail-table.js.map +1 -1
  12. package/dist/commands/form-ebuilder-columns.d.ts +7 -0
  13. package/dist/commands/form-ebuilder-columns.d.ts.map +1 -1
  14. package/dist/commands/form-ebuilder-columns.js +2 -24
  15. package/dist/commands/form-ebuilder-columns.js.map +1 -1
  16. package/dist/commands/form-field-lang.d.ts.map +1 -1
  17. package/dist/commands/form-field-lang.js +4 -39
  18. package/dist/commands/form-field-lang.js.map +1 -1
  19. package/dist/commands/form-formula.d.ts.map +1 -1
  20. package/dist/commands/form-formula.js +35 -11
  21. package/dist/commands/form-formula.js.map +1 -1
  22. package/dist/commands/form-layout-init.d.ts.map +1 -1
  23. package/dist/commands/form-layout-init.js +15 -10
  24. package/dist/commands/form-layout-init.js.map +1 -1
  25. package/dist/commands/form-layout.js +24 -21
  26. package/dist/commands/form-layout.js.map +1 -1
  27. package/dist/commands/form-native.d.ts.map +1 -1
  28. package/dist/commands/form-native.js +181 -0
  29. package/dist/commands/form-native.js.map +1 -1
  30. package/dist/commands/form-nlist.d.ts +1 -1
  31. package/dist/commands/form-nlist.d.ts.map +1 -1
  32. package/dist/commands/form-nlist.js +5 -3
  33. package/dist/commands/form-nlist.js.map +1 -1
  34. package/dist/commands/form-validate.d.ts.map +1 -1
  35. package/dist/commands/form-validate.js +11 -3
  36. package/dist/commands/form-validate.js.map +1 -1
  37. package/dist/commands/form.d.ts.map +1 -1
  38. package/dist/commands/form.js +168 -90
  39. package/dist/commands/form.js.map +1 -1
  40. package/dist/commands/menu.d.ts.map +1 -1
  41. package/dist/commands/menu.js +170 -23
  42. package/dist/commands/menu.js.map +1 -1
  43. package/dist/commands/wf-form.d.ts +1 -0
  44. package/dist/commands/wf-form.d.ts.map +1 -1
  45. package/dist/commands/wf-form.js +44 -13
  46. package/dist/commands/wf-form.js.map +1 -1
  47. package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
  48. package/dist/commands/workflow-auth-resp.js +69 -8
  49. package/dist/commands/workflow-auth-resp.js.map +1 -1
  50. package/dist/commands/workflow-node-assign-flow.d.ts +3 -0
  51. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -0
  52. package/dist/commands/workflow-node-assign-flow.js +341 -0
  53. package/dist/commands/workflow-node-assign-flow.js.map +1 -0
  54. package/dist/commands/workflow-node.d.ts +2 -0
  55. package/dist/commands/workflow-node.d.ts.map +1 -1
  56. package/dist/commands/workflow-node.js +219 -48
  57. package/dist/commands/workflow-node.js.map +1 -1
  58. package/dist/commands/workflow-odoc.d.ts.map +1 -1
  59. package/dist/commands/workflow-odoc.js +56 -56
  60. package/dist/commands/workflow-odoc.js.map +1 -1
  61. package/dist/commands/workflow-setting.d.ts.map +1 -1
  62. package/dist/commands/workflow-setting.js +77 -1
  63. package/dist/commands/workflow-setting.js.map +1 -1
  64. package/dist/commands/workflow.d.ts.map +1 -1
  65. package/dist/commands/workflow.js +36 -80
  66. package/dist/commands/workflow.js.map +1 -1
  67. package/dist/core/auth.js +1 -1
  68. package/dist/core/client.d.ts +14 -0
  69. package/dist/core/client.d.ts.map +1 -1
  70. package/dist/core/client.js +28 -12
  71. package/dist/core/client.js.map +1 -1
  72. package/dist/index.js +4 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/services/actionflow/command_output.d.ts +7 -0
  75. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  76. package/dist/services/actionflow/command_output.js +46 -0
  77. package/dist/services/actionflow/command_output.js.map +1 -1
  78. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/action_eb_add.js +14 -4
  80. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  81. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
  82. package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
  83. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
  84. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/action_eb_update.js +23 -8
  86. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  87. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  88. package/dist/services/actionflow/components/action_eb_update_compiler.js +239 -6
  89. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  90. package/dist/services/actionflow/components/assign_var.d.ts +12 -0
  91. package/dist/services/actionflow/components/assign_var.d.ts.map +1 -0
  92. package/dist/services/actionflow/components/assign_var.js +133 -0
  93. package/dist/services/actionflow/components/assign_var.js.map +1 -0
  94. package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
  95. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
  96. package/dist/services/actionflow/components/custom_set_form.js +65 -0
  97. package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
  98. package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
  99. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  100. package/dist/services/actionflow/components/custom_trigger.js +7 -10
  101. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  102. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  103. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  104. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  105. package/dist/services/actionflow/components/index.js +9 -0
  106. package/dist/services/actionflow/components/index.js.map +1 -1
  107. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  108. package/dist/services/actionflow/components/output.js +6 -1
  109. package/dist/services/actionflow/components/output.js.map +1 -1
  110. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  111. package/dist/services/actionflow/context_preflight.js +13 -6
  112. package/dist/services/actionflow/context_preflight.js.map +1 -1
  113. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  114. package/dist/services/actionflow/context_provider.js +3 -2
  115. package/dist/services/actionflow/context_provider.js.map +1 -1
  116. package/dist/services/actionflow/dynamic_resources.d.ts +7 -1
  117. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  118. package/dist/services/actionflow/dynamic_resources.js +65 -8
  119. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  120. package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
  121. package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
  122. package/dist/services/actionflow/ebuilder_source.js +78 -0
  123. package/dist/services/actionflow/ebuilder_source.js.map +1 -0
  124. package/dist/services/actionflow/form_source.d.ts +76 -0
  125. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  126. package/dist/services/actionflow/form_source.js +195 -1
  127. package/dist/services/actionflow/form_source.js.map +1 -1
  128. package/dist/services/actionflow/formula_service.d.ts +4 -1
  129. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  130. package/dist/services/actionflow/formula_service.js +97 -23
  131. package/dist/services/actionflow/formula_service.js.map +1 -1
  132. package/dist/services/actionflow/preflight_service.d.ts +6 -0
  133. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  134. package/dist/services/actionflow/preflight_service.js +211 -3
  135. package/dist/services/actionflow/preflight_service.js.map +1 -1
  136. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  137. package/dist/services/actionflow/workflow_compiler.js +83 -15
  138. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  139. package/dist/services/designer-css.d.ts +89 -0
  140. package/dist/services/designer-css.d.ts.map +1 -0
  141. package/dist/services/designer-css.js +163 -0
  142. package/dist/services/designer-css.js.map +1 -0
  143. package/dist/services/dom-structure.d.ts +42 -0
  144. package/dist/services/dom-structure.d.ts.map +1 -0
  145. package/dist/services/dom-structure.js +251 -0
  146. package/dist/services/dom-structure.js.map +1 -0
  147. package/dist/services/form-create.d.ts +2 -1
  148. package/dist/services/form-create.d.ts.map +1 -1
  149. package/dist/services/form-create.js.map +1 -1
  150. package/dist/services/form-ebuilder-columns.d.ts +50 -0
  151. package/dist/services/form-ebuilder-columns.d.ts.map +1 -0
  152. package/dist/services/form-ebuilder-columns.js +68 -0
  153. package/dist/services/form-ebuilder-columns.js.map +1 -0
  154. package/dist/services/form-field-drop.d.ts +30 -1
  155. package/dist/services/form-field-drop.d.ts.map +1 -1
  156. package/dist/services/form-field-drop.js +60 -0
  157. package/dist/services/form-field-drop.js.map +1 -1
  158. package/dist/services/form-field-patch.d.ts +69 -0
  159. package/dist/services/form-field-patch.d.ts.map +1 -0
  160. package/dist/services/form-field-patch.js +117 -0
  161. package/dist/services/form-field-patch.js.map +1 -0
  162. package/dist/services/form-i18n-label.d.ts +48 -0
  163. package/dist/services/form-i18n-label.d.ts.map +1 -0
  164. package/dist/services/form-i18n-label.js +91 -0
  165. package/dist/services/form-i18n-label.js.map +1 -0
  166. package/dist/services/form-nlist.d.ts +1 -0
  167. package/dist/services/form-nlist.d.ts.map +1 -1
  168. package/dist/services/form-nlist.js +32 -5
  169. package/dist/services/form-nlist.js.map +1 -1
  170. package/dist/services/form-style-template.d.ts +6 -2
  171. package/dist/services/form-style-template.d.ts.map +1 -1
  172. package/dist/services/form-style-template.js +8 -4
  173. package/dist/services/form-style-template.js.map +1 -1
  174. package/dist/services/form-sub-detail.d.ts +51 -3
  175. package/dist/services/form-sub-detail.d.ts.map +1 -1
  176. package/dist/services/form-sub-detail.js +183 -20
  177. package/dist/services/form-sub-detail.js.map +1 -1
  178. package/dist/services/formula-detail.d.ts +68 -5
  179. package/dist/services/formula-detail.d.ts.map +1 -1
  180. package/dist/services/formula-detail.js +110 -44
  181. package/dist/services/formula-detail.js.map +1 -1
  182. package/dist/services/menu-catalog.d.ts +84 -0
  183. package/dist/services/menu-catalog.d.ts.map +1 -0
  184. package/dist/services/menu-catalog.js +183 -0
  185. package/dist/services/menu-catalog.js.map +1 -0
  186. package/dist/services/rich-text.d.ts +33 -0
  187. package/dist/services/rich-text.d.ts.map +1 -0
  188. package/dist/services/rich-text.js +134 -0
  189. package/dist/services/rich-text.js.map +1 -0
  190. package/dist/services/workflow-add-step.d.ts +45 -0
  191. package/dist/services/workflow-add-step.d.ts.map +1 -0
  192. package/dist/services/workflow-add-step.js +122 -0
  193. package/dist/services/workflow-add-step.js.map +1 -0
  194. package/dist/services/workflow-assign-flow.d.ts +109 -0
  195. package/dist/services/workflow-assign-flow.d.ts.map +1 -0
  196. package/dist/services/workflow-assign-flow.js +306 -0
  197. package/dist/services/workflow-assign-flow.js.map +1 -0
  198. package/dist/services/workflow-drawback.d.ts +19 -0
  199. package/dist/services/workflow-drawback.d.ts.map +1 -0
  200. package/dist/services/workflow-drawback.js +59 -0
  201. package/dist/services/workflow-drawback.js.map +1 -0
  202. package/dist/services/workflow-links.d.ts +51 -0
  203. package/dist/services/workflow-links.d.ts.map +1 -0
  204. package/dist/services/workflow-links.js +162 -0
  205. package/dist/services/workflow-links.js.map +1 -0
  206. package/dist/services/workflow-node-layout.d.ts +45 -4
  207. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  208. package/dist/services/workflow-node-layout.js +142 -41
  209. package/dist/services/workflow-node-layout.js.map +1 -1
  210. package/dist/services/workflow-node-menu.d.ts +57 -0
  211. package/dist/services/workflow-node-menu.d.ts.map +1 -0
  212. package/dist/services/workflow-node-menu.js +144 -0
  213. package/dist/services/workflow-node-menu.js.map +1 -0
  214. package/dist/services/workflow-odoc-setting.d.ts +43 -0
  215. package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
  216. package/dist/services/workflow-odoc-setting.js +100 -0
  217. package/dist/services/workflow-odoc-setting.js.map +1 -0
  218. package/dist/services/workflow-tab-config.d.ts +54 -0
  219. package/dist/services/workflow-tab-config.d.ts.map +1 -0
  220. package/dist/services/workflow-tab-config.js +137 -0
  221. package/dist/services/workflow-tab-config.js.map +1 -0
  222. package/dist/types.d.ts +5 -1
  223. package/dist/types.d.ts.map +1 -1
  224. package/package.json +1 -1
  225. package/skill-docs/SKILL.md +8 -7
  226. package/skill-docs/_catalog.md +81 -77
  227. package/skill-docs/actionflows/SKILL.md +170 -167
  228. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +39 -2
  229. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
  230. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -33
  231. package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
  232. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +16 -11
  233. package/skill-docs/assets/dom-structure/Bar.json +341 -0
  234. package/skill-docs/assets/dom-structure/BarStack.json +341 -0
  235. package/skill-docs/assets/dom-structure/Bubble.json +323 -0
  236. package/skill-docs/assets/dom-structure/Calendar.json +515 -0
  237. package/skill-docs/assets/dom-structure/Circular.json +337 -0
  238. package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
  239. package/skill-docs/assets/dom-structure/Comment.json +617 -0
  240. package/skill-docs/assets/dom-structure/CountDown.json +755 -0
  241. package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
  242. package/skill-docs/assets/dom-structure/EbButton.json +387 -0
  243. package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
  244. package/skill-docs/assets/dom-structure/Gauge.json +282 -0
  245. package/skill-docs/assets/dom-structure/HBar.json +336 -0
  246. package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
  247. package/skill-docs/assets/dom-structure/Line.json +341 -0
  248. package/skill-docs/assets/dom-structure/NList.json +712 -0
  249. package/skill-docs/assets/dom-structure/NavBar.json +274 -0
  250. package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
  251. package/skill-docs/assets/dom-structure/NewTab.json +606 -0
  252. package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
  253. package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
  254. package/skill-docs/assets/dom-structure/Picture.json +209 -0
  255. package/skill-docs/assets/dom-structure/Pie.json +338 -0
  256. package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
  257. package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
  258. package/skill-docs/assets/dom-structure/Slide.json +489 -0
  259. package/skill-docs/assets/dom-structure/Treemap.json +324 -0
  260. package/skill-docs/references/common/guide-plan-template.md +254 -251
  261. package/skill-docs/references/common/ref-cli-commands.md +537 -519
  262. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
  263. package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
  264. package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
  265. package/skill-docs/references/form/guide-create-form.md +233 -232
  266. package/skill-docs/references/form/guide-form-formula-functions.md +11 -1
  267. package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
  268. package/skill-docs/references/form/guide-form-linkage.md +28 -2
  269. package/skill-docs/references/form/guide-form-sub-detail.md +82 -0
  270. package/skill-docs/references/form/guide-list-custom-text.md +52 -0
  271. package/skill-docs/references/menu/system-menus.md +12 -0
  272. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +198 -190
  273. package/skill-docs/references/workflow/guide-workflow-odoc.md +22 -2
  274. package/skill-docs/references/workflow/guide-workflow.md +25 -3
@@ -1 +1 @@
1
- {"version":3,"file":"preflight_service.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/preflight_service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAwGtD,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAKjF;AAED,uEAAuE;AACvE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAgE1H;AAgCD,4EAA4E;AAC5E,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2LxG;AAED,+BAA+B;AAC/B,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAe9G;AAoBD,iCAAiC;AACjC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAiDrG;AAED,0CAA0C;AAC1C,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCxH;AAED,mDAAmD;AACnD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEnK;AAED,4CAA4C;AAC5C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI,CAoG9J;AAmLD,mCAAmC;AACnC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,IAAI,CAgD/F;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,IAAI,CAwD5G;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CASnG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAsBrG;AAED;uDACuD;AACvD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAgBlG;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,CAkClF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAMrG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAsClG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAYhG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAcpG;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CActG;AAqDD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACvB;AAED,kCAAkC;AAClC,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CA0W5H"}
1
+ {"version":3,"file":"preflight_service.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/preflight_service.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import * as workflowSource from './workflow_source.js';
3
3
  import * as personSource from './person_source.js';
4
4
  import * as contextSource from './context_source.js';
5
5
  import * as hrmSource from './hrm_source.js';
6
+ import { completeEbuilder, pickEbuilderBrowserRow } from './ebuilder_source.js';
6
7
  import { resolveHttpBindings } from './http_source.js';
7
- import { registerTargetFormFields, registerTargetDetailFields, registerWorkflowFieldIds, registerWorkflowContextFields, getWorkflowFieldIds, getWorkflowDetailFields, getWorkflowDetailNames, getTargetFormFields, } from './runtime_metadata.js';
8
+ import { registerTargetFormFields, registerTargetDetailFields, registerWorkflowFieldIds, registerWorkflowContextFields, getWorkflowFieldIds, getWorkflowDetailFields, getWorkflowDetailNames, getTargetFormFields, getTargetDetailFields, } from './runtime_metadata.js';
8
9
  // workflow_id → 目标表单 id(进程缓存)
9
10
  const FORM_ID_CACHE = {};
10
11
  import { ContextStore, PlatformContextProvider } from './context_provider.js';
@@ -522,6 +523,128 @@ export async function resolveFixedPeople(plan, client) {
522
523
  (plan._autoResources ??= []).push(...records);
523
524
  return records;
524
525
  }
526
+ function isDynamicAssignment(value) {
527
+ const kind = String(value?.kind ?? value?.assignmentKind ?? '').toLowerCase();
528
+ return ['context', 'reference', 'system_variable', 'variable', 'constant', 'function', 'formula', 'query_result', 'transform'].includes(kind);
529
+ }
530
+ function isEbuilderField(field) {
531
+ return String(field?.componentKey || field?.fieldConfig?.componentKey || '').toLowerCase() === 'ebuilder';
532
+ }
533
+ /** 从固定值中取出需要送给 Browser 搜索的名称。 */
534
+ function fixedBrowserSearchValue(value) {
535
+ if (isDynamicAssignment(value))
536
+ return null;
537
+ const outer = value && typeof value === 'object' && value.kind === 'fixed' ? value.value : value;
538
+ const raw = outer && typeof outer === 'object' && 'value' in outer && !('id' in outer)
539
+ ? outer.value : outer;
540
+ if (raw && typeof raw === 'object') {
541
+ const id = raw.id ?? raw.value ?? raw.dataId ?? raw.objId;
542
+ const name = raw.name ?? raw.showName ?? raw.content ?? raw.text ?? raw.label;
543
+ if (id != null)
544
+ return { name: String(name || ''), hasId: true };
545
+ return name ? { name: String(name), hasId: false } : null;
546
+ }
547
+ if (raw == null || String(raw).trim() === '')
548
+ return null;
549
+ return { name: String(raw).trim(), hasId: false };
550
+ }
551
+ /**
552
+ * e-builder 关联字段的固定值必须是 Browser 对象,而不是名称字符串。
553
+ * 设计器按名称输入时,先通过当前表单/字段的 complete 接口补齐真实 id 和显示名,
554
+ * 再交给通用公式编译器生成 fixvalue。
555
+ */
556
+ export async function resolveEbuilderFixedValues(plan, client) {
557
+ const records = [];
558
+ const requestCache = new Map();
559
+ const resolveValue = async (container, key, field, formId, rawValue, path, detailFields) => {
560
+ if (!isEbuilderField(field) || isDynamicAssignment(rawValue))
561
+ return;
562
+ const targetField = detailFields?.[String(key)] || field;
563
+ if (!isEbuilderField(targetField))
564
+ return;
565
+ const search = fixedBrowserSearchValue(rawValue);
566
+ if (!search || search.hasId)
567
+ return;
568
+ const fieldId = String(targetField.id || key);
569
+ const cacheKey = `${formId}:${fieldId}:${search.name}`;
570
+ let browser = requestCache.get(cacheKey);
571
+ if (!browser) {
572
+ const rows = await completeEbuilder(client, { objId: formId, fieldId, searchValue: search.name });
573
+ browser = pickEbuilderBrowserRow(rows, search.name);
574
+ requestCache.set(cacheKey, browser);
575
+ }
576
+ if (rawValue && typeof rawValue === 'object' && rawValue.kind === 'fixed') {
577
+ rawValue.value = browser;
578
+ }
579
+ else if (rawValue && typeof rawValue === 'object' && 'value' in rawValue && !('id' in rawValue)) {
580
+ rawValue.value = browser;
581
+ rawValue.label = browser.name;
582
+ }
583
+ else if (rawValue && typeof rawValue === 'object') {
584
+ container[key] = browser;
585
+ }
586
+ else {
587
+ container[key] = { kind: 'fixed', value: browser };
588
+ }
589
+ records.push({ path, resourceType: 'ebuilder_browser', value: { id: browser.id, name: browser.name }, reason: 'Ebuilder 关联字段固定值已通过当前字段 Browser 接口补全真实 id 和显示名' });
590
+ };
591
+ const walk = async (steps) => {
592
+ for (const step of steps || []) {
593
+ if (!step || typeof step !== 'object')
594
+ continue;
595
+ const params = step.params || {};
596
+ const form = stepFormRef(step);
597
+ const formId = String(form?.id || '');
598
+ const fields = formId ? getTargetFormFields()[formId] || {} : {};
599
+ if (formId && params && typeof params === 'object') {
600
+ const constants = params.constants;
601
+ if (constants && typeof constants === 'object' && !Array.isArray(constants)) {
602
+ for (const [fieldId, value] of Object.entries(constants)) {
603
+ const normalizedId = String(fieldId).replace(/^[+-]/, '');
604
+ await resolveValue(constants, fieldId, fields[normalizedId], formId, value, `${step.type}.params.constants.${fieldId}`);
605
+ }
606
+ }
607
+ // ActionEbAdd/Update 的旧格式 setting/updates 也会进入同一个固定值编译器。
608
+ // 在归一化成 FormulaBean 之前补全,避免旧格式绕过 Ebuilder Browser 查询。
609
+ for (const assignmentKey of ['setting', 'updates']) {
610
+ const assignments = params[assignmentKey];
611
+ if (!Array.isArray(assignments))
612
+ continue;
613
+ for (const [index, item] of assignments.entries()) {
614
+ if (!item || typeof item !== 'object' || item.value === undefined)
615
+ continue;
616
+ const fieldRef = item.field ?? item.formField ?? item.fieldId;
617
+ const fieldId = String(fieldRef && typeof fieldRef === 'object'
618
+ ? (fieldRef.id ?? fieldRef.key ?? '') : (fieldRef ?? ''));
619
+ const field = fieldRef && typeof fieldRef === 'object' && fieldRef.componentKey
620
+ ? fieldRef : fields[fieldId];
621
+ await resolveValue(item, 'value', field, formId, item.value, `${step.type}.params.${assignmentKey}[${index}].value`);
622
+ }
623
+ }
624
+ for (const item of Array.isArray(params.detail) ? params.detail : []) {
625
+ if (!item || typeof item !== 'object')
626
+ continue;
627
+ const detailTableId = String(item.detailTableId || item.tableId || item.table || '');
628
+ const detailFields = getTargetDetailFields()[formId]?.[detailTableId] || {};
629
+ const detailConstants = item.constants;
630
+ if (detailConstants && typeof detailConstants === 'object' && !Array.isArray(detailConstants)) {
631
+ for (const [fieldId, value] of Object.entries(detailConstants)) {
632
+ await resolveValue(detailConstants, fieldId, fields[String(fieldId)] || detailFields[String(fieldId)], formId, value, `${step.type}.params.detail[${detailTableId}].constants.${fieldId}`, detailFields);
633
+ }
634
+ }
635
+ }
636
+ }
637
+ for (const branch of getStepBranches(step) || [])
638
+ await walk(branch?.actions || []);
639
+ if (Array.isArray(step.actions))
640
+ await walk(step.actions);
641
+ }
642
+ };
643
+ await walk(plan.actions || []);
644
+ if (records.length)
645
+ (plan._autoResources ??= []).push(...records);
646
+ return records;
647
+ }
525
648
  /** 委托流程的两张设置表在每个租户都有独立字段 ID,生成前必须实时读取。 */
526
649
  export async function resolveEntrustFields(plan, client, errors) {
527
650
  for (const step of walkPlanSteps(plan.actions || [])) {
@@ -703,6 +826,28 @@ export function checkSourceReferences(plan, eventContextFields, errors, availabl
703
826
  }
704
827
  }
705
828
  };
829
+ const checkReference = (value, where) => {
830
+ if (Array.isArray(value)) {
831
+ for (const [index, item] of value.entries())
832
+ checkReference(item, `${where}[${index}]`);
833
+ return;
834
+ }
835
+ if (!value || typeof value !== 'object')
836
+ return;
837
+ const kind = String(value.kind || value.assignmentKind || '').toLowerCase();
838
+ if (kind === 'query_result')
839
+ return;
840
+ if (kind === 'context' || kind === 'reference') {
841
+ checkSourceKey(String(value.paramKey || value.key || value.fieldKey || ''), where);
842
+ return;
843
+ }
844
+ if (value.assign)
845
+ checkReference(value.assign, `${where}.assign`);
846
+ if (Array.isArray(value.args))
847
+ checkReference(value.args, `${where}.args`);
848
+ if (Array.isArray(value.fields))
849
+ checkReference(value.fields, `${where}.fields`);
850
+ };
706
851
  const walk = (steps, prefix = 'actions') => {
707
852
  for (const [idx, step] of (steps || []).entries()) {
708
853
  if (!step || typeof step !== 'object')
@@ -734,8 +879,14 @@ export function checkSourceReferences(plan, eventContextFields, errors, availabl
734
879
  }
735
880
  }
736
881
  for (const [di, det] of (params.detail || []).entries()) {
737
- if (det && typeof det === 'object')
882
+ if (det && typeof det === 'object') {
738
883
  checkMapping(det.mapping, `${path}.detail[${di}].mapping`);
884
+ checkReference(det.basisValue, `${path}.detail[${di}].basisValue`);
885
+ checkReference(det.rowId, `${path}.detail[${di}].rowId`);
886
+ for (const [ci, condition] of (det.updateFieldCondition?.updateField || []).entries()) {
887
+ checkReference(condition?.assign ?? condition?.value, `${path}.detail[${di}].updateFieldCondition.updateField[${ci}]`);
888
+ }
889
+ }
739
890
  }
740
891
  }
741
892
  }
@@ -1193,6 +1344,41 @@ export function normalizeShowDataSourceFields(response, formId) {
1193
1344
  visit(root);
1194
1345
  return fields;
1195
1346
  }
1347
+ /**
1348
+ * 归一化 /api/ebuilder/common/ds/fields 的字段对象。
1349
+ *
1350
+ * EnquiryForm 的 filterInput 左值必须使用数据源字段选择器返回的实时元数据;
1351
+ * getEbField 只适合表单字段校验,部分租户不会带齐 componentKey、formInfo、
1352
+ * sformId 和物理字段信息。这里只补齐编译器读取的别名,不改变平台原对象。
1353
+ */
1354
+ function normalizeDataSourceField(field, formId) {
1355
+ if (!field || typeof field !== 'object')
1356
+ return field;
1357
+ let config = field.config;
1358
+ if (typeof config === 'string') {
1359
+ try {
1360
+ config = JSON.parse(config);
1361
+ }
1362
+ catch {
1363
+ config = {};
1364
+ }
1365
+ }
1366
+ if (!config || typeof config !== 'object')
1367
+ config = {};
1368
+ const formInfo = field.formInfo && typeof field.formInfo === 'object' ? field.formInfo : {};
1369
+ const id = String(field.id || '');
1370
+ return {
1371
+ ...field,
1372
+ id,
1373
+ showName: String(field.showName || field.text || field.name || field.content || id),
1374
+ name: String(field.name || (id && /^\d+$/.test(id) ? `field_${id}` : field.text || id)),
1375
+ componentKey: String(field.componentKey || config.componentKey || field.compType || field.type || ''),
1376
+ paramType: String(field.paramType || field.type || config.type || 'string').toLowerCase(),
1377
+ type: String(field.type || field.paramType || config.type || 'String'),
1378
+ formId: String(field.formId || formInfo.formId || formId),
1379
+ ...(field.layoutId || formInfo.layoutId ? { layoutId: String(field.layoutId || formInfo.layoutId) } : {}),
1380
+ };
1381
+ }
1196
1382
  export function syncEventResourcesToDraft(draft, plan) {
1197
1383
  const pe = plan.event, de = draft.event;
1198
1384
  if (!pe || !de || typeof pe !== 'object' || typeof de !== 'object')
@@ -1419,7 +1605,23 @@ export async function preflightContext(plan, appId, client) {
1419
1605
  // “默认全选”必须在计划层固化为实时字段列表。仅在编译期依赖全局缓存时,
1420
1606
  // 查询组件偶尔会只保留系统字段,筛选编辑器因此把业务字段标成“已删除”。
1421
1607
  const params = step.params && typeof step.params === 'object' ? step.params : (step.params = {});
1422
- if (['EnquiryForm', 'TimeBatchTrigger', 'DateTrigger'].includes(step.type)) {
1608
+ if (['EnquiryForm', 'TimeBatchTrigger', 'DateTrigger'].includes(step.type)
1609
+ || (step.type === 'ActionEbUpdate' && ['updateData', 'fieldUpdate'].includes(String(params.opType || 'updateData')))) {
1610
+ // EnquiryForm/条件更新的筛选条件左值必须来自数据源字段选择器,
1611
+ // 而不是只用 getEbField 的表单字段对象。后者经常缺少数据源侧的
1612
+ // name/formInfo/sformId,会导致设计器把条件字段显示为“已删除”
1613
+ // 或保存时静默丢弃。
1614
+ try {
1615
+ const dataSourceResponse = await formSource.dataSourceFields(client, formId, true);
1616
+ const dataSourceFields = normalizeShowDataSourceFields(dataSourceResponse, formId)
1617
+ .map((field) => normalizeDataSourceField(field, formId))
1618
+ .filter((field) => Boolean(field?.id));
1619
+ if (dataSourceFields.length)
1620
+ registerTargetFormFields(formId, dataSourceFields);
1621
+ }
1622
+ catch {
1623
+ // 保留下方 showDataSourceFields/getEbField 降级;最终保存仍由平台校验。
1624
+ }
1423
1625
  // getEbField 用于类型/筛选校验;queryFields 必须采用设计器字段选择器
1424
1626
  // showDataSourceFields 返回的对象和字段 ID(业务字段通常是 field_<真实ID>),
1425
1627
  // 否则后端会静默丢弃业务字段。
@@ -1505,6 +1707,12 @@ export async function preflightContext(plan, appId, client) {
1505
1707
  };
1506
1708
  await hydrateFilterFields([event]);
1507
1709
  await hydrateFilterFields(plan.actions || []);
1710
+ try {
1711
+ await resolveEbuilderFixedValues(plan, client);
1712
+ }
1713
+ catch (error) {
1714
+ errors.push(`Ebuilder 固定值补全失败: ${String(error?.message || error)}`);
1715
+ }
1508
1716
  // 更新动作若无法拿到目标表字段,平台 saveDesign 会直接 500,这里硬拦截。
1509
1717
  const validateUpdateFields = (steps, prefix = 'actions') => {
1510
1718
  for (const [index, step] of (steps || []).entries()) {