@nocobase/flow-engine 2.0.0-alpha.3 → 2.0.0-alpha.30

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 (418) hide show
  1. package/lib/BlockScopedFlowEngine.d.ts +23 -0
  2. package/lib/BlockScopedFlowEngine.js +90 -0
  3. package/lib/FlowContextProvider.d.ts +2 -2
  4. package/lib/FlowContextProvider.js +3 -3
  5. package/lib/FlowDefinition.d.ts +4 -2
  6. package/lib/JSRunner.js +3 -0
  7. package/lib/ViewScopedFlowEngine.d.ts +1 -1
  8. package/lib/components/FieldModelRenderer.js +10 -4
  9. package/lib/components/FieldSkeleton.d.ts +10 -0
  10. package/lib/components/FieldSkeleton.js +64 -0
  11. package/lib/components/FlowContextSelector.js +7 -2
  12. package/lib/components/FlowModelRenderer.d.ts +2 -5
  13. package/lib/components/FlowModelRenderer.js +16 -47
  14. package/lib/components/FormItem.js +5 -1
  15. package/lib/{runjs-context/snippets/global/requireAsync.snippet.d.ts → components/dnd/findModelUidPosition.d.ts} +4 -7
  16. package/lib/{runjs-context/snippets/scene/jsblock/jsx-mount.snippet.js → components/dnd/findModelUidPosition.js} +23 -19
  17. package/lib/components/dnd/gridDragPlanner.d.ts +130 -0
  18. package/lib/components/dnd/gridDragPlanner.js +497 -0
  19. package/lib/components/dnd/index.d.ts +2 -2
  20. package/lib/components/dnd/index.js +5 -5
  21. package/lib/components/settings/independents/dropdown/FlowsDropdownButton.js +2 -2
  22. package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +17 -5
  23. package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +2 -2
  24. package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +7 -1
  25. package/lib/components/variables/VariableInput.js +16 -2
  26. package/lib/components/variables/VariableTag.js +43 -2
  27. package/lib/components/variables/types.d.ts +2 -0
  28. package/lib/data-source/index.d.ts +12 -4
  29. package/lib/data-source/index.js +19 -13
  30. package/lib/data-source/sortCollectionsByInherits.d.ts +10 -0
  31. package/lib/data-source/sortCollectionsByInherits.js +71 -0
  32. package/lib/executor/FlowExecutor.d.ts +4 -5
  33. package/lib/executor/FlowExecutor.js +135 -100
  34. package/lib/flowContext.d.ts +33 -5
  35. package/lib/flowContext.js +193 -76
  36. package/lib/flowEngine.d.ts +8 -1
  37. package/lib/flowEngine.js +18 -6
  38. package/lib/flowSettings.d.ts +2 -1
  39. package/lib/flowSettings.js +12 -8
  40. package/lib/hooks/useApplyAutoFlows.js +2 -1
  41. package/lib/index.d.ts +7 -1
  42. package/lib/index.js +32 -3
  43. package/lib/locale/en-US.json +4 -2
  44. package/lib/locale/index.d.ts +4 -0
  45. package/lib/locale/zh-CN.json +4 -2
  46. package/lib/models/CollectionFieldModel.d.ts +2 -0
  47. package/lib/models/CollectionFieldModel.js +43 -3
  48. package/lib/models/flowModel.d.ts +28 -29
  49. package/lib/models/flowModel.js +114 -92
  50. package/lib/models/forkFlowModel.d.ts +4 -4
  51. package/lib/models/forkFlowModel.js +32 -8
  52. package/lib/provider.d.ts +3 -1
  53. package/lib/provider.js +7 -5
  54. package/lib/resources/multiRecordResource.js +2 -0
  55. package/lib/resources/singleRecordResource.js +1 -0
  56. package/lib/resources/sqlResource.d.ts +1 -0
  57. package/lib/resources/sqlResource.js +20 -24
  58. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.d.ts +1 -6
  59. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +27 -20
  60. package/lib/runjs-context/contexts/JSBlockRunJSContext.d.ts +1 -6
  61. package/lib/runjs-context/contexts/JSBlockRunJSContext.js +46 -33
  62. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.d.ts +1 -2
  63. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.js +14 -15
  64. package/lib/runjs-context/contexts/{LinkageRunJSContext.d.ts → JSColumnRunJSContext.d.ts} +6 -3
  65. package/lib/runjs-context/contexts/JSColumnRunJSContext.js +78 -0
  66. package/lib/runjs-context/contexts/JSFieldRunJSContext.d.ts +1 -6
  67. package/lib/runjs-context/contexts/JSFieldRunJSContext.js +28 -24
  68. package/lib/runjs-context/contexts/JSItemRunJSContext.d.ts +1 -6
  69. package/lib/runjs-context/contexts/JSItemRunJSContext.js +24 -20
  70. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.d.ts +1 -2
  71. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.js +16 -17
  72. package/lib/runjs-context/contexts/base.d.ts +9 -0
  73. package/lib/runjs-context/contexts/base.js +183 -0
  74. package/lib/runjs-context/helpers.d.ts +5 -2
  75. package/lib/runjs-context/helpers.js +36 -27
  76. package/lib/runjs-context/registry.d.ts +7 -4
  77. package/lib/runjs-context/registry.js +10 -42
  78. package/lib/runjs-context/setup.d.ts +9 -0
  79. package/lib/runjs-context/setup.js +82 -0
  80. package/lib/runjs-context/snippets/global/{copy-record-json.snippet.js → api-request.snippet.js} +25 -10
  81. package/lib/runjs-context/snippets/global/clipboard-copy-text.snippet.js +61 -0
  82. package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.js → import-esm.snippet.js} +26 -12
  83. package/lib/runjs-context/snippets/global/message-error.snippet.js +6 -0
  84. package/lib/runjs-context/snippets/global/message-success.snippet.js +6 -0
  85. package/lib/runjs-context/snippets/global/notification-open.snippet.d.ts +3 -8
  86. package/lib/runjs-context/snippets/global/notification-open.snippet.js +8 -1
  87. package/lib/runjs-context/snippets/global/open-view-dialog.snippet.js +10 -3
  88. package/lib/runjs-context/snippets/global/open-view-drawer.snippet.js +10 -3
  89. package/lib/runjs-context/snippets/global/query-selector.snippet.js +53 -0
  90. package/lib/runjs-context/snippets/global/require-amd.snippet.d.ts +11 -0
  91. package/lib/runjs-context/snippets/global/{requireAsync.snippet.js → require-amd.snippet.js} +16 -13
  92. package/lib/runjs-context/snippets/global/window-open.snippet.d.ts +3 -8
  93. package/lib/runjs-context/snippets/global/window-open.snippet.js +8 -1
  94. package/lib/runjs-context/snippets/index.d.ts +14 -3
  95. package/lib/runjs-context/snippets/index.js +161 -40
  96. package/lib/runjs-context/snippets/scene/block/add-event-listener.snippet.d.ts +11 -0
  97. package/lib/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.js +11 -2
  98. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.d.ts +11 -0
  99. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.js +64 -0
  100. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.d.ts +11 -0
  101. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.js +99 -0
  102. package/lib/runjs-context/snippets/{libs → scene/block}/echarts-init.snippet.js +24 -7
  103. package/lib/runjs-context/snippets/scene/block/render-button-handler.snippet.d.ts +11 -0
  104. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-button-handler.snippet.js +17 -9
  105. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.d.ts +11 -0
  106. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.js +57 -0
  107. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.d.ts +11 -0
  108. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.js +71 -0
  109. package/lib/runjs-context/snippets/scene/block/render-react-jsx.snippet.d.ts +11 -0
  110. package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.js → block/render-react-jsx.snippet.js} +26 -13
  111. package/lib/runjs-context/snippets/scene/block/render-react.snippet.d.ts +11 -0
  112. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-react.snippet.js +18 -17
  113. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.d.ts +11 -0
  114. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.js +95 -0
  115. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.d.ts +11 -0
  116. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.js +84 -0
  117. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.d.ts +11 -0
  118. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.js +60 -0
  119. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.d.ts +11 -0
  120. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.js +283 -0
  121. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.d.ts +11 -0
  122. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.js +124 -0
  123. package/lib/runjs-context/snippets/scene/detail/color-by-value.snippet.d.ts +11 -0
  124. package/lib/runjs-context/snippets/scene/{jsfield → detail}/color-by-value.snippet.js +13 -3
  125. package/lib/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.d.ts +11 -0
  126. package/lib/runjs-context/snippets/{global → scene/detail}/copy-to-clipboard.snippet.js +28 -6
  127. package/lib/runjs-context/snippets/scene/detail/format-number.snippet.d.ts +11 -0
  128. package/lib/runjs-context/snippets/scene/{jsfield → detail}/format-number.snippet.js +13 -3
  129. package/lib/runjs-context/snippets/scene/detail/innerHTML-value.snippet.d.ts +11 -0
  130. package/lib/runjs-context/snippets/scene/{jsfield → detail}/innerHTML-value.snippet.js +13 -3
  131. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.d.ts +11 -0
  132. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.js +82 -0
  133. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.d.ts +11 -0
  134. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.js +80 -0
  135. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.d.ts +11 -0
  136. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.js +74 -0
  137. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.d.ts +11 -0
  138. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.js +63 -0
  139. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.d.ts +11 -0
  140. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.js +81 -0
  141. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.d.ts +11 -0
  142. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.js +64 -0
  143. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.d.ts +11 -0
  144. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.js +74 -0
  145. package/lib/runjs-context/snippets/scene/form/render-basic.snippet.d.ts +11 -0
  146. package/lib/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.js +11 -2
  147. package/lib/runjs-context/snippets/scene/form/set-disabled.snippet.d.ts +11 -0
  148. package/lib/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.js +12 -3
  149. package/lib/runjs-context/snippets/scene/form/set-field-value.snippet.d.ts +11 -0
  150. package/lib/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.js +12 -3
  151. package/lib/runjs-context/snippets/scene/form/set-required.snippet.d.ts +11 -0
  152. package/lib/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.js +12 -3
  153. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.d.ts +11 -0
  154. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.js +67 -0
  155. package/lib/runjs-context/snippets/scene/form/toggle-visible.snippet.d.ts +11 -0
  156. package/lib/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.js +12 -3
  157. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.d.ts +11 -0
  158. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.js +64 -0
  159. package/lib/runjs-context/snippets/scene/table/collection-selected-count.snippet.d.ts +11 -0
  160. package/lib/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.js +11 -2
  161. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.d.ts +11 -0
  162. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.js +79 -0
  163. package/lib/runjs-context/snippets/scene/table/destroy-selected.snippet.d.ts +11 -0
  164. package/lib/runjs-context/snippets/{global/log-json-record.snippet.js → scene/table/destroy-selected.snippet.js} +24 -11
  165. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.d.ts +11 -0
  166. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.js +64 -0
  167. package/lib/runjs-context/snippets/scene/table/iterate-selected-rows.snippet.d.ts +11 -0
  168. package/lib/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.js +11 -2
  169. package/lib/runjs-context/snippets/types.d.ts +9 -1
  170. package/lib/types.d.ts +28 -3
  171. package/lib/types.js +4 -3
  172. package/lib/utils/buildSettingsViewInputArgs.d.ts +19 -0
  173. package/lib/utils/buildSettingsViewInputArgs.js +75 -0
  174. package/lib/utils/createEphemeralContext.d.ts +13 -0
  175. package/lib/utils/createEphemeralContext.js +140 -0
  176. package/lib/utils/index.d.ts +3 -2
  177. package/lib/utils/index.js +5 -2
  178. package/lib/utils/jsxTransform.d.ts +15 -0
  179. package/lib/utils/jsxTransform.js +68 -0
  180. package/lib/utils/params-resolvers.js +3 -3
  181. package/lib/utils/safeGlobals.d.ts +5 -3
  182. package/lib/utils/safeGlobals.js +40 -0
  183. package/lib/utils/schema-utils.js +2 -2
  184. package/lib/utils/serverContextParams.d.ts +1 -0
  185. package/lib/utils/variablesParams.d.ts +9 -5
  186. package/lib/utils/variablesParams.js +47 -36
  187. package/lib/views/PageComponent.js +2 -1
  188. package/lib/views/createViewMeta.d.ts +29 -1
  189. package/lib/views/createViewMeta.js +338 -72
  190. package/lib/views/index.d.ts +1 -0
  191. package/lib/views/index.js +3 -0
  192. package/lib/views/useDialog.d.ts +8 -8
  193. package/lib/views/useDialog.js +8 -7
  194. package/lib/views/useDrawer.d.ts +8 -8
  195. package/lib/views/useDrawer.js +40 -26
  196. package/lib/views/usePage.d.ts +8 -8
  197. package/lib/views/usePage.js +8 -7
  198. package/package.json +5 -3
  199. package/src/BlockScopedFlowEngine.ts +86 -0
  200. package/src/FlowContextProvider.tsx +4 -2
  201. package/src/JSRunner.ts +3 -0
  202. package/src/ViewScopedFlowEngine.ts +1 -1
  203. package/src/__tests__/JSRunner.test.ts +62 -53
  204. package/src/__tests__/blockScopedFlowEngine.test.ts +154 -0
  205. package/src/__tests__/createViewMeta.popup.test.ts +132 -0
  206. package/src/__tests__/flow-engine.test.ts +3 -0
  207. package/src/__tests__/flowContextCreateJSRunner.test.ts +163 -0
  208. package/src/__tests__/flowEngine.saveModel.test.ts +4 -0
  209. package/src/__tests__/flowRunJSContextDefine.test.ts +508 -0
  210. package/src/__tests__/globalFlowRegistry.test.ts +1 -1
  211. package/src/__tests__/runjsContext.test.ts +216 -35
  212. package/src/__tests__/runjsContextImplementations.test.ts +217 -0
  213. package/src/__tests__/runjsContextRuntime.test.ts +269 -0
  214. package/src/__tests__/runjsEdgeCases.test.ts +281 -0
  215. package/src/__tests__/runjsLocales.test.ts +36 -0
  216. package/src/__tests__/runjsRuntimeFeatures.test.ts +449 -0
  217. package/src/__tests__/runjsSnippets.test.ts +140 -0
  218. package/src/__tests__/viewScopedFlowEngine.test.ts +3 -3
  219. package/src/components/DynamicFlowsEditor.tsx +3 -4
  220. package/src/components/FieldModelRenderer.tsx +16 -5
  221. package/src/components/FieldSkeleton.tsx +27 -0
  222. package/src/components/FlowContextSelector.tsx +6 -2
  223. package/src/components/FlowModelRenderer.tsx +30 -78
  224. package/src/components/FormItem.tsx +8 -1
  225. package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +5 -5
  226. package/src/components/__tests__/gridDragPlanner.test.ts +494 -0
  227. package/src/components/dnd/README.md +149 -0
  228. package/src/components/dnd/findModelUidPosition.ts +26 -0
  229. package/src/components/dnd/gridDragPlanner.ts +659 -0
  230. package/src/components/dnd/index.tsx +3 -3
  231. package/src/components/settings/independents/dropdown/FlowsDropdownButton.tsx +1 -1
  232. package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +17 -4
  233. package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +1 -1
  234. package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +14 -1
  235. package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +424 -0
  236. package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +5 -7
  237. package/src/components/variables/VariableInput.tsx +22 -2
  238. package/src/components/variables/VariableTag.tsx +54 -2
  239. package/src/components/variables/types.ts +2 -0
  240. package/src/data-source/__tests__/sortCollectionsByInherits.test.ts +125 -0
  241. package/src/data-source/index.ts +17 -11
  242. package/src/data-source/sortCollectionsByInherits.ts +61 -0
  243. package/src/executor/FlowExecutor.ts +178 -121
  244. package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
  245. package/src/executor/__tests__/flowExecutor.test.ts +151 -5
  246. package/src/flowContext.ts +266 -97
  247. package/src/flowEngine.ts +21 -6
  248. package/src/flowSettings.ts +9 -4
  249. package/src/hooks/useApplyAutoFlows.ts +3 -1
  250. package/src/index.ts +12 -1
  251. package/src/locale/en-US.json +4 -2
  252. package/src/locale/zh-CN.json +4 -2
  253. package/src/models/CollectionFieldModel.tsx +43 -4
  254. package/src/models/__tests__/flowModel.getFlows.sort.test.ts +4 -4
  255. package/src/models/__tests__/flowModel.test.ts +234 -111
  256. package/src/models/__tests__/forkFlowModel.test.ts +22 -7
  257. package/src/models/flowModel.tsx +149 -125
  258. package/src/models/forkFlowModel.ts +41 -8
  259. package/src/provider.tsx +10 -7
  260. package/src/resources/multiRecordResource.ts +2 -0
  261. package/src/resources/singleRecordResource.ts +1 -0
  262. package/src/resources/sqlResource.ts +20 -25
  263. package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +28 -21
  264. package/src/runjs-context/contexts/JSBlockRunJSContext.ts +46 -34
  265. package/src/runjs-context/contexts/JSCollectionActionRunJSContext.ts +15 -16
  266. package/src/runjs-context/contexts/JSColumnRunJSContext.ts +58 -0
  267. package/src/runjs-context/contexts/JSFieldRunJSContext.ts +30 -25
  268. package/src/runjs-context/contexts/JSItemRunJSContext.ts +25 -21
  269. package/src/runjs-context/contexts/JSRecordActionRunJSContext.ts +17 -18
  270. package/src/runjs-context/contexts/base.ts +171 -0
  271. package/src/runjs-context/helpers.ts +32 -30
  272. package/src/runjs-context/registry.ts +16 -47
  273. package/src/runjs-context/setup.ts +51 -0
  274. package/src/runjs-context/snippets/global/api-request.snippet.ts +38 -0
  275. package/src/runjs-context/snippets/global/clipboard-copy-text.snippet.ts +42 -0
  276. package/src/runjs-context/snippets/global/import-esm.snippet.ts +39 -0
  277. package/src/runjs-context/snippets/global/message-error.snippet.ts +6 -0
  278. package/src/runjs-context/snippets/global/message-success.snippet.ts +6 -0
  279. package/src/runjs-context/snippets/global/notification-open.snippet.ts +11 -1
  280. package/src/runjs-context/snippets/global/open-view-dialog.snippet.ts +10 -3
  281. package/src/runjs-context/snippets/global/open-view-drawer.snippet.ts +10 -3
  282. package/src/runjs-context/snippets/global/query-selector.snippet.ts +34 -0
  283. package/src/runjs-context/snippets/global/require-amd.snippet.ts +30 -0
  284. package/src/runjs-context/snippets/global/window-open.snippet.ts +11 -1
  285. package/src/runjs-context/snippets/index.ts +177 -39
  286. package/src/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.ts +14 -2
  287. package/src/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.ts +45 -0
  288. package/src/runjs-context/snippets/scene/block/chartjs-bar.snippet.ts +80 -0
  289. package/src/runjs-context/snippets/scene/block/echarts-init.snippet.ts +44 -0
  290. package/src/runjs-context/snippets/scene/block/render-button-handler.snippet.ts +35 -0
  291. package/src/runjs-context/snippets/scene/block/render-iframe.snippet.ts +38 -0
  292. package/src/runjs-context/snippets/scene/block/render-info-card.snippet.ts +52 -0
  293. package/src/runjs-context/snippets/scene/block/render-react-jsx.snippet.ts +39 -0
  294. package/src/runjs-context/snippets/scene/block/render-react.snippet.ts +38 -0
  295. package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +76 -0
  296. package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +65 -0
  297. package/src/runjs-context/snippets/scene/block/resource-example.snippet.ts +46 -0
  298. package/src/runjs-context/snippets/scene/block/three-users-orbit.snippet.ts +264 -0
  299. package/src/runjs-context/snippets/scene/block/vue-component.snippet.ts +105 -0
  300. package/src/runjs-context/snippets/scene/detail/color-by-value.snippet.ts +33 -0
  301. package/src/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.ts +45 -0
  302. package/src/runjs-context/snippets/scene/detail/format-number.snippet.ts +32 -0
  303. package/src/runjs-context/snippets/scene/detail/innerHTML-value.snippet.ts +31 -0
  304. package/src/runjs-context/snippets/scene/detail/percentage-bar.snippet.ts +63 -0
  305. package/src/runjs-context/snippets/scene/detail/relative-time.snippet.ts +61 -0
  306. package/src/runjs-context/snippets/scene/detail/status-tag.snippet.ts +55 -0
  307. package/src/runjs-context/snippets/scene/form/calculate-total.snippet.ts +44 -0
  308. package/src/runjs-context/snippets/scene/form/cascade-select.snippet.ts +62 -0
  309. package/src/runjs-context/snippets/scene/form/conditional-required.snippet.ts +45 -0
  310. package/src/runjs-context/snippets/scene/form/copy-field-values.snippet.ts +55 -0
  311. package/src/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.ts +14 -2
  312. package/src/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.ts +15 -3
  313. package/src/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.ts +15 -3
  314. package/src/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.ts +15 -3
  315. package/src/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.ts +48 -0
  316. package/src/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.ts +15 -3
  317. package/src/runjs-context/snippets/scene/table/cell-open-dialog.snippet.ts +45 -0
  318. package/src/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.ts +14 -2
  319. package/src/runjs-context/snippets/scene/table/concat-fields.snippet.ts +60 -0
  320. package/src/runjs-context/snippets/scene/table/destroy-selected.snippet.ts +36 -0
  321. package/src/runjs-context/snippets/scene/table/export-selected-json.snippet.ts +45 -0
  322. package/src/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.ts +14 -2
  323. package/src/runjs-context/snippets/types.ts +5 -1
  324. package/src/types.ts +34 -0
  325. package/src/utils/__tests__/jsxTransform.test.ts +38 -0
  326. package/src/utils/__tests__/safeGlobals.test.ts +22 -1
  327. package/src/utils/buildSettingsViewInputArgs.ts +72 -0
  328. package/src/utils/createEphemeralContext.ts +142 -0
  329. package/src/utils/index.ts +2 -2
  330. package/src/utils/jsxTransform.ts +39 -0
  331. package/src/utils/params-resolvers.ts +2 -2
  332. package/src/utils/safeGlobals.ts +49 -3
  333. package/src/utils/schema-utils.ts +1 -1
  334. package/src/utils/serverContextParams.ts +1 -0
  335. package/src/utils/variablesParams.ts +50 -38
  336. package/src/views/PageComponent.tsx +1 -1
  337. package/src/views/createViewMeta.ts +393 -70
  338. package/src/views/index.tsx +1 -0
  339. package/src/views/useDialog.tsx +12 -10
  340. package/src/views/useDrawer.tsx +60 -36
  341. package/src/views/usePage.tsx +13 -10
  342. package/lib/components/dnd/getMousePositionOnElement.d.ts +0 -50
  343. package/lib/components/dnd/getMousePositionOnElement.js +0 -95
  344. package/lib/components/dnd/moveBlock.d.ts +0 -33
  345. package/lib/components/dnd/moveBlock.js +0 -302
  346. package/lib/runjs-context/contexts/FlowRunJSContext.d.ts +0 -38
  347. package/lib/runjs-context/contexts/FlowRunJSContext.js +0 -217
  348. package/lib/runjs-context/contexts/LinkageRunJSContext.js +0 -62
  349. package/lib/runjs-context/index.d.ts +0 -19
  350. package/lib/runjs-context/index.js +0 -57
  351. package/lib/runjs-context/snippets/global/api-request-get.snippet.d.ts +0 -16
  352. package/lib/runjs-context/snippets/global/api-request-get.snippet.js +0 -42
  353. package/lib/runjs-context/snippets/global/api-request-post.snippet.d.ts +0 -16
  354. package/lib/runjs-context/snippets/global/api-request-post.snippet.js +0 -42
  355. package/lib/runjs-context/snippets/global/console-log-ctx.snippet.d.ts +0 -16
  356. package/lib/runjs-context/snippets/global/console-log-ctx.snippet.js +0 -41
  357. package/lib/runjs-context/snippets/global/sleep.snippet.d.ts +0 -16
  358. package/lib/runjs-context/snippets/global/sleep.snippet.js +0 -43
  359. package/lib/runjs-context/snippets/global/try-catch-async.snippet.d.ts +0 -16
  360. package/lib/runjs-context/snippets/global/try-catch-async.snippet.js +0 -44
  361. package/lib/runjs-context/snippets/libs/echarts-init.snippet.d.ts +0 -15
  362. package/lib/runjs-context/snippets/scene/actions/collection-selected-count.snippet.d.ts +0 -15
  363. package/lib/runjs-context/snippets/scene/actions/iterate-selected-rows.snippet.d.ts +0 -15
  364. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.d.ts +0 -15
  365. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.js +0 -43
  366. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.d.ts +0 -15
  367. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.js +0 -40
  368. package/lib/runjs-context/snippets/scene/jsblock/add-event-listener.snippet.d.ts +0 -15
  369. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.d.ts +0 -15
  370. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.js +0 -42
  371. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.d.ts +0 -15
  372. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.d.ts +0 -15
  373. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.js +0 -41
  374. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.d.ts +0 -15
  375. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.js +0 -41
  376. package/lib/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.d.ts +0 -15
  377. package/lib/runjs-context/snippets/scene/jsblock/render-react.snippet.d.ts +0 -15
  378. package/lib/runjs-context/snippets/scene/jsfield/color-by-value.snippet.d.ts +0 -15
  379. package/lib/runjs-context/snippets/scene/jsfield/format-number.snippet.d.ts +0 -15
  380. package/lib/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.d.ts +0 -15
  381. package/lib/runjs-context/snippets/scene/jsitem/render-basic.snippet.d.ts +0 -15
  382. package/lib/runjs-context/snippets/scene/linkage/set-disabled.snippet.d.ts +0 -15
  383. package/lib/runjs-context/snippets/scene/linkage/set-field-value.snippet.d.ts +0 -15
  384. package/lib/runjs-context/snippets/scene/linkage/set-required.snippet.d.ts +0 -15
  385. package/lib/runjs-context/snippets/scene/linkage/toggle-visible.snippet.d.ts +0 -15
  386. package/src/components/dnd/getMousePositionOnElement.ts +0 -115
  387. package/src/components/dnd/moveBlock.ts +0 -379
  388. package/src/runjs-context/contexts/FlowRunJSContext.ts +0 -190
  389. package/src/runjs-context/contexts/LinkageRunJSContext.ts +0 -35
  390. package/src/runjs-context/index.ts +0 -20
  391. package/src/runjs-context/snippets/global/api-request-get.snippet.ts +0 -20
  392. package/src/runjs-context/snippets/global/api-request-post.snippet.ts +0 -20
  393. package/src/runjs-context/snippets/global/console-log-ctx.snippet.ts +0 -19
  394. package/src/runjs-context/snippets/global/copy-record-json.snippet.ts +0 -21
  395. package/src/runjs-context/snippets/global/copy-to-clipboard.snippet.ts +0 -21
  396. package/src/runjs-context/snippets/global/log-json-record.snippet.ts +0 -21
  397. package/src/runjs-context/snippets/global/requireAsync.snippet.ts +0 -24
  398. package/src/runjs-context/snippets/global/sleep.snippet.ts +0 -21
  399. package/src/runjs-context/snippets/global/try-catch-async.snippet.ts +0 -22
  400. package/src/runjs-context/snippets/global/view-navigation-push.snippet.ts +0 -23
  401. package/src/runjs-context/snippets/libs/echarts-init.snippet.ts +0 -24
  402. package/src/runjs-context/snippets/scene/actions/record-id-message.snippet.ts +0 -21
  403. package/src/runjs-context/snippets/scene/actions/run-action-basic.snippet.ts +0 -18
  404. package/src/runjs-context/snippets/scene/jsblock/append-style.snippet.ts +0 -20
  405. package/src/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.ts +0 -24
  406. package/src/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.ts +0 -19
  407. package/src/runjs-context/snippets/scene/jsblock/render-basic.snippet.ts +0 -24
  408. package/src/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.ts +0 -24
  409. package/src/runjs-context/snippets/scene/jsblock/render-card.snippet.ts +0 -30
  410. package/src/runjs-context/snippets/scene/jsblock/render-react.snippet.ts +0 -34
  411. package/src/runjs-context/snippets/scene/jsfield/color-by-value.snippet.ts +0 -20
  412. package/src/runjs-context/snippets/scene/jsfield/format-number.snippet.ts +0 -19
  413. package/src/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.ts +0 -18
  414. /package/lib/runjs-context/snippets/global/{copy-record-json.snippet.d.ts → api-request.snippet.d.ts} +0 -0
  415. /package/lib/runjs-context/snippets/global/{copy-to-clipboard.snippet.d.ts → clipboard-copy-text.snippet.d.ts} +0 -0
  416. /package/lib/runjs-context/snippets/global/{log-json-record.snippet.d.ts → import-esm.snippet.d.ts} +0 -0
  417. /package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.d.ts → query-selector.snippet.d.ts} +0 -0
  418. /package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.d.ts → block/echarts-init.snippet.d.ts} +0 -0
