@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,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 __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 export_selected_json_snippet_exports = {};
28
+ __export(export_selected_json_snippet_exports, {
29
+ default: () => export_selected_json_snippet_default
30
+ });
31
+ module.exports = __toCommonJS(export_selected_json_snippet_exports);
32
+ var import_JSCollectionActionRunJSContext = require("../../../contexts/JSCollectionActionRunJSContext");
33
+ const snippet = {
34
+ contexts: [import_JSCollectionActionRunJSContext.JSCollectionActionRunJSContext],
35
+ prefix: "sn-act-export",
36
+ label: "Export selected rows as JSON",
37
+ description: "Download selected rows as a JSON file",
38
+ locales: {
39
+ "zh-CN": {
40
+ label: "\u5BFC\u51FA\u9009\u4E2D\u884C\u4E3A JSON",
41
+ description: "\u5C06\u9009\u4E2D\u7684\u884C\u5BFC\u51FA\u4E3A JSON \u6587\u4EF6\u4E0B\u8F7D"
42
+ }
43
+ },
44
+ content: `
45
+ const rows = ctx.resource?.getSelectedRows?.() || [];
46
+ if (!rows.length) {
47
+ ctx.message.warning(ctx.t('Please select at least one row'));
48
+ return;
49
+ }
50
+
51
+ // Create JSON file and download
52
+ const jsonStr = JSON.stringify(rows, null, 2);
53
+ const blob = new Blob([jsonStr], { type: 'application/json' });
54
+ const url = URL.createObjectURL(blob);
55
+ const link = document.createElement('a');
56
+ link.href = url;
57
+ link.download = \`export-\${new Date().toISOString().split('T')[0]}.json\`;
58
+ link.click();
59
+ URL.revokeObjectURL(url);
60
+
61
+ ctx.message.success(ctx.t('Exported {{count}} records', { count: rows.length }));
62
+ `
63
+ };
64
+ var export_selected_json_snippet_default = snippet;
@@ -0,0 +1,11 @@
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 type { SnippetModule } from '../../types';
10
+ declare const snippet: SnippetModule;
11
+ export default snippet;
@@ -29,10 +29,18 @@ __export(iterate_selected_rows_snippet_exports, {
29
29
  default: () => iterate_selected_rows_snippet_default
30
30
  });
31
31
  module.exports = __toCommonJS(iterate_selected_rows_snippet_exports);
