@nocobase/flow-engine 2.0.0-alpha.5 → 2.0.0-alpha.50

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 (504) 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/ViewScopedFlowEngine.js +12 -0
  9. package/lib/acl/Acl.d.ts +3 -1
  10. package/lib/acl/Acl.js +27 -20
  11. package/lib/components/FieldModelRenderer.js +14 -6
  12. package/lib/components/FieldSkeleton.d.ts +10 -0
  13. package/lib/components/FieldSkeleton.js +64 -0
  14. package/lib/components/FlowContextSelector.js +7 -2
  15. package/lib/components/FlowModelRenderer.d.ts +3 -6
  16. package/lib/components/FlowModelRenderer.js +18 -47
  17. package/lib/components/FormItem.js +5 -1
  18. package/lib/components/MobilePopup.d.ts +20 -0
  19. package/lib/components/MobilePopup.js +102 -0
  20. package/lib/components/MobilePopup.style.d.ts +17 -0
  21. package/lib/components/MobilePopup.style.js +186 -0
  22. package/lib/components/index.d.ts +1 -0
  23. package/lib/components/index.js +3 -1
  24. package/lib/components/settings/independents/dropdown/FlowsDropdownButton.js +2 -2
  25. package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +30 -5
  26. package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +2 -2
  27. package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.d.ts +2 -2
  28. package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.js +35 -7
  29. package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +7 -1
  30. package/lib/components/subModel/utils.d.ts +1 -1
  31. package/lib/components/subModel/utils.js +21 -11
  32. package/lib/components/variables/VariableInput.js +19 -5
  33. package/lib/components/variables/VariableTag.js +43 -2
  34. package/lib/components/variables/types.d.ts +2 -0
  35. package/lib/data-source/index.d.ts +42 -4
  36. package/lib/data-source/index.js +89 -11
  37. package/lib/emitter.d.ts +6 -0
  38. package/lib/emitter.js +12 -0
  39. package/lib/executor/FlowExecutor.d.ts +4 -5
  40. package/lib/executor/FlowExecutor.js +168 -99
  41. package/lib/flow-registry/GlobalFlowRegistry.d.ts +1 -0
  42. package/lib/flow-registry/GlobalFlowRegistry.js +3 -0
  43. package/lib/flow-registry/InstanceFlowRegistry.d.ts +1 -0
  44. package/lib/flow-registry/InstanceFlowRegistry.js +3 -0
  45. package/lib/flowContext.d.ts +37 -5
  46. package/lib/flowContext.js +224 -87
  47. package/lib/flowEngine.d.ts +29 -1
  48. package/lib/flowEngine.js +133 -9
  49. package/lib/flowSettings.d.ts +2 -1
  50. package/lib/flowSettings.js +18 -8
  51. package/lib/hooks/useApplyAutoFlows.js +2 -1
  52. package/lib/index.d.ts +7 -1
  53. package/lib/index.js +32 -3
  54. package/lib/locale/de-DE.json +63 -0
  55. package/lib/locale/en-US.json +47 -45
  56. package/lib/locale/es-ES.json +63 -0
  57. package/lib/locale/fr-FR.json +63 -0
  58. package/lib/locale/hu-HU.json +63 -0
  59. package/lib/locale/id-ID.json +63 -0
  60. package/lib/locale/index.d.ts +94 -90
  61. package/lib/locale/it-IT.json +63 -0
  62. package/lib/locale/ja-JP.json +63 -0
  63. package/lib/locale/ko-KR.json +63 -0
  64. package/lib/locale/nl-NL.json +63 -0
  65. package/lib/locale/pt-BR.json +63 -0
  66. package/lib/locale/ru-RU.json +63 -0
  67. package/lib/locale/tr-TR.json +63 -0
  68. package/lib/locale/uk-UA.json +63 -0
  69. package/lib/locale/vi-VN.json +63 -0
  70. package/lib/locale/zh-CN.json +47 -45
  71. package/lib/locale/zh-TW.json +63 -0
  72. package/lib/models/CollectionFieldModel.d.ts +3 -0
  73. package/lib/models/CollectionFieldModel.js +52 -6
  74. package/lib/models/flowModel.d.ts +37 -31
  75. package/lib/models/flowModel.js +151 -102
  76. package/lib/models/forkFlowModel.d.ts +8 -4
  77. package/lib/models/forkFlowModel.js +38 -8
  78. package/lib/provider.d.ts +3 -1
  79. package/lib/provider.js +7 -5
  80. package/lib/resources/baseRecordResource.d.ts +1 -0
  81. package/lib/resources/baseRecordResource.js +7 -1
  82. package/lib/resources/multiRecordResource.d.ts +4 -2
  83. package/lib/resources/multiRecordResource.js +15 -6
  84. package/lib/resources/singleRecordResource.js +6 -3
  85. package/lib/resources/sqlResource.d.ts +1 -0
  86. package/lib/resources/sqlResource.js +20 -24
  87. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.d.ts +1 -6
  88. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +27 -20
  89. package/lib/runjs-context/contexts/JSBlockRunJSContext.d.ts +1 -6
  90. package/lib/runjs-context/contexts/JSBlockRunJSContext.js +46 -33
  91. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.d.ts +1 -2
  92. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.js +14 -15
  93. package/lib/runjs-context/contexts/{LinkageRunJSContext.d.ts → JSColumnRunJSContext.d.ts} +6 -3
  94. package/lib/runjs-context/contexts/JSColumnRunJSContext.js +78 -0
  95. package/lib/runjs-context/contexts/JSFieldRunJSContext.d.ts +1 -6
  96. package/lib/runjs-context/contexts/JSFieldRunJSContext.js +28 -24
  97. package/lib/runjs-context/contexts/JSItemRunJSContext.d.ts +1 -6
  98. package/lib/runjs-context/contexts/JSItemRunJSContext.js +24 -20
  99. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.d.ts +1 -2
  100. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.js +16 -17
  101. package/lib/runjs-context/contexts/base.d.ts +9 -0
  102. package/lib/runjs-context/contexts/base.js +205 -0
  103. package/lib/runjs-context/helpers.d.ts +5 -2
  104. package/lib/runjs-context/helpers.js +36 -27
  105. package/lib/runjs-context/registry.d.ts +7 -4
  106. package/lib/runjs-context/registry.js +10 -42
  107. package/lib/runjs-context/setup.d.ts +9 -0
  108. package/lib/runjs-context/setup.js +82 -0
  109. package/lib/runjs-context/snippets/global/{copy-record-json.snippet.js → api-request.snippet.js} +25 -10
  110. package/lib/runjs-context/snippets/global/clipboard-copy-text.snippet.js +61 -0
  111. package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.js → import-esm.snippet.js} +26 -12
  112. package/lib/runjs-context/snippets/global/message-error.snippet.js +6 -0
  113. package/lib/runjs-context/snippets/global/message-success.snippet.js +6 -0
  114. package/lib/runjs-context/snippets/global/notification-open.snippet.d.ts +3 -8
  115. package/lib/runjs-context/snippets/global/notification-open.snippet.js +8 -1
  116. package/lib/runjs-context/snippets/global/open-view-dialog.snippet.js +10 -3
  117. package/lib/runjs-context/snippets/global/open-view-drawer.snippet.js +10 -3
  118. package/lib/runjs-context/snippets/global/query-selector.snippet.js +53 -0
  119. package/lib/runjs-context/snippets/global/require-amd.snippet.d.ts +11 -0
  120. package/lib/runjs-context/snippets/global/{requireAsync.snippet.js → require-amd.snippet.js} +16 -13
  121. package/lib/runjs-context/snippets/global/window-open.snippet.d.ts +3 -8
  122. package/lib/runjs-context/snippets/global/window-open.snippet.js +8 -1
  123. package/lib/runjs-context/snippets/index.d.ts +14 -3
  124. package/lib/runjs-context/snippets/index.js +162 -40
  125. package/lib/runjs-context/snippets/scene/block/add-event-listener.snippet.d.ts +11 -0
  126. package/lib/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.js +11 -2
  127. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.d.ts +11 -0
  128. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.js +64 -0
  129. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.d.ts +11 -0
  130. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.js +99 -0
  131. package/lib/runjs-context/snippets/{libs → scene/block}/echarts-init.snippet.js +24 -7
  132. package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.d.ts +11 -0
  133. package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.js +65 -0
  134. package/lib/runjs-context/snippets/scene/block/render-button-handler.snippet.d.ts +11 -0
  135. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-button-handler.snippet.js +17 -9
  136. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.d.ts +11 -0
  137. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.js +57 -0
  138. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.d.ts +11 -0
  139. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.js +71 -0
  140. package/lib/runjs-context/snippets/scene/block/render-react-jsx.snippet.d.ts +11 -0
  141. package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.js → block/render-react-jsx.snippet.js} +26 -13
  142. package/lib/runjs-context/snippets/scene/block/render-react.snippet.d.ts +11 -0
  143. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-react.snippet.js +18 -17
  144. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.d.ts +11 -0
  145. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.js +95 -0
  146. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.d.ts +11 -0
  147. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.js +84 -0
  148. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.d.ts +11 -0
  149. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.js +60 -0
  150. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.d.ts +11 -0
  151. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.js +283 -0
  152. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.d.ts +11 -0
  153. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.js +124 -0
  154. package/lib/runjs-context/snippets/scene/detail/color-by-value.snippet.d.ts +11 -0
  155. package/lib/runjs-context/snippets/scene/{jsfield → detail}/color-by-value.snippet.js +13 -3
  156. package/lib/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.d.ts +11 -0
  157. package/lib/runjs-context/snippets/{global → scene/detail}/copy-to-clipboard.snippet.js +28 -6
  158. package/lib/runjs-context/snippets/scene/detail/format-number.snippet.d.ts +11 -0
  159. package/lib/runjs-context/snippets/scene/{jsfield → detail}/format-number.snippet.js +13 -3
  160. package/lib/runjs-context/snippets/scene/detail/innerHTML-value.snippet.d.ts +11 -0
  161. package/lib/runjs-context/snippets/scene/{jsfield → detail}/innerHTML-value.snippet.js +13 -3
  162. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.d.ts +11 -0
  163. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.js +82 -0
  164. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.d.ts +11 -0
  165. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.js +80 -0
  166. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.d.ts +11 -0
  167. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.js +74 -0
  168. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.d.ts +11 -0
  169. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.js +63 -0
  170. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.d.ts +11 -0
  171. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.js +81 -0
  172. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.d.ts +11 -0
  173. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.js +64 -0
  174. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.d.ts +11 -0
  175. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.js +74 -0
  176. package/lib/runjs-context/snippets/scene/form/render-basic.snippet.d.ts +11 -0
  177. package/lib/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.js +11 -2
  178. package/lib/runjs-context/snippets/scene/form/set-disabled.snippet.d.ts +11 -0
  179. package/lib/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.js +12 -3
  180. package/lib/runjs-context/snippets/scene/form/set-field-value.snippet.d.ts +11 -0
  181. package/lib/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.js +12 -3
  182. package/lib/runjs-context/snippets/scene/form/set-required.snippet.d.ts +11 -0
  183. package/lib/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.js +12 -3
  184. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.d.ts +11 -0
  185. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.js +67 -0
  186. package/lib/runjs-context/snippets/scene/form/toggle-visible.snippet.d.ts +11 -0
  187. package/lib/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.js +12 -3
  188. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.d.ts +11 -0
  189. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.js +64 -0
  190. package/lib/runjs-context/snippets/scene/table/collection-selected-count.snippet.d.ts +11 -0
  191. package/lib/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.js +11 -2
  192. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.d.ts +11 -0
  193. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.js +79 -0
  194. package/lib/runjs-context/snippets/scene/table/destroy-selected.snippet.d.ts +11 -0
  195. package/lib/runjs-context/snippets/{global/log-json-record.snippet.js → scene/table/destroy-selected.snippet.js} +24 -11
  196. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.d.ts +11 -0
  197. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.js +64 -0
  198. package/lib/runjs-context/snippets/scene/table/iterate-selected-rows.snippet.d.ts +11 -0
  199. package/lib/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.js +11 -2
  200. package/lib/runjs-context/snippets/types.d.ts +9 -1
  201. package/lib/scheduler/ModelOperationScheduler.d.ts +51 -0
  202. package/lib/scheduler/ModelOperationScheduler.js +262 -0
  203. package/lib/types.d.ts +37 -4
  204. package/lib/types.js +4 -3
  205. package/lib/utils/associationObjectVariable.d.ts +32 -0
  206. package/lib/utils/associationObjectVariable.js +157 -0
  207. package/lib/utils/buildSettingsViewInputArgs.d.ts +19 -0
  208. package/lib/utils/buildSettingsViewInputArgs.js +75 -0
  209. package/lib/utils/createCollectionContextMeta.js +3 -1
  210. package/lib/utils/createEphemeralContext.d.ts +13 -0
  211. package/lib/utils/createEphemeralContext.js +140 -0
  212. package/lib/utils/flows.d.ts +10 -0
  213. package/lib/{runjs-context/snippets/global/api-request-post.snippet.js → utils/flows.js} +21 -15
  214. package/lib/utils/index.d.ts +7 -2
  215. package/lib/utils/index.js +21 -2
  216. package/lib/utils/jsxTransform.d.ts +15 -0
  217. package/lib/utils/jsxTransform.js +68 -0
  218. package/lib/utils/params-resolvers.js +3 -3
  219. package/lib/utils/parsePathnameToViewParams.d.ts +1 -1
  220. package/lib/utils/parsePathnameToViewParams.js +41 -5
  221. package/lib/utils/pruneFilter.d.ts +21 -0
  222. package/lib/{runjs-context/snippets/global/try-catch-async.snippet.js → utils/pruneFilter.js} +24 -16
  223. package/lib/utils/safeGlobals.d.ts +5 -3
  224. package/lib/utils/safeGlobals.js +40 -0
  225. package/lib/utils/schema-utils.js +2 -2
  226. package/lib/utils/serverContextParams.d.ts +4 -0
  227. package/lib/utils/serverContextParams.js +2 -0
  228. package/lib/utils/translation.d.ts +4 -1
  229. package/lib/utils/translation.js +6 -2
  230. package/lib/utils/variablesParams.d.ts +22 -5
  231. package/lib/utils/variablesParams.js +140 -60
  232. package/lib/views/DrawerComponent.js +21 -2
  233. package/lib/views/PageComponent.js +2 -1
  234. package/lib/views/ViewNavigation.d.ts +3 -9
  235. package/lib/views/ViewNavigation.js +16 -2
  236. package/lib/views/createViewMeta.d.ts +30 -1
  237. package/lib/views/createViewMeta.js +359 -72
  238. package/lib/views/index.d.ts +1 -0
  239. package/lib/views/index.js +3 -0
  240. package/lib/views/useDialog.d.ts +9 -8
  241. package/lib/views/useDialog.js +19 -14
  242. package/lib/views/useDrawer.d.ts +9 -8
  243. package/lib/views/useDrawer.js +54 -35
  244. package/lib/views/usePage.d.ts +9 -8
  245. package/lib/views/usePage.js +20 -14
  246. package/package.json +6 -3
  247. package/src/BlockScopedFlowEngine.ts +86 -0
  248. package/src/FlowContextProvider.tsx +4 -2
  249. package/src/JSRunner.ts +3 -0
  250. package/src/ViewScopedFlowEngine.ts +15 -1
  251. package/src/__tests__/JSRunner.test.ts +62 -53
  252. package/src/__tests__/blockScopedFlowEngine.test.ts +154 -0
  253. package/src/__tests__/createViewMeta.popup.test.ts +139 -0
  254. package/src/__tests__/flow-engine.test.ts +3 -0
  255. package/src/__tests__/flowContext.test.ts +52 -0
  256. package/src/__tests__/flowContextCreateJSRunner.test.ts +163 -0
  257. package/src/__tests__/flowEngine.saveModel.test.ts +4 -0
  258. package/src/__tests__/flowRunJSContextDefine.test.ts +508 -0
  259. package/src/__tests__/flowSettings.open.test.tsx +2 -0
  260. package/src/__tests__/flowSettings.test.ts +2 -0
  261. package/src/__tests__/globalFlowRegistry.test.ts +1 -1
  262. package/src/__tests__/modelOperationScheduler.test.ts +346 -0
  263. package/src/__tests__/objectVariable.test.ts +464 -0
  264. package/src/__tests__/runjsContext.test.ts +216 -35
  265. package/src/__tests__/runjsContextImplementations.test.ts +217 -0
  266. package/src/__tests__/runjsContextRuntime.test.ts +269 -0
  267. package/src/__tests__/runjsEdgeCases.test.ts +281 -0
  268. package/src/__tests__/runjsLocales.test.ts +36 -0
  269. package/src/__tests__/runjsRuntimeFeatures.test.ts +461 -0
  270. package/src/__tests__/runjsSnippets.test.ts +140 -0
  271. package/src/__tests__/viewScopedFlowEngine.test.ts +3 -3
  272. package/src/acl/Acl.tsx +30 -21
  273. package/src/acl/__tests__/Acl.test.tsx +43 -0
  274. package/src/components/DynamicFlowsEditor.tsx +3 -4
  275. package/src/components/FieldModelRenderer.tsx +20 -7
  276. package/src/components/FieldSkeleton.tsx +27 -0
  277. package/src/components/FlowContextSelector.tsx +6 -2
  278. package/src/components/FlowModelRenderer.tsx +35 -81
  279. package/src/components/FormItem.tsx +8 -1
  280. package/src/components/MobilePopup.style.ts +220 -0
  281. package/src/components/MobilePopup.tsx +86 -0
  282. package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +6 -6
  283. package/src/components/index.ts +1 -0
  284. package/src/components/settings/independents/dropdown/FlowsDropdownButton.tsx +1 -1
  285. package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +32 -4
  286. package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +1 -1
  287. package/src/components/settings/wrappers/contextual/FlowsFloatContextMenu.tsx +39 -11
  288. package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +14 -1
  289. package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +480 -0
  290. package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +5 -7
  291. package/src/components/subModel/__tests__/utils.test.ts +12 -12
  292. package/src/components/subModel/utils.ts +25 -6
  293. package/src/components/variables/VariableInput.tsx +25 -5
  294. package/src/components/variables/VariableTag.tsx +54 -2
  295. package/src/components/variables/types.ts +2 -0
  296. package/src/data-source/index.ts +151 -9
  297. package/src/emitter.ts +14 -0
  298. package/src/executor/FlowExecutor.ts +213 -119
  299. package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
  300. package/src/executor/__tests__/flowExecutor.test.ts +151 -5
  301. package/src/flow-registry/GlobalFlowRegistry.ts +1 -0
  302. package/src/flow-registry/InstanceFlowRegistry.ts +1 -0
  303. package/src/flow-registry/__tests__/globalFlowRegistry.test.ts +54 -0
  304. package/src/flowContext.ts +303 -104
  305. package/src/flowEngine.ts +167 -7
  306. package/src/flowSettings.ts +16 -4
  307. package/src/hooks/useApplyAutoFlows.ts +3 -1
  308. package/src/index.ts +12 -1
  309. package/src/locale/de-DE.json +63 -0
  310. package/src/locale/en-US.json +47 -45
  311. package/src/locale/es-ES.json +63 -0
  312. package/src/locale/fr-FR.json +63 -0
  313. package/src/locale/hu-HU.json +63 -0
  314. package/src/locale/id-ID.json +63 -0
  315. package/src/locale/it-IT.json +63 -0
  316. package/src/locale/ja-JP.json +63 -0
  317. package/src/locale/ko-KR.json +63 -0
  318. package/src/locale/nl-NL.json +63 -0
  319. package/src/locale/pt-BR.json +63 -0
  320. package/src/locale/ru-RU.json +63 -0
  321. package/src/locale/tr-TR.json +63 -0
  322. package/src/locale/uk-UA.json +63 -0
  323. package/src/locale/vi-VN.json +63 -0
  324. package/src/locale/zh-CN.json +47 -45
  325. package/src/locale/zh-TW.json +63 -0
  326. package/src/models/CollectionFieldModel.tsx +60 -8
  327. package/src/models/__tests__/dispatchEvent.behavior.test.ts +169 -0
  328. package/src/models/__tests__/flowEngine.resolveUse.test.ts +170 -0
  329. package/src/models/__tests__/flowModel.getFlows.sort.test.ts +33 -9
  330. package/src/models/__tests__/flowModel.scheduleModelOperation.test.tsx +129 -0
  331. package/src/models/__tests__/flowModel.test.ts +234 -111
  332. package/src/models/__tests__/forkFlowModel.test.ts +40 -7
  333. package/src/models/flowModel.tsx +203 -134
  334. package/src/models/forkFlowModel.ts +48 -8
  335. package/src/provider.tsx +10 -7
  336. package/src/resources/baseRecordResource.ts +8 -1
  337. package/src/resources/multiRecordResource.ts +17 -8
  338. package/src/resources/singleRecordResource.ts +6 -3
  339. package/src/resources/sqlResource.ts +20 -25
  340. package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +28 -21
  341. package/src/runjs-context/contexts/JSBlockRunJSContext.ts +46 -34
  342. package/src/runjs-context/contexts/JSCollectionActionRunJSContext.ts +15 -16
  343. package/src/runjs-context/contexts/JSColumnRunJSContext.ts +58 -0
  344. package/src/runjs-context/contexts/JSFieldRunJSContext.ts +30 -25
  345. package/src/runjs-context/contexts/JSItemRunJSContext.ts +25 -21
  346. package/src/runjs-context/contexts/JSRecordActionRunJSContext.ts +17 -18
  347. package/src/runjs-context/contexts/base.ts +196 -0
  348. package/src/runjs-context/helpers.ts +32 -30
  349. package/src/runjs-context/registry.ts +16 -47
  350. package/src/runjs-context/setup.ts +51 -0
  351. package/src/runjs-context/snippets/global/api-request.snippet.ts +38 -0
  352. package/src/runjs-context/snippets/global/clipboard-copy-text.snippet.ts +42 -0
  353. package/src/runjs-context/snippets/global/import-esm.snippet.ts +39 -0
  354. package/src/runjs-context/snippets/global/message-error.snippet.ts +6 -0
  355. package/src/runjs-context/snippets/global/message-success.snippet.ts +6 -0
  356. package/src/runjs-context/snippets/global/notification-open.snippet.ts +11 -1
  357. package/src/runjs-context/snippets/global/open-view-dialog.snippet.ts +10 -3
  358. package/src/runjs-context/snippets/global/open-view-drawer.snippet.ts +10 -3
  359. package/src/runjs-context/snippets/global/query-selector.snippet.ts +34 -0
  360. package/src/runjs-context/snippets/global/require-amd.snippet.ts +30 -0
  361. package/src/runjs-context/snippets/global/window-open.snippet.ts +11 -1
  362. package/src/runjs-context/snippets/index.ts +178 -39
  363. package/src/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.ts +14 -2
  364. package/src/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.ts +45 -0
  365. package/src/runjs-context/snippets/scene/block/chartjs-bar.snippet.ts +80 -0
  366. package/src/runjs-context/snippets/scene/block/echarts-init.snippet.ts +44 -0
  367. package/src/runjs-context/snippets/scene/block/render-antd-icons.snippet.ts +46 -0
  368. package/src/runjs-context/snippets/scene/block/render-button-handler.snippet.ts +35 -0
  369. package/src/runjs-context/snippets/scene/block/render-iframe.snippet.ts +38 -0
  370. package/src/runjs-context/snippets/scene/block/render-info-card.snippet.ts +52 -0
  371. package/src/runjs-context/snippets/scene/block/render-react-jsx.snippet.ts +39 -0
  372. package/src/runjs-context/snippets/scene/block/render-react.snippet.ts +38 -0
  373. package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +76 -0
  374. package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +65 -0
  375. package/src/runjs-context/snippets/scene/block/resource-example.snippet.ts +46 -0
  376. package/src/runjs-context/snippets/scene/block/three-users-orbit.snippet.ts +264 -0
  377. package/src/runjs-context/snippets/scene/block/vue-component.snippet.ts +105 -0
  378. package/src/runjs-context/snippets/scene/detail/color-by-value.snippet.ts +33 -0
  379. package/src/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.ts +45 -0
  380. package/src/runjs-context/snippets/scene/detail/format-number.snippet.ts +32 -0
  381. package/src/runjs-context/snippets/scene/detail/innerHTML-value.snippet.ts +31 -0
  382. package/src/runjs-context/snippets/scene/detail/percentage-bar.snippet.ts +63 -0
  383. package/src/runjs-context/snippets/scene/detail/relative-time.snippet.ts +61 -0
  384. package/src/runjs-context/snippets/scene/detail/status-tag.snippet.ts +55 -0
  385. package/src/runjs-context/snippets/scene/form/calculate-total.snippet.ts +44 -0
  386. package/src/runjs-context/snippets/scene/form/cascade-select.snippet.ts +62 -0
  387. package/src/runjs-context/snippets/scene/form/conditional-required.snippet.ts +45 -0
  388. package/src/runjs-context/snippets/scene/form/copy-field-values.snippet.ts +55 -0
  389. package/src/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.ts +14 -2
  390. package/src/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.ts +15 -3
  391. package/src/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.ts +15 -3
  392. package/src/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.ts +15 -3
  393. package/src/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.ts +48 -0
  394. package/src/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.ts +15 -3
  395. package/src/runjs-context/snippets/scene/table/cell-open-dialog.snippet.ts +45 -0
  396. package/src/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.ts +14 -2
  397. package/src/runjs-context/snippets/scene/table/concat-fields.snippet.ts +60 -0
  398. package/src/runjs-context/snippets/scene/table/destroy-selected.snippet.ts +36 -0
  399. package/src/runjs-context/snippets/scene/table/export-selected-json.snippet.ts +45 -0
  400. package/src/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.ts +14 -2
  401. package/src/runjs-context/snippets/types.ts +5 -1
  402. package/src/scheduler/ModelOperationScheduler.ts +304 -0
  403. package/src/types.ts +47 -1
  404. package/src/utils/__tests__/flows.test.ts +65 -0
  405. package/src/utils/__tests__/jsxTransform.test.ts +38 -0
  406. package/src/utils/__tests__/parsePathnameToViewParams.test.ts +25 -0
  407. package/src/utils/__tests__/pruneFilter.test.ts +38 -0
  408. package/src/utils/__tests__/safeGlobals.test.ts +22 -1
  409. package/src/utils/__tests__/variablesParams.test.ts +120 -0
  410. package/src/utils/associationObjectVariable.ts +180 -0
  411. package/src/utils/buildSettingsViewInputArgs.ts +72 -0
  412. package/src/utils/createCollectionContextMeta.ts +3 -1
  413. package/src/utils/createEphemeralContext.ts +142 -0
  414. package/src/utils/flows.ts +23 -0
  415. package/src/utils/index.ts +11 -2
  416. package/src/utils/jsxTransform.ts +39 -0
  417. package/src/utils/params-resolvers.ts +2 -2
  418. package/src/utils/parsePathnameToViewParams.ts +50 -6
  419. package/src/utils/pruneFilter.ts +41 -0
  420. package/src/utils/safeGlobals.ts +49 -3
  421. package/src/utils/schema-utils.ts +1 -1
  422. package/src/utils/serverContextParams.ts +6 -0
  423. package/src/utils/translation.ts +7 -2
  424. package/src/utils/variablesParams.ts +163 -71
  425. package/src/views/DrawerComponent.tsx +21 -2
  426. package/src/views/PageComponent.tsx +1 -1
  427. package/src/views/ViewNavigation.ts +20 -12
  428. package/src/views/__tests__/ViewNavigation.test.ts +10 -0
  429. package/src/views/createViewMeta.ts +415 -70
  430. package/src/views/index.tsx +1 -0
  431. package/src/views/useDialog.tsx +24 -18
  432. package/src/views/useDrawer.tsx +74 -45
  433. package/src/views/usePage.tsx +26 -17
  434. package/lib/runjs-context/contexts/FlowRunJSContext.d.ts +0 -38
  435. package/lib/runjs-context/contexts/FlowRunJSContext.js +0 -217
  436. package/lib/runjs-context/contexts/LinkageRunJSContext.js +0 -62
  437. package/lib/runjs-context/index.d.ts +0 -19
  438. package/lib/runjs-context/index.js +0 -57
  439. package/lib/runjs-context/snippets/global/api-request-get.snippet.d.ts +0 -16
  440. package/lib/runjs-context/snippets/global/api-request-get.snippet.js +0 -42
  441. package/lib/runjs-context/snippets/global/api-request-post.snippet.d.ts +0 -16
  442. package/lib/runjs-context/snippets/global/console-log-ctx.snippet.d.ts +0 -16
  443. package/lib/runjs-context/snippets/global/console-log-ctx.snippet.js +0 -41
  444. package/lib/runjs-context/snippets/global/requireAsync.snippet.d.ts +0 -16
  445. package/lib/runjs-context/snippets/global/sleep.snippet.d.ts +0 -16
  446. package/lib/runjs-context/snippets/global/sleep.snippet.js +0 -43
  447. package/lib/runjs-context/snippets/global/try-catch-async.snippet.d.ts +0 -16
  448. package/lib/runjs-context/snippets/libs/echarts-init.snippet.d.ts +0 -15
  449. package/lib/runjs-context/snippets/scene/actions/collection-selected-count.snippet.d.ts +0 -15
  450. package/lib/runjs-context/snippets/scene/actions/iterate-selected-rows.snippet.d.ts +0 -15
  451. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.d.ts +0 -15
  452. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.js +0 -43
  453. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.d.ts +0 -15
  454. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.js +0 -40
  455. package/lib/runjs-context/snippets/scene/jsblock/add-event-listener.snippet.d.ts +0 -15
  456. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.d.ts +0 -15
  457. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.js +0 -42
  458. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.d.ts +0 -15
  459. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.js +0 -46
  460. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.d.ts +0 -15
  461. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.js +0 -41
  462. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.d.ts +0 -15
  463. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.js +0 -41
  464. package/lib/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.d.ts +0 -15
  465. package/lib/runjs-context/snippets/scene/jsblock/render-react.snippet.d.ts +0 -15
  466. package/lib/runjs-context/snippets/scene/jsfield/color-by-value.snippet.d.ts +0 -15
  467. package/lib/runjs-context/snippets/scene/jsfield/format-number.snippet.d.ts +0 -15
  468. package/lib/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.d.ts +0 -15
  469. package/lib/runjs-context/snippets/scene/jsitem/render-basic.snippet.d.ts +0 -15
  470. package/lib/runjs-context/snippets/scene/linkage/set-disabled.snippet.d.ts +0 -15
  471. package/lib/runjs-context/snippets/scene/linkage/set-field-value.snippet.d.ts +0 -15
  472. package/lib/runjs-context/snippets/scene/linkage/set-required.snippet.d.ts +0 -15
  473. package/lib/runjs-context/snippets/scene/linkage/toggle-visible.snippet.d.ts +0 -15
  474. package/src/runjs-context/contexts/FlowRunJSContext.ts +0 -190
  475. package/src/runjs-context/contexts/LinkageRunJSContext.ts +0 -35
  476. package/src/runjs-context/index.ts +0 -20
  477. package/src/runjs-context/snippets/global/api-request-get.snippet.ts +0 -20
  478. package/src/runjs-context/snippets/global/api-request-post.snippet.ts +0 -20
  479. package/src/runjs-context/snippets/global/console-log-ctx.snippet.ts +0 -19
  480. package/src/runjs-context/snippets/global/copy-record-json.snippet.ts +0 -21
  481. package/src/runjs-context/snippets/global/copy-to-clipboard.snippet.ts +0 -21
  482. package/src/runjs-context/snippets/global/log-json-record.snippet.ts +0 -21
  483. package/src/runjs-context/snippets/global/requireAsync.snippet.ts +0 -24
  484. package/src/runjs-context/snippets/global/sleep.snippet.ts +0 -21
  485. package/src/runjs-context/snippets/global/try-catch-async.snippet.ts +0 -22
  486. package/src/runjs-context/snippets/global/view-navigation-push.snippet.ts +0 -23
  487. package/src/runjs-context/snippets/libs/echarts-init.snippet.ts +0 -24
  488. package/src/runjs-context/snippets/scene/actions/record-id-message.snippet.ts +0 -21
  489. package/src/runjs-context/snippets/scene/actions/run-action-basic.snippet.ts +0 -18
  490. package/src/runjs-context/snippets/scene/jsblock/append-style.snippet.ts +0 -20
  491. package/src/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.ts +0 -24
  492. package/src/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.ts +0 -19
  493. package/src/runjs-context/snippets/scene/jsblock/render-basic.snippet.ts +0 -24
  494. package/src/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.ts +0 -24
  495. package/src/runjs-context/snippets/scene/jsblock/render-card.snippet.ts +0 -30
  496. package/src/runjs-context/snippets/scene/jsblock/render-react.snippet.ts +0 -34
  497. package/src/runjs-context/snippets/scene/jsfield/color-by-value.snippet.ts +0 -20
  498. package/src/runjs-context/snippets/scene/jsfield/format-number.snippet.ts +0 -19
  499. package/src/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.ts +0 -18
  500. /package/lib/runjs-context/snippets/global/{copy-record-json.snippet.d.ts → api-request.snippet.d.ts} +0 -0
  501. /package/lib/runjs-context/snippets/global/{copy-to-clipboard.snippet.d.ts → clipboard-copy-text.snippet.d.ts} +0 -0
  502. /package/lib/runjs-context/snippets/global/{log-json-record.snippet.d.ts → import-esm.snippet.d.ts} +0 -0
  503. /package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.d.ts → query-selector.snippet.d.ts} +0 -0
  504. /package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.d.ts → block/echarts-init.snippet.d.ts} +0 -0