package/lib/index.js CHANGED
@@ -27,11 +27,24 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
28
  var src_exports = {};
29
29
  __export(src_exports, {
30
- observer: () => import_reactive_react.observer
30
+ RunJSContextRegistry: () => import_registry.RunJSContextRegistry,
31
+ compileRunJs: () => import_jsxTransform.compileRunJs,
32
+ createBlockScopedEngine: () => import_BlockScopedFlowEngine.createBlockScopedEngine,
33
+ createJSRunnerWithVersion: () => import_helpers.createJSRunnerWithVersion,
34
+ createViewScopedEngine: () => import_ViewScopedFlowEngine.createViewScopedEngine,
35
+ getModelClassName: () => import_registry.getModelClassName,
36
+ getRunJSDocFor: () => import_helpers.getRunJSDocFor,
37
+ getRunJSScenesForContext: () => import_helpers.getRunJSScenesForContext,
38
+ getRunJSScenesForModel: () => import_helpers.getRunJSScenesForModel,
39
+ getSnippetBody: () => import_snippets.getSnippetBody,
40
+ listSnippetsForContext: () => import_snippets.listSnippetsForContext,
41
+ observer: () => import_reactive_react.observer,
42
+ setupRunJSContexts: () => import_setup.setupRunJSContexts
31
43
  });
