@nocobase/flow-engine 2.0.0-alpha.7 → 2.0.0-alpha.71

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 (589) hide show
  1. package/lib/BlockScopedFlowEngine.d.ts +23 -0
  2. package/lib/BlockScopedFlowEngine.js +91 -0
  3. package/lib/FlowContextProvider.d.ts +2 -2
  4. package/lib/FlowContextProvider.js +3 -3
  5. package/lib/FlowDefinition.d.ts +6 -4
  6. package/lib/JSRunner.d.ts +6 -0
  7. package/lib/JSRunner.js +27 -1
  8. package/lib/ViewScopedFlowEngine.d.ts +1 -1
  9. package/lib/ViewScopedFlowEngine.js +18 -1
  10. package/lib/acl/Acl.d.ts +12 -12
  11. package/lib/acl/Acl.js +88 -30
  12. package/lib/components/DynamicFlowsEditor.js +2 -4
  13. package/lib/components/FieldModelRenderer.js +17 -9
  14. package/lib/components/FieldSkeleton.d.ts +10 -0
  15. package/lib/components/FieldSkeleton.js +64 -0
  16. package/lib/components/FlowContextSelector.js +19 -3
  17. package/lib/components/FlowModelRenderer.d.ts +4 -6
  18. package/lib/components/FlowModelRenderer.js +35 -53
  19. package/lib/components/FormItem.js +5 -1
  20. package/lib/components/MobilePopup.d.ts +20 -0
  21. package/lib/components/MobilePopup.js +102 -0
  22. package/lib/components/MobilePopup.style.d.ts +17 -0
  23. package/lib/components/MobilePopup.style.js +186 -0
  24. package/lib/components/common/withFlowDesignMode.d.ts +1 -1
  25. package/lib/components/common/withFlowDesignMode.js +5 -5
  26. package/lib/components/dnd/gridDragPlanner.d.ts +1 -0
  27. package/lib/components/dnd/gridDragPlanner.js +53 -1
  28. package/lib/components/index.d.ts +1 -0
  29. package/lib/components/index.js +3 -1
  30. package/lib/components/settings/independents/dropdown/FlowsDropdownButton.js +71 -53
  31. package/lib/components/settings/wrappers/component/SelectWithTitle.d.ts +19 -0
  32. package/lib/components/settings/wrappers/component/SelectWithTitle.js +136 -0
  33. package/lib/components/settings/wrappers/component/SwitchWithTitle.d.ts +10 -0
  34. package/lib/components/settings/wrappers/component/SwitchWithTitle.js +111 -0
  35. package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +233 -97
  36. package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +71 -54
  37. package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.d.ts +2 -2
  38. package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.js +63 -23
  39. package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +13 -2
  40. package/lib/components/settings/wrappers/embedded/FlowSettings.js +42 -28
  41. package/lib/components/settings/wrappers/embedded/FlowsSettings.js +3 -3
  42. package/lib/components/settings/wrappers/embedded/FlowsSettingsContent.js +52 -32
  43. package/lib/components/subModel/AddSubModelButton.d.ts +7 -0
  44. package/lib/components/subModel/AddSubModelButton.js +78 -8
  45. package/lib/components/subModel/LazyDropdown.js +14 -15
  46. package/lib/components/subModel/utils.d.ts +1 -1
  47. package/lib/components/subModel/utils.js +21 -11
  48. package/lib/components/variables/VariableInput.js +26 -6
  49. package/lib/components/variables/VariableTag.js +43 -2
  50. package/lib/components/variables/types.d.ts +2 -0
  51. package/lib/components/variables/utils.js +4 -2
  52. package/lib/data-source/index.d.ts +23 -4
  53. package/lib/data-source/index.js +135 -14
  54. package/lib/data-source/jioToJoiSchema.js +1 -0
  55. package/lib/emitter.d.ts +6 -0
  56. package/lib/emitter.js +12 -0
  57. package/lib/executor/FlowExecutor.d.ts +6 -6
  58. package/lib/executor/FlowExecutor.js +302 -99
  59. package/lib/flow-registry/GlobalFlowRegistry.d.ts +1 -0
  60. package/lib/flow-registry/GlobalFlowRegistry.js +3 -0
  61. package/lib/flow-registry/InstanceFlowRegistry.d.ts +1 -0
  62. package/lib/flow-registry/InstanceFlowRegistry.js +3 -0
  63. package/lib/flowContext.d.ts +105 -6
  64. package/lib/flowContext.js +447 -139
  65. package/lib/flowEngine.d.ts +71 -1
  66. package/lib/flowEngine.js +319 -16
  67. package/lib/flowSettings.d.ts +4 -3
  68. package/lib/flowSettings.js +45 -21
  69. package/lib/hooks/useApplyAutoFlows.d.ts +1 -0
  70. package/lib/hooks/useApplyAutoFlows.js +3 -2
  71. package/lib/index.d.ts +14 -3
  72. package/lib/index.js +54 -7
  73. package/lib/locale/de-DE.json +62 -0
  74. package/lib/locale/en-US.json +57 -45
  75. package/lib/locale/es-ES.json +62 -0
  76. package/lib/locale/fr-FR.json +62 -0
  77. package/lib/locale/hu-HU.json +62 -0
  78. package/lib/locale/id-ID.json +62 -0
  79. package/lib/locale/index.d.ts +114 -90
  80. package/lib/locale/it-IT.json +62 -0
  81. package/lib/locale/ja-JP.json +62 -0
  82. package/lib/locale/ko-KR.json +62 -0
  83. package/lib/locale/nl-NL.json +62 -0
  84. package/lib/locale/pt-BR.json +62 -0
  85. package/lib/locale/ru-RU.json +62 -0
  86. package/lib/locale/tr-TR.json +62 -0
  87. package/lib/locale/uk-UA.json +62 -0
  88. package/lib/locale/vi-VN.json +62 -0
  89. package/lib/locale/zh-CN.json +58 -46
  90. package/lib/locale/zh-TW.json +62 -0
  91. package/lib/models/CollectionFieldModel.d.ts +7 -2
  92. package/lib/models/CollectionFieldModel.js +63 -16
  93. package/lib/models/flowModel.d.ts +76 -32
  94. package/lib/models/flowModel.js +300 -112
  95. package/lib/models/forkFlowModel.d.ts +8 -4
  96. package/lib/models/forkFlowModel.js +38 -8
  97. package/lib/provider.d.ts +3 -1
  98. package/lib/provider.js +14 -11
  99. package/lib/reactive/index.d.ts +10 -0
  100. package/lib/{runjs-context/snippets/global/api-request-post.snippet.js → reactive/index.js} +14 -15
  101. package/lib/reactive/observer.d.ts +19 -0
  102. package/lib/reactive/observer.js +109 -0
  103. package/lib/resources/baseRecordResource.d.ts +6 -0
  104. package/lib/resources/baseRecordResource.js +38 -3
  105. package/lib/resources/multiRecordResource.d.ts +5 -2
  106. package/lib/resources/multiRecordResource.js +26 -10
  107. package/lib/resources/singleRecordResource.js +8 -3
  108. package/lib/resources/sqlResource.d.ts +5 -3
  109. package/lib/resources/sqlResource.js +30 -28
  110. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.d.ts +1 -6
  111. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +37 -20
  112. package/lib/runjs-context/contexts/JSBlockRunJSContext.d.ts +1 -6
  113. package/lib/runjs-context/contexts/JSBlockRunJSContext.js +46 -33
  114. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.d.ts +1 -2
  115. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.js +14 -15
  116. package/lib/runjs-context/contexts/{LinkageRunJSContext.d.ts → JSColumnRunJSContext.d.ts} +6 -3
  117. package/lib/runjs-context/contexts/JSColumnRunJSContext.js +78 -0
  118. package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.d.ts +16 -0
  119. package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.js +125 -0
  120. package/lib/runjs-context/contexts/JSFieldRunJSContext.d.ts +1 -6
  121. package/lib/runjs-context/contexts/JSFieldRunJSContext.js +28 -24
  122. package/lib/runjs-context/contexts/JSItemRunJSContext.d.ts +1 -6
  123. package/lib/runjs-context/contexts/JSItemRunJSContext.js +34 -20
  124. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.d.ts +1 -2
  125. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.js +16 -17
  126. package/lib/runjs-context/contexts/base.d.ts +9 -0
  127. package/lib/runjs-context/contexts/base.js +879 -0
  128. package/lib/runjs-context/contributions.d.ts +33 -0
  129. package/lib/runjs-context/contributions.js +88 -0
  130. package/lib/runjs-context/helpers.d.ts +5 -2
  131. package/lib/runjs-context/helpers.js +36 -27
  132. package/lib/runjs-context/registry.d.ts +7 -4
  133. package/lib/runjs-context/registry.js +10 -42
  134. package/lib/runjs-context/setup.d.ts +9 -0
  135. package/lib/runjs-context/setup.js +88 -0
  136. package/lib/runjs-context/snippets/global/{copy-record-json.snippet.js → api-request.snippet.js} +25 -10
  137. package/lib/runjs-context/snippets/global/clipboard-copy-text.snippet.js +61 -0
  138. package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.js → import-esm.snippet.js} +26 -12
  139. package/lib/runjs-context/snippets/global/message-error.snippet.js +6 -0
  140. package/lib/runjs-context/snippets/global/message-success.snippet.js +6 -0
  141. package/lib/runjs-context/snippets/global/notification-open.snippet.d.ts +3 -8
  142. package/lib/runjs-context/snippets/global/notification-open.snippet.js +8 -1
  143. package/lib/runjs-context/snippets/global/open-view-dialog.snippet.js +10 -3
  144. package/lib/runjs-context/snippets/global/open-view-drawer.snippet.js +10 -3
  145. package/lib/runjs-context/snippets/global/query-selector.snippet.js +53 -0
  146. package/lib/runjs-context/snippets/global/require-amd.snippet.d.ts +11 -0
  147. package/lib/runjs-context/snippets/global/{requireAsync.snippet.js → require-amd.snippet.js} +16 -13
  148. package/lib/runjs-context/snippets/global/window-open.snippet.d.ts +3 -8
  149. package/lib/runjs-context/snippets/global/window-open.snippet.js +8 -1
  150. package/lib/runjs-context/snippets/index.d.ts +24 -3
  151. package/lib/runjs-context/snippets/index.js +183 -40
  152. package/lib/runjs-context/snippets/scene/block/add-event-listener.snippet.d.ts +11 -0
  153. package/lib/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.js +11 -2
  154. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.d.ts +11 -0
  155. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.js +64 -0
  156. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.d.ts +11 -0
  157. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.js +99 -0
  158. package/lib/runjs-context/snippets/{libs → scene/block}/echarts-init.snippet.js +24 -7
  159. package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.d.ts +11 -0
  160. package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.js +65 -0
  161. package/lib/runjs-context/snippets/scene/block/render-button-handler.snippet.d.ts +11 -0
  162. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-button-handler.snippet.js +17 -9
  163. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.d.ts +11 -0
  164. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.js +57 -0
  165. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.d.ts +11 -0
  166. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.js +71 -0
  167. package/lib/runjs-context/snippets/scene/block/render-react-jsx.snippet.d.ts +11 -0
  168. package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.js → block/render-react-jsx.snippet.js} +26 -13
  169. package/lib/runjs-context/snippets/scene/block/render-react.snippet.d.ts +11 -0
  170. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-react.snippet.js +18 -17
  171. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.d.ts +11 -0
  172. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.js +95 -0
  173. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.d.ts +11 -0
  174. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.js +84 -0
  175. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.d.ts +11 -0
  176. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.js +60 -0
  177. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.d.ts +11 -0
  178. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.js +283 -0
  179. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.d.ts +11 -0
  180. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.js +124 -0
  181. package/lib/runjs-context/snippets/scene/detail/color-by-value.snippet.d.ts +11 -0
  182. package/lib/runjs-context/snippets/scene/{jsfield → detail}/color-by-value.snippet.js +13 -3
  183. package/lib/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.d.ts +11 -0
  184. package/lib/runjs-context/snippets/{global → scene/detail}/copy-to-clipboard.snippet.js +28 -6
  185. package/lib/runjs-context/snippets/scene/detail/format-number.snippet.d.ts +11 -0
  186. package/lib/runjs-context/snippets/scene/{jsfield → detail}/format-number.snippet.js +13 -3
  187. package/lib/runjs-context/snippets/scene/detail/innerHTML-value.snippet.d.ts +11 -0
  188. package/lib/runjs-context/snippets/scene/{jsfield → detail}/innerHTML-value.snippet.js +13 -3
  189. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.d.ts +11 -0
  190. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.js +82 -0
  191. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.d.ts +11 -0
  192. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.js +80 -0
  193. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.d.ts +11 -0
  194. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.js +74 -0
  195. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.d.ts +11 -0
  196. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.js +63 -0
  197. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.d.ts +11 -0
  198. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.js +81 -0
  199. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.d.ts +11 -0
  200. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.js +64 -0
  201. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.d.ts +11 -0
  202. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.js +74 -0
  203. package/lib/runjs-context/snippets/scene/form/render-basic.snippet.d.ts +11 -0
  204. package/lib/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.js +11 -2
  205. package/lib/runjs-context/snippets/scene/form/set-disabled.snippet.d.ts +11 -0
  206. package/lib/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.js +12 -3
  207. package/lib/runjs-context/snippets/scene/form/set-field-value.snippet.d.ts +11 -0
  208. package/lib/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.js +12 -3
  209. package/lib/runjs-context/snippets/scene/form/set-required.snippet.d.ts +11 -0
  210. package/lib/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.js +12 -3
  211. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.d.ts +11 -0
  212. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.js +67 -0
  213. package/lib/runjs-context/snippets/scene/form/toggle-visible.snippet.d.ts +11 -0
  214. package/lib/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.js +12 -3
  215. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.d.ts +11 -0
  216. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.js +64 -0
  217. package/lib/runjs-context/snippets/scene/table/collection-selected-count.snippet.d.ts +11 -0
  218. package/lib/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.js +11 -2
  219. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.d.ts +11 -0
  220. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.js +79 -0
  221. package/lib/runjs-context/snippets/scene/table/destroy-selected.snippet.d.ts +11 -0
  222. package/lib/runjs-context/snippets/{global/log-json-record.snippet.js → scene/table/destroy-selected.snippet.js} +24 -11
  223. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.d.ts +11 -0
  224. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.js +64 -0
  225. package/lib/runjs-context/snippets/scene/table/iterate-selected-rows.snippet.d.ts +11 -0
  226. package/lib/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.js +11 -2
  227. package/lib/runjs-context/snippets/types.d.ts +9 -1
  228. package/lib/runjsLibs.d.ts +28 -0
  229. package/lib/runjsLibs.js +532 -0
  230. package/lib/scheduler/ModelOperationScheduler.d.ts +53 -0
  231. package/lib/scheduler/ModelOperationScheduler.js +262 -0
  232. package/lib/types.d.ts +66 -7
  233. package/lib/types.js +4 -3
  234. package/lib/utils/associationObjectVariable.d.ts +32 -0
  235. package/lib/utils/associationObjectVariable.js +157 -0
  236. package/lib/utils/createCollectionContextMeta.d.ts +1 -1
  237. package/lib/utils/createCollectionContextMeta.js +9 -4
  238. package/lib/utils/createEphemeralContext.d.ts +13 -0
  239. package/lib/utils/createEphemeralContext.js +140 -0
  240. package/lib/utils/flows.d.ts +10 -0
  241. package/lib/{runjs-context/snippets/global/console-log-ctx.snippet.js → utils/flows.js} +21 -14
  242. package/lib/utils/index.d.ts +9 -3
  243. package/lib/utils/index.js +30 -2
  244. package/lib/utils/jsxTransform.d.ts +15 -0
  245. package/lib/utils/jsxTransform.js +68 -0
  246. package/lib/utils/params-resolvers.js +19 -12
  247. package/lib/utils/parsePathnameToViewParams.d.ts +1 -1
  248. package/lib/utils/parsePathnameToViewParams.js +41 -5
  249. package/lib/utils/pruneFilter.d.ts +21 -0
  250. package/lib/{runjs-context/snippets/global/try-catch-async.snippet.js → utils/pruneFilter.js} +24 -16
  251. package/lib/utils/resolveModuleUrl.d.ts +58 -0
  252. package/lib/utils/resolveModuleUrl.js +65 -0
  253. package/lib/utils/runjsModuleLoader.d.ts +58 -0
  254. package/lib/utils/runjsModuleLoader.js +422 -0
  255. package/lib/utils/runjsTemplateCompat.d.ts +35 -0
  256. package/lib/utils/runjsTemplateCompat.js +743 -0
  257. package/lib/utils/safeGlobals.d.ts +6 -8
  258. package/lib/utils/safeGlobals.js +169 -14
  259. package/lib/utils/schema-utils.d.ts +6 -0
  260. package/lib/utils/schema-utils.js +71 -6
  261. package/lib/utils/serverContextParams.d.ts +4 -0
  262. package/lib/utils/serverContextParams.js +2 -0
  263. package/lib/utils/translation.d.ts +4 -1
  264. package/lib/utils/translation.js +6 -2
  265. package/lib/utils/variablesParams.d.ts +22 -5
  266. package/lib/utils/variablesParams.js +141 -61
  267. package/lib/views/DialogComponent.js +1 -5
  268. package/lib/views/DrawerComponent.js +18 -9
  269. package/lib/views/PageComponent.js +5 -5
  270. package/lib/views/ViewNavigation.d.ts +11 -15
  271. package/lib/views/ViewNavigation.js +37 -19
  272. package/lib/views/createViewMeta.d.ts +27 -5
  273. package/lib/views/createViewMeta.js +338 -72
  274. package/lib/views/index.d.ts +1 -1
  275. package/lib/views/index.js +4 -0
  276. package/lib/views/useDialog.d.ts +10 -9
  277. package/lib/views/useDialog.js +46 -34
  278. package/lib/views/useDrawer.d.ts +10 -9
  279. package/lib/views/useDrawer.js +74 -48
  280. package/lib/views/usePage.d.ts +14 -9
  281. package/lib/views/usePage.js +82 -33
  282. package/lib/views/usePopover.js +4 -1
  283. package/lib/views/viewEvents.d.ts +17 -0
  284. package/lib/views/viewEvents.js +90 -0
  285. package/package.json +6 -3
  286. package/src/BlockScopedFlowEngine.ts +85 -0
  287. package/src/FlowContextProvider.tsx +4 -2
  288. package/src/JSRunner.ts +39 -1
  289. package/src/ViewScopedFlowEngine.ts +21 -1
  290. package/src/__tests__/JSRunner.test.ts +125 -52
  291. package/src/__tests__/blockScopedFlowEngine.test.ts +154 -0
  292. package/src/__tests__/createViewMeta.popup.test.ts +203 -0
  293. package/src/__tests__/flow-engine.test.ts +3 -0
  294. package/src/__tests__/flowContext.test.ts +160 -0
  295. package/src/__tests__/flowContextCreateJSRunner.test.ts +163 -0
  296. package/src/__tests__/flowEngine.dataSourceDirty.test.ts +63 -0
  297. package/src/__tests__/flowEngine.destroyModel.test.ts +74 -0
  298. package/src/__tests__/flowEngine.moveModel.test.ts +43 -0
  299. package/src/__tests__/flowEngine.removeModel.test.ts +72 -0
  300. package/src/__tests__/flowEngine.saveModel.test.ts +4 -0
  301. package/src/__tests__/flowModel.openView.navigation.test.ts +31 -2
  302. package/src/__tests__/flowRunJSContextDefine.test.ts +508 -0
  303. package/src/__tests__/flowSettings.open.test.tsx +71 -15
  304. package/src/__tests__/flowSettings.test.ts +2 -0
  305. package/src/__tests__/globalFlowRegistry.test.ts +1 -1
  306. package/src/__tests__/modelOperationScheduler.test.ts +346 -0
  307. package/src/__tests__/objectVariable.test.ts +464 -0
  308. package/src/__tests__/provider.test.tsx +0 -5
  309. package/src/__tests__/runjsContext.test.ts +219 -35
  310. package/src/__tests__/runjsContextImplementations.test.ts +217 -0
  311. package/src/__tests__/runjsContextRuntime.test.ts +269 -0
  312. package/src/__tests__/runjsEdgeCases.test.ts +281 -0
  313. package/src/__tests__/runjsExternalLibs.test.ts +242 -0
  314. package/src/__tests__/runjsLibsLazyLoading.test.ts +44 -0
  315. package/src/__tests__/runjsLocales.test.ts +39 -0
  316. package/src/__tests__/runjsPreprocessDefault.test.ts +49 -0
  317. package/src/__tests__/runjsRuntimeFeatures.test.ts +461 -0
  318. package/src/__tests__/runjsSnippets.test.ts +140 -0
  319. package/src/__tests__/viewScopedFlowEngine.test.ts +101 -3
  320. package/src/acl/Acl.tsx +85 -31
  321. package/src/acl/__tests__/Acl.test.tsx +43 -1
  322. package/src/components/DynamicFlowsEditor.tsx +0 -10
  323. package/src/components/FieldModelRenderer.tsx +22 -9
  324. package/src/components/FieldSkeleton.tsx +27 -0
  325. package/src/components/FlowContextSelector.tsx +20 -2
  326. package/src/components/FlowModelRenderer.tsx +52 -84
  327. package/src/components/FormItem.tsx +8 -1
  328. package/src/components/MobilePopup.style.ts +220 -0
  329. package/src/components/MobilePopup.tsx +86 -0
  330. package/src/components/__tests__/FlowModelRenderer.test.tsx +89 -0
  331. package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +6 -6
  332. package/src/components/__tests__/gridDragPlanner.test.ts +141 -1
  333. package/src/components/common/withFlowDesignMode.tsx +5 -5
  334. package/src/components/dnd/gridDragPlanner.ts +60 -0
  335. package/src/components/index.ts +1 -0
  336. package/src/components/settings/independents/dropdown/FlowsDropdownButton.tsx +34 -17
  337. package/src/components/settings/wrappers/component/SelectWithTitle.tsx +110 -0
  338. package/src/components/settings/wrappers/component/SwitchWithTitle.tsx +83 -0
  339. package/src/components/settings/wrappers/component/__tests__/InlineControls.test.tsx +74 -0
  340. package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +272 -125
  341. package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +34 -18
  342. package/src/components/settings/wrappers/contextual/FlowsFloatContextMenu.tsx +56 -18
  343. package/src/components/settings/wrappers/contextual/StepSettings.tsx +1 -2
  344. package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +13 -1
  345. package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +624 -0
  346. package/src/components/settings/wrappers/embedded/FlowSettings.tsx +47 -35
  347. package/src/components/settings/wrappers/embedded/FlowsSettings.tsx +1 -1
  348. package/src/components/settings/wrappers/embedded/FlowsSettingsContent.tsx +64 -42
  349. package/src/components/subModel/AddSubModelButton.tsx +104 -9
  350. package/src/components/subModel/LazyDropdown.tsx +14 -14
  351. package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +168 -7
  352. package/src/components/subModel/__tests__/utils.test.ts +12 -12
  353. package/src/components/subModel/utils.ts +25 -6
  354. package/src/components/variables/VariableInput.tsx +32 -6
  355. package/src/components/variables/VariableTag.tsx +54 -2
  356. package/src/components/variables/types.ts +2 -0
  357. package/src/components/variables/utils.ts +7 -3
  358. package/src/data-source/index.ts +143 -12
  359. package/src/data-source/jioToJoiSchema.ts +1 -0
  360. package/src/emitter.ts +14 -0
  361. package/src/executor/FlowExecutor.ts +383 -119
  362. package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
  363. package/src/executor/__tests__/flowExecutor.test.ts +217 -5
  364. package/src/flow-registry/GlobalFlowRegistry.ts +1 -0
  365. package/src/flow-registry/InstanceFlowRegistry.ts +1 -0
  366. package/src/flow-registry/__tests__/globalFlowRegistry.test.ts +54 -0
  367. package/src/flowContext.ts +646 -158
  368. package/src/flowEngine.ts +385 -14
  369. package/src/flowSettings.ts +59 -30
  370. package/src/hooks/useApplyAutoFlows.ts +5 -3
  371. package/src/index.ts +26 -3
  372. package/src/locale/de-DE.json +62 -0
  373. package/src/locale/en-US.json +57 -45
  374. package/src/locale/es-ES.json +62 -0
  375. package/src/locale/fr-FR.json +62 -0
  376. package/src/locale/hu-HU.json +62 -0
  377. package/src/locale/id-ID.json +62 -0
  378. package/src/locale/it-IT.json +62 -0
  379. package/src/locale/ja-JP.json +62 -0
  380. package/src/locale/ko-KR.json +62 -0
  381. package/src/locale/nl-NL.json +62 -0
  382. package/src/locale/pt-BR.json +62 -0
  383. package/src/locale/ru-RU.json +62 -0
  384. package/src/locale/tr-TR.json +62 -0
  385. package/src/locale/uk-UA.json +62 -0
  386. package/src/locale/vi-VN.json +62 -0
  387. package/src/locale/zh-CN.json +58 -46
  388. package/src/locale/zh-TW.json +62 -0
  389. package/src/models/CollectionFieldModel.tsx +82 -18
  390. package/src/models/__tests__/dispatchEvent.behavior.test.ts +169 -0
  391. package/src/models/__tests__/dispatchEvent.when.test.ts +356 -0
  392. package/src/models/__tests__/flowEngine.resolveUse.test.ts +170 -0
  393. package/src/models/__tests__/flowModel.clone.test.ts +416 -0
  394. package/src/models/__tests__/flowModel.getFlows.sort.test.ts +33 -9
  395. package/src/models/__tests__/flowModel.scheduleModelOperation.test.tsx +129 -0
  396. package/src/models/__tests__/flowModel.test.ts +296 -119
  397. package/src/models/__tests__/forkFlowModel.test.ts +40 -7
  398. package/src/models/flowModel.tsx +426 -148
  399. package/src/models/forkFlowModel.ts +48 -8
  400. package/src/provider.tsx +18 -14
  401. package/src/reactive/__tests__/observer.test.tsx +211 -0
  402. package/src/reactive/index.ts +11 -0
  403. package/src/reactive/observer.tsx +101 -0
  404. package/src/resources/__tests__/multiRecordResource.test.ts +44 -0
  405. package/src/resources/__tests__/sqlResource.test.ts +60 -0
  406. package/src/resources/baseRecordResource.ts +46 -3
  407. package/src/resources/multiRecordResource.ts +28 -12
  408. package/src/resources/singleRecordResource.ts +9 -3
  409. package/src/resources/sqlResource.ts +33 -32
  410. package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +38 -21
  411. package/src/runjs-context/contexts/JSBlockRunJSContext.ts +50 -34
  412. package/src/runjs-context/contexts/JSCollectionActionRunJSContext.ts +15 -16
  413. package/src/runjs-context/contexts/JSColumnRunJSContext.ts +58 -0
  414. package/src/runjs-context/contexts/JSEditableFieldRunJSContext.ts +106 -0
  415. package/src/runjs-context/contexts/JSFieldRunJSContext.ts +30 -25
  416. package/src/runjs-context/contexts/JSItemRunJSContext.ts +35 -21
  417. package/src/runjs-context/contexts/JSRecordActionRunJSContext.ts +17 -18
  418. package/src/runjs-context/contexts/base.ts +871 -0
  419. package/src/runjs-context/contributions.ts +88 -0
  420. package/src/runjs-context/helpers.ts +32 -30
  421. package/src/runjs-context/registry.ts +16 -47
  422. package/src/runjs-context/setup.ts +57 -0
  423. package/src/runjs-context/snippets/global/api-request.snippet.ts +38 -0
  424. package/src/runjs-context/snippets/global/clipboard-copy-text.snippet.ts +42 -0
  425. package/src/runjs-context/snippets/global/import-esm.snippet.ts +39 -0
  426. package/src/runjs-context/snippets/global/message-error.snippet.ts +6 -0
  427. package/src/runjs-context/snippets/global/message-success.snippet.ts +6 -0
  428. package/src/runjs-context/snippets/global/notification-open.snippet.ts +11 -1
  429. package/src/runjs-context/snippets/global/open-view-dialog.snippet.ts +10 -3
  430. package/src/runjs-context/snippets/global/open-view-drawer.snippet.ts +10 -3
  431. package/src/runjs-context/snippets/global/query-selector.snippet.ts +34 -0
  432. package/src/runjs-context/snippets/global/require-amd.snippet.ts +30 -0
  433. package/src/runjs-context/snippets/global/window-open.snippet.ts +11 -1
  434. package/src/runjs-context/snippets/index.ts +212 -39
  435. package/src/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.ts +14 -2
  436. package/src/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.ts +45 -0
  437. package/src/runjs-context/snippets/scene/block/chartjs-bar.snippet.ts +80 -0
  438. package/src/runjs-context/snippets/scene/block/echarts-init.snippet.ts +44 -0
  439. package/src/runjs-context/snippets/scene/block/render-antd-icons.snippet.ts +46 -0
  440. package/src/runjs-context/snippets/scene/block/render-button-handler.snippet.ts +35 -0
  441. package/src/runjs-context/snippets/scene/block/render-iframe.snippet.ts +38 -0
  442. package/src/runjs-context/snippets/scene/block/render-info-card.snippet.ts +52 -0
  443. package/src/runjs-context/snippets/scene/block/render-react-jsx.snippet.ts +39 -0
  444. package/src/runjs-context/snippets/scene/block/render-react.snippet.ts +38 -0
  445. package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +76 -0
  446. package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +65 -0
  447. package/src/runjs-context/snippets/scene/block/resource-example.snippet.ts +46 -0
  448. package/src/runjs-context/snippets/scene/block/three-users-orbit.snippet.ts +264 -0
  449. package/src/runjs-context/snippets/scene/block/vue-component.snippet.ts +105 -0
  450. package/src/runjs-context/snippets/scene/detail/color-by-value.snippet.ts +33 -0
  451. package/src/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.ts +45 -0
  452. package/src/runjs-context/snippets/scene/detail/format-number.snippet.ts +32 -0
  453. package/src/runjs-context/snippets/scene/detail/innerHTML-value.snippet.ts +31 -0
  454. package/src/runjs-context/snippets/scene/detail/percentage-bar.snippet.ts +63 -0
  455. package/src/runjs-context/snippets/scene/detail/relative-time.snippet.ts +61 -0
  456. package/src/runjs-context/snippets/scene/detail/status-tag.snippet.ts +55 -0
  457. package/src/runjs-context/snippets/scene/form/calculate-total.snippet.ts +44 -0
  458. package/src/runjs-context/snippets/scene/form/cascade-select.snippet.ts +62 -0
  459. package/src/runjs-context/snippets/scene/form/conditional-required.snippet.ts +45 -0
  460. package/src/runjs-context/snippets/scene/form/copy-field-values.snippet.ts +55 -0
  461. package/src/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.ts +14 -2
  462. package/src/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.ts +15 -3
  463. package/src/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.ts +15 -3
  464. package/src/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.ts +15 -3
  465. package/src/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.ts +48 -0
  466. package/src/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.ts +15 -3
  467. package/src/runjs-context/snippets/scene/table/cell-open-dialog.snippet.ts +45 -0
  468. package/src/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.ts +14 -2
  469. package/src/runjs-context/snippets/scene/table/concat-fields.snippet.ts +60 -0
  470. package/src/runjs-context/snippets/scene/table/destroy-selected.snippet.ts +36 -0
  471. package/src/runjs-context/snippets/scene/table/export-selected-json.snippet.ts +45 -0
  472. package/src/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.ts +14 -2
  473. package/src/runjs-context/snippets/types.ts +5 -1
  474. package/src/runjsLibs.ts +622 -0
  475. package/src/scheduler/ModelOperationScheduler.ts +306 -0
  476. package/src/types.ts +86 -5
  477. package/src/utils/__tests__/createCollectionContextMeta.test.ts +51 -0
  478. package/src/utils/__tests__/flows.test.ts +65 -0
  479. package/src/utils/__tests__/jsxTransform.test.ts +38 -0
  480. package/src/utils/__tests__/params-resolvers.test.ts +40 -0
  481. package/src/utils/__tests__/parsePathnameToViewParams.test.ts +25 -0
  482. package/src/utils/__tests__/pruneFilter.test.ts +38 -0
  483. package/src/utils/__tests__/runjsRequireAsyncAutoWhitelist.test.ts +38 -0
  484. package/src/utils/__tests__/runjsTemplateCompat.test.ts +159 -0
  485. package/src/utils/__tests__/safeGlobals.test.ts +79 -2
  486. package/src/utils/__tests__/utils.test.ts +114 -15
  487. package/src/utils/__tests__/variablesParams.test.ts +120 -0
  488. package/src/utils/associationObjectVariable.ts +180 -0
  489. package/src/utils/createCollectionContextMeta.ts +9 -3
  490. package/src/utils/createEphemeralContext.ts +142 -0
  491. package/src/utils/flows.ts +23 -0
  492. package/src/utils/index.ts +17 -3
  493. package/src/utils/jsxTransform.ts +39 -0
  494. package/src/utils/params-resolvers.ts +25 -11
  495. package/src/utils/parsePathnameToViewParams.ts +50 -6
  496. package/src/utils/pruneFilter.ts +41 -0
  497. package/src/utils/resolveModuleUrl.ts +91 -0
  498. package/src/utils/runjsModuleLoader.ts +553 -0
  499. package/src/utils/runjsTemplateCompat.ts +828 -0
  500. package/src/utils/safeGlobals.ts +181 -15
  501. package/src/utils/schema-utils.ts +81 -3
  502. package/src/utils/serverContextParams.ts +6 -0
  503. package/src/utils/translation.ts +7 -2
  504. package/src/utils/variablesParams.ts +164 -72
  505. package/src/views/DialogComponent.tsx +1 -4
  506. package/src/views/DrawerComponent.tsx +19 -7
  507. package/src/views/PageComponent.tsx +3 -5
  508. package/src/views/ViewNavigation.ts +49 -43
  509. package/src/views/__tests__/FlowView.usePage.test.tsx +186 -0
  510. package/src/views/__tests__/ViewNavigation.test.ts +54 -34
  511. package/src/views/__tests__/useDialog.closeDestroy.test.tsx +159 -0
  512. package/src/views/__tests__/viewEvents.resolveOpenerEngine.test.ts +28 -0
  513. package/src/views/createViewMeta.ts +402 -73
  514. package/src/views/index.tsx +1 -1
  515. package/src/views/useDialog.tsx +52 -31
  516. package/src/views/useDrawer.tsx +99 -55
  517. package/src/views/usePage.tsx +101 -33
  518. package/src/views/usePopover.tsx +4 -1
  519. package/src/views/viewEvents.ts +55 -0
  520. package/lib/runjs-context/contexts/FlowRunJSContext.d.ts +0 -38
  521. package/lib/runjs-context/contexts/FlowRunJSContext.js +0 -217
  522. package/lib/runjs-context/contexts/LinkageRunJSContext.js +0 -62
  523. package/lib/runjs-context/index.d.ts +0 -19
  524. package/lib/runjs-context/index.js +0 -57
  525. package/lib/runjs-context/snippets/global/api-request-get.snippet.d.ts +0 -16
  526. package/lib/runjs-context/snippets/global/api-request-get.snippet.js +0 -42
  527. package/lib/runjs-context/snippets/global/api-request-post.snippet.d.ts +0 -16
  528. package/lib/runjs-context/snippets/global/console-log-ctx.snippet.d.ts +0 -16
  529. package/lib/runjs-context/snippets/global/requireAsync.snippet.d.ts +0 -16
  530. package/lib/runjs-context/snippets/global/sleep.snippet.d.ts +0 -16
  531. package/lib/runjs-context/snippets/global/sleep.snippet.js +0 -43
  532. package/lib/runjs-context/snippets/global/try-catch-async.snippet.d.ts +0 -16
  533. package/lib/runjs-context/snippets/libs/echarts-init.snippet.d.ts +0 -15
  534. package/lib/runjs-context/snippets/scene/actions/collection-selected-count.snippet.d.ts +0 -15
  535. package/lib/runjs-context/snippets/scene/actions/iterate-selected-rows.snippet.d.ts +0 -15
  536. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.d.ts +0 -15
  537. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.js +0 -43
  538. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.d.ts +0 -15
  539. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.js +0 -40
  540. package/lib/runjs-context/snippets/scene/jsblock/add-event-listener.snippet.d.ts +0 -15
  541. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.d.ts +0 -15
  542. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.js +0 -42
  543. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.d.ts +0 -15
  544. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.js +0 -46
  545. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.d.ts +0 -15
  546. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.js +0 -41
  547. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.d.ts +0 -15
  548. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.js +0 -41
  549. package/lib/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.d.ts +0 -15
  550. package/lib/runjs-context/snippets/scene/jsblock/render-react.snippet.d.ts +0 -15
  551. package/lib/runjs-context/snippets/scene/jsfield/color-by-value.snippet.d.ts +0 -15
  552. package/lib/runjs-context/snippets/scene/jsfield/format-number.snippet.d.ts +0 -15
  553. package/lib/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.d.ts +0 -15
  554. package/lib/runjs-context/snippets/scene/jsitem/render-basic.snippet.d.ts +0 -15
  555. package/lib/runjs-context/snippets/scene/linkage/set-disabled.snippet.d.ts +0 -15
  556. package/lib/runjs-context/snippets/scene/linkage/set-field-value.snippet.d.ts +0 -15
  557. package/lib/runjs-context/snippets/scene/linkage/set-required.snippet.d.ts +0 -15
  558. package/lib/runjs-context/snippets/scene/linkage/toggle-visible.snippet.d.ts +0 -15
  559. package/src/runjs-context/contexts/FlowRunJSContext.ts +0 -190
  560. package/src/runjs-context/contexts/LinkageRunJSContext.ts +0 -35
  561. package/src/runjs-context/index.ts +0 -20
  562. package/src/runjs-context/snippets/global/api-request-get.snippet.ts +0 -20
  563. package/src/runjs-context/snippets/global/api-request-post.snippet.ts +0 -20
  564. package/src/runjs-context/snippets/global/console-log-ctx.snippet.ts +0 -19
  565. package/src/runjs-context/snippets/global/copy-record-json.snippet.ts +0 -21
  566. package/src/runjs-context/snippets/global/copy-to-clipboard.snippet.ts +0 -21
  567. package/src/runjs-context/snippets/global/log-json-record.snippet.ts +0 -21
  568. package/src/runjs-context/snippets/global/requireAsync.snippet.ts +0 -24
  569. package/src/runjs-context/snippets/global/sleep.snippet.ts +0 -21
  570. package/src/runjs-context/snippets/global/try-catch-async.snippet.ts +0 -22
  571. package/src/runjs-context/snippets/global/view-navigation-push.snippet.ts +0 -23
  572. package/src/runjs-context/snippets/libs/echarts-init.snippet.ts +0 -24
  573. package/src/runjs-context/snippets/scene/actions/record-id-message.snippet.ts +0 -21
  574. package/src/runjs-context/snippets/scene/actions/run-action-basic.snippet.ts +0 -18
  575. package/src/runjs-context/snippets/scene/jsblock/append-style.snippet.ts +0 -20
  576. package/src/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.ts +0 -24
  577. package/src/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.ts +0 -19
  578. package/src/runjs-context/snippets/scene/jsblock/render-basic.snippet.ts +0 -24
  579. package/src/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.ts +0 -24
  580. package/src/runjs-context/snippets/scene/jsblock/render-card.snippet.ts +0 -30
  581. package/src/runjs-context/snippets/scene/jsblock/render-react.snippet.ts +0 -34
  582. package/src/runjs-context/snippets/scene/jsfield/color-by-value.snippet.ts +0 -20
  583. package/src/runjs-context/snippets/scene/jsfield/format-number.snippet.ts +0 -19
  584. package/src/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.ts +0 -18
  585. /package/lib/runjs-context/snippets/global/{copy-record-json.snippet.d.ts → api-request.snippet.d.ts} +0 -0
  586. /package/lib/runjs-context/snippets/global/{copy-to-clipboard.snippet.d.ts → clipboard-copy-text.snippet.d.ts} +0 -0
  587. /package/lib/runjs-context/snippets/global/{log-json-record.snippet.d.ts → import-esm.snippet.d.ts} +0 -0
  588. /package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.d.ts → query-selector.snippet.d.ts} +0 -0
  589. /package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.d.ts → block/echarts-init.snippet.d.ts} +0 -0