@@ -0,0 +1,23 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ import { FlowEngine } from './flowEngine';
10
+ /**
11
+ * BlockScopedFlowEngine(区块作用域引擎)
12
+ *
13
+ * 设计目标:
14
+ * - 仅在“区块”作用域内隔离“模型实例表”和“事件缓存”;
15
+ * - 其余能力(动作/事件/模型类/资源/仓库/设置/日志/翻译等)全部直接代理到父引擎;
16
+ * - 使用 Proxy 实现“最小代理”,保持与父引擎的全局一致性。
17
+ *
18
+ * 注意:
19
+ * - 本地化的字段仅有:`_modelInstances`、`_applyFlowCache`、`executor`、`context`、栈指针;
20
+ * - 其它字段/方法均通过 Proxy 转发到父引擎;
21
+ * - 这样可满足“同一 uid 的模型可在不同区块隔离出现(实例/缓存隔离)”与“共享全局注册/仓库”的诉求。
22
+ */
23
+ export declare function createBlockScopedEngine(parent: FlowEngine): FlowEngine;
@@ -0,0 +1,90 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var BlockScopedFlowEngine_exports = {};
29
+ __export(BlockScopedFlowEngine_exports, {
30
+ createBlockScopedEngine: () => createBlockScopedEngine
31
+ });
32
+ module.exports = __toCommonJS(BlockScopedFlowEngine_exports);
33
+ var import_flowEngine = require("./flowEngine");
34
+ function createBlockScopedEngine(parent) {
35
+ const local = new import_flowEngine.FlowEngine();
36
+ if (parent.modelRepository) {
37
+ local.setModelRepository(parent.modelRepository);
38
+ }
39
+ local.context.addDelegate(parent.context);
40
+ const originalUnlink = local.unlinkFromStack.bind(local);
41
+ local.unlinkFromStack = function() {
42
+ const prev = local._previousEngine;
43
+ const next = local._nextEngine;
44
+ if (prev) prev._nextEngine = next;
45
+ if (next) next._previousEngine = prev;
46
+ local._previousEngine = void 0;
47
+ local._nextEngine = void 0;
48
+ };
49
+ const localOnly = /* @__PURE__ */ new Set([
50
+ "_modelInstances",
51
+ "_applyFlowCache",
52
+ "executor",
53
+ "context",
54
+ "previousEngine",
55
+ "nextEngine",
56
+ // 栈指针维护方法需要在本地执行,而非代理到父引擎
57
+ "unlinkFromStack",
58
+ "linkAfter",
59
+ "_previousEngine",
60
+ "_nextEngine"
61
+ ]);
62
+ const handler = {
63
+ get(target, prop, receiver) {
64
+ if (localOnly.has(prop)) {
65
+ return Reflect.get(target, prop, receiver);
66
+ }
67
+ const value = Reflect.get(parent, prop, receiver);
68
+ if (prop === "registerModels" && typeof value === "function") {
69
+ return value.bind(parent);
70
+ }
71
+ return value;
72
+ },
73
+ set(target, prop, value) {
74
+ if (localOnly.has(prop)) {
75
+ return Reflect.set(target, prop, value);
76
+ }
77
+ return Reflect.set(parent, prop, value);
78
+ },
79
+ has(target, prop) {
80
+ return prop in target || prop in parent;
81
+ }
82
+ };
83
+ local.linkAfter(parent);
84
+ return new Proxy(local, handler);
85
+ }
86
+ __name(createBlockScopedEngine, "createBlockScopedEngine");
87
+ // Annotate the CommonJS export names for ESM import in node:
88
+ 0 && (module.exports = {
89
+ createBlockScopedEngine
90
+ });
@@ -15,10 +15,10 @@ export declare function FlowContextProvider(props: {
15
15
  children: React.ReactNode;
16
16
  context: FlowContext;
17
17
  }): React.JSX.Element;