32
44
  module.exports = __toCommonJS(src_exports);
33
45
  __reExport(src_exports, require("./types"), module.exports);
34
46
  __reExport(src_exports, require("./utils"), module.exports);
47
+ var import_jsxTransform = require("./utils/jsxTransform");
35
48
  __reExport(src_exports, require("./resources"), module.exports);
36
49
  __reExport(src_exports, require("./flowEngine"), module.exports);
37
50
  __reExport(src_exports, require("./hooks"), module.exports);
@@ -46,12 +59,29 @@ __reExport(src_exports, require("./ElementProxy"), module.exports);
46
59
  __reExport(src_exports, require("./flowContext"), module.exports);
47
60
  __reExport(src_exports, require("./FlowContextProvider"), module.exports);
48
61
  __reExport(src_exports, require("./JSRunner"), module.exports);
49
- __reExport(src_exports, require("./runjs-context"), module.exports);
62
+ var import_helpers = require("./runjs-context/helpers");
63
+ var import_registry = require("./runjs-context/registry");
64
+ var import_setup = require("./runjs-context/setup");
65
+ var import_snippets = require("./runjs-context/snippets");
50
66
  __reExport(src_exports, require("./views"), module.exports);
51
67
  __reExport(src_exports, require("./FlowDefinition"), module.exports);