32
- var iterate_selected_rows_snippet_default = {
33
- contexts: ["JSCollectionActionRunJSContext"],
32
+ var import_JSCollectionActionRunJSContext = require("../../../contexts/JSCollectionActionRunJSContext");
33
+ const snippet = {
34
+ contexts: [import_JSCollectionActionRunJSContext.JSCollectionActionRunJSContext],
34
35
  prefix: "sn-act-iterate",
35
36
  label: "Iterate selected rows",
37
+ description: "Loop through selected rows and process each record",
38
+ locales: {
39
+ "zh-CN": {
40
+ label: "\u904D\u5386\u9009\u4E2D\u884C",
41
+ description: "\u904D\u5386\u9009\u4E2D\u884C\u5E76\u5904\u7406\u6BCF\u6761\u8BB0\u5F55"
42
+ }
43
+ },
36
44
  content: `
37
45
  const rows = ctx.resource?.getSelectedRows?.() || [];
38
46
  for (const row of rows) {
@@ -41,3 +49,4 @@ for (const row of rows) {
41
49
  ctx.message.success(ctx.t('Processed {{count}} rows', { count: rows.length }));
42
50
  `
43
51
  };
52
+ var iterate_selected_rows_snippet_default = snippet;
@@ -6,11 +6,19 @@
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
+ export type SnippetContextSpecifier = string | {
10
+ name: string;
11
+ } | (new (...args: any[]) => any);
9
12
  export type SnippetModule = {
10
13
  content: string;
11
- contexts?: string[];
14
+ contexts?: SnippetContextSpecifier[];
12
15
  versions?: string[];
16
+ scenes?: string[];
13
17
  prefix?: string;
14
18
  label?: string;
15
19
  description?: string;
20
+ locales?: Record<string, {
21
+ label?: string;
22
+ description?: string;
23
+ }>;
16
24
  };
@@ -0,0 +1,28 @@
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 type { FlowContext } from './flowContext';
10
+ export type RunJSLibCache = 'global' | 'context';
11
+ export type RunJSLibLoader<T = any> = (ctx: FlowContext) => T | Promise<T>;
12
+ export declare function registerRunJSLib(name: string, loader: RunJSLibLoader, options?: {
13
+ cache?: RunJSLibCache;
14
+ }): void;
15
+ export declare function setupRunJSLibs(ctx: FlowContext): void;
16
+ export declare function setRunJSLibOverride(ctx: FlowContext, name: string, value: unknown, options?: {
17
+ topLevelKey?: string | false;
18
+ }): void;
19
+ export declare function externalReactRender(options: {
20
+ ctx: any;
21
+ entry: any;
22
+ vnode: any;
23
+ containerEl: any;
24
+ rootMap: WeakMap<any, any>;
25
+ unmountContainerRoot: () => void;
26
+ internalReact: any;
27
+ internalAntd: any;
28
+ }): any;
@@ -0,0 +1,532 @@
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 runjsLibs_exports = {};
39
+ __export(runjsLibs_exports, {
40
+ externalReactRender: () => externalReactRender,
41
+ registerRunJSLib: () => registerRunJSLib,
42
+ setRunJSLibOverride: () => setRunJSLibOverride,
43
+ setupRunJSLibs: () => setupRunJSLibs
44
+ });
45
+ module.exports = __toCommonJS(runjsLibs_exports);
46
+ var antdIcons = __toESM(require("@ant-design/icons"));
47
+ var import_reactive = require("@formily/reactive");
48
+ const __runjsLibRegistry = /* @__PURE__ */ new Map();
49
+ const __runjsLibResolvedCache = /* @__PURE__ */ new Map();
50
+ const __runjsLibPendingCache = /* @__PURE__ */ new Map();
51
+ const __runjsLibPendingByCtx = /* @__PURE__ */ new WeakMap();
52
+ const __runjsErrorBoundaryByReact = /* @__PURE__ */ new WeakMap();
53
+ function __runjsGetPendingMapForCtx(ctx) {
54
+ let m = __runjsLibPendingByCtx.get(ctx);
55
+ if (!m) {
56
+ m = /* @__PURE__ */ new Map();
57
+ __runjsLibPendingByCtx.set(ctx, m);
58
+ }
59
+ return m;
60
+ }
61
+ __name(__runjsGetPendingMapForCtx, "__runjsGetPendingMapForCtx");
62
+ function registerRunJSLib(name, loader, options) {
63
+ if (typeof name !== "string" || !name) return;
64
+ if (typeof loader !== "function") return;
65
+ __runjsLibRegistry.set(name, { loader, cache: (options == null ? void 0 : options.cache) || "global" });
66
+ __runjsLibResolvedCache.delete(name);
67
+ __runjsLibPendingCache.delete(name);
68
+ }
69
+ __name(registerRunJSLib, "registerRunJSLib");
70
+ function __runjsIsObject(val) {
71
+ return !!val && typeof val === "object";
72
+ }
73
+ __name(__runjsIsObject, "__runjsIsObject");
74
+ function __runjsHasOwn(obj, key) {
75
+ return __runjsIsObject(obj) && Object.prototype.hasOwnProperty.call(obj, key);
76
+ }
77
+ __name(__runjsHasOwn, "__runjsHasOwn");
78
+ function __runjsIsPromiseLike(val) {
79
+ if (!__runjsIsObject(val)) return false;
80
+ const then = val.then;
81
+ return typeof then === "function";
82
+ }
83
+ __name(__runjsIsPromiseLike, "__runjsIsPromiseLike");
84
+ function __runjsGetCtxValue(ctx, key) {
85
+ return ctx[key];
86
+ }
87
+ __name(__runjsGetCtxValue, "__runjsGetCtxValue");
88
+ async function __runjsEnsureLib(ctx, name) {
89
+ const libs = ctx == null ? void 0 : ctx.libs;
90
+ if (__runjsHasOwn(libs, name)) {
91
+ const existing = libs[name];
92
+ if (typeof existing !== "undefined") return existing;
93
+ }
94
+ const entry = __runjsLibRegistry.get(name);
95
+ if (!entry) return __runjsIsObject(libs) ? libs[name] : void 0;
96
+ const setLib = /* @__PURE__ */ __name((v2) => {
97
+ if (__runjsIsObject(libs)) libs[name] = v2;
98
+ }, "setLib");
99
+ if (entry.cache === "context") {
100
+ const pendingMap = __runjsGetPendingMapForCtx(ctx);
101
+ const existingPending2 = pendingMap.get(name);
102
+ if (existingPending2) {
103
+ const v3 = await existingPending2;
104
+ setLib(v3);
105
+ return v3;
106
+ }
107
+ const task2 = Promise.resolve().then(() => entry.loader(ctx)).then(
108
+ (v3) => {
109
+ pendingMap.delete(name);
110
+ return v3;
111
+ },
112
+ (err) => {
113
+ pendingMap.delete(name);
114
+ throw err;
115
+ }
116
+ );
117
+ pendingMap.set(name, task2);
118
+ const v2 = await task2;
119
+ setLib(v2);
120
+ return v2;
121
+ }
122
+ if (__runjsLibResolvedCache.has(name)) {
123
+ const v2 = __runjsLibResolvedCache.get(name);
124
+ setLib(v2);
125
+ return v2;
126
+ }
127
+ const existingPending = __runjsLibPendingCache.get(name);
128
+ if (existingPending) {
129
+ const v2 = await existingPending;
130
+ setLib(v2);
131
+ return v2;
132
+ }
133
+ const task = Promise.resolve().then(() => entry.loader(ctx)).then(
134
+ (v2) => {
135
+ __runjsLibResolvedCache.set(name, v2);
136
+ __runjsLibPendingCache.delete(name);
137
+ return v2;
138
+ },
139
+ (err) => {
140
+ __runjsLibPendingCache.delete(name);
141
+ throw err;
142
+ }
143
+ );
144
+ __runjsLibPendingCache.set(name, task);
145
+ const v = await task;
146
+ setLib(v);
147
+ return v;
148
+ }
149
+ __name(__runjsEnsureLib, "__runjsEnsureLib");
150
+ function setupRunJSLibAPIs(ctx) {
151
+ if (!ctx || typeof ctx !== "object") return;
152
+ if (typeof ctx.defineMethod !== "function") return;
153
+ ctx.defineMethod("__ensureLib", async function(name) {
154
+ if (typeof name !== "string" || !name) return void 0;
155
+ return await __runjsEnsureLib(this, name);
156
+ });
157
+ ctx.defineMethod("__ensureLibs", async function(names) {
158
+ if (!Array.isArray(names)) return;
159
+ for (const n of names) {
160
+ if (typeof n !== "string" || !n) continue;
161
+ await __runjsEnsureLib(this, n);
162
+ }
163
+ });
164
+ }
165
+ __name(setupRunJSLibAPIs, "setupRunJSLibAPIs");
166
+ const DEFAULT_RUNJS_LIBS = [
167
+ { name: "React", cache: "context", loader: /* @__PURE__ */ __name((ctx) => __runjsGetCtxValue(ctx, "React"), "loader") },
168
+ { name: "ReactDOM", cache: "context", loader: /* @__PURE__ */ __name((ctx) => __runjsGetCtxValue(ctx, "ReactDOM"), "loader") },
169
+ { name: "antd", cache: "context", loader: /* @__PURE__ */ __name((ctx) => __runjsGetCtxValue(ctx, "antd"), "loader") },
170
+ { name: "dayjs", cache: "context", loader: /* @__PURE__ */ __name((ctx) => __runjsGetCtxValue(ctx, "dayjs"), "loader") },
171
+ { name: "antdIcons", cache: "global", loader: /* @__PURE__ */ __name(() => antdIcons, "loader") },
172
+ { name: "lodash", cache: "global", loader: /* @__PURE__ */ __name(() => import("lodash").then((m) => m.default || m), "loader") },
173
+ { name: "formula", cache: "global", loader: /* @__PURE__ */ __name(() => import("@formulajs/formulajs").then((m) => m.default || m), "loader") },
174
+ { name: "math", cache: "global", loader: /* @__PURE__ */ __name(() => import("mathjs").then((m) => m), "loader") }
175
+ ];
176
+ let __defaultRunJSLibsRegistered = false;
177
+ function ensureDefaultRunJSLibsRegistered() {
178
+ if (__defaultRunJSLibsRegistered) return;
179
+ __defaultRunJSLibsRegistered = true;
180
+ for (const { name, loader, cache } of DEFAULT_RUNJS_LIBS) {
181
+ if (__runjsLibRegistry.has(name)) continue;
182
+ registerRunJSLib(name, loader, { cache });
183
+ }
184
+ }
185
+ __name(ensureDefaultRunJSLibsRegistered, "ensureDefaultRunJSLibsRegistered");
186
+ function resolveRegisteredLibSync(ctx, name) {
187
+ const entry = __runjsLibRegistry.get(name);
188
+ if (!entry) return void 0;
189
+ if (entry.cache === "global" && __runjsLibResolvedCache.has(name)) {
190
+ return __runjsLibResolvedCache.get(name);
191
+ }
192
+ const v = entry.loader(ctx);
193
+ if (__runjsIsPromiseLike(v)) return void 0;
194
+ if (entry.cache === "global") __runjsLibResolvedCache.set(name, v);
195
+ return v;
196
+ }
197
+ __name(resolveRegisteredLibSync, "resolveRegisteredLibSync");
198
+ function setupRunJSLibs(ctx) {
199
+ if (!ctx || typeof ctx !== "object") return;
200
+ if (typeof ctx.defineProperty !== "function") return;
201
+ ensureDefaultRunJSLibsRegistered();
202
+ const libs = {};
203
+ for (const { name } of DEFAULT_RUNJS_LIBS) {
204
+ Object.defineProperty(libs, name, {
205
+ configurable: true,
206
+ enumerable: true,
207
+ get() {
208
+ const v = resolveRegisteredLibSync(ctx, name);
209
+ Object.defineProperty(libs, name, {
210
+ configurable: true,
211
+ enumerable: true,
212
+ writable: true,
213
+ value: v
214
+ });
215
+ return v;
216
+ }
217
+ });
218
+ }
219
+ ctx.defineProperty("libs", { value: libs });
220
+ setupRunJSLibAPIs(ctx);
221
+ }
222
+ __name(setupRunJSLibs, "setupRunJSLibs");
223
+ function setRunJSLibOverride(ctx, name, value, options) {
224
+ const topLevelKey = (options == null ? void 0 : options.topLevelKey) === false ? null : (options == null ? void 0 : options.topLevelKey) || name;
225
+ if (topLevelKey) {
226
+ ctx.defineProperty(topLevelKey, { value });
227
+ }
228
+ const libs = ctx.libs;
229
+ Object.defineProperty(libs, name, {
230
+ configurable: true,
231
+ enumerable: true,
232
+ writable: true,
233
+ value
234
+ });
235
+ }
236
+ __name(setRunJSLibOverride, "setRunJSLibOverride");
237
+ function buildMixedReactHint(options) {
238
+ var _a;
239
+ const { ctx, internalReact, internalAntd } = options;
240
+ const lines = [];
241
+ const externalReact = ctx.React && ctx.React !== internalReact;
242
+ const internalReactDOM = !!((_a = ctx.ReactDOM) == null ? void 0 : _a.__nbRunjsInternalShim);
243
+ const usingInternalAntd = ctx.antd === internalAntd;
244
+ const externalAntd = ctx.antd && ctx.antd !== internalAntd;
245
+ if (externalReact && internalReactDOM) {
246
+ const reactInfo = ctx.__runjsExternalReact;
247
+ const v = reactInfo == null ? void 0 : reactInfo.version;
248
+ const domHint = v ? `react-dom@${v}/client` : "react-dom/client";
249
+ lines.push(
250
+ `- You have imported external React, but you're still using the built-in ReactDOM Root; please also run: await ctx.importAsync("${domHint}")`
251
+ );
252
+ }
253
+ if (externalAntd && !externalReact) {
254
+ lines.push(
255
+ `- You have imported external antd, but you're still using the built-in React; please run: await ctx.importAsync("react@18.x")`
256
+ );
257
+ lines.push(`- And make sure ReactDOM matches: await ctx.importAsync("react-dom@18.x/client")`);
258
+ }
259
+ if (externalReact && usingInternalAntd) {
260
+ lines.push(
261
+ `- You have imported external React, but you're still using the built-in antd; please switch to: await ctx.importAsync("antd@5.x")`
262
+ );
263
+ lines.push(`- If you use icon components, also import: await ctx.importAsync("@ant-design/icons@5.x")`);
264
+ }
265
+ return lines.length ? `
266
+
267
+ [RunJS Hint]
268
+ ${lines.join("\n")}` : "";
269
+ }
270
+ __name(buildMixedReactHint, "buildMixedReactHint");
271
+ function isReactHooksDispatcherNullError(err) {
272
+ const msg = String((err == null ? void 0 : err.message) || "");
273
+ if (!msg) return false;
274
+ if (!/Cannot read (?:properties|property) of (?:null|undefined) \(reading 'use[A-Za-z]+'\)/.test(msg)) return false;
275
+ const stack = String((err == null ? void 0 : err.stack) || "");
276
+ if (!stack) return false;
277
+ return /(?:^|\W)react@[^/\s)]+/i.test(stack) || /react\.mjs/i.test(stack) || /react\.(?:development|production)/i.test(stack);
278
+ }
279
+ __name(isReactHooksDispatcherNullError, "isReactHooksDispatcherNullError");
280
+ function extractReactVersionFromStack(err) {
281
+ var _a;
282
+ const stack = String((err == null ? void 0 : err.stack) || "");
283
+ if (!stack) return void 0;
284
+ const m = stack.match(/(?:^|\W)react@([^/\s)]+)/i);
285
+ const v = (_a = m == null ? void 0 : m[1]) == null ? void 0 : _a.trim();
286
+ return v || void 0;
287
+ }
288
+ __name(extractReactVersionFromStack, "extractReactVersionFromStack");
289
+ function buildReactDispatcherNullHint(options) {
290
+ const { ctx, internalReact, internalAntd, err } = options;
291
+ if (!isReactHooksDispatcherNullError(err)) return "";
292
+ const v = extractReactVersionFromStack(err);
293
+ const lines = [];
294
+ lines.push(`- This looks like a React Hooks crash caused by multiple React instances (hook dispatcher is null).`);
295
+ if (v) {
296
+ lines.push(`- Your stack trace includes external React: react@${v}.`);
297
+ lines.push(
298
+ `- Fix: import the same React BEFORE you read ctx.libs.React / call hooks / import React-based libs: await ctx.importAsync("react@${v}")`
299
+ );
300
+ } else {
301
+ lines.push(
302
+ `- Fix: import external React BEFORE you read ctx.libs.React / call hooks / import React-based libs (use the same version shown in the stack trace).`
303
+ );
304
+ }
305
+ const usingInternalAntd = ctx.antd === internalAntd;
306
+ if (usingInternalAntd) {
307
+ lines.push(`- If you use antd components, also switch to external antd: await ctx.importAsync("antd@5.x")`);
308
+ lines.push(`- If you use icon components, also import: await ctx.importAsync("@ant-design/icons@5.x")`);
309
+ }
310
+ return lines.length ? `
311
+
312
+ [RunJS Hint]
313
+ ${lines.join("\n")}` : "";
314
+ }
315
+ __name(buildReactDispatcherNullHint, "buildReactDispatcherNullHint");
316
+ function wrapErrorWithHint(err, messageWithHint) {
317
+ const e = new Error(messageWithHint);
318
+ e.cause = err;
319
+ try {
320
+ const name = typeof (err == null ? void 0 : err.name) === "string" ? err.name : "";
321
+ if (name) e.name = name;
322
+ } catch (_) {
323
+ }
324
+ try {
325
+ const stack = typeof (err == null ? void 0 : err.stack) === "string" ? err.stack : "";
326
+ if (stack) {
327
+ const lines = String(stack).split("\n");
328
+ if (lines.length) {
329
+ lines[0] = `${e.name}: ${messageWithHint}`;
330
+ e.stack = lines.join("\n");
331
+ }
332
+ }
333
+ } catch (_) {
334
+ }
335
+ return e;
336
+ }
337
+ __name(wrapErrorWithHint, "wrapErrorWithHint");
338
+ function getRunjsErrorBoundary(ReactLike) {
339
+ if (!ReactLike) return null;
340
+ const cached = __runjsErrorBoundaryByReact.get(ReactLike);
341
+ if (cached) return cached;
342
+ if (typeof ReactLike.createElement !== "function") return null;
343
+ const Base = ReactLike.Component;
344
+ if (typeof Base !== "function") return null;
345
+ const _RunjsErrorBoundary = class _RunjsErrorBoundary extends Base {
346
+ static getDerivedStateFromError(error) {
347
+ return { error };
348
+ }
349
+ state = {};
350
+ componentDidCatch(error) {
351
+ var _a, _b, _c;
352
+ try {
353
+ const enhance = (_a = this.props) == null ? void 0 : _a.enhanceReactError;
354
+ const enhanced = typeof enhance === "function" ? enhance(error) : error;
355
+ const msg = String((enhanced == null ? void 0 : enhanced.message) || "");
356
+ if (msg && /\[RunJS Hint\]/.test(msg)) {
357
+ console.error(msg);
358
+ const logger = (_c = (_b = this.props) == null ? void 0 : _b.ctx) == null ? void 0 : _c.logger;
359
+ if (logger && typeof logger.error === "function") {
360
+ logger.error(msg);
361
+ }
362
+ }
363
+ } catch (_) {
364
+ }
365
+ }
366
+ componentDidUpdate(prevProps) {
367
+ var _a, _b;
368
+ if ((prevProps == null ? void 0 : prevProps.resetKey) !== ((_a = this.props) == null ? void 0 : _a.resetKey) && ((_b = this.state) == null ? void 0 : _b.error)) {
369
+ this.setState({ error: void 0 });
370
+ }
371
+ }
372
+ render() {
373
+ var _a, _b;
374
+ const error = (_a = this.state) == null ? void 0 : _a.error;
375
+ if (!error) return this.props.children;
376
+ let msg = "";
377
+ try {
378
+ const enhance = (_b = this.props) == null ? void 0 : _b.enhanceReactError;
379
+ const enhanced = typeof enhance === "function" ? enhance(error) : error;
380
+ msg = String((enhanced == null ? void 0 : enhanced.message) || enhanced || (error == null ? void 0 : error.message) || error || "");
381
+ } catch (_) {
382
+ msg = String((error == null ? void 0 : error.message) || error || "");
383
+ }
384
+ const containerStyle = {
385
+ boxSizing: "border-box",
386
+ padding: 12,
387
+ borderRadius: 6,
388
+ border: "1px solid #ffccc7",
389
+ background: "#fff2f0",
390
+ color: "#a8071a",
391
+ fontSize: 12,
392
+ lineHeight: 1.5,
393
+ maxWidth: "100%",
394
+ overflow: "auto"
395
+ };
396
+ const preStyle = {
397
+ margin: 0,
398
+ whiteSpace: "pre-wrap",
399
+ wordBreak: "break-word",
400
+ fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
401
+ };
402
+ const titleStyle = { fontWeight: 600, marginBottom: 8 };
403
+ return ReactLike.createElement(
404
+ "div",
405
+ { style: containerStyle },
406
+ ReactLike.createElement("div", { style: titleStyle }, "RunJS render error"),
407
+ ReactLike.createElement("pre", { style: preStyle }, msg)
408
+ );
409
+ }
410
+ };
411
+ __name(_RunjsErrorBoundary, "RunjsErrorBoundary");
412
+ let RunjsErrorBoundary = _RunjsErrorBoundary;
413
+ __runjsErrorBoundaryByReact.set(ReactLike, RunjsErrorBoundary);
414
+ return RunjsErrorBoundary;
415
+ }
416
+ __name(getRunjsErrorBoundary, "getRunjsErrorBoundary");
417
+ function wrapVnodeWithRunjsErrorBoundary(options) {
418
+ const { ctx, vnode, enhanceReactError, resetKey } = options;
419
+ const ReactLike = ctx == null ? void 0 : ctx.React;
420
+ const Boundary = getRunjsErrorBoundary(ReactLike);
421
+ if (!Boundary) return vnode;
422
+ return ReactLike.createElement(Boundary, { ctx, enhanceReactError, resetKey }, vnode);
423
+ }
424
+ __name(wrapVnodeWithRunjsErrorBoundary, "wrapVnodeWithRunjsErrorBoundary");
425
+ function tryRenderWithExternalAntdTheme(options) {
426
+ var _a;
427
+ const { ctx, entry, containerEl, rootMap, unmountContainerRoot, enhanceReactError, internalReact, internalAntd } = options;
428
+ const canUseExternalAntd = !((_a = ctx.ReactDOM) == null ? void 0 : _a.__nbRunjsInternalShim) && ctx.React && ctx.React !== internalReact && ctx.antd && ctx.antd !== internalAntd && typeof ctx.antd.ConfigProvider !== "undefined";
429
+ if (!canUseExternalAntd) {
430
+ if (entry.disposeTheme) {
431
+ try {
432
+ entry.disposeTheme();
433
+ } catch (_) {
434
+ }
435
+ entry.disposeTheme = void 0;
436
+ }
437
+ return false;
438
+ }
439
+ const renderWithExternalAntdTheme = /* @__PURE__ */ __name(() => {
440
+ var _a2, _b, _c, _d, _e, _f, _g;
441
+ const themeToken = (_b = (_a2 = ctx == null ? void 0 : ctx.engine) == null ? void 0 : _a2.context) == null ? void 0 : _b.themeToken;
442
+ const appConfig = (_d = (_c = ctx == null ? void 0 : ctx.engine) == null ? void 0 : _c.context) == null ? void 0 : _d.antdConfig;
443
+ const locale = ((_g = (_f = (_e = ctx == null ? void 0 : ctx.engine) == null ? void 0 : _e.context) == null ? void 0 : _f.locales) == null ? void 0 : _g.antd) || (appConfig == null ? void 0 : appConfig.locale);
444
+ const ConfigProvider = ctx.antd.ConfigProvider;
445
+ const App = ctx.antd.App;
446
+ const configProps = {
447
+ popupMatchSelectWidth: false,
448
+ locale: locale || {}
449
+ };
450
+ if (appConfig && typeof appConfig === "object") {
451
+ if (typeof appConfig.direction !== "undefined") configProps.direction = appConfig.direction;
452
+ if (typeof appConfig.prefixCls === "string") configProps.prefixCls = appConfig.prefixCls;
453
+ if (typeof appConfig.iconPrefixCls === "string") configProps.iconPrefixCls = appConfig.iconPrefixCls;
454
+ if (typeof appConfig.getPopupContainer === "function")
455
+ configProps.getPopupContainer = appConfig.getPopupContainer;
456
+ if (appConfig.theme && typeof appConfig.theme === "object") configProps.theme = appConfig.theme;
457
+ }
458
+ const child = entry.lastVnode;
459
+ const wrapped = App ? ctx.React.createElement(ConfigProvider, configProps, ctx.React.createElement(App, null, child)) : ctx.React.createElement(ConfigProvider, configProps, child);
460
+ entry.root.render(wrapped);
461
+ }, "renderWithExternalAntdTheme");
462
+ if (!entry.disposeTheme) {
463
+ entry.disposeTheme = (0, import_reactive.autorun)(() => {
464
+ try {
465
+ if (containerEl && containerEl.nodeType === 1 && typeof containerEl.isConnected === "boolean" && !containerEl.isConnected && entry.wasConnected) {
466
+ queueMicrotask(() => {
467
+ const cur = rootMap.get(containerEl);
468
+ if (cur === entry) unmountContainerRoot();
469
+ });
470
+ return;
471
+ }
472
+ if (containerEl && containerEl.nodeType === 1 && typeof containerEl.isConnected === "boolean" && containerEl.isConnected) {
473
+ entry.wasConnected = true;
474
+ }
475
+ renderWithExternalAntdTheme();
476
+ } catch (e) {
477
+ throw enhanceReactError(e);
478
+ }
479
+ });
480
+ } else {
481
+ renderWithExternalAntdTheme();
482
+ }
483
+ return true;
484
+ }
485
+ __name(tryRenderWithExternalAntdTheme, "tryRenderWithExternalAntdTheme");
486
+ function externalReactRender(options) {
487
+ const { ctx, entry, vnode, containerEl, rootMap, unmountContainerRoot, internalReact, internalAntd } = options;
488
+ const enhanceReactError = /* @__PURE__ */ __name((err) => {
489
+ const msg = String((err == null ? void 0 : err.message) || err || "");
490
+ if (!msg) return err;
491
+ if (/\[RunJS Hint\]/.test(msg)) return err;
492
+ const invalidHookCall = /invalid hook call/i.test(msg);
493
+ const dispatcherNull = isReactHooksDispatcherNullError(err);
494
+ if (!invalidHookCall && !dispatcherNull) return err;
495
+ const hint = buildMixedReactHint({ ctx, internalReact, internalAntd }) || buildReactDispatcherNullHint({ ctx, internalReact, internalAntd, err });
496
+ if (!hint) return err;
497
+ return wrapErrorWithHint(err, `${msg}${hint}`);
498
+ }, "enhanceReactError");
499
+ try {
500
+ entry.__nbRunjsRenderSeq = (entry.__nbRunjsRenderSeq || 0) + 1;
501
+ entry.lastVnode = wrapVnodeWithRunjsErrorBoundary({
502
+ ctx,
503
+ vnode,
504
+ enhanceReactError,
505
+ resetKey: entry.__nbRunjsRenderSeq
506
+ });
507
+ const renderedWithExternalAntdTheme = tryRenderWithExternalAntdTheme({
508
+ ctx,
509
+ entry,
510
+ containerEl,
511
+ rootMap,
512
+ unmountContainerRoot,
513
+ enhanceReactError,
514
+ internalReact,
515
+ internalAntd
516
+ });
517
+ if (!renderedWithExternalAntdTheme) {
518
+ entry.root.render(entry.lastVnode);
519
+ }
520
+ return entry.root;
521
+ } catch (e) {
522
+ throw enhanceReactError(e);
523
+ }
524
+ }
525
+ __name(externalReactRender, "externalReactRender");
526
+ // Annotate the CommonJS export names for ESM import in node:
527
+ 0 && (module.exports = {
528
+ externalReactRender,
529
+ registerRunJSLib,
530
+ setRunJSLibOverride,
531
+ setupRunJSLibs
532
+ });