@@ -0,0 +1,33 @@
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 { FlowRunJSContext } from '../flowContext';
10
+ import { RunJSContextRegistry, type RunJSVersion } from './registry';
11
+ export type RunJSContextContributionApi = {
12
+ version: RunJSVersion;
13
+ RunJSContextRegistry: typeof RunJSContextRegistry;
14
+ FlowRunJSContext: typeof FlowRunJSContext;
15
+ };
16
+ export type RunJSContextContribution = (api: RunJSContextContributionApi) => void | Promise<void>;
17
+ /**
18
+ * Register a RunJS context/doc contribution.
19
+ *
20
+ * - If RunJS contexts have already been set up for a version, the contribution is applied immediately once.
21
+ * - Each contribution is executed at most once per version.
22
+ */
23
+ export declare function registerRunJSContextContribution(contribution: RunJSContextContribution): void;
24
+ /**
25
+ * Apply all registered contributions for a given version.
26
+ * Intended to be called by setupRunJSContexts().
27
+ */
28
+ export declare function applyRunJSContextContributions(version: RunJSVersion): Promise<void>;
29
+ /**
30
+ * Mark setupRunJSContexts() as completed for a given version.
31
+ * Used to support late contributions that should take effect without re-running setup.
32
+ */
33
+ export declare function markRunJSContextsSetupDone(version: RunJSVersion): void;
@@ -0,0 +1,88 @@
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 contributions_exports = {};
29
+ __export(contributions_exports, {
30
+ applyRunJSContextContributions: () => applyRunJSContextContributions,
31
+ markRunJSContextsSetupDone: () => markRunJSContextsSetupDone,
32
+ registerRunJSContextContribution: () => registerRunJSContextContribution
33
+ });
34
+ module.exports = __toCommonJS(contributions_exports);
35
+ var import_flowContext = require("../flowContext");
36
+ var import_registry = require("./registry");
37
+ const contributions = /* @__PURE__ */ new Set();
38
+ const appliedByVersion = /* @__PURE__ */ new Map();
39
+ const setupDoneVersions = /* @__PURE__ */ new Set();
40
+ async function applyContributionOnce(version, contribution) {
41
+ const applied = appliedByVersion.get(version) || /* @__PURE__ */ new Set();
42
+ appliedByVersion.set(version, applied);
43
+ if (applied.has(contribution)) return;
44
+ applied.add(contribution);
45
+ try {
46
+ await contribution({
47
+ version,
48
+ RunJSContextRegistry: import_registry.RunJSContextRegistry,
49
+ FlowRunJSContext: import_flowContext.FlowRunJSContext
50
+ });
51
+ } catch (error) {
52
+ applied.delete(contribution);
53
+ throw error;
54
+ }
55
+ }
56
+ __name(applyContributionOnce, "applyContributionOnce");
57
+ function registerRunJSContextContribution(contribution) {
58
+ if (typeof contribution !== "function") {
59
+ throw new Error("[flow-engine] registerRunJSContextContribution: contribution must be a function");
60
+ }
61
+ if (contributions.has(contribution)) return;
62
+ contributions.add(contribution);
63
+ for (const version of setupDoneVersions) {
64
+ void applyContributionOnce(version, contribution).catch((error) => {
65
+ try {
66
+ console.error("[flow-engine] RunJS context contribution failed:", error);
67
+ } catch (_) {
68
+ }
69
+ });
70
+ }
71
+ }
72
+ __name(registerRunJSContextContribution, "registerRunJSContextContribution");
73
+ async function applyRunJSContextContributions(version) {
74
+ for (const contribution of contributions) {
75
+ await applyContributionOnce(version, contribution);
76
+ }
77
+ }
78
+ __name(applyRunJSContextContributions, "applyRunJSContextContributions");
79
+ function markRunJSContextsSetupDone(version) {
80
+ setupDoneVersions.add(version);
81
+ }
82
+ __name(markRunJSContextsSetupDone, "markRunJSContextsSetupDone");
83
+ // Annotate the CommonJS export names for ESM import in node:
84
+ 0 && (module.exports = {
85
+ applyRunJSContextContributions,
86
+ markRunJSContextsSetupDone,
87
+ registerRunJSContextContribution
88
+ });
@@ -9,9 +9,12 @@
9
9
  import type { FlowContext } from '../flowContext';