68
+ var import_ViewScopedFlowEngine = require("./ViewScopedFlowEngine");
69
+ var import_BlockScopedFlowEngine = require("./BlockScopedFlowEngine");
52
70
  // Annotate the CommonJS export names for ESM import in node:
53
71
  0 && (module.exports = {
72
+ RunJSContextRegistry,
73
+ compileRunJs,
74
+ createBlockScopedEngine,
75
+ createJSRunnerWithVersion,
76
+ createViewScopedEngine,
77
+ getModelClassName,
78
+ getRunJSDocFor,
79
+ getRunJSScenesForContext,
80
+ getRunJSScenesForModel,
81
+ getSnippetBody,
82
+ listSnippetsForContext,
54
83
  observer,
84
+ setupRunJSContexts,
55
85
  ...require("./types"),
56
86
  ...require("./utils"),
57
87
  ...require("./resources"),
@@ -67,7 +97,6 @@ __reExport(src_exports, require("./FlowDefinition"), module.exports);
67
97
  ...require("./flowContext"),
68
98
  ...require("./FlowContextProvider"),
69
99
  ...require("./JSRunner"),
70
- ...require("./runjs-context"),
71
100
  ...require("./views"),
72
101
  ...require("./FlowDefinition")
73
102
  });
@@ -23,6 +23,7 @@
23
23
  "UID copied to clipboard": "UID copied to clipboard",
