@nocobase/flow-engine 2.0.0-alpha.2 → 2.0.0-alpha.20
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.
- package/lib/BlockScopedFlowEngine.d.ts +23 -0
- package/lib/BlockScopedFlowEngine.js +90 -0
- package/lib/FlowContextProvider.d.ts +2 -2
- package/lib/FlowContextProvider.js +3 -3
- package/lib/FlowDefinition.d.ts +2 -2
- package/lib/JSRunner.js +3 -0
- package/lib/ViewScopedFlowEngine.d.ts +1 -1
- package/lib/components/FieldModelRenderer.js +10 -4
- package/lib/components/FieldSkeleton.d.ts +10 -0
- package/lib/components/FieldSkeleton.js +64 -0
- package/lib/components/FlowContextSelector.js +7 -2
- package/lib/components/FlowModelRenderer.d.ts +2 -5
- package/lib/components/FlowModelRenderer.js +16 -47
- package/lib/components/FormItem.js +5 -1
- package/lib/{runjs-context/snippets/global/requireAsync.snippet.d.ts → components/dnd/findModelUidPosition.d.ts} +4 -7
- package/lib/{runjs-context/snippets/scene/jsblock/jsx-mount.snippet.js → components/dnd/findModelUidPosition.js} +23 -19
- package/lib/components/dnd/gridDragPlanner.d.ts +130 -0
- package/lib/components/dnd/gridDragPlanner.js +497 -0
- package/lib/components/dnd/index.d.ts +2 -2
- package/lib/components/dnd/index.js +5 -5
- package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +7 -1
- package/lib/components/variables/VariableInput.js +16 -2
- package/lib/components/variables/VariableTag.js +43 -2
- package/lib/components/variables/types.d.ts +2 -0
- package/lib/data-source/index.d.ts +12 -4
- package/lib/data-source/index.js +18 -12
- package/lib/data-source/sortCollectionsByInherits.d.ts +10 -0
- package/lib/data-source/sortCollectionsByInherits.js +71 -0
- package/lib/executor/FlowExecutor.d.ts +4 -5
- package/lib/executor/FlowExecutor.js +122 -94
- package/lib/flowContext.d.ts +33 -5
- package/lib/flowContext.js +145 -74
- package/lib/flowEngine.d.ts +8 -1
- package/lib/flowEngine.js +12 -2
- package/lib/flowSettings.d.ts +2 -1
- package/lib/flowSettings.js +7 -3
- package/lib/hooks/useApplyAutoFlows.js +2 -1
- package/lib/index.d.ts +6 -1
- package/lib/index.js +29 -3
- package/lib/models/CollectionFieldModel.d.ts +2 -0
- package/lib/models/CollectionFieldModel.js +43 -3
- package/lib/models/flowModel.d.ts +28 -29
- package/lib/models/flowModel.js +110 -88
- package/lib/models/forkFlowModel.d.ts +2 -2
- package/lib/models/forkFlowModel.js +29 -6
- package/lib/provider.d.ts +3 -1
- package/lib/provider.js +7 -5
- package/lib/resources/multiRecordResource.js +2 -0
- package/lib/resources/singleRecordResource.js +1 -0
- package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.d.ts +1 -6
- package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +27 -20
- package/lib/runjs-context/contexts/JSBlockRunJSContext.d.ts +1 -6
- package/lib/runjs-context/contexts/JSBlockRunJSContext.js +46 -33
- package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.d.ts +1 -2
- package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.js +14 -15
- package/lib/runjs-context/contexts/{LinkageRunJSContext.d.ts → JSColumnRunJSContext.d.ts} +6 -3
- package/lib/runjs-context/contexts/JSColumnRunJSContext.js +78 -0
- package/lib/runjs-context/contexts/JSFieldRunJSContext.d.ts +1 -6
- package/lib/runjs-context/contexts/JSFieldRunJSContext.js +28 -24
- package/lib/runjs-context/contexts/JSItemRunJSContext.d.ts +1 -6
- package/lib/runjs-context/contexts/JSItemRunJSContext.js +24 -20
- package/lib/runjs-context/contexts/JSRecordActionRunJSContext.d.ts +1 -2
- package/lib/runjs-context/contexts/JSRecordActionRunJSContext.js +16 -17
- package/lib/runjs-context/contexts/base.d.ts +9 -0
- package/lib/runjs-context/contexts/base.js +169 -0
- package/lib/runjs-context/helpers.d.ts +5 -2
- package/lib/runjs-context/helpers.js +36 -27
- package/lib/runjs-context/registry.d.ts +7 -4
- package/lib/runjs-context/registry.js +10 -42
- package/lib/runjs-context/setup.d.ts +9 -0
- package/lib/runjs-context/setup.js +82 -0
- package/lib/runjs-context/snippets/global/{copy-record-json.snippet.js → api-request.snippet.js} +25 -10
- package/lib/runjs-context/snippets/global/clipboard-copy-text.snippet.js +61 -0
- package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.js → import-esm.snippet.js} +26 -12
- package/lib/runjs-context/snippets/global/message-error.snippet.js +6 -0
- package/lib/runjs-context/snippets/global/message-success.snippet.js +6 -0
- package/lib/runjs-context/snippets/global/notification-open.snippet.d.ts +3 -8
- package/lib/runjs-context/snippets/global/notification-open.snippet.js +8 -1
- package/lib/runjs-context/snippets/global/open-view-dialog.snippet.js +10 -3
- package/lib/runjs-context/snippets/global/open-view-drawer.snippet.js +10 -3
- package/lib/runjs-context/snippets/global/query-selector.snippet.js +53 -0
- package/lib/runjs-context/snippets/global/require-amd.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/global/{requireAsync.snippet.js → require-amd.snippet.js} +16 -13
- package/lib/runjs-context/snippets/global/window-open.snippet.d.ts +3 -8
- package/lib/runjs-context/snippets/global/window-open.snippet.js +8 -1
- package/lib/runjs-context/snippets/index.d.ts +14 -3
- package/lib/runjs-context/snippets/index.js +160 -40
- package/lib/runjs-context/snippets/scene/block/add-event-listener.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.js +11 -2
- package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.js +64 -0
- package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.js +99 -0
- package/lib/runjs-context/snippets/{libs → scene/block}/echarts-init.snippet.js +24 -7
- package/lib/runjs-context/snippets/scene/block/render-button-handler.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsblock → block}/render-button-handler.snippet.js +12 -6
- package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.js +57 -0
- package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.js +72 -0
- package/lib/runjs-context/snippets/scene/block/render-react.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsblock → block}/render-react.snippet.js +12 -11
- package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.js +100 -0
- package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.js +85 -0
- package/lib/runjs-context/snippets/scene/block/resource-example.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/resource-example.snippet.js +60 -0
- package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.js +283 -0
- package/lib/runjs-context/snippets/scene/block/vue-component.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/vue-component.snippet.js +124 -0
- package/lib/runjs-context/snippets/scene/detail/color-by-value.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsfield → detail}/color-by-value.snippet.js +13 -3
- package/lib/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/{global → scene/detail}/copy-to-clipboard.snippet.js +28 -6
- package/lib/runjs-context/snippets/scene/detail/format-number.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsfield → detail}/format-number.snippet.js +13 -3
- package/lib/runjs-context/snippets/scene/detail/innerHTML-value.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsfield → detail}/innerHTML-value.snippet.js +13 -3
- package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.js +82 -0
- package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.js +80 -0
- package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.js +74 -0
- package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.js +63 -0
- package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.js +81 -0
- package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.js +64 -0
- package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.js +74 -0
- package/lib/runjs-context/snippets/scene/form/render-basic.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.js +11 -2
- package/lib/runjs-context/snippets/scene/form/set-disabled.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.js +12 -3
- package/lib/runjs-context/snippets/scene/form/set-field-value.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.js +12 -3
- package/lib/runjs-context/snippets/scene/form/set-required.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.js +12 -3
- package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.js +67 -0
- package/lib/runjs-context/snippets/scene/form/toggle-visible.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.js +12 -3
- package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.js +64 -0
- package/lib/runjs-context/snippets/scene/table/collection-selected-count.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.js +11 -2
- package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.js +79 -0
- package/lib/runjs-context/snippets/scene/table/destroy-selected.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/{global/log-json-record.snippet.js → scene/table/destroy-selected.snippet.js} +24 -11
- package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.js +64 -0
- package/lib/runjs-context/snippets/scene/table/iterate-selected-rows.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.js +11 -2
- package/lib/runjs-context/snippets/types.d.ts +9 -1
- package/lib/types.d.ts +15 -3
- package/lib/types.js +4 -3
- package/lib/utils/buildSettingsViewInputArgs.d.ts +19 -0
- package/lib/utils/buildSettingsViewInputArgs.js +75 -0
- package/lib/utils/index.d.ts +3 -2
- package/lib/utils/index.js +5 -2
- package/lib/utils/params-resolvers.js +2 -2
- package/lib/utils/safeGlobals.d.ts +5 -3
- package/lib/utils/safeGlobals.js +40 -0
- package/lib/utils/serverContextParams.d.ts +1 -0
- package/lib/utils/variablesParams.d.ts +9 -5
- package/lib/utils/variablesParams.js +47 -36
- package/lib/views/PageComponent.js +2 -1
- package/lib/views/createViewMeta.d.ts +29 -1
- package/lib/views/createViewMeta.js +321 -72
- package/lib/views/index.d.ts +1 -0
- package/lib/views/index.js +3 -0
- package/lib/views/useDialog.d.ts +8 -8
- package/lib/views/useDialog.js +8 -7
- package/lib/views/useDrawer.d.ts +8 -8
- package/lib/views/useDrawer.js +40 -26
- package/lib/views/usePage.d.ts +8 -8
- package/lib/views/usePage.js +8 -7
- package/package.json +4 -3
- package/src/BlockScopedFlowEngine.ts +86 -0
- package/src/FlowContextProvider.tsx +4 -2
- package/src/JSRunner.ts +3 -0
- package/src/ViewScopedFlowEngine.ts +1 -1
- package/src/__tests__/JSRunner.test.ts +62 -53
- package/src/__tests__/blockScopedFlowEngine.test.ts +154 -0
- package/src/__tests__/flow-engine.test.ts +3 -0
- package/src/__tests__/flowContextCreateJSRunner.test.ts +163 -0
- package/src/__tests__/flowEngine.saveModel.test.ts +4 -0
- package/src/__tests__/flowRunJSContextDefine.test.ts +508 -0
- package/src/__tests__/globalFlowRegistry.test.ts +1 -1
- package/src/__tests__/runjsContext.test.ts +216 -35
- package/src/__tests__/runjsContextImplementations.test.ts +217 -0
- package/src/__tests__/runjsContextRuntime.test.ts +269 -0
- package/src/__tests__/runjsEdgeCases.test.ts +281 -0
- package/src/__tests__/runjsLocales.test.ts +36 -0
- package/src/__tests__/runjsRuntimeFeatures.test.ts +449 -0
- package/src/__tests__/runjsSnippets.test.ts +140 -0
- package/src/__tests__/viewScopedFlowEngine.test.ts +3 -3
- package/src/components/DynamicFlowsEditor.tsx +3 -4
- package/src/components/FieldModelRenderer.tsx +16 -5
- package/src/components/FieldSkeleton.tsx +27 -0
- package/src/components/FlowContextSelector.tsx +6 -2
- package/src/components/FlowModelRenderer.tsx +30 -78
- package/src/components/FormItem.tsx +8 -1
- package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +5 -5
- package/src/components/__tests__/gridDragPlanner.test.ts +494 -0
- package/src/components/dnd/README.md +149 -0
- package/src/components/dnd/findModelUidPosition.ts +26 -0
- package/src/components/dnd/gridDragPlanner.ts +659 -0
- package/src/components/dnd/index.tsx +3 -3
- package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +14 -1
- package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +1 -0
- package/src/components/variables/VariableInput.tsx +22 -2
- package/src/components/variables/VariableTag.tsx +54 -2
- package/src/components/variables/types.ts +2 -0
- package/src/data-source/__tests__/sortCollectionsByInherits.test.ts +125 -0
- package/src/data-source/index.ts +16 -10
- package/src/data-source/sortCollectionsByInherits.ts +61 -0
- package/src/executor/FlowExecutor.ts +160 -114
- package/src/executor/__tests__/flowExecutor.test.ts +151 -5
- package/src/flowContext.ts +196 -93
- package/src/flowEngine.ts +13 -2
- package/src/flowSettings.ts +8 -3
- package/src/hooks/useApplyAutoFlows.ts +3 -1
- package/src/index.ts +11 -1
- package/src/models/CollectionFieldModel.tsx +43 -4
- package/src/models/__tests__/flowModel.getFlows.sort.test.ts +4 -4
- package/src/models/__tests__/flowModel.test.ts +218 -95
- package/src/models/flowModel.tsx +146 -122
- package/src/models/forkFlowModel.ts +37 -5
- package/src/provider.tsx +10 -7
- package/src/resources/multiRecordResource.ts +2 -0
- package/src/resources/singleRecordResource.ts +1 -0
- package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +28 -21
- package/src/runjs-context/contexts/JSBlockRunJSContext.ts +46 -34
- package/src/runjs-context/contexts/JSCollectionActionRunJSContext.ts +15 -16
- package/src/runjs-context/contexts/JSColumnRunJSContext.ts +58 -0
- package/src/runjs-context/contexts/JSFieldRunJSContext.ts +30 -25
- package/src/runjs-context/contexts/JSItemRunJSContext.ts +25 -21
- package/src/runjs-context/contexts/JSRecordActionRunJSContext.ts +17 -18
- package/src/runjs-context/contexts/base.ts +155 -0
- package/src/runjs-context/helpers.ts +32 -30
- package/src/runjs-context/registry.ts +16 -47
- package/src/runjs-context/setup.ts +51 -0
- package/src/runjs-context/snippets/global/api-request.snippet.ts +38 -0
- package/src/runjs-context/snippets/global/clipboard-copy-text.snippet.ts +42 -0
- package/src/runjs-context/snippets/global/import-esm.snippet.ts +39 -0
- package/src/runjs-context/snippets/global/message-error.snippet.ts +6 -0
- package/src/runjs-context/snippets/global/message-success.snippet.ts +6 -0
- package/src/runjs-context/snippets/global/notification-open.snippet.ts +11 -1
- package/src/runjs-context/snippets/global/open-view-dialog.snippet.ts +10 -3
- package/src/runjs-context/snippets/global/open-view-drawer.snippet.ts +10 -3
- package/src/runjs-context/snippets/global/query-selector.snippet.ts +34 -0
- package/src/runjs-context/snippets/global/require-amd.snippet.ts +30 -0
- package/src/runjs-context/snippets/global/window-open.snippet.ts +11 -1
- package/src/runjs-context/snippets/index.ts +176 -39
- package/src/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.ts +14 -2
- package/src/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.ts +45 -0
- package/src/runjs-context/snippets/scene/block/chartjs-bar.snippet.ts +80 -0
- package/src/runjs-context/snippets/scene/block/echarts-init.snippet.ts +44 -0
- package/src/runjs-context/snippets/scene/{jsblock → block}/render-button-handler.snippet.ts +15 -6
- package/src/runjs-context/snippets/scene/block/render-iframe.snippet.ts +38 -0
- package/src/runjs-context/snippets/scene/block/render-info-card.snippet.ts +53 -0
- package/src/runjs-context/snippets/scene/{jsblock → block}/render-react.snippet.ts +15 -11
- package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +81 -0
- package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +66 -0
- package/src/runjs-context/snippets/scene/block/resource-example.snippet.ts +46 -0
- package/src/runjs-context/snippets/scene/block/three-users-orbit.snippet.ts +264 -0
- package/src/runjs-context/snippets/scene/block/vue-component.snippet.ts +105 -0
- package/src/runjs-context/snippets/scene/detail/color-by-value.snippet.ts +33 -0
- package/src/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.ts +45 -0
- package/src/runjs-context/snippets/scene/detail/format-number.snippet.ts +32 -0
- package/src/runjs-context/snippets/scene/detail/innerHTML-value.snippet.ts +31 -0
- package/src/runjs-context/snippets/scene/detail/percentage-bar.snippet.ts +63 -0
- package/src/runjs-context/snippets/scene/detail/relative-time.snippet.ts +61 -0
- package/src/runjs-context/snippets/scene/detail/status-tag.snippet.ts +55 -0
- package/src/runjs-context/snippets/scene/form/calculate-total.snippet.ts +44 -0
- package/src/runjs-context/snippets/scene/form/cascade-select.snippet.ts +62 -0
- package/src/runjs-context/snippets/scene/form/conditional-required.snippet.ts +45 -0
- package/src/runjs-context/snippets/scene/form/copy-field-values.snippet.ts +55 -0
- package/src/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.ts +14 -2
- package/src/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.ts +15 -3
- package/src/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.ts +15 -3
- package/src/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.ts +15 -3
- package/src/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.ts +48 -0
- package/src/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.ts +15 -3
- package/src/runjs-context/snippets/scene/table/cell-open-dialog.snippet.ts +45 -0
- package/src/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.ts +14 -2
- package/src/runjs-context/snippets/scene/table/concat-fields.snippet.ts +60 -0
- package/src/runjs-context/snippets/scene/table/destroy-selected.snippet.ts +36 -0
- package/src/runjs-context/snippets/scene/table/export-selected-json.snippet.ts +45 -0
- package/src/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.ts +14 -2
- package/src/runjs-context/snippets/types.ts +5 -1
- package/src/types.ts +13 -0
- package/src/utils/__tests__/safeGlobals.test.ts +22 -1
- package/src/utils/buildSettingsViewInputArgs.ts +72 -0
- package/src/utils/index.ts +2 -2
- package/src/utils/params-resolvers.ts +1 -1
- package/src/utils/safeGlobals.ts +49 -3
- package/src/utils/serverContextParams.ts +1 -0
- package/src/utils/variablesParams.ts +50 -38
- package/src/views/PageComponent.tsx +1 -1
- package/src/views/createViewMeta.ts +372 -70
- package/src/views/index.tsx +1 -0
- package/src/views/useDialog.tsx +12 -10
- package/src/views/useDrawer.tsx +60 -36
- package/src/views/usePage.tsx +13 -10
- package/lib/components/dnd/getMousePositionOnElement.d.ts +0 -50
- package/lib/components/dnd/getMousePositionOnElement.js +0 -95
- package/lib/components/dnd/moveBlock.d.ts +0 -33
- package/lib/components/dnd/moveBlock.js +0 -302
- package/lib/runjs-context/contexts/FlowRunJSContext.d.ts +0 -38
- package/lib/runjs-context/contexts/FlowRunJSContext.js +0 -217
- package/lib/runjs-context/contexts/LinkageRunJSContext.js +0 -62
- package/lib/runjs-context/index.d.ts +0 -19
- package/lib/runjs-context/index.js +0 -57
- package/lib/runjs-context/snippets/global/api-request-get.snippet.d.ts +0 -16
- package/lib/runjs-context/snippets/global/api-request-get.snippet.js +0 -42
- package/lib/runjs-context/snippets/global/api-request-post.snippet.d.ts +0 -16
- package/lib/runjs-context/snippets/global/api-request-post.snippet.js +0 -42
- package/lib/runjs-context/snippets/global/console-log-ctx.snippet.d.ts +0 -16
- package/lib/runjs-context/snippets/global/console-log-ctx.snippet.js +0 -41
- package/lib/runjs-context/snippets/global/sleep.snippet.d.ts +0 -16
- package/lib/runjs-context/snippets/global/sleep.snippet.js +0 -43
- package/lib/runjs-context/snippets/global/try-catch-async.snippet.d.ts +0 -16
- package/lib/runjs-context/snippets/global/try-catch-async.snippet.js +0 -44
- package/lib/runjs-context/snippets/libs/echarts-init.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/actions/collection-selected-count.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/actions/iterate-selected-rows.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.js +0 -43
- package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.js +0 -40
- package/lib/runjs-context/snippets/scene/jsblock/add-event-listener.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.js +0 -42
- package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.js +0 -41
- package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.js +0 -41
- package/lib/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsblock/render-card.snippet.js +0 -45
- package/lib/runjs-context/snippets/scene/jsblock/render-react.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsfield/color-by-value.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsfield/format-number.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/jsitem/render-basic.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/linkage/set-disabled.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/linkage/set-field-value.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/linkage/set-required.snippet.d.ts +0 -15
- package/lib/runjs-context/snippets/scene/linkage/toggle-visible.snippet.d.ts +0 -15
- package/src/components/dnd/getMousePositionOnElement.ts +0 -115
- package/src/components/dnd/moveBlock.ts +0 -379
- package/src/runjs-context/contexts/FlowRunJSContext.ts +0 -190
- package/src/runjs-context/contexts/LinkageRunJSContext.ts +0 -35
- package/src/runjs-context/index.ts +0 -20
- package/src/runjs-context/snippets/global/api-request-get.snippet.ts +0 -20
- package/src/runjs-context/snippets/global/api-request-post.snippet.ts +0 -20
- package/src/runjs-context/snippets/global/console-log-ctx.snippet.ts +0 -19
- package/src/runjs-context/snippets/global/copy-record-json.snippet.ts +0 -21
- package/src/runjs-context/snippets/global/copy-to-clipboard.snippet.ts +0 -21
- package/src/runjs-context/snippets/global/log-json-record.snippet.ts +0 -21
- package/src/runjs-context/snippets/global/requireAsync.snippet.ts +0 -24
- package/src/runjs-context/snippets/global/sleep.snippet.ts +0 -21
- package/src/runjs-context/snippets/global/try-catch-async.snippet.ts +0 -22
- package/src/runjs-context/snippets/global/view-navigation-push.snippet.ts +0 -23
- package/src/runjs-context/snippets/libs/echarts-init.snippet.ts +0 -24
- package/src/runjs-context/snippets/scene/actions/record-id-message.snippet.ts +0 -21
- package/src/runjs-context/snippets/scene/actions/run-action-basic.snippet.ts +0 -18
- package/src/runjs-context/snippets/scene/jsblock/append-style.snippet.ts +0 -20
- package/src/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.ts +0 -24
- package/src/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.ts +0 -19
- package/src/runjs-context/snippets/scene/jsblock/render-basic.snippet.ts +0 -24
- package/src/runjs-context/snippets/scene/jsblock/render-card.snippet.ts +0 -30
- package/src/runjs-context/snippets/scene/jsfield/color-by-value.snippet.ts +0 -20
- package/src/runjs-context/snippets/scene/jsfield/format-number.snippet.ts +0 -19
- package/src/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.ts +0 -18
- /package/lib/runjs-context/snippets/global/{copy-record-json.snippet.d.ts → api-request.snippet.d.ts} +0 -0
- /package/lib/runjs-context/snippets/global/{copy-to-clipboard.snippet.d.ts → clipboard-copy-text.snippet.d.ts} +0 -0
- /package/lib/runjs-context/snippets/global/{log-json-record.snippet.d.ts → import-esm.snippet.d.ts} +0 -0
- /package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.d.ts → query-selector.snippet.d.ts} +0 -0
- /package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.d.ts → block/echarts-init.snippet.d.ts} +0 -0
package/lib/flowContext.d.ts
CHANGED
|
@@ -18,7 +18,8 @@ import type { Location } from 'react-router-dom';
|
|
|
18
18
|
import { DataSourceManager } from './data-source';
|
|
19
19
|
import { FlowEngine } from './flowEngine';
|
|
20
20
|
import { JSRunner, JSRunnerOptions } from './JSRunner';
|
|
21
|
-
import { FlowModel
|
|
21
|
+
import type { FlowModel } from './models/flowModel';
|
|
22
|
+
import type { ForkFlowModel } from './models/forkFlowModel';
|
|
22
23
|
import { FlowResource, FlowSQLRepository } from './resources';
|
|
23
24
|
import type { ActionDefinition, EventDefinition, ResourceType } from './types';
|
|
24
25
|
import { JSONValue } from './utils/params-resolvers';
|
|
@@ -138,13 +139,11 @@ export declare class FlowContext {
|
|
|
138
139
|
*/
|
|
139
140
|
getPropertyOptions(key: string): PropertyOptions | undefined;
|
|
140
141
|
}
|
|
141
|
-
export declare class FlowRunjsContext extends FlowContext {
|
|
142
|
-
constructor(delegate: FlowContext);
|
|
143
|
-
}
|
|
144
142
|
declare class BaseFlowEngineContext extends FlowContext {
|
|
145
143
|
router: Router;
|
|
146
144
|
dataSourceManager: DataSourceManager;
|
|
147
145
|
requireAsync: (url: string) => Promise<any>;
|
|
146
|
+
importAsync: (url: string) => Promise<any>;
|
|
148
147
|
createJSRunner: (options?: JSRunnerOptions) => JSRunner;
|
|
149
148
|
/**
|
|
150
149
|
* @deprecated use `resolveJsonTemplate` instead
|
|
@@ -152,7 +151,6 @@ declare class BaseFlowEngineContext extends FlowContext {
|
|
|
152
151
|
renderJson: (template: JSONValue) => Promise<any>;
|
|
153
152
|
resolveJsonTemplate: (template: JSONValue) => Promise<any>;
|
|
154
153
|
runjs: (code: string, variables?: Record<string, any>, options?: JSRunnerOptions) => Promise<any>;
|
|
155
|
-
copyToClipboard: (text: string) => Promise<void>;
|
|
156
154
|
getAction: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>(name: string) => ActionDefinition<TModel, TCtx> | undefined;
|
|
157
155
|
getActions: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>() => Map<string, ActionDefinition<TModel, TCtx>>;
|
|
158
156
|
getEvents: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>() => Map<string, EventDefinition<TModel, TCtx>>;
|
|
@@ -212,4 +210,34 @@ export declare class FlowRuntimeContext<TModel extends FlowModel = FlowModel, TM
|
|
|
212
210
|
get mode(): TMode;
|
|
213
211
|
}
|
|
214
212
|
export type FlowSettingsContext<TModel extends FlowModel = FlowModel> = FlowRuntimeContext<TModel, 'settings'>;
|
|
213
|
+
export type RunJSDocCompletionDoc = {
|
|
214
|
+
insertText?: string;
|
|
215
|
+
};
|
|
216
|
+
export type RunJSDocPropertyDoc = string | {
|
|
217
|
+
description?: string;
|
|
218
|
+
detail?: string;
|
|
219
|
+
type?: string;
|
|
220
|
+
examples?: string[];
|
|
221
|
+
completion?: RunJSDocCompletionDoc;
|
|
222
|
+
properties?: Record<string, RunJSDocPropertyDoc>;
|
|
223
|
+
};
|
|
224
|
+
export type RunJSDocMethodDoc = string | {
|
|
225
|
+
description?: string;
|
|
226
|
+
detail?: string;
|
|
227
|
+
examples?: string[];
|
|
228
|
+
completion?: RunJSDocCompletionDoc;
|
|
229
|
+
};
|
|
230
|
+
export type RunJSDocMeta = {
|
|
231
|
+
label?: string;
|
|
232
|
+
properties?: Record<string, RunJSDocPropertyDoc>;
|
|
233
|
+
methods?: Record<string, RunJSDocMethodDoc>;
|
|
234
|
+
snippets?: Record<string, any>;
|
|
235
|
+
};
|
|
236
|
+
export declare class FlowRunJSContext extends FlowContext {
|
|
237
|
+
constructor(delegate: FlowContext);
|
|
238
|
+
static define(meta: RunJSDocMeta, options?: {
|
|
239
|
+
locale?: string;
|
|
240
|
+
}): void;
|
|
241
|
+
static getDoc(locale?: string): RunJSDocMeta;
|
|
242
|
+
}
|
|
215
243
|
export {};
|
package/lib/flowContext.js
CHANGED
|
@@ -51,7 +51,7 @@ __export(flowContext_exports, {
|
|
|
51
51
|
FlowEngineContext: () => FlowEngineContext,
|
|
52
52
|
FlowForkModelContext: () => FlowForkModelContext,
|
|
53
53
|
FlowModelContext: () => FlowModelContext,
|
|
54
|
-
|
|
54
|
+
FlowRunJSContext: () => FlowRunJSContext,
|
|
55
55
|
FlowRuntimeContext: () => FlowRuntimeContext
|
|
56
56
|
});
|
|
57
57
|
module.exports = __toCommonJS(flowContext_exports);
|
|
@@ -60,18 +60,19 @@ var antd = __toESM(require("antd"));
|
|
|
60
60
|
var import_lodash = __toESM(require("lodash"));
|
|
61
61
|
var import_qs = __toESM(require("qs"));
|
|
62
62
|
var import_react = __toESM(require("react"));
|
|
63
|
+
var ReactDOMClient = __toESM(require("react-dom/client"));
|
|
63
64
|
var import_Acl = require("./acl/Acl");
|
|
64
65
|
var import_ContextPathProxy = require("./ContextPathProxy");
|
|
65
66
|
var import_data_source = require("./data-source");
|
|
66
67
|
var import_flowEngine = require("./flowEngine");
|
|
67
68
|
var import_flowI18n = require("./flowI18n");
|
|
68
69
|
var import_JSRunner = require("./JSRunner");
|
|
69
|
-
var import_models = require("./models");
|
|
70
70
|
var import_resources = require("./resources");
|
|
71
71
|
var import_utils = require("./utils");
|
|
72
72
|
var import_exceptions = require("./utils/exceptions");
|
|
73
73
|
var import_params_resolvers = require("./utils/params-resolvers");
|
|
74
74
|
var import_serverContextParams = require("./utils/serverContextParams");
|
|
75
|
+
var import_registry = require("./runjs-context/registry");
|
|
75
76
|
var _proxy, _FlowContext_instances, createChildNodes_fn, findMetaByPath_fn, findMetaInDelegatesDeep_fn, findMetaInProperty_fn, resolvePathInMeta_fn, resolvePathInMetaAsync_fn, buildParentTitles_fn, toTreeNode_fn;
|
|
76
77
|
function isRecordRefLike(val) {
|
|
77
78
|
return !!(val && typeof val === "object" && "collection" in val && "filterByTk" in val);
|
|
@@ -657,34 +658,6 @@ toTreeNode_fn = /* @__PURE__ */ __name(function(name, metaOrFactory, paths = [na
|
|
|
657
658
|
}, "#toTreeNode");
|
|
658
659
|
__name(_FlowContext, "FlowContext");
|
|
659
660
|
let FlowContext = _FlowContext;
|
|
660
|
-
const _FlowRunjsContext = class _FlowRunjsContext extends FlowContext {
|
|
661
|
-
constructor(delegate) {
|
|
662
|
-
super();
|
|
663
|
-
this.addDelegate(delegate);
|
|
664
|
-
this.defineProperty("React", { value: import_react.default });
|
|
665
|
-
this.defineProperty("antd", { value: antd });
|
|
666
|
-
this.defineMethod(
|
|
667
|
-
"dispatchModelEvent",
|
|
668
|
-
async (modelOrUid, eventName, inputArgs) => {
|
|
669
|
-
var _a, _b;
|
|
670
|
-
let model = null;
|
|
671
|
-
if (typeof modelOrUid === "string") {
|
|
672
|
-
model = await this.engine.loadModel({ uid: modelOrUid });
|
|
673
|
-
} else if (modelOrUid instanceof import_models.FlowModel) {
|
|
674
|
-
model = modelOrUid;
|
|
675
|
-
}
|
|
676
|
-
if (model) {
|
|
677
|
-
model.context.addDelegate(this);
|
|
678
|
-
model.dispatchEvent(eventName, { navigation: false, ...(_b = (_a = this.model) == null ? void 0 : _a["getInputArgs"]) == null ? void 0 : _b.call(_a), ...inputArgs });
|
|
679
|
-
} else {
|
|
680
|
-
this.message.error(this.t("Model with ID {{uid}} not found", { uid: modelOrUid }));
|
|
681
|
-
}
|
|
682
|
-
}
|
|
683
|
-
);
|
|
684
|
-
}
|
|
685
|
-
};
|
|
686
|
-
__name(_FlowRunjsContext, "FlowRunjsContext");
|
|
687
|
-
let FlowRunjsContext = _FlowRunjsContext;
|
|
688
661
|
const _BaseFlowEngineContext = class _BaseFlowEngineContext extends FlowContext {
|
|
689
662
|
};
|
|
690
663
|
__name(_BaseFlowEngineContext, "BaseFlowEngineContext");
|
|
@@ -724,7 +697,7 @@ const _FlowEngineContext = class _FlowEngineContext extends BaseFlowEngineContex
|
|
|
724
697
|
});
|
|
725
698
|
this.defineMethod("runjs", async (code, variables, options) => {
|
|
726
699
|
const mergedGlobals = { ...(options == null ? void 0 : options.globals) || {}, ...variables || {} };
|
|
727
|
-
const runner = this.createJSRunner({
|
|
700
|
+
const runner = await this.createJSRunner({
|
|
728
701
|
...options || {},
|
|
729
702
|
globals: mergedGlobals
|
|
730
703
|
});
|
|
@@ -930,45 +903,54 @@ const _FlowEngineContext = class _FlowEngineContext extends BaseFlowEngineContex
|
|
|
930
903
|
);
|
|
931
904
|
});
|
|
932
905
|
});
|
|
933
|
-
this.defineMethod("
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
...options,
|
|
937
|
-
globals: {
|
|
938
|
-
ctx: runCtx,
|
|
939
|
-
window: (0, import_utils.createSafeWindow)(),
|
|
940
|
-
document: (0, import_utils.createSafeDocument)(),
|
|
941
|
-
...options == null ? void 0 : options.globals
|
|
942
|
-
}
|
|
943
|
-
});
|
|
944
|
-
});
|
|
945
|
-
this.defineMethod("copyToClipboard", async (text) => {
|
|
946
|
-
const content = String(text ?? "");
|
|
947
|
-
try {
|
|
948
|
-
if (typeof navigator !== "undefined" && navigator.clipboard && navigator.clipboard.writeText) {
|
|
949
|
-
await navigator.clipboard.writeText(content);
|
|
950
|
-
return;
|
|
951
|
-
}
|
|
952
|
-
} catch (e) {
|
|
906
|
+
this.defineMethod("importAsync", async (url) => {
|
|
907
|
+
if (!url || typeof url !== "string") {
|
|
908
|
+
throw new Error("invalid url");
|
|
953
909
|
}
|
|
954
|
-
|
|
910
|
+
const u = url.trim();
|
|
911
|
+
const g = globalThis;
|
|
912
|
+
g.__nocobaseImportAsyncCache = g.__nocobaseImportAsyncCache || /* @__PURE__ */ new Map();
|
|
913
|
+
const cache = g.__nocobaseImportAsyncCache;
|
|
914
|
+
if (cache.has(u)) return cache.get(u);
|
|
915
|
+
const nativeImport = /* @__PURE__ */ __name(() => import(
|
|
916
|
+
/* @vite-ignore */
|
|
917
|
+
/* webpackIgnore: true */
|
|
918
|
+
u
|
|
919
|
+
), "nativeImport");
|
|
920
|
+
const evalImport = /* @__PURE__ */ __name(() => {
|
|
921
|
+
const importer = (0, eval)("u => import(u)");
|
|
922
|
+
return importer(u);
|
|
923
|
+
}, "evalImport");
|
|
924
|
+
const p = (async () => {
|
|
955
925
|
try {
|
|
956
|
-
|
|
957
|
-
ta.value = content;
|
|
958
|
-
ta.setAttribute("readonly", "");
|
|
959
|
-
ta.style.position = "fixed";
|
|
960
|
-
ta.style.top = "-9999px";
|
|
961
|
-
document.body.appendChild(ta);
|
|
962
|
-
ta.focus();
|
|
963
|
-
ta.select();
|
|
964
|
-
const ok = document.execCommand("copy");
|
|
965
|
-
document.body.removeChild(ta);
|
|
966
|
-
if (ok) resolve();
|
|
967
|
-
else reject(new Error("execCommand copy failed"));
|
|
926
|
+
return await nativeImport();
|
|
968
927
|
} catch (err) {
|
|
969
|
-
|
|
928
|
+
try {
|
|
929
|
+
return await evalImport();
|
|
930
|
+
} catch (err2) {
|
|
931
|
+
throw err2 || err;
|
|
932
|
+
}
|
|
970
933
|
}
|
|
971
|
-
});
|
|
934
|
+
})();
|
|
935
|
+
cache.set(u, p);
|
|
936
|
+
return p;
|
|
937
|
+
});
|
|
938
|
+
this.defineMethod("createJSRunner", async function(options) {
|
|
939
|
+
try {
|
|
940
|
+
const mod = await import("./runjs-context/setup");
|
|
941
|
+
if (typeof (mod == null ? void 0 : mod.setupRunJSContexts) === "function") await mod.setupRunJSContexts();
|
|
942
|
+
} catch (_2) {
|
|
943
|
+
}
|
|
944
|
+
const version = (options == null ? void 0 : options.version) || "v1";
|
|
945
|
+
const modelClass = (0, import_registry.getModelClassName)(this);
|
|
946
|
+
const Ctor = import_registry.RunJSContextRegistry.resolve(version, modelClass) || import_registry.RunJSContextRegistry.resolve(version, "*") || FlowRunJSContext;
|
|
947
|
+
let runCtx;
|
|
948
|
+
if (Ctor) {
|
|
949
|
+
runCtx = new Ctor(this);
|
|
950
|
+
}
|
|
951
|
+
const globals = { ctx: runCtx, ...(options == null ? void 0 : options.globals) || {} };
|
|
952
|
+
const { timeoutMs } = options || {};
|
|
953
|
+
return new import_JSRunner.JSRunner({ globals, timeoutMs });
|
|
972
954
|
});
|
|
973
955
|
this.defineMethod("buildServerContextParams", function(input) {
|
|
974
956
|
return (0, import_serverContextParams.buildServerContextParams)(this, input);
|
|
@@ -1019,13 +1001,22 @@ const _FlowEngineContext = class _FlowEngineContext extends BaseFlowEngineContex
|
|
|
1019
1001
|
context: this.createProxy()
|
|
1020
1002
|
});
|
|
1021
1003
|
});
|
|
1004
|
+
this.defineMethod(
|
|
1005
|
+
"useResource",
|
|
1006
|
+
function(className) {
|
|
1007
|
+
if (this.has("resource")) return;
|
|
1008
|
+
this.defineProperty("resource", {
|
|
1009
|
+
get: /* @__PURE__ */ __name(() => this.createResource(className), "get")
|
|
1010
|
+
});
|
|
1011
|
+
}
|
|
1012
|
+
);
|
|
1022
1013
|
}
|
|
1023
1014
|
};
|
|
1024
1015
|
__name(_FlowEngineContext, "FlowEngineContext");
|
|
1025
1016
|
let FlowEngineContext = _FlowEngineContext;
|
|
1026
1017
|
const _FlowModelContext = class _FlowModelContext extends BaseFlowModelContext {
|
|
1027
1018
|
constructor(model) {
|
|
1028
|
-
if (!
|
|
1019
|
+
if (!model || typeof model !== "object") {
|
|
1029
1020
|
throw new Error("Invalid FlowModel instance");
|
|
1030
1021
|
}
|
|
1031
1022
|
super();
|
|
@@ -1034,7 +1025,7 @@ const _FlowModelContext = class _FlowModelContext extends BaseFlowModelContext {
|
|
|
1034
1025
|
this.engine.reactView.onRefReady(ref, cb, timeout);
|
|
1035
1026
|
});
|
|
1036
1027
|
this.defineMethod("runjs", async (code, variables, options) => {
|
|
1037
|
-
const runner = this.createJSRunner({
|
|
1028
|
+
const runner = await this.createJSRunner({
|
|
1038
1029
|
globals: variables,
|
|
1039
1030
|
version: options == null ? void 0 : options.version
|
|
1040
1031
|
});
|
|
@@ -1043,10 +1034,11 @@ const _FlowModelContext = class _FlowModelContext extends BaseFlowModelContext {
|
|
|
1043
1034
|
this.defineProperty("model", {
|
|
1044
1035
|
value: model
|
|
1045
1036
|
});
|
|
1037
|
+
const stableRef = (0, import_react.createRef)();
|
|
1046
1038
|
this.defineProperty("ref", {
|
|
1047
1039
|
get: /* @__PURE__ */ __name(() => {
|
|
1048
1040
|
this.model["_refCreated"] = true;
|
|
1049
|
-
return
|
|
1041
|
+
return stableRef;
|
|
1050
1042
|
}, "get")
|
|
1051
1043
|
});
|
|
1052
1044
|
this.defineMethod("openView", async function(uid, options) {
|
|
@@ -1143,7 +1135,7 @@ __name(_FlowModelContext, "FlowModelContext");
|
|
|
1143
1135
|
let FlowModelContext = _FlowModelContext;
|
|
1144
1136
|
const _FlowForkModelContext = class _FlowForkModelContext extends BaseFlowModelContext {
|
|
1145
1137
|
constructor(master, fork) {
|
|
1146
|
-
if (!
|
|
1138
|
+
if (!master || typeof master !== "object") {
|
|
1147
1139
|
throw new Error("Invalid FlowModel instance");
|
|
1148
1140
|
}
|
|
1149
1141
|
super();
|
|
@@ -1156,14 +1148,15 @@ const _FlowForkModelContext = class _FlowForkModelContext extends BaseFlowModelC
|
|
|
1156
1148
|
this.defineProperty("model", {
|
|
1157
1149
|
get: /* @__PURE__ */ __name(() => this.fork, "get")
|
|
1158
1150
|
});
|
|
1151
|
+
const stableRef = (0, import_react.createRef)();
|
|
1159
1152
|
this.defineProperty("ref", {
|
|
1160
1153
|
get: /* @__PURE__ */ __name(() => {
|
|
1161
1154
|
this.fork["_refCreated"] = true;
|
|
1162
|
-
return
|
|
1155
|
+
return stableRef;
|
|
1163
1156
|
}, "get")
|
|
1164
1157
|
});
|
|
1165
1158
|
this.defineMethod("runjs", async (code, variables, options) => {
|
|
1166
|
-
const runner = this.createJSRunner({
|
|
1159
|
+
const runner = await this.createJSRunner({
|
|
1167
1160
|
globals: variables,
|
|
1168
1161
|
version: options == null ? void 0 : options.version
|
|
1169
1162
|
});
|
|
@@ -1214,7 +1207,7 @@ const _FlowRuntimeContext = class _FlowRuntimeContext extends BaseFlowModelConte
|
|
|
1214
1207
|
this.engine.reactView.onRefReady(ref, cb, timeout);
|
|
1215
1208
|
});
|
|
1216
1209
|
this.defineMethod("runjs", async (code, variables, options) => {
|
|
1217
|
-
const runner = this.createJSRunner({
|
|
1210
|
+
const runner = await this.createJSRunner({
|
|
1218
1211
|
globals: variables,
|
|
1219
1212
|
version: options == null ? void 0 : options.version
|
|
1220
1213
|
});
|
|
@@ -1255,12 +1248,90 @@ const _FlowRuntimeContext = class _FlowRuntimeContext extends BaseFlowModelConte
|
|
|
1255
1248
|
};
|
|
1256
1249
|
__name(_FlowRuntimeContext, "FlowRuntimeContext");
|
|
1257
1250
|
let FlowRuntimeContext = _FlowRuntimeContext;
|
|
1251
|
+
const __runjsClassDefaultMeta = /* @__PURE__ */ new WeakMap();
|
|
1252
|
+
const __runjsClassLocaleMeta = /* @__PURE__ */ new WeakMap();
|
|
1253
|
+
const __runjsDocCache = /* @__PURE__ */ new WeakMap();
|
|
1254
|
+
function __runjsDeepMerge(base, patch) {
|
|
1255
|
+
if (patch === null) return void 0;
|
|
1256
|
+
if (Array.isArray(base) || Array.isArray(patch) || typeof base !== "object" || typeof patch !== "object") {
|
|
1257
|
+
return patch ?? base;
|
|
1258
|
+
}
|
|
1259
|
+
const out = { ...base };
|
|
1260
|
+
for (const k of Object.keys(patch)) {
|
|
1261
|
+
const v = __runjsDeepMerge(base == null ? void 0 : base[k], patch[k]);
|
|
1262
|
+
if (typeof v === "undefined") delete out[k];
|
|
1263
|
+
else out[k] = v;
|
|
1264
|
+
}
|
|
1265
|
+
return out;
|
|
1266
|
+
}
|
|
1267
|
+
__name(__runjsDeepMerge, "__runjsDeepMerge");
|
|
1268
|
+
const _FlowRunJSContext = class _FlowRunJSContext extends FlowContext {
|
|
1269
|
+
constructor(delegate) {
|
|
1270
|
+
super();
|
|
1271
|
+
this.addDelegate(delegate);
|
|
1272
|
+
this.defineProperty("React", { value: import_react.default });
|
|
1273
|
+
this.defineProperty("antd", { value: antd });
|
|
1274
|
+
const ReactDOMShim = {
|
|
1275
|
+
...ReactDOMClient,
|
|
1276
|
+
createRoot: /* @__PURE__ */ __name((container, options) => {
|
|
1277
|
+
const realContainer = (container == null ? void 0 : container.__el) || container;
|
|
1278
|
+
return this.engine.reactView.createRoot(realContainer, options);
|
|
1279
|
+
}, "createRoot")
|
|
1280
|
+
};
|
|
1281
|
+
this.defineProperty("ReactDOM", { value: ReactDOMShim });
|
|
1282
|
+
}
|
|
1283
|
+
static define(meta, options) {
|
|
1284
|
+
const locale = options == null ? void 0 : options.locale;
|
|
1285
|
+
if (locale) {
|
|
1286
|
+
const map = __runjsClassLocaleMeta.get(this) || /* @__PURE__ */ new Map();
|
|
1287
|
+
const prev = map.get(locale) || {};
|
|
1288
|
+
map.set(locale, __runjsDeepMerge(prev, meta));
|
|
1289
|
+
__runjsClassLocaleMeta.set(this, map);
|
|
1290
|
+
} else {
|
|
1291
|
+
const prev = __runjsClassDefaultMeta.get(this) || {};
|
|
1292
|
+
__runjsClassDefaultMeta.set(this, __runjsDeepMerge(prev, meta));
|
|
1293
|
+
}
|
|
1294
|
+
__runjsDocCache.delete(this);
|
|
1295
|
+
}
|
|
1296
|
+
static getDoc(locale) {
|
|
1297
|
+
const self = this;
|
|
1298
|
+
let cacheForClass = __runjsDocCache.get(self);
|
|
1299
|
+
const cacheKey = String(locale || "default");
|
|
1300
|
+
if (cacheForClass && cacheForClass.has(cacheKey)) return cacheForClass.get(cacheKey);
|
|
1301
|
+
const chain = [];
|
|
1302
|
+
let cur = self;
|
|
1303
|
+
while (cur && cur.prototype) {
|
|
1304
|
+
chain.unshift(cur);
|
|
1305
|
+
cur = Object.getPrototypeOf(cur);
|
|
1306
|
+
}
|
|
1307
|
+
let merged = {};
|
|
1308
|
+
for (const cls of chain) {
|
|
1309
|
+
merged = __runjsDeepMerge(merged, __runjsClassDefaultMeta.get(cls) || {});
|
|
1310
|
+
}
|
|
1311
|
+
if (locale) {
|
|
1312
|
+
for (const cls of chain) {
|
|
1313
|
+
const lmap = __runjsClassLocaleMeta.get(cls);
|
|
1314
|
+
if (lmap && lmap.has(locale)) {
|
|
1315
|
+
merged = __runjsDeepMerge(merged, lmap.get(locale));
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
if (!cacheForClass) {
|
|
1320
|
+
cacheForClass = /* @__PURE__ */ new Map();
|
|
1321
|
+
__runjsDocCache.set(self, cacheForClass);
|
|
1322
|
+
}
|
|
1323
|
+
cacheForClass.set(cacheKey, merged);
|
|
1324
|
+
return merged;
|
|
1325
|
+
}
|
|
1326
|
+
};
|
|
1327
|
+
__name(_FlowRunJSContext, "FlowRunJSContext");
|
|
1328
|
+
let FlowRunJSContext = _FlowRunJSContext;
|
|
1258
1329
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1259
1330
|
0 && (module.exports = {
|
|
1260
1331
|
FlowContext,
|
|
1261
1332
|
FlowEngineContext,
|
|
1262
1333
|
FlowForkModelContext,
|
|
1263
1334
|
FlowModelContext,
|
|
1264
|
-
|
|
1335
|
+
FlowRunJSContext,
|
|
1265
1336
|
FlowRuntimeContext
|
|
1266
1337
|
});
|
package/lib/flowEngine.d.ts
CHANGED
|
@@ -95,7 +95,7 @@ export declare class FlowEngine {
|
|
|
95
95
|
*/
|
|
96
96
|
reactView: ReactView;
|
|
97
97
|
/**
|
|
98
|
-
* Flow executor that runs
|
|
98
|
+
* Flow executor that runs event flows.
|
|
99
99
|
*/
|
|
100
100
|
executor: FlowExecutor;
|
|
101
101
|
/**
|
|
@@ -304,6 +304,13 @@ export declare class FlowEngine {
|
|
|
304
304
|
* @returns {Promise<boolean>} Whether destroyed successfully
|
|
305
305
|
*/
|
|
306
306
|
destroyModel(uid: string): Promise<boolean>;
|
|
307
|
+
/**
|
|
308
|
+
* Duplicate a model tree via repository API.
|
|
309
|
+
* Returns the duplicated model JSON (root with subModels) or null if not available.
|
|
310
|
+
* @param {string} uid UID of the model to duplicate
|
|
311
|
+
* @returns {Promise<any | null>} Duplicated model JSON or null
|
|
312
|
+
*/
|
|
313
|
+
duplicateModel(uid: string): Promise<Record<string, any>>;
|
|
307
314
|
/**
|
|
308
315
|
* Replace a model instance with a new instance of a class.
|
|
309
316
|
* @template T New model type
|
package/lib/flowEngine.js
CHANGED
|
@@ -132,7 +132,7 @@ const _FlowEngine = class _FlowEngine {
|
|
|
132
132
|
*/
|
|
133
133
|
__publicField(this, "reactView");
|
|
134
134
|
/**
|
|
135
|
-
* Flow executor that runs
|
|
135
|
+
* Flow executor that runs event flows.
|
|
136
136
|
*/
|
|
137
137
|
__publicField(this, "executor");
|
|
138
138
|
this.reactView = new import_ReactView.ReactView(this);
|
|
@@ -629,6 +629,16 @@ const _FlowEngine = class _FlowEngine {
|
|
|
629
629
|
}
|
|
630
630
|
return this.removeModel(uid);
|
|
631
631
|
}
|
|
632
|
+
/**
|
|
633
|
+
* Duplicate a model tree via repository API.
|
|
634
|
+
* Returns the duplicated model JSON (root with subModels) or null if not available.
|
|
635
|
+
* @param {string} uid UID of the model to duplicate
|
|
636
|
+
* @returns {Promise<any | null>} Duplicated model JSON or null
|
|
637
|
+
*/
|
|
638
|
+
async duplicateModel(uid) {
|
|
639
|
+
if (!this.ensureModelRepository()) return null;
|
|
640
|
+
return this._modelRepository.duplicate(uid);
|
|
641
|
+
}
|
|
632
642
|
/**
|
|
633
643
|
* Replace a model instance with a new instance of a class.
|
|
634
644
|
* @template T New model type
|
|
@@ -674,7 +684,7 @@ const _FlowEngine = class _FlowEngine {
|
|
|
674
684
|
}
|
|
675
685
|
if (currentParent) {
|
|
676
686
|
currentParent.emitter.setPaused(false);
|
|
677
|
-
currentParent.parent.
|
|
687
|
+
currentParent.parent.invalidateFlowCache("beforeRender", true);
|
|
678
688
|
(_a = currentParent.parent) == null ? void 0 : _a.rerender();
|
|
679
689
|
currentParent.emitter.emit("onSubModelReplaced", { oldModel, newModel });
|
|
680
690
|
}
|
package/lib/flowSettings.d.ts
CHANGED
|
@@ -227,12 +227,13 @@ export declare class FlowSettings {
|
|
|
227
227
|
* @param {any} form 表单实例(从外部传入以便统一管理)
|
|
228
228
|
* @returns {React.ReactElement} 渲染的表单元素
|
|
229
229
|
*/
|
|
230
|
-
renderStepForm({ uiSchema, initialValues, flowEngine, form, onFormValuesChange, }: {
|
|
230
|
+
renderStepForm({ uiSchema, initialValues, flowEngine, form, onFormValuesChange, key, }: {
|
|
231
231
|
uiSchema: any;
|
|
232
232
|
initialValues: any;
|
|
233
233
|
flowEngine: any;
|
|
234
234
|
form?: any;
|
|
235
235
|
onFormValuesChange?: (form: any) => void;
|
|
236
|
+
key?: string;
|
|
236
237
|
}): React.ReactElement;
|
|
237
238
|
/**
|
|
238
239
|
* 打开流程设置入口(聚合渲染多个 flow 的可配置步骤)
|
package/lib/flowSettings.js
CHANGED
|
@@ -152,7 +152,7 @@ const _FlowSettings = class _FlowSettings {
|
|
|
152
152
|
TreeSelect,
|
|
153
153
|
Upload
|
|
154
154
|
} = await import("@formily/antd-v5");
|
|
155
|
-
const { Button: Button2 } = await import("antd");
|
|
155
|
+
const { Button: Button2, Alert } = await import("antd");
|
|
156
156
|
this.components.Form = Form;
|
|
157
157
|
this.components.FormDialog = FormDialog;
|
|
158
158
|
this.components.FormDrawer = FormDrawer;
|
|
@@ -186,6 +186,7 @@ const _FlowSettings = class _FlowSettings {
|
|
|
186
186
|
this.components.Space = Space2;
|
|
187
187
|
this.components.Editable = Editable;
|
|
188
188
|
this.components.PreviewText = PreviewText;
|
|
189
|
+
this.components.Alert = Alert;
|
|
189
190
|
this.components.Button = Button2;
|
|
190
191
|
this.components.Submit = Submit;
|
|
191
192
|
this.components.Reset = Reset;
|
|
@@ -376,7 +377,8 @@ const _FlowSettings = class _FlowSettings {
|
|
|
376
377
|
initialValues,
|
|
377
378
|
flowEngine,
|
|
378
379
|
form,
|
|
379
|
-
onFormValuesChange: onFormValuesChange2
|
|
380
|
+
onFormValuesChange: onFormValuesChange2,
|
|
381
|
+
key
|
|
380
382
|
}) {
|
|
381
383
|
var _a, _b;
|
|
382
384
|
const scopes = {
|
|
@@ -399,7 +401,7 @@ const _FlowSettings = class _FlowSettings {
|
|
|
399
401
|
const SchemaField = (0, import_react.createSchemaField)();
|
|
400
402
|
return import_react2.default.createElement(
|
|
401
403
|
FormProviderWithForm,
|
|
402
|
-
{ form, initialValues, onFormValuesChange: onFormValuesChange2 },
|
|
404
|
+
{ form, initialValues, onFormValuesChange: onFormValuesChange2, key },
|
|
403
405
|
import_react2.default.createElement(SchemaField, {
|
|
404
406
|
schema: compiledSchema,
|
|
405
407
|
components: ((_b = flowEngine == null ? void 0 : flowEngine.flowSettings) == null ? void 0 : _b.components) || {},
|
|
@@ -602,6 +604,8 @@ const _FlowSettings = class _FlowSettings {
|
|
|
602
604
|
zIndex: 5e3,
|
|
603
605
|
// 允许透传其它 props(如 maskClosable、footer 等),但确保 content 由我们接管
|
|
604
606
|
...modeProps,
|
|
607
|
+
// 统一构造 settings 弹窗的 inputArgs(集合/记录/父导航/关联)
|
|
608
|
+
inputArgs: (0, import_utils.buildSettingsViewInputArgs)(model, modeProps == null ? void 0 : modeProps.inputArgs),
|
|
605
609
|
content: /* @__PURE__ */ __name((currentView, viewCtx) => {
|
|
606
610
|
viewCtx == null ? void 0 : viewCtx.defineMethod("getStepFormValues", (flowKey2, stepKey2) => {
|
|
607
611
|
var _a2;
|
|
@@ -44,7 +44,8 @@ function useApplyAutoFlows(modelOrUid, inputArgs, options) {
|
|
|
44
44
|
model == null ? void 0 : model.useHooksBeforeRender();
|
|
45
45
|
const { loading, error } = (0, import_ahooks.useRequest)(
|
|
46
46
|
async () => {
|
|
47
|
-
|
|
47
|
+
if (!model) return;
|
|
48
|
+
await model.dispatchEvent("beforeRender", inputArgs);
|
|
48
49
|
},
|
|
49
50
|
{
|
|
50
51
|
refreshDeps: [model, inputArgs]
|
package/lib/index.d.ts
CHANGED
|
@@ -22,6 +22,11 @@ export * from './ElementProxy';
|
|
|
22
22
|
export * from './flowContext';
|
|
23
23
|
export * from './FlowContextProvider';
|
|
24
24
|
export * from './JSRunner';
|
|
25
|
-
export
|
|
25
|
+
export { getRunJSDocFor, createJSRunnerWithVersion, getRunJSScenesForModel, getRunJSScenesForContext, } from './runjs-context/helpers';
|
|
26
|
+
export { RunJSContextRegistry, getModelClassName } from './runjs-context/registry';
|
|
27
|
+
export { setupRunJSContexts } from './runjs-context/setup';
|
|
28
|
+
export { getSnippetBody, listSnippetsForContext } from './runjs-context/snippets';
|
|
26
29
|
export * from './views';
|
|
27
30
|
export * from './FlowDefinition';
|
|
31
|
+
export { createViewScopedEngine } from './ViewScopedFlowEngine';
|
|
32
|
+
export { createBlockScopedEngine } from './BlockScopedFlowEngine';
|
package/lib/index.js
CHANGED
|
@@ -27,7 +27,18 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
27
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
28
|
var src_exports = {};
|
|
29
29
|
__export(src_exports, {
|
|
30
|
-
|
|
30
|
+
RunJSContextRegistry: () => import_registry.RunJSContextRegistry,
|
|
31
|
+
createBlockScopedEngine: () => import_BlockScopedFlowEngine.createBlockScopedEngine,
|
|
32
|
+
createJSRunnerWithVersion: () => import_helpers.createJSRunnerWithVersion,
|
|
33
|
+
createViewScopedEngine: () => import_ViewScopedFlowEngine.createViewScopedEngine,
|
|
34
|
+
getModelClassName: () => import_registry.getModelClassName,
|
|
35
|
+
getRunJSDocFor: () => import_helpers.getRunJSDocFor,
|
|
36
|
+
getRunJSScenesForContext: () => import_helpers.getRunJSScenesForContext,
|
|
37
|
+
getRunJSScenesForModel: () => import_helpers.getRunJSScenesForModel,
|
|
38
|
+
getSnippetBody: () => import_snippets.getSnippetBody,
|
|
39
|
+
listSnippetsForContext: () => import_snippets.listSnippetsForContext,
|
|
40
|
+
observer: () => import_reactive_react.observer,
|
|
41
|
+
setupRunJSContexts: () => import_setup.setupRunJSContexts
|
|
31
42
|
});
|
|
32
43
|
module.exports = __toCommonJS(src_exports);
|
|
33
44
|
__reExport(src_exports, require("./types"), module.exports);
|
|
@@ -46,12 +57,28 @@ __reExport(src_exports, require("./ElementProxy"), module.exports);
|
|
|
46
57
|
__reExport(src_exports, require("./flowContext"), module.exports);
|
|
47
58
|
__reExport(src_exports, require("./FlowContextProvider"), module.exports);
|
|
48
59
|
__reExport(src_exports, require("./JSRunner"), module.exports);
|
|
49
|
-
|
|
60
|
+
var import_helpers = require("./runjs-context/helpers");
|
|
61
|
+
var import_registry = require("./runjs-context/registry");
|
|
62
|
+
var import_setup = require("./runjs-context/setup");
|
|
63
|
+
var import_snippets = require("./runjs-context/snippets");
|
|
50
64
|
__reExport(src_exports, require("./views"), module.exports);
|
|
51
65
|
__reExport(src_exports, require("./FlowDefinition"), module.exports);
|
|
66
|
+
var import_ViewScopedFlowEngine = require("./ViewScopedFlowEngine");
|
|
67
|
+
var import_BlockScopedFlowEngine = require("./BlockScopedFlowEngine");
|
|
52
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
53
69
|
0 && (module.exports = {
|
|
70
|
+
RunJSContextRegistry,
|
|
71
|
+
createBlockScopedEngine,
|
|
72
|
+
createJSRunnerWithVersion,
|
|
73
|
+
createViewScopedEngine,
|
|
74
|
+
getModelClassName,
|
|
75
|
+
getRunJSDocFor,
|
|
76
|
+
getRunJSScenesForContext,
|
|
77
|
+
getRunJSScenesForModel,
|
|
78
|
+
getSnippetBody,
|
|
79
|
+
listSnippetsForContext,
|
|
54
80
|
observer,
|
|
81
|
+
setupRunJSContexts,
|
|
55
82
|
...require("./types"),
|
|
56
83
|
...require("./utils"),
|
|
57
84
|
...require("./resources"),
|
|
@@ -67,7 +94,6 @@ __reExport(src_exports, require("./FlowDefinition"), module.exports);
|
|
|
67
94
|
...require("./flowContext"),
|
|
68
95
|
...require("./FlowContextProvider"),
|
|
69
96
|
...require("./JSRunner"),
|
|
70
|
-
...require("./runjs-context"),
|
|
71
97
|
...require("./views"),
|
|
72
98
|
...require("./FlowDefinition")
|
|
73
99
|
});
|
|
@@ -12,6 +12,7 @@ import { FlowEngineContext } from '../flowContext';
|
|
|
12
12
|
import { DefaultStructure } from '../types';
|
|
13
13
|
import { FlowModel } from './flowModel';
|
|
14
14
|
export declare function FieldPlaceholder(): React.JSX.Element;
|
|
15
|
+
export declare function FieldDeletePlaceholder(): React.JSX.Element;
|
|
15
16
|
export interface FieldSettingsInitParams {
|
|
16
17
|
dataSourceKey: string;
|
|
17
18
|
collectionName: string;
|
|
@@ -26,6 +27,7 @@ export interface BindingOptions {
|
|
|
26
27
|
}
|
|
27
28
|
export declare class CollectionFieldModel<T extends DefaultStructure = DefaultStructure> extends FlowModel<T> {
|
|
28
29
|
private static _bindings;
|
|
30
|
+
fieldDeleted: boolean;
|
|
29
31
|
renderHiddenInConfig(): React.ReactNode | undefined;
|
|
30
32
|
get title(): any;
|
|
31
33
|
onInit(options: any): void;
|