10
10
  import { JSRunner } from '../JSRunner';
11
11
  import type { JSRunnerOptions } from '../JSRunner';
12
- import { RunJSVersion } from './contexts/FlowRunJSContext';
12
+ import { type RunJSVersion } from './registry';
13
13
  export declare function getRunJSDocFor(ctx: FlowContext, { version }?: {
14
14
  version?: RunJSVersion;
15
15
  }): any;
16
16
  export declare function createJSRunnerWithVersion(this: FlowContext, options?: JSRunnerOptions): JSRunner;
17
- export declare function registerDefaultMappings(): void;
17
+ export declare function getRunJSScenesForModel(modelClass: string, version?: RunJSVersion): string[];
18
+ export declare function getRunJSScenesForContext(ctx: FlowContext, { version }?: {
19
+ version?: RunJSVersion;
20
+ }): string[];
@@ -29,51 +29,60 @@ var helpers_exports = {};
29
29
  __export(helpers_exports, {
30
30
  createJSRunnerWithVersion: () => createJSRunnerWithVersion,
31
31
  getRunJSDocFor: () => getRunJSDocFor,
32
- registerDefaultMappings: () => registerDefaultMappings
32
+ getRunJSScenesForContext: () => getRunJSScenesForContext,
33
+ getRunJSScenesForModel: () => getRunJSScenesForModel
33
34
  });