24
24
  "Copy failed": "Copy failed",
25
25
  "Copy failed, please copy [{{uid}}] manually.": "Copy failed, please copy [{{uid}}] manually.",
26
+ "Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.": "Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.",
26
27
  "Confirm delete": "Confirm delete",
27
28
  "Are you sure you want to delete this item? This action cannot be undone.": "Are you sure you want to delete this item? This action cannot be undone.",
28
29
  "Delete operation failed": "Delete operation failed",
@@ -57,5 +58,6 @@
57
58
  "Name": "Name",
58
59
  "Model with ID {{uid}} not found": "Model with ID {{uid}} not found",
59
60
  "Common actions": "Common actions",
60
- "This variable is not available": "This variable is not available"
61
- }
61
+ "This variable is not available": "This variable is not available",
62
+ "Copy popup UID": "Copy popup UID"
63
+ }
@@ -32,6 +32,7 @@ export declare const locales: {
32
32
  "UID copied to clipboard": string;
33
33
  "Copy failed": string;
34
34
  "Copy failed, please copy [{{uid}}] manually.": string;
35
+ "Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.": string;
35
36
  "Confirm delete": string;
36
37
  "Are you sure you want to delete this item? This action cannot be undone.": string;
37
38
  "Delete operation failed": string;
@@ -67,6 +68,7 @@ export declare const locales: {
67
68
  "Model with ID {{uid}} not found": string;
68
69
  "Common actions": string;
69
70
  "This variable is not available": string;
71
+ "Copy popup UID": string;
70
72
  };
71
73
  'zh-CN': {
72
74
  "Invalid model provided": string;
@@ -93,6 +95,7 @@ export declare const locales: {
93
95
  "UID copied to clipboard": string;
94
96
  "Copy failed": string;
95
97
  "Copy failed, please copy [{{uid}}] manually.": string;
98
+ "Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.": string;
96
99
  "Confirm delete": string;
97
100
  "Are you sure you want to delete this item? This action cannot be undone.": string;
98
101
  "Delete operation failed": string;
@@ -128,6 +131,7 @@ export declare const locales: {
128
131
  "Model with ID {{uid}} not found": string;
129
132
  "Common actions": string;
130
133
  "This variable is not available": string;
134
+ "Copy popup UID": string;
131
135
  };
132
136
  };
133
137
  /**
@@ -23,6 +23,7 @@
23
23
  "UID copied to clipboard": "UID 已复制到剪贴板",
24
24
  "Copy failed": "复制失败",
25
25
  "Copy failed, please copy [{{uid}}] manually.": "复制失败,请手动复制 [{{uid}}]。",
26
+ "Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.": "HTTP 环境下复制失败。非 HTTPS 页面不支持剪贴板 API,请手动复制 [{{uid}}]。",
26
27
  "Confirm delete": "确认删除",
27
28
  "Are you sure you want to delete this item? This action cannot be undone.": "确定要删除此项吗?此操作不可撤销。",
28
29
  "Delete operation failed": "删除操作失败",
@@ -57,5 +58,6 @@
57
58
  "Name": "名称",
58
59
  "Model with ID {{uid}} not found": "未找到 ID 为 {{uid}} 的模型",
59
60
  "Common actions": "通用操作",
60
- "This variable is not available": "此变量不可用"
61
- }
61
+ "This variable is not available": "此变量不可用",
62
+ "Copy popup UID": "复制弹窗 UID"
63
+ }
@@ -12,6 +12,7 @@ import { FlowEngineContext } from '../flowContext';
12
12
  import { DefaultStructure } from '../types';
13
13
  import { FlowModel } from './flowModel';
14
14
  export declare function FieldPlaceholder(): React.JSX.Element;
15
+ export declare function FieldDeletePlaceholder(): React.JSX.Element;
15
16
  export interface FieldSettingsInitParams {
16
17
  dataSourceKey: string;
17
18
  collectionName: string;
@@ -26,6 +27,7 @@ export interface BindingOptions {
26
27
  }
27
28
  export declare class CollectionFieldModel<T extends DefaultStructure = DefaultStructure> extends FlowModel<T> {
28
29
  private static _bindings;
30
+ fieldDeleted: boolean;
29
31
  renderHiddenInConfig(): React.ReactNode | undefined;
30
32
  get title(): any;
31
33
  onInit(options: any): void;
@@ -40,11 +40,14 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
40
40
  var CollectionFieldModel_exports = {};
41
41
  __export(CollectionFieldModel_exports, {
42
42
  CollectionFieldModel: () => CollectionFieldModel,
43
+ FieldDeletePlaceholder: () => FieldDeletePlaceholder,
43
44
  FieldPlaceholder: () => FieldPlaceholder
44
45
  });
45
46
  module.exports = __toCommonJS(CollectionFieldModel_exports);
46
47
  var import_antd = require("antd");
47
48
  var import_react = __toESM(require("react"));
49
+ var import_react_i18next = require("react-i18next");
50
+ var import_hooks = require("../hooks");
48
51
  var import_utils = require("../utils");
49
52
  var import_flowModel = require("./flowModel");
50
53
  function FieldPlaceholder() {
@@ -62,9 +65,40 @@ function FieldPlaceholder() {
62
65
  ));
63
66
  }
64
67
  __name(FieldPlaceholder, "FieldPlaceholder");
68
+ function FieldDeletePlaceholder() {
69
+ const { t } = (0, import_react_i18next.useTranslation)();
70
+ const model = (0, import_hooks.useFlowModel)();
71
+ const blockModel = model.context.blockModel;
72
+ const dataSource = blockModel.collection.dataSource;
73
+ const collection = blockModel.collection;
74
+ const name = model.fieldPath;
75
+ const nameValue = (0, import_react.useMemo)(() => {
76
+ const dataSourcePrefix = `${t(dataSource.displayName || dataSource.key)} > `;
77
+ const collectionPrefix = collection ? `${t(collection.title) || collection.name || collection.tableName} > ` : "";
78
+ return `${dataSourcePrefix}${collectionPrefix}${name}`;
79
+ }, []);
80
+ return /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, null, /* @__PURE__ */ import_react.default.createElement(
81
+ "div",
82
+ {
83
+ style: {
84
+ color: "rgba(0,0,0,0.45)"
85
+ }
86
+ },
87
+ t(`The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.`, {
88
+ type: t("Field"),
89
+ name: nameValue,
90
+ blockType: t("Field")
91
+ }).replaceAll("&gt;", ">")
92
+ ));
93
+ }
94
+ __name(FieldDeletePlaceholder, "FieldDeletePlaceholder");
65
95
  const defaultWhen = /* @__PURE__ */ __name(() => true, "defaultWhen");