18
- export declare function FlowViewContextProvider(props: {
18
+ export declare const FlowViewContextProvider: React.MemoExoticComponent<(props: {
19
19
  children: React.ReactNode;
20
20
  context: FlowContext;
21
- }): React.JSX.Element;
21
+ }) => React.JSX.Element>;
22
22
  export declare function useFlowContext<T = FlowEngineContext>(): T;
23
23
  export declare function useFlowViewContext<T = FlowEngineContext>(): T;
24
24
  export declare function useFlowView(): FlowView;
@@ -53,10 +53,10 @@ function FlowContextProvider(props) {
53
53
  return /* @__PURE__ */ import_react.default.createElement(FlowReactContext.Provider, { value: props.context }, props.children);
54
54
  }
55
55
  __name(FlowContextProvider, "FlowContextProvider");
56
- function FlowViewContextProvider(props) {
56
+ const FlowViewContextProvider = import_react.default.memo((props) => {
57
57
  return /* @__PURE__ */ import_react.default.createElement(FlowViewContext.Provider, { value: props.context }, /* @__PURE__ */ import_react.default.createElement(FlowReactContext.Provider, { value: props.context }, props.children));
58
- }
59
- __name(FlowViewContextProvider, "FlowViewContextProvider");
58
+ });
59
+ FlowViewContextProvider.displayName = "FlowViewContextProvider";
60
60
  function useFlowContext() {
61
61
  return (0, import_react.useContext)(FlowReactContext);
62
62
  }