34
35
  module.exports = __toCommonJS(helpers_exports);
35
36
  var import_JSRunner = require("../JSRunner");
36
- var import_FlowRunJSContext = require("./contexts/FlowRunJSContext");
37
37
  var import_registry = require("./registry");
38
- var import_JSBlockRunJSContext = require("./contexts/JSBlockRunJSContext");
39
- var import_JSFieldRunJSContext = require("./contexts/JSFieldRunJSContext");
40
- var import_JSItemRunJSContext = require("./contexts/JSItemRunJSContext");
41
- var import_FormJSFieldItemRunJSContext = require("./contexts/FormJSFieldItemRunJSContext");
42
- var import_JSRecordActionRunJSContext = require("./contexts/JSRecordActionRunJSContext");
43
- var import_JSCollectionActionRunJSContext = require("./contexts/JSCollectionActionRunJSContext");
38
+ function getLocale(ctx) {
39
+ var _a, _b, _c;
40
+ return ((_b = (_a = ctx == null ? void 0 : ctx.api) == null ? void 0 : _a.auth) == null ? void 0 : _b.locale) || ((_c = ctx == null ? void 0 : ctx.i18n) == null ? void 0 : _c.language) || (ctx == null ? void 0 : ctx.locale);
41
+ }
42
+ __name(getLocale, "getLocale");
44
43
  function getRunJSDocFor(ctx, { version = "v1" } = {}) {
45
- var _a;
44
+ var _a, _b;
46
45
  const modelClass = (0, import_registry.getModelClassName)(ctx);
47
- const ctor = import_registry.RunJSContextRegistry.resolve(version, modelClass) || import_registry.RunJSContextRegistry.resolve("latest", modelClass) || import_FlowRunJSContext.FlowRunJSContext;
48
- return ((_a = ctor.getDoc) == null ? void 0 : _a.call(ctor)) || {};
46
+ const ctor = import_registry.RunJSContextRegistry.resolve(version, modelClass) || import_registry.RunJSContextRegistry.resolve(version, "*");
47
+ const locale = getLocale(ctx);
48
+ if ((_a = ctor == null ? void 0 : ctor.getDoc) == null ? void 0 : _a.length) {
49
+ return ctor.getDoc(locale) || {};
50
+ }
51
+ return ((_b = ctor == null ? void 0 : ctor.getDoc) == null ? void 0 : _b.call(ctor)) || {};
49
52
  }