66
96
  const _CollectionFieldModel = class _CollectionFieldModel extends import_flowModel.FlowModel {
97
+ fieldDeleted = false;
67
98
  renderHiddenInConfig() {
99
+ if (this.fieldDeleted) {
100
+ return /* @__PURE__ */ import_react.default.createElement(FieldDeletePlaceholder, null);
101
+ }
68
102
  return /* @__PURE__ */ import_react.default.createElement(FieldPlaceholder, null);
69
103
  }
70
104
  get title() {
@@ -86,11 +120,13 @@ const _CollectionFieldModel = class _CollectionFieldModel extends import_flowMod
86
120
  return this.fieldPath;
87
121
  }, "get")
88
122
  });
89
- this.context.blockModel.addAppends(this.fieldPath);
90
- this.context.blockModel.addAppends(this.associationPathName);
123
+ if (this.context.blockModel) {
124
+ this.context.blockModel.addAppends(this.fieldPath);
125
+ this.context.blockModel.addAppends(this.associationPathName);
126
+ }
91
127
  }
92
128
  getFieldSettingsInitParams() {
93
- return this.getStepParams("fieldSettings", "init");
129
+ return this.getStepParams("fieldSettings", "init") || {};
94
130
  }
95
131
  get fieldPath() {
96
132
  return this.getFieldSettingsInitParams().fieldPath;
@@ -107,6 +143,9 @@ const _CollectionFieldModel = class _CollectionFieldModel extends import_flowMod
107
143
  }
