@nocobase/flow-engine 2.0.0-alpha.3 → 2.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +4 -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/independents/dropdown/FlowsDropdownButton.js +2 -2
- package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +17 -5
- package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +2 -2
- 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 +19 -13
- 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 +135 -100
- package/lib/flowContext.d.ts +33 -5
- package/lib/flowContext.js +193 -76
- package/lib/flowEngine.d.ts +8 -1
- package/lib/flowEngine.js +18 -6
- package/lib/flowSettings.d.ts +2 -1
- package/lib/flowSettings.js +12 -8
- package/lib/hooks/useApplyAutoFlows.js +2 -1
- package/lib/index.d.ts +7 -1
- package/lib/index.js +32 -3
- package/lib/locale/en-US.json +4 -2
- package/lib/locale/index.d.ts +4 -0
- package/lib/locale/zh-CN.json +4 -2
- 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 +114 -92
- package/lib/models/forkFlowModel.d.ts +4 -4
- package/lib/models/forkFlowModel.js +32 -8
- 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/resources/sqlResource.d.ts +1 -0
- package/lib/resources/sqlResource.js +20 -24
- 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 +183 -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 +161 -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 +17 -9
- 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 +71 -0
- package/lib/runjs-context/snippets/scene/block/render-react-jsx.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.js → block/render-react-jsx.snippet.js} +26 -13
- 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 +18 -17
- 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 +95 -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 +84 -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 +28 -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/createEphemeralContext.d.ts +13 -0
- package/lib/utils/createEphemeralContext.js +140 -0
- package/lib/utils/index.d.ts +3 -2
- package/lib/utils/index.js +5 -2
- package/lib/utils/jsxTransform.d.ts +15 -0
- package/lib/utils/jsxTransform.js +68 -0
- package/lib/utils/params-resolvers.js +3 -3
- package/lib/utils/safeGlobals.d.ts +5 -3
- package/lib/utils/safeGlobals.js +40 -0
- package/lib/utils/schema-utils.js +2 -2
- 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 +338 -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 +5 -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__/createViewMeta.popup.test.ts +132 -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/independents/dropdown/FlowsDropdownButton.tsx +1 -1
- package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +17 -4
- package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +1 -1
- package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +14 -1
- package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +424 -0
- package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +5 -7
- 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 +17 -11
- package/src/data-source/sortCollectionsByInherits.ts +61 -0
- package/src/executor/FlowExecutor.ts +178 -121
- package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
- package/src/executor/__tests__/flowExecutor.test.ts +151 -5
- package/src/flowContext.ts +266 -97
- package/src/flowEngine.ts +21 -6
- package/src/flowSettings.ts +9 -4
- package/src/hooks/useApplyAutoFlows.ts +3 -1
- package/src/index.ts +12 -1
- package/src/locale/en-US.json +4 -2
- package/src/locale/zh-CN.json +4 -2
- 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 +234 -111
- package/src/models/__tests__/forkFlowModel.test.ts +22 -7
- package/src/models/flowModel.tsx +149 -125
- package/src/models/forkFlowModel.ts +41 -8
- package/src/provider.tsx +10 -7
- package/src/resources/multiRecordResource.ts +2 -0
- package/src/resources/singleRecordResource.ts +1 -0
- package/src/resources/sqlResource.ts +20 -25
- 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 +171 -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 +177 -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/block/render-button-handler.snippet.ts +35 -0
- 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 +52 -0
- package/src/runjs-context/snippets/scene/block/render-react-jsx.snippet.ts +39 -0
- package/src/runjs-context/snippets/scene/block/render-react.snippet.ts +38 -0
- package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +76 -0
- package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +65 -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 +34 -0
- package/src/utils/__tests__/jsxTransform.test.ts +38 -0
- package/src/utils/__tests__/safeGlobals.test.ts +22 -1
- package/src/utils/buildSettingsViewInputArgs.ts +72 -0
- package/src/utils/createEphemeralContext.ts +142 -0
- package/src/utils/index.ts +2 -2
- package/src/utils/jsxTransform.ts +39 -0
- package/src/utils/params-resolvers.ts +2 -2
- package/src/utils/safeGlobals.ts +49 -3
- package/src/utils/schema-utils.ts +1 -1
- 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 +393 -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-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-button-handler.snippet.ts +0 -24
- package/src/runjs-context/snippets/scene/jsblock/render-card.snippet.ts +0 -30
- package/src/runjs-context/snippets/scene/jsblock/render-react.snippet.ts +0 -34
- 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
|
@@ -103,12 +103,24 @@ const DefaultSettingsIcon = /* @__PURE__ */ __name(({
|
|
|
103
103
|
const dropdownMaxHeight = (0, import_hooks.useNiceDropdownMaxHeight)([visible]);
|
|
104
104
|
const copyUidToClipboard = (0, import_react.useCallback)(
|
|
105
105
|
async (uid) => {
|
|
106
|
+
var _a;
|
|
106
107
|
try {
|
|
107
108
|
await navigator.clipboard.writeText(uid);
|
|
108
109
|
message.success(t("UID copied to clipboard"));
|
|
109
110
|
} catch (error) {
|
|
110
111
|
console.error(t("Copy failed"), ":", error);
|
|
111
|
-
|
|
112
|
+
const isHttps = typeof window !== "undefined" && ((_a = window.location) == null ? void 0 : _a.protocol) === "https:";
|
|
113
|
+
if (!isHttps) {
|
|
114
|
+
message.error(
|
|
115
|
+
t(
|
|
116
|
+
"Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.",
|
|
117
|
+
{ uid }
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
return;
|
|
121
|
+
} else {
|
|
122
|
+
message.error(t("Copy failed, please copy [{{uid}}] manually.", { uid }));
|
|
123
|
+
}
|
|
112
124
|
}
|
|
113
125
|
},
|
|
114
126
|
[message, t]
|
|
@@ -216,13 +228,13 @@ const DefaultSettingsIcon = /* @__PURE__ */ __name(({
|
|
|
216
228
|
const getModelConfigurableFlowsAndSteps = (0, import_react.useCallback)(
|
|
217
229
|
async (targetModel, modelKey) => {
|
|
218
230
|
try {
|
|
219
|
-
const flows = targetModel.getFlows();
|
|
231
|
+
const flows = targetModel.constructor.globalFlowRegistry.getFlows();
|
|
220
232
|
const flowsArray = Array.from(flows.values());
|
|
221
233
|
const flowsWithSteps = await Promise.all(
|
|
222
234
|
flowsArray.map(async (flow) => {
|
|
223
235
|
const configurableSteps = await Promise.all(
|
|
224
236
|
Object.entries(flow.steps).map(async ([stepKey, stepDefinition]) => {
|
|
225
|
-
var _a
|
|
237
|
+
var _a;
|
|
226
238
|
const actionStep = stepDefinition;
|
|
227
239
|
if (actionStep.hideInSettings) {
|
|
228
240
|
return null;
|
|
@@ -232,9 +244,9 @@ const DefaultSettingsIcon = /* @__PURE__ */ __name(({
|
|
|
232
244
|
let stepTitle = actionStep.title;
|
|
233
245
|
if (actionStep.use) {
|
|
234
246
|
try {
|
|
235
|
-
const action = (
|
|
247
|
+
const action = (_a = targetModel.getAction) == null ? void 0 : _a.call(targetModel, actionStep.use);
|
|
236
248
|
hasActionUiSchema = action && action.uiSchema != null;
|
|
237
|
-
stepTitle = stepTitle || action.title;
|
|
249
|
+
stepTitle = stepTitle || (action == null ? void 0 : action.title);
|
|
238
250
|
} catch (error) {
|
|
239
251
|
console.warn(t("Failed to get action {{action}}", { action: actionStep.use }), ":", error);
|
|
240
252
|
}
|
|
@@ -122,7 +122,7 @@ const FlowsContextMenuWithModel = (0, import_react.observer)(
|
|
|
122
122
|
const flowsArray = Array.from(flows.values());
|
|
123
123
|
return flowsArray.map((flow) => {
|
|
124
124
|
const configurableSteps = Object.entries(flow.steps).map(([stepKey, stepDefinition]) => {
|
|
125
|
-
var _a
|
|
125
|
+
var _a;
|
|
126
126
|
const actionStep = stepDefinition;
|
|
127
127
|
if (actionStep.hideInSettings) {
|
|
128
128
|
return null;
|
|
@@ -130,7 +130,7 @@ const FlowsContextMenuWithModel = (0, import_react.observer)(
|
|
|
130
130
|
const stepUiSchema = actionStep.uiSchema || {};
|
|
131
131
|
let actionUiSchema = {};
|
|
132
132
|
if (actionStep.use) {
|
|
133
|
-
const action = (
|
|
133
|
+
const action = (_a = model.getAction) == null ? void 0 : _a.call(model, actionStep.use);
|
|
134
134
|
if (action && action.uiSchema) {
|
|
135
135
|
actionUiSchema = action.uiSchema;
|
|
136
136
|
}
|
|
@@ -59,7 +59,7 @@ const openStepSettingsDialog = /* @__PURE__ */ __name(async ({
|
|
|
59
59
|
uiModeProps,
|
|
60
60
|
cleanup
|
|
61
61
|
}) => {
|
|
62
|
-
var _a, _b, _c, _d;
|
|
62
|
+
var _a, _b, _c, _d, _e, _f;
|
|
63
63
|
const t = (0, import_utils.getT)(model);
|
|
64
64
|
const message = model.context.message;
|
|
65
65
|
if (!model) {
|
|
@@ -132,6 +132,12 @@ const openStepSettingsDialog = /* @__PURE__ */ __name(async ({
|
|
|
132
132
|
width: dialogWidth,
|
|
133
133
|
destroyOnClose: true,
|
|
134
134
|
...(0, import_reactive.toJS)(uiModeProps),
|
|
135
|
+
// 透传 navigation,便于变量元信息根据真实视图栈推断父级弹窗
|
|
136
|
+
inputArgs: (0, import_utils.buildSettingsViewInputArgs)(
|
|
137
|
+
model,
|
|
138
|
+
{ ...((_e = (0, import_reactive.toJS)(uiModeProps)) == null ? void 0 : _e.inputArgs) || {}, __isSettingsPopup: true },
|
|
139
|
+
{ navigationOverride: (_f = ctx == null ? void 0 : ctx.view) == null ? void 0 : _f.navigation }
|
|
140
|
+
),
|
|
135
141
|
onClose: /* @__PURE__ */ __name(() => {
|
|
136
142
|
if (cleanup) {
|
|
137
143
|
cleanup();
|
|
@@ -94,6 +94,7 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
94
94
|
showValueComponent = true,
|
|
95
95
|
onlyLeafSelectable = false,
|
|
96
96
|
clearValue,
|
|
97
|
+
ignoreFieldNames,
|
|
97
98
|
...restProps
|
|
98
99
|
}) => {
|
|
99
100
|
const [currentMetaTreeNode, setCurrentMetaTreeNode] = (0, import_react.useState)(null);
|
|
@@ -241,11 +242,23 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
241
242
|
if (disabled) {
|
|
242
243
|
return;
|
|
243
244
|
}
|
|
244
|
-
setCurrentMetaTreeNode(null);
|
|
245
245
|
const cleared = clearValue !== void 0 ? clearValue : null;
|
|
246
246
|
setInnerValue(cleared);
|
|
247
|
+
try {
|
|
248
|
+
const path = resolvePathFromValue == null ? void 0 : resolvePathFromValue(cleared);
|
|
249
|
+
if (Array.isArray(resolvedMetaTree) && path && path.length > 0) {
|
|
250
|
+
const node = findMetaTreeNodeByPath(resolvedMetaTree, path);
|
|
251
|
+
if (node) {
|
|
252
|
+
setCurrentMetaTreeNode(node);
|
|
253
|
+
emitChange(cleared, node);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
} catch (_) {
|
|
258
|
+
}
|
|
259
|
+
setCurrentMetaTreeNode(null);
|
|
247
260
|
emitChange(cleared);
|
|
248
|
-
}, [emitChange, disabled, clearValue]);
|
|
261
|
+
}, [emitChange, disabled, clearValue, resolvedMetaTree, resolvePathFromValue]);
|
|
249
262
|
const stableProps = (0, import_react.useMemo)(() => {
|
|
250
263
|
const { style, onFocus, onBlur, disabled: disabled2, ...otherProps } = restProps;
|
|
251
264
|
return { style, onFocus, onBlur, otherProps };
|
|
@@ -311,6 +324,7 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
311
324
|
parseValueToPath: resolvePathFromValue,
|
|
312
325
|
formatPathToValue: resolveValueFromPath,
|
|
313
326
|
onlyLeafSelectable,
|
|
327
|
+
ignoreFieldNames,
|
|
314
328
|
...!showValueComponent && { children: null, placeholder: restProps == null ? void 0 : restProps.placeholder }
|
|
315
329
|
}
|
|
316
330
|
));
|
|
@@ -63,8 +63,49 @@ const VariableTagComponent = /* @__PURE__ */ __name(({
|
|
|
63
63
|
return metaTreeNode.parentTitles ? [...metaTreeNode.parentTitles, metaTreeNode.title].map(ctx.t).join("/") : ctx.t(metaTreeNode.title) || "";
|
|
64
64
|
}
|
|
65
65
|
if (!value) return String(value);
|
|
66
|
-
const
|
|
67
|
-
|
|
66
|
+
const rawPath = (0, import_utils.parseValueToPath)(value);
|
|
67
|
+
if (!rawPath || !Array.isArray(resolvedMetaTree)) {
|
|
68
|
+
return Array.isArray(rawPath) ? rawPath.join("/") : String(value);
|
|
69
|
+
}
|
|
70
|
+
const topNames = new Set((resolvedMetaTree || []).map((n) => String(n == null ? void 0 : n.name)));
|
|
71
|
+
const path = !topNames.has(String(rawPath[0])) ? rawPath.slice(1) : rawPath;
|
|
72
|
+
if (!path.length) return "";
|
|
73
|
+
let nodes = resolvedMetaTree;
|
|
74
|
+
let deepest = null;
|
|
75
|
+
let matchedCount = 0;
|
|
76
|
+
for (let i = 0; i < path.length; i++) {
|
|
77
|
+
if (!nodes) break;
|
|
78
|
+
const seg = String(path[i]);
|
|
79
|
+
const node = nodes.find((n) => String(n == null ? void 0 : n.name) === seg);
|
|
80
|
+
if (!node) break;
|
|
81
|
+
deepest = node;
|
|
82
|
+
matchedCount = i + 1;
|
|
83
|
+
if (i < path.length - 1) {
|
|
84
|
+
if (Array.isArray(node.children)) {
|
|
85
|
+
nodes = node.children;
|
|
86
|
+
} else if (typeof node.children === "function") {
|
|
87
|
+
try {
|
|
88
|
+
const childNodes = await node.children();
|
|
89
|
+
node.children = childNodes;
|
|
90
|
+
nodes = childNodes;
|
|
91
|
+
} catch {
|
|
92
|
+
nodes = void 0;
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
nodes = void 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (deepest) {
|
|
100
|
+
const titles = deepest.parentTitles ? [...deepest.parentTitles, deepest.title] : [deepest.title];
|
|
101
|
+
let label = titles.map(ctx.t).join("/");
|
|
102
|
+
if (matchedCount < path.length) {
|
|
103
|
+
const tail = path.slice(matchedCount).join("/");
|
|
104
|
+
label = tail ? `${label}/${tail}` : label;
|
|
105
|
+
}
|
|
106
|
+
return label;
|
|
107
|
+
}
|
|
108
|
+
return path.join("/");
|
|
68
109
|
},
|
|
69
110
|
{ refreshDeps: [resolvedMetaTree, value, metaTreeNode] }
|
|
70
111
|
);
|
|
@@ -18,6 +18,7 @@ export interface FlowContextSelectorProps extends Omit<CascaderProps<ContextSele
|
|
|
18
18
|
formatPathToValue?: (item: MetaTreeNode) => string;
|
|
19
19
|
open?: boolean;
|
|
20
20
|
onlyLeafSelectable?: boolean;
|
|
21
|
+
ignoreFieldNames?: string[];
|
|
21
22
|
}
|
|
22
23
|
export interface ContextSelectorItem {
|
|
23
24
|
label: React.ReactNode;
|
|
@@ -62,6 +63,7 @@ export interface VariableInputProps {
|
|
|
62
63
|
* 默认行为为 null;可设置为 '' 等,以便清空后默认切换为“常量-空字符串”。
|
|
63
64
|
*/
|
|
64
65
|
clearValue?: any;
|
|
66
|
+
ignoreFieldNames?: string[];
|
|
65
67
|
[key: string]: any;
|
|
66
68
|
}
|
|
67
69
|
export interface VariableTagProps {
|
|
@@ -49,7 +49,9 @@ export declare class DataSource {
|
|
|
49
49
|
addCollection(collection: Collection | CollectionOptions): void;
|
|
50
50
|
updateCollection(newOptions: CollectionOptions): void;
|
|
51
51
|
upsertCollection(options: CollectionOptions): Collection;
|
|
52
|
-
upsertCollections(collections: CollectionOptions[]
|
|
52
|
+
upsertCollections(collections: CollectionOptions[], options?: {
|
|
53
|
+
clearFields?: boolean;
|
|
54
|
+
}): void;
|
|
53
55
|
removeCollection(name: string): void;
|
|
54
56
|
clearCollections(): void;
|
|
55
57
|
setOptions(newOptions?: any): void;
|
|
@@ -68,9 +70,13 @@ export declare class CollectionManager {
|
|
|
68
70
|
get flowEngine(): FlowEngine;
|
|
69
71
|
addCollection(collection: Collection | CollectionOptions): void;
|
|
70
72
|
removeCollection(name: string): void;
|
|
71
|
-
updateCollection(newOptions: CollectionOptions
|
|
73
|
+
updateCollection(newOptions: CollectionOptions, options?: {
|
|
74
|
+
clearFields?: boolean;
|
|
75
|
+
}): void;
|
|
72
76
|
upsertCollection(options: CollectionOptions): Collection;
|
|
73
|
-
upsertCollections(collections: CollectionOptions[]
|
|
77
|
+
upsertCollections(collections: CollectionOptions[], options?: {
|
|
78
|
+
clearFields?: boolean;
|
|
79
|
+
}): void;
|
|
74
80
|
sortCollectionsByInherits(collections: CollectionOptions[]): CollectionOptions[];
|
|
75
81
|
getCollection(name: string): Collection | undefined;
|
|
76
82
|
getCollections(): Collection[];
|
|
@@ -97,7 +103,9 @@ export declare class Collection {
|
|
|
97
103
|
get titleCollectionField(): CollectionField;
|
|
98
104
|
initInherits(): void;
|
|
99
105
|
setDataSource(dataSource: DataSource): void;
|
|
100
|
-
setOptions(newOptions?: any
|
|
106
|
+
setOptions(newOptions?: any, options?: {
|
|
107
|
+
clearFields?: boolean;
|
|
108
|
+
}): void;
|
|
101
109
|
getFields(): CollectionField[];
|
|
102
110
|
getToOneAssociationFields(): CollectionField[];
|
|
103
111
|
getAssociationFields(types?: any[]): CollectionField[];
|
package/lib/data-source/index.js
CHANGED
|
@@ -49,6 +49,7 @@ module.exports = __toCommonJS(data_source_exports);
|
|
|
49
49
|
var import_reactive = require("@formily/reactive");
|
|
50
50
|
var import_lodash = __toESM(require("lodash"));
|
|
51
51
|
var import_jioToJoiSchema = require("./jioToJoiSchema");
|
|
52
|
+
var import_sortCollectionsByInherits = require("./sortCollectionsByInherits");
|
|
52
53
|
const _DataSourceManager = class _DataSourceManager {
|
|
53
54
|
dataSources;
|
|
54
55
|
flowEngine;
|
|
@@ -152,8 +153,8 @@ const _DataSource = class _DataSource {
|
|
|
152
153
|
upsertCollection(options) {
|
|
153
154
|
return this.collectionManager.upsertCollection(options);
|
|
154
155
|
}
|
|
155
|
-
upsertCollections(collections) {
|
|
156
|
-
return this.collectionManager.upsertCollections(collections);
|
|
156
|
+
upsertCollections(collections, options = {}) {
|
|
157
|
+
return this.collectionManager.upsertCollections(collections, options);
|
|
157
158
|
}
|
|
158
159
|
removeCollection(name) {
|
|
159
160
|
return this.collectionManager.removeCollection(name);
|
|
@@ -204,12 +205,12 @@ const _CollectionManager = class _CollectionManager {
|
|
|
204
205
|
removeCollection(name) {
|
|
205
206
|
this.collections.delete(name);
|
|
206
207
|
}
|
|
207
|
-
updateCollection(newOptions) {
|
|
208
|
+
updateCollection(newOptions, options = {}) {
|
|
208
209
|
const collection = this.getCollection(newOptions.name);
|
|
209
210
|
if (!collection) {
|
|
210
211
|
throw new Error(`Collection ${newOptions.name} not found`);
|
|
211
212
|
}
|
|
212
|
-
collection.setOptions(newOptions);
|
|
213
|
+
collection.setOptions(newOptions, options);
|
|
213
214
|
}
|
|
214
215
|
upsertCollection(options) {
|
|
215
216
|
if (this.collections.has(options.name)) {
|
|
@@ -219,10 +220,10 @@ const _CollectionManager = class _CollectionManager {
|
|
|
219
220
|
}
|
|
220
221
|
return this.getCollection(options.name);
|
|
221
222
|
}
|
|
222
|
-
upsertCollections(collections) {
|
|
223
|
-
for (const collection of
|
|
223
|
+
upsertCollections(collections, options = {}) {
|
|
224
|
+
for (const collection of (0, import_sortCollectionsByInherits.sortCollectionsByInherits)(collections)) {
|
|
224
225
|
if (this.collections.has(collection.name)) {
|
|
225
|
-
this.updateCollection(collection);
|
|
226
|
+
this.updateCollection(collection, options);
|
|
226
227
|
} else {
|
|
227
228
|
this.addCollection(collection);
|
|
228
229
|
}
|
|
@@ -368,7 +369,8 @@ const _Collection = class _Collection {
|
|
|
368
369
|
for (const inherit of this.options.inherits || []) {
|
|
369
370
|
const collection = this.collectionManager.getCollection(inherit);
|
|
370
371
|
if (!collection) {
|
|
371
|
-
|
|
372
|
+
console.warn(`Warning: Collection ${inherit} not found for collection ${this.name}`);
|
|
373
|
+
continue;
|
|
372
374
|
}
|
|
373
375
|
this.inherits.set(inherit, collection);
|
|
374
376
|
}
|
|
@@ -376,10 +378,13 @@ const _Collection = class _Collection {
|
|
|
376
378
|
setDataSource(dataSource) {
|
|
377
379
|
this.dataSource = dataSource;
|
|
378
380
|
}
|
|
379
|
-
setOptions(newOptions = {}) {
|
|
381
|
+
setOptions(newOptions = {}, options = {}) {
|
|
380
382
|
Object.keys(this.options).forEach((key) => delete this.options[key]);
|
|
381
383
|
Object.assign(this.options, newOptions);
|
|
382
384
|
this.initInherits();
|
|
385
|
+
if (options.clearFields) {
|
|
386
|
+
this.clearFields();
|
|
387
|
+
}
|
|
383
388
|
this.upsertFields(this.options.fields || []);
|
|
384
389
|
}
|
|
385
390
|
getFields() {
|
|
@@ -438,7 +443,7 @@ const _Collection = class _Collection {
|
|
|
438
443
|
if (otherKeys.length === 0) {
|
|
439
444
|
return field;
|
|
440
445
|
}
|
|
441
|
-
if (!field.targetCollection) {
|
|
446
|
+
if (!(field == null ? void 0 : field.targetCollection)) {
|
|
442
447
|
return null;
|
|
443
448
|
}
|
|
444
449
|
return field.targetCollection.getFieldByPath(otherKeys.join("."));
|
|
@@ -584,7 +589,7 @@ const _CollectionField = class _CollectionField {
|
|
|
584
589
|
}
|
|
585
590
|
get title() {
|
|
586
591
|
var _a, _b, _c;
|
|
587
|
-
const titleValue = ((_a = this.options) == null ? void 0 : _a.
|
|
592
|
+
const titleValue = ((_b = (_a = this.options) == null ? void 0 : _a.uiSchema) == null ? void 0 : _b.title) || ((_c = this.options) == null ? void 0 : _c.title) || this.options.name;
|
|
588
593
|
return this.flowEngine.translate(titleValue);
|
|
589
594
|
}
|
|
590
595
|
set title(value) {
|
|
@@ -618,7 +623,7 @@ const _CollectionField = class _CollectionField {
|
|
|
618
623
|
return this.options.validation;
|
|
619
624
|
}
|
|
620
625
|
getComponentProps() {
|
|
621
|
-
var _a;
|
|
626
|
+
var _a, _b;
|
|
622
627
|
const { type, target } = this.options;
|
|
623
628
|
const componentProps = import_lodash.default.omitBy(
|
|
624
629
|
{
|
|
@@ -627,7 +632,8 @@ const _CollectionField = class _CollectionField {
|
|
|
627
632
|
mode: this.type === "array" ? "multiple" : void 0,
|
|
628
633
|
multiple: target ? ["belongsToMany", "hasMany", "belongsToArray"].includes(type) : void 0,
|
|
629
634
|
maxCount: target && !["belongsToMany", "hasMany", "belongsToArray"].includes(type) ? 1 : void 0,
|
|
630
|
-
target
|
|
635
|
+
target,
|
|
636
|
+
template: (_b = this.targetCollection) == null ? void 0 : _b.template
|
|
631
637
|
},
|
|
632
638
|
import_lodash.default.isUndefined
|
|
633
639
|
);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import { CollectionOptions } from '.';
|
|
10
|
+
export declare function sortCollectionsByInherits(collections: CollectionOptions[]): CollectionOptions[];
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
15
|
+
var __export = (target, all) => {
|
|
16
|
+
for (var name in all)
|
|
17
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
18
|
+
};
|
|
19
|
+
var __copyProps = (to, from, except, desc) => {
|
|
20
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
21
|
+
for (let key of __getOwnPropNames(from))
|
|
22
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
23
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
24
|
+
}
|
|
25
|
+
return to;
|
|
26
|
+
};
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var sortCollectionsByInherits_exports = {};
|
|
29
|
+
__export(sortCollectionsByInherits_exports, {
|
|
30
|
+
sortCollectionsByInherits: () => sortCollectionsByInherits
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(sortCollectionsByInherits_exports);
|
|
33
|
+
function sortCollectionsByInherits(collections) {
|
|
34
|
+
const sorted = [];
|
|
35
|
+
const visited = /* @__PURE__ */ new Set();
|
|
36
|
+
const visiting = /* @__PURE__ */ new Set();
|
|
37
|
+
const map = /* @__PURE__ */ new Map();
|
|
38
|
+
collections.forEach((col) => {
|
|
39
|
+
map.set(col.name, col);
|
|
40
|
+
});
|
|
41
|
+
const addToSorted = /* @__PURE__ */ __name((col) => {
|
|
42
|
+
if (visiting.has(col.name)) {
|
|
43
|
+
throw new Error(`Circular dependency detected: ${col.name} inherits from itself through a chain`);
|
|
44
|
+
}
|
|
45
|
+
if (visited.has(col.name)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
visiting.add(col.name);
|
|
49
|
+
const inherits = col.inherits || [];
|
|
50
|
+
for (const inheritName of inherits) {
|
|
51
|
+
const inheritCol = map.get(inheritName);
|
|
52
|
+
if (!inheritCol) {
|
|
53
|
+
console.warn(`Warning: Collection ${inheritName}, inherited by ${col.name}, not found.`);
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
addToSorted(inheritCol);
|
|
57
|
+
}
|
|
58
|
+
visiting.delete(col.name);
|
|
59
|
+
visited.add(col.name);
|
|
60
|
+
sorted.push(col);
|
|
61
|
+
}, "addToSorted");
|
|
62
|
+
for (const col of collections) {
|
|
63
|
+
addToSorted(col);
|
|
64
|
+
}
|
|
65
|
+
return sorted;
|
|
66
|
+
}
|
|
67
|
+
__name(sortCollectionsByInherits, "sortCollectionsByInherits");
|
|
68
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
+
0 && (module.exports = {
|
|
70
|
+
sortCollectionsByInherits
|
|
71
|
+
});
|
|
@@ -8,19 +8,18 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { FlowEngine } from '../flowEngine';
|
|
10
10
|
import type { FlowModel } from '../models';
|
|
11
|
+
import type { DispatchEventOptions } from '../types';
|
|
11
12
|
export declare class FlowExecutor {
|
|
12
13
|
private readonly engine;
|
|
13
14
|
constructor(engine: FlowEngine);
|
|
15
|
+
/** Cache wrapper for applyFlow cache lifecycle */
|
|
16
|
+
private withApplyFlowCache;
|
|
14
17
|
/**
|
|
15
18
|
* Execute a single flow on model.
|
|
16
19
|
*/
|
|
17
20
|
runFlow(model: FlowModel, flowKey: string, inputArgs?: Record<string, any>, runId?: string): Promise<any>;
|
|
18
|
-
/**
|
|
19
|
-
* Execute all auto-apply flows for model.
|
|
20
|
-
*/
|
|
21
|
-
runAutoFlows(model: FlowModel, inputArgs?: Record<string, any>, useCache?: boolean): Promise<any[]>;
|
|
22
21
|
/**
|
|
23
22
|
* Dispatch an event to flows bound via flow.on and execute them.
|
|
24
23
|
*/
|
|
25
|
-
dispatchEvent(model: FlowModel, eventName: string, inputArgs?: Record<string, any
|
|
24
|
+
dispatchEvent(model: FlowModel, eventName: string, inputArgs?: Record<string, any>, options?: DispatchEventOptions): Promise<any>;
|
|
26
25
|
}
|