50
53
  __name(getRunJSDocFor, "getRunJSDocFor");
51
54
  function createJSRunnerWithVersion(options) {
52
- var _a;
53
55
  const version = (options == null ? void 0 : options.version) || "v1";
54
56
  const modelClass = (0, import_registry.getModelClassName)(this);
55
- const Ctor = import_registry.RunJSContextRegistry.resolve(version, modelClass) || import_registry.RunJSContextRegistry.resolve("latest", modelClass) || import_FlowRunJSContext.FlowRunJSContext;
56
- const runCtx = new Ctor(this.createProxy ? this.createProxy() : this);
57
- const def = ((_a = Ctor.injectDefaultGlobals) == null ? void 0 : _a.call(Ctor)) || {};
58
- const globals = { ctx: runCtx, ...def, ...(options == null ? void 0 : options.globals) || {} };
57
+ const ensureFlowContext = /* @__PURE__ */ __name((obj) => obj, "ensureFlowContext");
58
+ const Ctor = import_registry.RunJSContextRegistry.resolve(version, modelClass) || import_registry.RunJSContextRegistry.resolve(version, "*");
59
+ if (!Ctor) {
60
+ throw new Error("[RunJS] No RunJSContext registered for version/model.");
61
+ }
62
+ const runCtx = new Ctor(ensureFlowContext(this));
63
+ const globals = { ctx: runCtx, ...(options == null ? void 0 : options.globals) || {} };
64
+ if (modelClass === "JSFieldModel" || modelClass === "JSBlockModel") {
65
+ if (typeof window !== "undefined") globals.window = window;
66
+ if (typeof document !== "undefined") globals.document = document;
67
+ }
59
68
  const { timeoutMs } = options || {};
60
69
  return new import_JSRunner.JSRunner({ globals, timeoutMs });
61
70
  }