108
144
  }
109
145
  static getBindingsByField(ctx, collectionField) {
146
+ if (!collectionField) {
147
+ return;
148
+ }
110
149
  const interfaceName = collectionField.interface;
111
150
  if (!this.bindings.has(interfaceName)) {
112
151
  return [];
@@ -238,5 +277,6 @@ CollectionFieldModel.registerFlow({
238
277
  // Annotate the CommonJS export names for ESM import in node:
239
278
  0 && (module.exports = {
240
279
  CollectionFieldModel,
280
+ FieldDeletePlaceholder,
241
281
  FieldPlaceholder
242
282
  });
@@ -18,7 +18,7 @@ import { ModelEventRegistry } from '../event-registry/ModelEventRegistry';
18
18
  import { GlobalFlowRegistry } from '../flow-registry/GlobalFlowRegistry';
19
19
  import { FlowDefinition } from '../FlowDefinition';
20
20
  import { FlowSettingsOpenOptions } from '../flowSettings';
21
- import type { EventDefinition } from '../types';
21
+ import type { EventDefinition, DispatchEventOptions } from '../types';
22
22
  import { ForkFlowModel } from './forkFlowModel';
23
23
  export declare enum ModelRenderMode {
24
24
  ReactElement = "reactElement",
@@ -42,6 +42,7 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
42
42
  private _options;
43
43
  protected _title: string;
44
44
  isNew: boolean;
45
+ skeleton: any;
45
46
  /**
46
47
  * 所有 fork 实例的引用集合。
47
48
  * 使用 Set 便于在销毁时主动遍历并调用 dispose,避免悬挂引用。
@@ -53,7 +54,7 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
53
54
  */
54
55
  private forkCache;
55
56
  /**
56
- * 上一次 applyAutoFlows 的执行参数
57
+ * 上一次 beforeRender 的执行参数
57
58
  */
58
59
  private _lastAutoRunParams;
59
60
  protected observerDispose: () => void;
@@ -117,7 +118,11 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
117
118
  setTitle(value: string): void;
118
119
  setHidden(value: boolean): void;
119
120
  _createSubModels(subModels: Record<string, CreateSubModelOptions | CreateSubModelOptions[]>): void;
120
- invalidateAutoFlowCache(deep?: boolean): void;
121
+ /**
122
+ * 失效指定事件的流程缓存;未指定 eventName 时,失效当前模型全部事件缓存。
123
+ * - 默认 beforeRender 与其它事件共享同一缓存体系:prefix=`event:${scope}`,flowKey=`eventName`,uid=`model.uid`
124
+ */
125
+ invalidateFlowCache(eventName?: string, deep?: boolean): void;
121
126
  /**
122
127
  * 设置FlowEngine实例
123
128
  * @param {FlowEngine} flowEngine FlowEngine实例
@@ -187,45 +192,36 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
187
192
  private _dispatchEvent;
188
193
  private _dispatchEventWithDebounce;
189
194
  dispatchEvent(eventName: string, inputArgs?: Record<string, any>, options?: {
190
- /**
191
- * 是否要开启防抖功能
192
- */
193
- debounce: boolean;
194
- }): Promise<void>;
195
+ /** 是否要开启防抖功能 */
196
+ debounce?: boolean;
197
+ } & DispatchEventOptions): Promise<any[]>;
195
198
  /**
196
- * 获取所有自动应用流程定义(保持 getFlows 的顺序,即按 sort 排序)
197
- * @returns {FlowDefinition[]} 自动应用流程定义数组(已按 sort 排序)
199
+ * 按事件名获取对应的流程集合(保持 getFlows 的顺序,即按 sort 排序)。
200
+ * - beforeRender 兼容:除显式 on: 'beforeRender' 外,包含未声明 on 且 manual !== true 的流程。
198
201
  */
199
- getAutoFlows(): FlowDefinition[];
202
+ getEventFlows(eventName: string): FlowDefinition[];
200
203
  /**
201
- * 重新执行上一次的 applyAutoFlows,保持参数一致
204
+ * 重新执行上一次的 beforeRender,保持参数一致
202
205
  * 如果之前没有执行过,则直接跳过
203
206
  * 使用 lodash debounce 避免频繁调用
204
207
  */
205
208
  private _rerunLastAutoRun;
206
209
  /**
207
- * 自动流程执行前钩子。
208
- * 子类可覆盖;可抛出 FlowExitException 提前终止。
210
+ * 通用事件分发钩子:开始
211
+ * 子类可覆盖;beforeRender 事件可通过抛出 FlowExitException 提前终止。
209
212
  */
210
- onBeforeAutoFlows(inputArgs?: Record<string, any>): Promise<void>;
213
+ onDispatchEventStart(eventName: string, options?: DispatchEventOptions, inputArgs?: Record<string, any>): Promise<void>;
211
214
  /**
212
- * 自动流程执行后钩子。
215
+ * 通用事件分发钩子:结束
213
216
  * 子类可覆盖。
214
217
  */
215
- onAfterAutoFlows(results: any[], inputArgs?: Record<string, any>): Promise<void>;
218
+ onDispatchEventEnd(eventName: string, options?: DispatchEventOptions, inputArgs?: Record<string, any>, results?: any[]): Promise<void>;
216
219
  /**
217
- * 自动流程错误钩子。
220
+ * 通用事件分发钩子:错误
218
221
  * 子类可覆盖。
219
222
  */
220
- onAutoFlowsError(error: Error, inputArgs?: Record<string, any>): Promise<void>;
223
+ onDispatchEventError(eventName: string, options?: DispatchEventOptions, inputArgs?: Record<string, any>, error?: Error): Promise<void>;
221
224
  useHooksBeforeRender(): void;
222
- /**
223
- * 执行所有自动应用流程
224
- * @param {Record<string, any>} [inputArgs] 可选的运行时参数
225
- * @param {boolean} [useCache=true] 是否使用缓存机制,默认为 true
226
- * @returns {Promise<any[]>} 所有自动应用流程的执行结果数组
227
- */
228
- applyAutoFlows(inputArgs?: Record<string, any>, useCache?: boolean): Promise<any[]>;
229
225
  /**
230
226
  * 智能检测是否应该跳过响应式包装
231
227
  * 说明:
@@ -261,9 +257,9 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
261
257
  render(): any;
262
258
  rerender(): Promise<void>;
263
259
  /**
264
- * 自动流程缓存的作用域标识;fork 实例可覆盖以区分缓存。
260
+ * 事件缓存的作用域标识;可按事件区分(默认与事件无关的 scope 返回 'default')。
265
261
  */
266
- getAutoFlowCacheScope(): string;
262
+ getFlowCacheScope(eventName: string): string;
267
263
  setParent(parent: FlowModel): void;
268
264
  removeParentDelegate(): void;
269
265
  addSubModel<T extends FlowModel>(subKey: string, options: CreateModelOptions | T): T;
@@ -273,7 +269,10 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
273
269
  hasSubModel<K extends keyof Structure['subModels']>(subKey: K): boolean;
274
270
  findSubModel<K extends keyof Structure['subModels'], R>(subKey: K, callback: (model: ArrayElementType<Structure['subModels'][K]>) => R): ArrayElementType<Structure['subModels'][K]> | null;
275
271
  createRootModel(options: any): FlowModel<DefaultStructure>;
276
- applySubModelsAutoFlows<K extends keyof Structure['subModels']>(subKey: K, inputArgs?: Record<string, any>, shared?: Record<string, any>): Promise<void>;
272
+ /**
273
+ * 对指定子模型派发 beforeRender 事件(顺序执行并使用缓存)。
274
+ */
275
+ applySubModelsBeforeRenderFlows<K extends keyof Structure['subModels']>(subKey: K, inputArgs?: Record<string, any>, shared?: Record<string, any>): Promise<void>;
277
276
  /**
278
277
  * 创建一个 fork 实例,实现"一份数据(master)多视图(fork)"的能力。
279
278
  * @param {IModelComponentProps} [localProps={}] fork 专属的局部 props,优先级高于 master.props