@@ -244,8 +244,6 @@ export declare class FlowStep {
244
244
  hideInSettings?: boolean;
245
245
  uiMode?: import("./types").StepUIMode | ((ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>) => import("./types").StepUIMode | Promise<import("./types").StepUIMode>);
246
246
  title?: string;
247
- defaultParams?: Record<string, any> | ((ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>) => Record<string, any> | Promise<Record<string, any>>);
248
- handler?: (ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>, params: any) => any;
249
247
  uiSchema?: Record<string, import("@formily/json-schema").Stringify<{
250
248
  [key: symbol]: any;
251
249
  [key: `x-${string}`]: any;
@@ -415,9 +413,13 @@ export declare class FlowStep {
415
413
  "x-read-pretty"?: boolean;
416
414
  "x-compile-omitted"?: string[];
417
415
  }>>>);
416
+ defaultParams?: Record<string, any> | ((ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>) => Record<string, any> | Promise<Record<string, any>>);
417
+ handler?: (ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>, params: any) => any;
418
418
  beforeParamsSave?: (ctx: import("./flowContext").FlowSettingsContext<import(".").FlowModel<import("./types").DefaultStructure>>, params: any, previousParams: any) => void | Promise<void>;
419
419
  afterParamsSave?: (ctx: import("./flowContext").FlowSettingsContext<import(".").FlowModel<import("./types").DefaultStructure>>, params: any, previousParams: any) => void | Promise<void>;
420
420
  useRawParams?: boolean | ((ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>) => boolean | Promise<boolean>);
421
421
  scene?: import("./types").ActionScene | import("./types").ActionScene[];
422
+ defineProperties?: Record<string, import("./flowContext").PropertyOptions> | ((ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>) => Record<string, import("./flowContext").PropertyOptions> | Promise<Record<string, import("./flowContext").PropertyOptions>>);
423
+ defineMethods?: Record<string, (this: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>, ...args: any[]) => any> | ((ctx: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>) => Record<string, (this: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>, ...args: any[]) => any> | Promise<Record<string, (this: import("./flowContext").FlowRuntimeContext<import(".").FlowModel<import("./types").DefaultStructure>, any>, ...args: any[]) => any>>);
422
424
  };