62
71
  __name(createJSRunnerWithVersion, "createJSRunnerWithVersion");
63
- function registerDefaultMappings() {
64
- const v = "v1";
65
- import_registry.RunJSContextRegistry.register(v, "JSBlockModel", import_JSBlockRunJSContext.JSBlockRunJSContext);
66
- import_registry.RunJSContextRegistry.register(v, "JSFieldModel", import_JSFieldRunJSContext.JSFieldRunJSContext);
67
- import_registry.RunJSContextRegistry.register(v, "JSItemModel", import_JSItemRunJSContext.JSItemRunJSContext);
68
- import_registry.RunJSContextRegistry.register(v, "FormJSFieldItemModel", import_FormJSFieldItemRunJSContext.FormJSFieldItemRunJSContext);
69
- import_registry.RunJSContextRegistry.register(v, "JSRecordActionModel", import_JSRecordActionRunJSContext.JSRecordActionRunJSContext);
70
- import_registry.RunJSContextRegistry.register(v, "JSCollectionActionModel", import_JSCollectionActionRunJSContext.JSCollectionActionRunJSContext);
71
- import_registry.RunJSContextRegistry.register(v, "*", import_FlowRunJSContext.FlowRunJSContext);
72
+ function getRunJSScenesForModel(modelClass, version = "v1") {
73
+ const meta = import_registry.RunJSContextRegistry.getMeta(version, modelClass);
74
+ return Array.isArray(meta == null ? void 0 : meta.scenes) ? [...meta.scenes] : [];
75
+ }
76
+ __name(getRunJSScenesForModel, "getRunJSScenesForModel");
77
+ function getRunJSScenesForContext(ctx, { version = "v1" } = {}) {
78
+ const modelClass = (0, import_registry.getModelClassName)(ctx);
79
+ return getRunJSScenesForModel(modelClass, version);
72
80
  }
73
- __name(registerDefaultMappings, "registerDefaultMappings");
81
+ __name(getRunJSScenesForContext, "getRunJSScenesForContext");
74
82
  // Annotate the CommonJS export names for ESM import in node:
75
83
  0 && (module.exports = {
76
84
  createJSRunnerWithVersion,
77
85
  getRunJSDocFor,
78
- registerDefaultMappings
86
+ getRunJSScenesForContext,
87
+ getRunJSScenesForModel
79
88
  });
@@ -6,12 +6,15 @@
6
6
  * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
- import type { RunJSVersion, RunJSContextCtor } from './contexts/FlowRunJSContext';
9
+ export type RunJSVersion = 'v1' | (string & {});
10
+ export type RunJSContextCtor = new (delegate: any) => any;
11
+ export type RunJSContextMeta = {
12
+ scenes?: string[];
13
+ };
10
14
  export declare class RunJSContextRegistry {
11
15
  private static map;
12
- private static defaultsRegistered;
13
- private static ensureDefaults;
14
- static register(version: RunJSVersion, modelClass: string, ctor: RunJSContextCtor): void;
16
+ static register(version: RunJSVersion, modelClass: string, ctor: RunJSContextCtor, meta?: RunJSContextMeta): void;
15
17
  static resolve(version: RunJSVersion, modelClass: string): RunJSContextCtor;
18
+ static getMeta(version: RunJSVersion, modelClass: string): RunJSContextMeta | undefined;
16
19
  }
17
20
  export declare function getModelClassName(ctx: any): string;
@@ -33,57 +33,25 @@ __export(registry_exports, {
33
33
  getModelClassName: () => getModelClassName
34
34
  });
35
35
  module.exports = __toCommonJS(registry_exports);
36
- var import_FlowRunJSContext = require("./contexts/FlowRunJSContext");
37
- var import_JSBlockRunJSContext = require("./contexts/JSBlockRunJSContext");
38
- var import_JSFieldRunJSContext = require("./contexts/JSFieldRunJSContext");
39
- var import_JSItemRunJSContext = require("./contexts/JSItemRunJSContext");
40
- var import_FormJSFieldItemRunJSContext = require("./contexts/FormJSFieldItemRunJSContext");
41
- var import_JSRecordActionRunJSContext = require("./contexts/JSRecordActionRunJSContext");
42
- var import_JSCollectionActionRunJSContext = require("./contexts/JSCollectionActionRunJSContext");
43
36
  const _RunJSContextRegistry = class _RunJSContextRegistry {
44
- static ensureDefaults() {
45
- if (this.defaultsRegistered) return;
46
- const v = "v1";
47
- try {
48
- const ensure = /* @__PURE__ */ __name((model, ctor) => {
49
- const key = `${v}:${model}`;
50
- if (!this.map.has(key)) this.map.set(key, ctor);
51
- }, "ensure");
52
- ensure("JSBlockModel", import_JSBlockRunJSContext.JSBlockRunJSContext);
53
- ensure("JSFieldModel", import_JSFieldRunJSContext.JSFieldRunJSContext);
54
- ensure("JSItemModel", import_JSItemRunJSContext.JSItemRunJSContext);
55
- ensure("FormJSFieldItemModel", import_FormJSFieldItemRunJSContext.FormJSFieldItemRunJSContext);
56
- ensure("JSRecordActionModel", import_JSRecordActionRunJSContext.JSRecordActionRunJSContext);
57
- ensure("JSCollectionActionModel", import_JSCollectionActionRunJSContext.JSCollectionActionRunJSContext);
58
- ensure("*", import_FlowRunJSContext.FlowRunJSContext);
59
- } finally {
60
- this.defaultsRegistered = true;
61
- }
62
- }
63
- static register(version, modelClass, ctor) {
64
- this.map.set(`${version}:${modelClass}`, ctor);
37
+ static register(version, modelClass, ctor, meta) {
38
+ this.map.set(`${version}:${modelClass}`, { ctor, meta });
65
39
  }
66
40
  static resolve(version, modelClass) {
67
- this.ensureDefaults();
68
- return this.map.get(`${version}:${modelClass}`) || this.map.get(`${version}:*`);
41
+ var _a, _b;
42
+ return ((_a = this.map.get(`${version}:${modelClass}`)) == null ? void 0 : _a.ctor) || ((_b = this.map.get(`${version}:*`)) == null ? void 0 : _b.ctor);
43
+ }
44
+ static getMeta(version, modelClass) {
45
+ var _a, _b;
46
+ return ((_a = this.map.get(`${version}:${modelClass}`)) == null ? void 0 : _a.meta) || ((_b = this.map.get(`${version}:*`)) == null ? void 0 : _b.meta);
69
47
  }
70
48
  };
71
49
  __name(_RunJSContextRegistry, "RunJSContextRegistry");
72
50
  __publicField(_RunJSContextRegistry, "map", /* @__PURE__ */ new Map());
73
- __publicField(_RunJSContextRegistry, "defaultsRegistered", false);
74
51
  let RunJSContextRegistry = _RunJSContextRegistry;
75
52
  function getModelClassName(ctx) {
76
- var _a, _b, _c;
77
- const model = ctx == null ? void 0 : ctx.model;
78
- if (!model) return "*";
79
- try {
80
- const Ctor = model.constructor;
81
- const use = (_b = (_a = Ctor == null ? void 0 : Ctor.meta) == null ? void 0 : _a.createModelOptions) == null ? void 0 : _b.use;
82
- if (typeof use === "string" && use) return use;
83
- } catch (_) {
84
- }
85
- const byName = (_c = model == null ? void 0 : model.constructor) == null ? void 0 : _c.name;
86
- return byName || "*";
53
+ var _a, _b;
54
+ return ((_b = (_a = ctx == null ? void 0 : ctx.model) == null ? void 0 : _a.constructor) == null ? void 0 : _b.name) || "*";
87
55
  }
88
56
  __name(getModelClassName, "getModelClassName");
89
57
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,9 @@
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
+ export declare function setupRunJSContexts(): Promise<void>;
@@ -0,0 +1,88 @@
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 setup_exports = {};
39
+ __export(setup_exports, {
40
+ setupRunJSContexts: () => setupRunJSContexts
41
+ });
42
+ module.exports = __toCommonJS(setup_exports);
43
+ var import_registry = require("./registry");
44
+ var import_flowContext = require("../flowContext");
45
+ var import_base = require("./contexts/base");
46
+ var import_contributions = require("./contributions");
47
+ let done = false;
48
+ async function setupRunJSContexts() {
49
+ if (done) return;
50
+ (0, import_base.defineBaseContextMeta)();
51
+ const [
52
+ { JSBlockRunJSContext },
53
+ { JSFieldRunJSContext },
54
+ { JSEditableFieldRunJSContext },
55
+ { JSItemRunJSContext },
56
+ { JSColumnRunJSContext },
57
+ { FormJSFieldItemRunJSContext },
58
+ { JSRecordActionRunJSContext },
59
+ { JSCollectionActionRunJSContext }
60
+ ] = await Promise.all([
61
+ import("./contexts/JSBlockRunJSContext"),
62
+ import("./contexts/JSFieldRunJSContext"),
63
+ import("./contexts/JSEditableFieldRunJSContext"),
64
+ import("./contexts/JSItemRunJSContext"),
65
+ import("./contexts/JSColumnRunJSContext"),
66
+ import("./contexts/FormJSFieldItemRunJSContext"),
67
+ import("./contexts/JSRecordActionRunJSContext"),
68
+ import("./contexts/JSCollectionActionRunJSContext")
69
+ ]);
70
+ const v1 = "v1";
71
+ import_registry.RunJSContextRegistry.register(v1, "*", import_flowContext.FlowRunJSContext);
72
+ import_registry.RunJSContextRegistry.register(v1, "JSBlockModel", JSBlockRunJSContext, { scenes: ["block"] });
73
+ import_registry.RunJSContextRegistry.register(v1, "JSFieldModel", JSFieldRunJSContext, { scenes: ["detail"] });
74
+ import_registry.RunJSContextRegistry.register(v1, "JSEditableFieldModel", JSEditableFieldRunJSContext, { scenes: ["form"] });
75
+ import_registry.RunJSContextRegistry.register(v1, "JSItemModel", JSItemRunJSContext, { scenes: ["form"] });
76
+ import_registry.RunJSContextRegistry.register(v1, "JSColumnModel", JSColumnRunJSContext, { scenes: ["table"] });
77
+ import_registry.RunJSContextRegistry.register(v1, "FormJSFieldItemModel", FormJSFieldItemRunJSContext, { scenes: ["form"] });
78
+ import_registry.RunJSContextRegistry.register(v1, "JSRecordActionModel", JSRecordActionRunJSContext, { scenes: ["table"] });
79
+ import_registry.RunJSContextRegistry.register(v1, "JSCollectionActionModel", JSCollectionActionRunJSContext, { scenes: ["table"] });
80
+ await (0, import_contributions.applyRunJSContextContributions)(v1);
81
+ done = true;
82
+ (0, import_contributions.markRunJSContextsSetupDone)(v1);
83
+ }
84
+ __name(setupRunJSContexts, "setupRunJSContexts");
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ setupRunJSContexts
88
+ });
@@ -24,19 +24,34 @@ var __copyProps = (to, from, except, desc) => {
24
24
  return to;
25
25
  };
26
26
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
- var copy_record_json_snippet_exports = {};
28
- __export(copy_record_json_snippet_exports, {
29
- default: () => copy_record_json_snippet_default
27
+ var api_request_snippet_exports = {};
28
+ __export(api_request_snippet_exports, {
29
+ default: () => api_request_snippet_default
30
30
  });
31
- module.exports = __toCommonJS(copy_record_json_snippet_exports);
31
+ module.exports = __toCommonJS(api_request_snippet_exports);
32
32
  const snippet = {
33
33
  contexts: ["*"],
34
- prefix: "sn-copy-record",
35
- label: "Copy record JSON",
36
- description: "Copy current ctx.record JSON to clipboard",
34
+ prefix: "sn-api-request",
35
+ label: "API request template",
36
+ description: "Basic template to send HTTP requests via ctx.api.request",
37
+ locales: {
38
+ "zh-CN": {
39
+ label: "API \u8BF7\u6C42\u6A21\u677F",
40
+ description: "\u4F7F\u7528 ctx.api.request \u53D1\u9001 HTTP \u8BF7\u6C42\u7684\u57FA\u7840\u6A21\u677F"
41
+ }
42
+ },
37
43
  content: `
38
- await ctx.copyToClipboard(JSON.stringify(ctx.record ?? {}, null, 2));
39
- ctx.message.success(ctx.t('Record JSON copied to clipboard'));
44
+ // Replace url/method/params/data as needed
45
+ const response = await ctx.api.request({
46
+ url: 'users:list',
47
+ method: 'get',
48
+ params: {
49
+ pageSize: 10,
50
+ },
51
+ });
52
+
53
+ ctx.message.success(ctx.t('Request finished'));
54
+ console.log(ctx.t('Response data:'), response?.data);
40
55
  `
41
56
  };
42
- var copy_record_json_snippet_default = snippet;
57
+ var api_request_snippet_default = snippet;
@@ -0,0 +1,61 @@
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 __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var clipboard_copy_text_snippet_exports = {};
28
+ __export(clipboard_copy_text_snippet_exports, {
29
+ default: () => clipboard_copy_text_snippet_default
30
+ });
31
+ module.exports = __toCommonJS(clipboard_copy_text_snippet_exports);
32
+ const snippet = {
33
+ contexts: ["*"],
34
+ prefix: "sn-clipboard-copy",
35
+ label: "Copy text to clipboard (function)",
36
+ description: "A reusable function that copies a given string to the clipboard.",
37
+ locales: {
38
+ "zh-CN": {
39
+ label: "\u590D\u5236\u6587\u672C\u5230\u526A\u8D34\u677F\uFF08\u51FD\u6570\uFF09",
40
+ description: "\u901A\u7528\u51FD\u6570\uFF1A\u63A5\u53D7\u4E00\u4E2A\u5B57\u7B26\u4E32\u53C2\u6570\u5E76\u590D\u5236\u5230\u526A\u8D34\u677F\u3002"
41
+ }
42
+ },
43
+ content: `
44
+ // A general utility function that copies text to clipboard.
45
+ // Usage:
46
+ // const ok = await copyTextToClipboard('Hello');
47
+ // if (ok) { /* success */ } else { /* handle failure */ }
48
+ async function copyTextToClipboard(text) {
49
+ const s = String(text ?? '');
50
+ try {
51
+ if (navigator?.clipboard?.writeText) {
52
+ await navigator.clipboard.writeText(s);
53
+ return true;
54
+ }
55
+ } catch (_) {
56
+ // Fallback below
57
+ }
58
+ }
59
+ `
60
+ };
61
+ var clipboard_copy_text_snippet_default = snippet;
@@ -24,21 +24,35 @@ var __copyProps = (to, from, except, desc) => {
24
24
  return to;
25
25
  };
26
26
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
- var view_navigation_push_snippet_exports = {};
28
- __export(view_navigation_push_snippet_exports, {
29
- default: () => view_navigation_push_snippet_default
27
+ var import_esm_snippet_exports = {};
28
+ __export(import_esm_snippet_exports, {
29
+ default: () => import_esm_snippet_default
30
30
  });
31
- module.exports = __toCommonJS(view_navigation_push_snippet_exports);
31
+ module.exports = __toCommonJS(import_esm_snippet_exports);
32
32
  const snippet = {
33
33
  contexts: ["*"],
34
- versions: ["*"],
35
- prefix: "sn-nav-push",
36
- label: "View navigation: push",
37
- description: "Navigate within current view (if supported)",
34
+ prefix: "sn-import",
35
+ label: "Import ESM module",
36
+ description: "Dynamically import an ESM module by URL",
37
+ locales: {
38
+ "zh-CN": {
39
+ label: "\u5BFC\u5165 ESM \u6A21\u5757",
40
+ description: "\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757"
41
+ }
42
+ },
38
43
  content: `
39
- // Push a new sub-view (if navigation is available)
40
- ctx.view?.navigation?.push({ viewUid: 'detail', filterByTk: 1 });
41
- // To go back: ctx.view?.navigation?.back();
44
+ // Import an ESM module by URL
45
+ // Works in yarn dev and yarn start
46
+ const mod = await ctx.importAsync('https://cdn.jsdelivr.net/npm/lit-html@2/+esm');
47
+ const { html, render } = mod;
48
+
49
+ ctx.element.innerHTML = '';
50
+ const container = document.createElement('div');
51
+ container.style.padding = '8px';
52
+ container.style.border = '1px dashed #999';
53
+ ctx.element.append(container);
54
+
55
+ render(html\`<span style="color:#52c41a;">lit-html loaded and rendered</span>\`, container);
42
56
  `
43
57
  };
44
- var view_navigation_push_snippet_default = snippet;
58
+ var import_esm_snippet_default = snippet;
@@ -34,6 +34,12 @@ const snippet = {
34
34
  prefix: "sn-msg-error",
35
35
  label: "Message error",
36
36
  description: "Show an error toast message",
37
+ locales: {
38
+ "zh-CN": {
39
+ label: "\u9519\u8BEF\u6D88\u606F\u63D0\u793A",
40
+ description: "\u663E\u793A\u4E00\u6761\u9519\u8BEF\u63D0\u793A\u6D88\u606F"
41
+ }
42
+ },
37
43
  content: `
38
44
  ctx.message.error(ctx.t('Operation failed'));
39
45
  `
@@ -34,6 +34,12 @@ const snippet = {
34
34
  prefix: "sn-msg",
35
35
  label: "Message success",
36
36
  description: "Show a success toast message",
37
+ locales: {
38
+ "zh-CN": {
39
+ label: "\u6210\u529F\u6D88\u606F\u63D0\u793A",
40
+ description: "\u663E\u793A\u4E00\u6761\u6210\u529F\u63D0\u793A\u6D88\u606F"
41
+ }
42
+ },
37
43
  content: `
38
44
  ctx.message.success(ctx.t('Operation succeeded'));
39
45
  `
@@ -6,11 +6,6 @@
6
6
  * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
- declare const _default: {
10
- contexts: string[];
11
- prefix: string;
12
- label: string;
13
- description: string;
14
- content: string;
15
- };
16
- export default _default;
9
+ import type { SnippetModule } from '../types';
10
+ declare const snippet: SnippetModule;
11
+ export default snippet;
@@ -29,11 +29,17 @@ __export(notification_open_snippet_exports, {
29
29
  default: () => notification_open_snippet_default
30
30
  });
31
31
  module.exports = __toCommonJS(notification_open_snippet_exports);
32
- var notification_open_snippet_default = {
32
+ const snippet = {
33
33
  contexts: ["*"],
34
34
  prefix: "sn-notify",
35
35
  label: "Open notification",
36
36
  description: "Open an AntD notification with custom content",
37
+ locales: {
38
+ "zh-CN": {
39
+ label: "\u6253\u5F00\u901A\u77E5",
40
+ description: "\u5C55\u793A\u4E00\u6761\u81EA\u5B9A\u4E49\u5185\u5BB9\u7684\u901A\u77E5"
41
+ }
42
+ },
37
43
  content: `
38
44
  ctx.notification.open({
39
45
  message: ctx.t('Notification title'),
@@ -41,3 +47,4 @@ ctx.notification.open({
41
47
  });
42
48
  `
43
49
  };
50
+ var notification_open_snippet_default = snippet;