423
425
  }
package/lib/JSRunner.js CHANGED
@@ -62,6 +62,9 @@ const _JSRunner = class _JSRunner {
62
62
  * 异步运行代码,带错误处理和超时机制
63
63
  */
64
64
  async run(code) {
65
+ if (location == null ? void 0 : location.search.includes("skipRunJs=true")) {
66
+ return { success: true, value: null };
67
+ }
65
68
  const wrapped = `(async () => {
66
69
  try {
67
70
  ${code};
@@ -11,7 +11,7 @@ import { FlowEngine } from './flowEngine';
11
11
  * ViewScopedFlowEngine(视图作用域引擎)
12
12
  *
13
13
  * 设计目标:
14
- * - 仅在视图(dialog/drawer/embed)作用域内隔离“模型实例表”和“自动流缓存”;
14
+ * - 仅在视图(dialog/drawer/embed)作用域内隔离“模型实例表”和“事件缓存”;
15
15
  * - 其余能力(动作/事件/模型类/资源/仓库/设置/日志/翻译等)全部直接代理到父引擎;
16
16
  * - 使用 Proxy 实现“最小代理”,保持与父引擎的全局一致性。
17
17
  *
@@ -37,6 +37,12 @@ function createViewScopedEngine(parent) {
37
37
  local.setModelRepository(parent.modelRepository);
38
38
  }
39
39
  local.context.addDelegate(parent.context);
40
+ const originalUnlink = local.unlinkFromStack.bind(local);
41
+ local.unlinkFromStack = function() {
42
+ var _a;
43
+ (_a = local.disposeScheduler) == null ? void 0 : _a.call(local);
44
+ return originalUnlink();
45
+ };
40
46
  const localOnly = /* @__PURE__ */ new Set([
41
47
  "_modelInstances",
42
48
  "_applyFlowCache",
@@ -44,6 +50,12 @@ function createViewScopedEngine(parent) {
44
50
  "context",
45
51
  "previousEngine",
46
52
  "nextEngine",
53
+ // 调度器与事件总线局部化
54
+ "emitter",
55
+ "_modelOperationScheduler",
56
+ "getScheduler",
57
+ "scheduleModelOperation",
58
+ "disposeScheduler",
47
59
  // 栈指针维护方法需要在本地执行,而非代理到父引擎
48
60
  "unlinkFromStack",
49
61
  "linkAfter",
package/lib/acl/Acl.d.ts CHANGED
@@ -15,10 +15,12 @@ interface CheckOptions {
15
15
  }
16
16
  export declare class ACL {
17
17
  private flowEngine;
18
- private dataSources;
18
+ private data;
19
19
  private loaded;
20
20
  private loadingPromise;
21
+ private lastToken;
21
22
  constructor(flowEngine: FlowEngine);
23
+ setData(data: Record<string, any>): void;
22
24
  load(): Promise<void>;
23
25
  getActionAlias(actionName: string): any;
24
26
  inResources(resourceName: string): any;
package/lib/acl/Acl.js CHANGED
@@ -34,39 +34,48 @@ const _ACL = class _ACL {
34
34
  constructor(flowEngine) {
35
35
  this.flowEngine = flowEngine;
36
36
  }
37
- dataSources = {};
37
+ data = {};
38
38
  loaded = false;
39
39
  loadingPromise = null;
40
+ // 用于识别当前鉴权状态(例如切换登录用户后应重新加载)
41
+ // 记录上一次用于鉴权的 token,用于识别登录态变更
42
+ lastToken = null;
43
+ setData(data) {
44
+ this.data = data;
45
+ }
40
46
  async load() {
41
- if (this.loaded) return;
42
- if (!this.loadingPromise) {
43
- this.loadingPromise = (async () => {
44
- const { data } = await this.flowEngine.context.api.request({
45
- url: "roles:check"
46
- });
47
- this.dataSources = data || {};
48
- this.loaded = true;
49
- })();
47
+ var _a, _b, _c, _d;
48
+ const currentToken = ((_d = (_c = (_b = (_a = this.flowEngine) == null ? void 0 : _a.context) == null ? void 0 : _b.api) == null ? void 0 : _c.auth) == null ? void 0 : _d.token) || "";
49
+ if (this.loaded && this.lastToken !== currentToken) {
50
+ this.loaded = false;
51
+ this.loadingPromise = null;
52
+ this.data = {};
50
53
  }
54
+ const { data } = await this.flowEngine.context.api.request({
55
+ url: "roles:check"
56
+ });
57
+ this.data = (data == null ? void 0 : data.data) || {};
58
+ this.loaded = true;
59
+ this.lastToken = currentToken;
51
60
  await this.loadingPromise;
52
61
  }
53
62
  getActionAlias(actionName) {
54
- var _a, _b;
55
- return ((_b = (_a = this.dataSources.data) == null ? void 0 : _a.actionAlias) == null ? void 0 : _b[actionName]) || actionName;
63
+ var _a;
64
+ return ((_a = this.data.actionAlias) == null ? void 0 : _a[actionName]) || actionName;
56
65
  }
57
66
  inResources(resourceName) {
58
- var _a, _b, _c;
59
- return (_c = (_b = (_a = this.dataSources.data) == null ? void 0 : _a.resources) == null ? void 0 : _b.includes) == null ? void 0 : _c.call(_b, resourceName);
67
+ var _a, _b;
68
+ return (_b = (_a = this.data.resources) == null ? void 0 : _a.includes) == null ? void 0 : _b.call(_a, resourceName);
60
69
  }
61
70
  getResourceActionParams(resourceName, actionName) {
62
- var _a, _b, _c, _d;
71
+ var _a, _b;
63
72
  const actionAlias = this.getActionAlias(actionName);
64
- return ((_b = (_a = this.dataSources.data) == null ? void 0 : _a.actions) == null ? void 0 : _b[`${resourceName}:${actionAlias}`]) || ((_d = (_c = this.dataSources.data) == null ? void 0 : _c.actions) == null ? void 0 : _d[actionName]);
73
+ return ((_a = this.data.actions) == null ? void 0 : _a[`${resourceName}:${actionAlias}`]) || ((_b = this.data.actions) == null ? void 0 : _b[actionName]);
65
74
  }
66
75
  getStrategyActionParams(actionName) {
67
76
  var _a, _b, _c;
68
77
  const actionAlias = this.getActionAlias(actionName);
69
- const strategyAction = (_c = (_b = (_a = this.dataSources.data) == null ? void 0 : _a.strategy) == null ? void 0 : _b.actions) == null ? void 0 : _c.find((action) => {
78
+ const strategyAction = (_c = (_b = (_a = this.data) == null ? void 0 : _a.strategy) == null ? void 0 : _b.actions) == null ? void 0 : _c.find((action) => {
70
79
  const [value] = action.split(":");
71
80
  return value === actionAlias;
72
81
  });
@@ -95,9 +104,7 @@ const _ACL = class _ACL {
95
104
  return allowed;
96
105
  }
97
106
  async aclCheck(options) {
98
- await this.load();
99
- const { data } = this.dataSources;
100
- const { allowAll } = data;
107
+ const { allowAll } = this.data;
101
108
  if (allowAll) {
102
109
  return true;
103
110
  }
@@ -52,7 +52,6 @@ const flowModelRendererPropKeys = [
52
52
  "flowSettingsVariant",
53
53
  "hideRemoveInSettings",
54
54
  "showTitle",
55
- "skipApplyAutoFlows",
56
55
  "inputArgs",
57
56
  "showErrorFallback",
58
57
  "settingsMenuLevel",
@@ -63,18 +62,27 @@ function FieldModelRenderer(props) {
63
62
  const composingRef = (0, import_react.useRef)(false);
64
63
  const handleChange = /* @__PURE__ */ __name((e) => {
65
64
  var _a;
66
- const val = ((_a = e == null ? void 0 : e.target) == null ? void 0 : _a.value) || e;
65
+ let val;
66
+ if (e && e.target && typeof e.target.value !== "undefined") {
67
+ val = e.target.value;
68
+ } else if (typeof e === "string" || typeof e === "number" || typeof e === "boolean" || typeof e === "object" && !(e instanceof Event)) {
69
+ val = e;
70
+ } else {
71
+ val = null;
72
+ }
67
73
  model.setProps({ value: val });
68
74
  if (!composingRef.current) {
69
- props.onChange(e);
75
+ (_a = props.onChange) == null ? void 0 : _a.call(props, val);
70
76
  }
71
77
  }, "handleChange");
72
78
  const handleCompositionStart = /* @__PURE__ */ __name(() => {
73
79
  composingRef.current = true;
74
80
  }, "handleCompositionStart");
75
- const handleCompositionEnd = /* @__PURE__ */ __name((e) => {
81
+ const handleCompositionEnd = /* @__PURE__ */ __name((e, flag = true) => {
76
82
  composingRef.current = false;
77
- props.onChange(e);
83
+ if (flag) {
84
+ props.onChange(e);
85
+ }
78
86
  }, "handleCompositionEnd");
79
87
  const modelProps = {
80
88
  ...import_lodash.default.omit(rest, flowModelRendererPropKeys),
@@ -83,7 +91,7 @@ function FieldModelRenderer(props) {
83
91
  onCompositionEnd: handleCompositionEnd
84
92
  };
85
93
  (0, import_react.useEffect)(() => {
86
- model.setProps(modelProps);
94
+ model && model.setProps(modelProps);
87
95
  }, [modelProps]);
88
96
  return /* @__PURE__ */ import_react.default.createElement(import_flow_engine.FlowModelRenderer, { model, ...rest });
89
97
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ import React from 'react';
10
+ export declare const FieldSkeleton: React.FC;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __create = Object.create;
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __getProtoOf = Object.getPrototypeOf;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
17
+ var __export = (target, all) => {
18
+ for (var name in all)
19
+ __defProp(target, name, { get: all[name], enumerable: true });
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") {
23
+ for (let key of __getOwnPropNames(from))
24
+ if (!__hasOwnProp.call(to, key) && key !== except)
25
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
26
+ }
27
+ return to;
28
+ };
29
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
30
+ // If the importer is in node compatibility mode or this is not an ESM
31
+ // file that has been converted to a CommonJS file using a Babel-
32
+ // compatible transform (i.e. "__esModule" has not been set), then set
33
+ // "default" to the CommonJS "module.exports" for node compatibility.
34
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
+ mod
36
+ ));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var FieldSkeleton_exports = {};
39
+ __export(FieldSkeleton_exports, {
40
+ FieldSkeleton: () => FieldSkeleton
41
+ });
42
+ module.exports = __toCommonJS(FieldSkeleton_exports);
43
+ var import_react = __toESM(require("react"));
44
+ var import_provider = require("../provider");
45
+ const FieldSkeleton = /* @__PURE__ */ __name(() => {
46
+ const flowEngine = (0, import_provider.useFlowEngine)();
47
+ const token = flowEngine.context.themeToken;
48
+ return /* @__PURE__ */ import_react.default.createElement(
49
+ "span",
50
+ {
51
+ style: {
52
+ display: "inline-block",
53
+ width: "100%",
54
+ height: 16,
55
+ backgroundColor: token.colorFillSecondary,
56
+ borderRadius: token.borderRadiusSM
57
+ }
58
+ }
59
+ );
60
+ }, "FieldSkeleton");
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ FieldSkeleton
64
+ });
@@ -60,6 +60,7 @@ const FlowContextSelectorComponent = /* @__PURE__ */ __name(({
60
60
  formatPathToValue: customFormatPathToValue,
61
61
  open,
62
62
  onlyLeafSelectable = false,
63
+ ignoreFieldNames,
63
64
  ...cascaderProps
64
65
  }) => {
65
66
  const lastSelectedRef = (0, import_react.useRef)(null);
@@ -98,8 +99,12 @@ const FlowContextSelectorComponent = /* @__PURE__ */ __name(({
98
99
  const options = (0, import_react.useMemo)(() => {
99
100
  if (!resolvedMetaTree) return [];
100
101
  const base = (0, import_utils.buildContextSelectorItems)(resolvedMetaTree);
101
- return translateOptions(base);
102
- }, [resolvedMetaTree, updateFlag, translateOptions]);
102
+ return translateOptions(base).filter((item) => {
103
+ var _a;
104
+ if (!ignoreFieldNames || ignoreFieldNames.length === 0) return true;
105
+ return !ignoreFieldNames.includes(((_a = item.meta) == null ? void 0 : _a.name) || "");
106
+ });
107
+ }, [resolvedMetaTree, updateFlag, translateOptions, ignoreFieldNames]);
103
108
  const [tempSelectedPath, setTempSelectedPath] = (0, import_react.useState)([]);
104
109
  const handleLoadData = (0, import_react.useCallback)(
105
110
  async (selectedOptions) => {
@@ -24,7 +24,7 @@ export interface FlowModelRendererProps {
24
24
  /**
25
25
  * @default 'inside'
26
26
  */
27
- toolbarPosition?: 'inside' | 'above';
27
+ toolbarPosition?: 'inside' | 'above' | 'below';
28
28
  };
29
29
  /** 流程设置的交互风格 */
30
30
  flowSettingsVariant?: 'dropdown' | 'contextMenu' | 'modal' | 'drawer';
@@ -32,9 +32,7 @@ export interface FlowModelRendererProps {
32
32
  hideRemoveInSettings?: boolean;
33
33
  /** 是否在边框左上角显示模型title,默认 false */
34
34
  showTitle?: boolean;
35
- /** 是否跳过自动应用流程,默认 false */
36
- skipApplyAutoFlows?: boolean;
37
- /** 当 skipApplyAutoFlows !== false 时,传递给 useApplyAutoFlows 的额外上下文 */
35
+ /** 传递给 beforeRender 事件的运行时参数 */
38
36
  inputArgs?: Record<string, any>;
39
37
  /** 是否在最外层包装 FlowErrorFallback 组件,默认 false */
40
38
  showErrorFallback?: boolean;
@@ -54,8 +52,7 @@ export interface FlowModelRendererProps {
54
52
  * @param {string} props.flowSettingsVariant - The interaction style for flow settings.
55
53
  * @param {boolean} props.hideRemoveInSettings - Whether to hide remove button in settings.
56
54
  * @param {boolean} props.showTitle - Whether to show model title in the top-left corner of the border.
57
- * @param {boolean} props.skipApplyAutoFlows - Whether to skip applying auto flows.
58
- * @param {any} props.inputArgs - Runtime arguments to pass to useApplyAutoFlows when skipApplyAutoFlows is false.
55
+ * @param {any} props.inputArgs - Runtime arguments to pass to beforeRender event flows.
59
56
  * @param {number} props.settingsMenuLevel - Settings menu levels: 1=current model only (default), 2=include sub-models.
60
57
  * @param {ToolbarItemConfig[]} props.extraToolbarItems - Extra toolbar items to add to this renderer instance.
61
58
  * @returns {React.ReactNode | null} The rendered output of the model, or null if the model or its render method is invalid.
@@ -42,7 +42,6 @@ __export(FlowModelRenderer_exports, {
42
42
  });
43
43
  module.exports = __toCommonJS(FlowModelRenderer_exports);
44
44
  var import_reactive_react = require("@formily/reactive-react");
45
- var import_antd = require("antd");
46
45
  var import_lodash = __toESM(require("lodash"));
47
46
  var import_react = __toESM(require("react"));
48
47
  var import_react_error_boundary = require("react-error-boundary");
@@ -84,33 +83,6 @@ const FlowModelRendererWithAutoFlows = (0, import_reactive_react.observer)(
84
83
  ));
85
84
  }
86
85
  );
87
- const FlowModelRendererWithoutAutoFlows = (0, import_reactive_react.observer)(
88
- ({
89
- model,
90
- showFlowSettings,
91
- flowSettingsVariant,
92
- hideRemoveInSettings,
93
- showTitle,
94
- showErrorFallback,
95
- settingsMenuLevel,
96
- extraToolbarItems
97
- }) => {
98
- (0, import_utils.setAutoFlowError)(model, null);
99
- return /* @__PURE__ */ import_react.default.createElement(import_hooks.FlowModelProvider, { model }, /* @__PURE__ */ import_react.default.createElement(
100
- FlowModelRendererCore,
101
- {
102
- model,
103
- showFlowSettings,
104
- flowSettingsVariant,
105
- hideRemoveInSettings,
106
- showTitle,
107
- showErrorFallback,
108
- settingsMenuLevel,
109
- extraToolbarItems
110
- }
111
- ));
112
- }
113
- );
114
86
  const FlowModelRendererCore = (0, import_reactive_react.observer)(
115
87
  ({
116
88
  model,
@@ -122,6 +94,7 @@ const FlowModelRendererCore = (0, import_reactive_react.observer)(
122
94
  settingsMenuLevel,
123
95
  extraToolbarItems
124
96
  }) => {
97
+ var _a;
125
98
  const wrapWithErrorBoundary = /* @__PURE__ */ __name((children) => {
126
99
  if (showErrorFallback) {
127
100
  return /* @__PURE__ */ import_react.default.createElement(import_react_error_boundary.ErrorBoundary, { FallbackComponent: import_FlowErrorFallback.FlowErrorFallback }, children);
@@ -139,8 +112,13 @@ const FlowModelRendererCore = (0, import_reactive_react.observer)(
139
112
  }
140
113
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, rendered);
141
114
  }, "ContentOrError");
115
+ const rawUse = model == null ? void 0 : model.use;
116
+ const resolvedName = ((_a = model == null ? void 0 : model.constructor) == null ? void 0 : _a.name) || model.uid;
117
+ const contentKey = typeof rawUse === "string" ? `${rawUse}:${model.uid}` : `${resolvedName}:${model.uid}`;
142
118
  if (!showFlowSettings) {
143
- return wrapWithErrorBoundary(/* @__PURE__ */ import_react.default.createElement(ContentOrError, null));
119
+ return wrapWithErrorBoundary(
120
+ /* @__PURE__ */ import_react.default.createElement("div", { key: contentKey }, /* @__PURE__ */ import_react.default.createElement(ContentOrError, null))
121
+ );
144
122
  }
145
123
  switch (flowSettingsVariant) {
146
124
  case "dropdown":
@@ -158,10 +136,14 @@ const FlowModelRendererCore = (0, import_reactive_react.observer)(
158
136
  toolbarStyle: import_lodash.default.isObject(showFlowSettings) ? showFlowSettings.style : void 0,
159
137
  toolbarPosition: import_lodash.default.isObject(showFlowSettings) ? showFlowSettings.toolbarPosition : void 0
160
138
  },
161
- wrapWithErrorBoundary(/* @__PURE__ */ import_react.default.createElement(ContentOrError, null))
139
+ wrapWithErrorBoundary(
140
+ /* @__PURE__ */ import_react.default.createElement("div", { key: contentKey }, /* @__PURE__ */ import_react.default.createElement(ContentOrError, null))
141
+ )
162
142
  );
163
143
  case "contextMenu":
164
- return /* @__PURE__ */ import_react.default.createElement(import_FlowsContextMenu.FlowsContextMenu, { model, showDeleteButton: !hideRemoveInSettings }, wrapWithErrorBoundary(/* @__PURE__ */ import_react.default.createElement(ContentOrError, null)));
144
+ return /* @__PURE__ */ import_react.default.createElement(import_FlowsContextMenu.FlowsContextMenu, { model, showDeleteButton: !hideRemoveInSettings }, wrapWithErrorBoundary(
145
+ /* @__PURE__ */ import_react.default.createElement("div", { key: contentKey }, /* @__PURE__ */ import_react.default.createElement(ContentOrError, null))
146
+ ));
165
147
  case "modal":
166
148
  console.warn("FlowModelRenderer: modal variant is not implemented yet");
167
149
  return wrapWithErrorBoundary(/* @__PURE__ */ import_react.default.createElement(ContentOrError, null));
@@ -186,7 +168,9 @@ const FlowModelRendererCore = (0, import_reactive_react.observer)(
186
168
  toolbarStyle: import_lodash.default.isObject(showFlowSettings) ? showFlowSettings.style : void 0,
187
169
  toolbarPosition: import_lodash.default.isObject(showFlowSettings) ? showFlowSettings.toolbarPosition : void 0
188
170
  },
189
- wrapWithErrorBoundary(/* @__PURE__ */ import_react.default.createElement(ContentOrError, null))
171
+ wrapWithErrorBoundary(
172
+ /* @__PURE__ */ import_react.default.createElement("div", { key: contentKey }, /* @__PURE__ */ import_react.default.createElement(ContentOrError, null))
173
+ )
190
174
  );
191
175
  }
192
176
  },
@@ -197,12 +181,11 @@ const FlowModelRendererCore = (0, import_reactive_react.observer)(
197
181
  const FlowModelRenderer = (0, import_reactive_react.observer)(
198
182
  ({
199
183
  model,
200
- fallback = /* @__PURE__ */ import_react.default.createElement(import_antd.Skeleton.Button, { size: "small" }),
184
+ fallback = null,
201
185
  showFlowSettings = false,
202
186
  flowSettingsVariant = "dropdown",
203
187
  hideRemoveInSettings = false,
204
188
  showTitle = false,
205
- skipApplyAutoFlows = false,
206
189
  inputArgs,
207
190
  showErrorFallback = true,
208
191
  settingsMenuLevel,
@@ -212,19 +195,7 @@ const FlowModelRenderer = (0, import_reactive_react.observer)(
212
195
  console.warn("FlowModelRenderer: Invalid model or render method not found.", model);
213
196
  return null;
214
197
  }
215
- const content = skipApplyAutoFlows ? /* @__PURE__ */ import_react.default.createElement(
216
- FlowModelRendererWithoutAutoFlows,
217
- {
218
- model,
219
- showFlowSettings,
220
- flowSettingsVariant,
221
- hideRemoveInSettings,
222
- showTitle,
223
- showErrorFallback,
224
- settingsMenuLevel,
225
- extraToolbarItems
226
- }
227
- ) : /* @__PURE__ */ import_react.default.createElement(
198
+ const content = /* @__PURE__ */ import_react.default.createElement(
228
199
  FlowModelRendererWithAutoFlows,
229
200
  {
230
201
  model,
@@ -136,7 +136,11 @@ const FormItem = /* @__PURE__ */ __name(({
136
136
  layout,
137
137
  label: renderLabel(),
138
138
  colon: false,
139
- extra: rest.extra && /* @__PURE__ */ import_react.default.createElement("span", { style: { whiteSpace: "pre-wrap" } }, rest.extra)
139
+ extra: rest.extra && /* @__PURE__ */ import_react.default.createElement("span", { style: { whiteSpace: "pre-wrap" } }, rest.extra),
140
+ tooltip: rest.tooltip && {
141
+ title: rest.tooltip,
142
+ overlayInnerStyle: { whiteSpace: "pre-line" }
143
+ }
140
144
  },
141
145
  processedChildren
142
146
  );
@@ -0,0 +1,20 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ import { FC, ReactNode } from 'react';
10
+ interface MobilePopupProps {
11
+ title?: string;
12
+ visible: boolean;
13
+ minHeight?: number | string;
14
+ onClose: () => void;
15
+ children: ReactNode;
16
+ className?: string;
17
+ footer?: ReactNode;
18
+ }
19
+ export declare const MobilePopup: FC<MobilePopupProps>;
20
+ export {};