@nocobase/flow-engine 2.0.0-alpha.4 → 2.0.0-alpha.41
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/ViewScopedFlowEngine.js +12 -0
- package/lib/acl/Acl.d.ts +1 -0
- package/lib/acl/Acl.js +11 -0
- package/lib/components/FieldModelRenderer.js +14 -6
- 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 +3 -6
- package/lib/components/FlowModelRenderer.js +16 -47
- package/lib/components/FormItem.js +5 -1
- package/lib/components/MobilePopup.d.ts +20 -0
- package/lib/components/MobilePopup.js +102 -0
- package/lib/components/MobilePopup.style.d.ts +17 -0
- package/lib/components/MobilePopup.style.js +186 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +3 -1
- 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/FlowsFloatContextMenu.d.ts +2 -2
- package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.js +35 -6
- package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +7 -1
- package/lib/components/variables/VariableInput.js +19 -5
- package/lib/components/variables/VariableTag.js +43 -2
- package/lib/components/variables/types.d.ts +2 -0
- package/lib/data-source/index.d.ts +15 -4
- package/lib/data-source/index.js +42 -13
- package/lib/data-source/sortCollectionsByInherits.d.ts +10 -0
- package/lib/data-source/sortCollectionsByInherits.js +71 -0
- package/lib/emitter.d.ts +6 -0
- package/lib/emitter.js +12 -0
- package/lib/executor/FlowExecutor.d.ts +4 -5
- package/lib/executor/FlowExecutor.js +168 -99
- package/lib/flow-registry/GlobalFlowRegistry.d.ts +1 -0
- package/lib/flow-registry/GlobalFlowRegistry.js +3 -0
- package/lib/flow-registry/InstanceFlowRegistry.d.ts +1 -0
- package/lib/flow-registry/InstanceFlowRegistry.js +3 -0
- package/lib/flowContext.d.ts +37 -5
- package/lib/flowContext.js +224 -87
- package/lib/flowEngine.d.ts +24 -1
- package/lib/flowEngine.js +81 -8
- package/lib/flowSettings.d.ts +2 -1
- package/lib/flowSettings.js +16 -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 +3 -0
- package/lib/models/CollectionFieldModel.js +52 -6
- package/lib/models/flowModel.d.ts +30 -29
- package/lib/models/flowModel.js +153 -100
- package/lib/models/forkFlowModel.d.ts +8 -4
- package/lib/models/forkFlowModel.js +38 -8
- package/lib/provider.d.ts +3 -1
- package/lib/provider.js +7 -5
- package/lib/resources/multiRecordResource.js +25 -1
- package/lib/resources/singleRecordResource.js +19 -1
- 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 +205 -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 +162 -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-antd-icons.snippet.d.ts +11 -0
- package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.js +65 -0
- 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/scheduler/ModelOperationScheduler.d.ts +51 -0
- package/lib/scheduler/ModelOperationScheduler.js +262 -0
- package/lib/types.d.ts +28 -3
- package/lib/types.js +4 -3
- package/lib/utils/associationObjectVariable.d.ts +32 -0
- package/lib/utils/associationObjectVariable.js +157 -0
- 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/flows.d.ts +10 -0
- package/lib/{runjs-context/snippets/global/api-request-post.snippet.js → utils/flows.js} +21 -15
- package/lib/utils/index.d.ts +7 -2
- package/lib/utils/index.js +21 -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/parsePathnameToViewParams.d.ts +1 -1
- package/lib/utils/parsePathnameToViewParams.js +41 -5
- package/lib/utils/pruneFilter.d.ts +21 -0
- package/lib/{runjs-context/snippets/global/try-catch-async.snippet.js → utils/pruneFilter.js} +24 -16
- 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/translation.d.ts +4 -1
- package/lib/utils/translation.js +6 -2
- package/lib/utils/variablesParams.d.ts +22 -5
- package/lib/utils/variablesParams.js +132 -36
- package/lib/views/DrawerComponent.js +21 -2
- package/lib/views/PageComponent.js +2 -1
- package/lib/views/ViewNavigation.d.ts +3 -9
- package/lib/views/ViewNavigation.js +16 -2
- 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 +9 -8
- package/lib/views/useDialog.js +19 -14
- package/lib/views/useDrawer.d.ts +9 -8
- package/lib/views/useDrawer.js +54 -35
- package/lib/views/usePage.d.ts +9 -8
- package/lib/views/usePage.js +20 -14
- package/package.json +6 -3
- package/src/BlockScopedFlowEngine.ts +86 -0
- package/src/FlowContextProvider.tsx +4 -2
- package/src/JSRunner.ts +3 -0
- package/src/ViewScopedFlowEngine.ts +15 -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__/flowContext.test.ts +52 -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__/flowSettings.open.test.tsx +2 -0
- package/src/__tests__/flowSettings.test.ts +2 -0
- package/src/__tests__/globalFlowRegistry.test.ts +1 -1
- package/src/__tests__/modelOperationScheduler.test.ts +346 -0
- package/src/__tests__/objectVariable.test.ts +464 -0
- 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 +461 -0
- package/src/__tests__/runjsSnippets.test.ts +140 -0
- package/src/__tests__/viewScopedFlowEngine.test.ts +3 -3
- package/src/acl/Acl.tsx +14 -0
- package/src/acl/__tests__/Acl.test.tsx +43 -0
- package/src/components/DynamicFlowsEditor.tsx +3 -4
- package/src/components/FieldModelRenderer.tsx +20 -7
- package/src/components/FieldSkeleton.tsx +27 -0
- package/src/components/FlowContextSelector.tsx +6 -2
- package/src/components/FlowModelRenderer.tsx +33 -81
- package/src/components/FormItem.tsx +8 -1
- package/src/components/MobilePopup.style.ts +220 -0
- package/src/components/MobilePopup.tsx +86 -0
- package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +6 -6
- package/src/components/index.ts +1 -0
- 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/FlowsFloatContextMenu.tsx +39 -10
- package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +14 -1
- package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +425 -0
- package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +5 -7
- package/src/components/variables/VariableInput.tsx +25 -5
- 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 +42 -11
- package/src/data-source/sortCollectionsByInherits.ts +61 -0
- package/src/emitter.ts +14 -0
- package/src/executor/FlowExecutor.ts +213 -119
- package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
- package/src/executor/__tests__/flowExecutor.test.ts +151 -5
- package/src/flow-registry/GlobalFlowRegistry.ts +1 -0
- package/src/flow-registry/InstanceFlowRegistry.ts +1 -0
- package/src/flow-registry/__tests__/globalFlowRegistry.test.ts +54 -0
- package/src/flowContext.ts +303 -104
- package/src/flowEngine.ts +96 -6
- package/src/flowSettings.ts +12 -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 +60 -8
- package/src/models/__tests__/dispatchEvent.behavior.test.ts +169 -0
- package/src/models/__tests__/flowModel.getFlows.sort.test.ts +33 -9
- package/src/models/__tests__/flowModel.scheduleModelOperation.test.tsx +129 -0
- package/src/models/__tests__/flowModel.test.ts +234 -111
- package/src/models/__tests__/forkFlowModel.test.ts +40 -7
- package/src/models/flowModel.tsx +197 -132
- package/src/models/forkFlowModel.ts +48 -8
- package/src/provider.tsx +10 -7
- package/src/resources/multiRecordResource.ts +28 -1
- package/src/resources/singleRecordResource.ts +19 -1
- 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 +196 -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 +178 -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-antd-icons.snippet.ts +46 -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/scheduler/ModelOperationScheduler.ts +304 -0
- package/src/types.ts +34 -0
- package/src/utils/__tests__/flows.test.ts +65 -0
- package/src/utils/__tests__/jsxTransform.test.ts +38 -0
- package/src/utils/__tests__/parsePathnameToViewParams.test.ts +25 -0
- package/src/utils/__tests__/pruneFilter.test.ts +38 -0
- package/src/utils/__tests__/safeGlobals.test.ts +22 -1
- package/src/utils/__tests__/variablesParams.test.ts +63 -0
- package/src/utils/associationObjectVariable.ts +180 -0
- package/src/utils/buildSettingsViewInputArgs.ts +72 -0
- package/src/utils/createEphemeralContext.ts +142 -0
- package/src/utils/flows.ts +23 -0
- package/src/utils/index.ts +11 -2
- package/src/utils/jsxTransform.ts +39 -0
- package/src/utils/params-resolvers.ts +2 -2
- package/src/utils/parsePathnameToViewParams.ts +50 -6
- package/src/utils/pruneFilter.ts +41 -0
- 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/translation.ts +7 -2
- package/src/utils/variablesParams.ts +156 -38
- package/src/views/DrawerComponent.tsx +21 -2
- package/src/views/PageComponent.tsx +1 -1
- package/src/views/ViewNavigation.ts +20 -12
- package/src/views/__tests__/ViewNavigation.test.ts +10 -0
- package/src/views/createViewMeta.ts +393 -70
- package/src/views/index.tsx +1 -0
- package/src/views/useDialog.tsx +24 -18
- package/src/views/useDrawer.tsx +74 -45
- package/src/views/usePage.tsx +26 -17
- 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/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/requireAsync.snippet.d.ts +0 -16
- 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/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-mount.snippet.js +0 -46
- 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/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
|
@@ -18,8 +18,9 @@ import { ModelEventRegistry } from '../event-registry/ModelEventRegistry';
|
|
|
18
18
|
import { GlobalFlowRegistry } from '../flow-registry/GlobalFlowRegistry';
|
|
19
19
|
import { FlowDefinition } from '../FlowDefinition';
|
|
20
20
|
import { FlowSettingsOpenOptions } from '../flowSettings';
|
|
21
|
-
import type { EventDefinition } from '../types';
|
|
21
|
+
import type { EventDefinition, DispatchEventOptions } from '../types';
|
|
22
22
|
import { ForkFlowModel } from './forkFlowModel';
|
|
23
|
+
import type { ScheduleOptions } from '../scheduler/ModelOperationScheduler';
|
|
23
24
|
export declare enum ModelRenderMode {
|
|
24
25
|
ReactElement = "reactElement",
|
|
25
26
|
RenderFunction = "renderFunction"
|
|
@@ -42,6 +43,7 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
42
43
|
private _options;
|
|
43
44
|
protected _title: string;
|
|
44
45
|
isNew: boolean;
|
|
46
|
+
skeleton: any;
|
|
45
47
|
/**
|
|
46
48
|
* 所有 fork 实例的引用集合。
|
|
47
49
|
* 使用 Set 便于在销毁时主动遍历并调用 dispose,避免悬挂引用。
|
|
@@ -53,7 +55,7 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
53
55
|
*/
|
|
54
56
|
private forkCache;
|
|
55
57
|
/**
|
|
56
|
-
* 上一次
|
|
58
|
+
* 上一次 beforeRender 的执行参数
|
|
57
59
|
*/
|
|
58
60
|
private _lastAutoRunParams;
|
|
59
61
|
protected observerDispose: () => void;
|
|
@@ -90,6 +92,7 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
90
92
|
get subType(): "object" | "array";
|
|
91
93
|
get reactView(): import("../ReactView").ReactView;
|
|
92
94
|
get parentId(): string;
|
|
95
|
+
scheduleModelOperation(toUid: string, fn: (model: FlowModel) => Promise<void> | void, options?: ScheduleOptions): import("../scheduler/ModelOperationScheduler").ScheduledCancel;
|
|
93
96
|
static get meta(): FlowModelMeta;
|
|
94
97
|
static get globalFlowRegistry(): GlobalFlowRegistry;
|
|
95
98
|
protected static get actionRegistry(): ModelActionRegistry;
|
|
@@ -117,7 +120,11 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
117
120
|
setTitle(value: string): void;
|
|
118
121
|
setHidden(value: boolean): void;
|
|
119
122
|
_createSubModels(subModels: Record<string, CreateSubModelOptions | CreateSubModelOptions[]>): void;
|
|
120
|
-
|
|
123
|
+
/**
|
|
124
|
+
* 失效指定事件的流程缓存;未指定 eventName 时,失效当前模型全部事件缓存。
|
|
125
|
+
* - 默认 beforeRender 与其它事件共享同一缓存体系:prefix=`event:${scope}`,flowKey=`eventName`,uid=`model.uid`
|
|
126
|
+
*/
|
|
127
|
+
invalidateFlowCache(eventName?: string, deep?: boolean): void;
|
|
121
128
|
/**
|
|
122
129
|
* 设置FlowEngine实例
|
|
123
130
|
* @param {FlowEngine} flowEngine FlowEngine实例
|
|
@@ -187,45 +194,36 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
187
194
|
private _dispatchEvent;
|
|
188
195
|
private _dispatchEventWithDebounce;
|
|
189
196
|
dispatchEvent(eventName: string, inputArgs?: Record<string, any>, options?: {
|
|
190
|
-
/**
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
debounce: boolean;
|
|
194
|
-
}): Promise<void>;
|
|
197
|
+
/** 是否要开启防抖功能 */
|
|
198
|
+
debounce?: boolean;
|
|
199
|
+
} & DispatchEventOptions): Promise<any[]>;
|
|
195
200
|
/**
|
|
196
|
-
*
|
|
197
|
-
*
|
|
201
|
+
* 按事件名获取对应的流程集合(保持 getFlows 的顺序,即按 sort 排序)。
|
|
202
|
+
* - beforeRender 兼容:除显式 on: 'beforeRender' 外,包含未声明 on 且 manual !== true 的流程。
|
|
198
203
|
*/
|
|
199
|
-
|
|
204
|
+
getEventFlows(eventName: string): FlowDefinition[];
|
|
200
205
|
/**
|
|
201
|
-
* 重新执行上一次的
|
|
206
|
+
* 重新执行上一次的 beforeRender,保持参数一致
|
|
202
207
|
* 如果之前没有执行过,则直接跳过
|
|
203
208
|
* 使用 lodash debounce 避免频繁调用
|
|
204
209
|
*/
|
|
205
210
|
private _rerunLastAutoRun;
|
|
206
211
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
212
|
+
* 通用事件分发钩子:开始
|
|
213
|
+
* 子类可覆盖;beforeRender 事件可通过抛出 FlowExitException 提前终止。
|
|
209
214
|
*/
|
|
210
|
-
|
|
215
|
+
onDispatchEventStart(eventName: string, options?: DispatchEventOptions, inputArgs?: Record<string, any>): Promise<void>;
|
|
211
216
|
/**
|
|
212
|
-
*
|
|
217
|
+
* 通用事件分发钩子:结束
|
|
213
218
|
* 子类可覆盖。
|
|
214
219
|
*/
|
|
215
|
-
|
|
220
|
+
onDispatchEventEnd(eventName: string, options?: DispatchEventOptions, inputArgs?: Record<string, any>, results?: any[]): Promise<void>;
|
|
216
221
|
/**
|
|
217
|
-
*
|
|
222
|
+
* 通用事件分发钩子:错误
|
|
218
223
|
* 子类可覆盖。
|
|
219
224
|
*/
|
|
220
|
-
|
|
225
|
+
onDispatchEventError(eventName: string, options?: DispatchEventOptions, inputArgs?: Record<string, any>, error?: Error): Promise<void>;
|
|
221
226
|
useHooksBeforeRender(): void;
|
|
222
|
-
/**
|
|
223
|
-
* 执行所有自动应用流程
|
|
224
|
-
* @param {Record<string, any>} [inputArgs] 可选的运行时参数
|
|
225
|
-
* @param {boolean} [useCache=true] 是否使用缓存机制,默认为 true
|
|
226
|
-
* @returns {Promise<any[]>} 所有自动应用流程的执行结果数组
|
|
227
|
-
*/
|
|
228
|
-
applyAutoFlows(inputArgs?: Record<string, any>, useCache?: boolean): Promise<any[]>;
|
|
229
227
|
/**
|
|
230
228
|
* 智能检测是否应该跳过响应式包装
|
|
231
229
|
* 说明:
|
|
@@ -261,9 +259,9 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
261
259
|
render(): any;
|
|
262
260
|
rerender(): Promise<void>;
|
|
263
261
|
/**
|
|
264
|
-
*
|
|
262
|
+
* 事件缓存的作用域标识;可按事件区分(默认与事件无关的 scope 返回 'default')。
|
|
265
263
|
*/
|
|
266
|
-
|
|
264
|
+
getFlowCacheScope(eventName: string): string;
|
|
267
265
|
setParent(parent: FlowModel): void;
|
|
268
266
|
removeParentDelegate(): void;
|
|
269
267
|
addSubModel<T extends FlowModel>(subKey: string, options: CreateModelOptions | T): T;
|
|
@@ -273,7 +271,10 @@ export declare class FlowModel<Structure extends DefaultStructure = DefaultStruc
|
|
|
273
271
|
hasSubModel<K extends keyof Structure['subModels']>(subKey: K): boolean;
|
|
274
272
|
findSubModel<K extends keyof Structure['subModels'], R>(subKey: K, callback: (model: ArrayElementType<Structure['subModels'][K]>) => R): ArrayElementType<Structure['subModels'][K]> | null;
|
|
275
273
|
createRootModel(options: any): FlowModel<DefaultStructure>;
|
|
276
|
-
|
|
274
|
+
/**
|
|
275
|
+
* 对指定子模型派发 beforeRender 事件(顺序执行并使用缓存)。
|
|
276
|
+
*/
|
|
277
|
+
applySubModelsBeforeRenderFlows<K extends keyof Structure['subModels']>(subKey: K, inputArgs?: Record<string, any>, shared?: Record<string, any>): Promise<void>;
|
|
277
278
|
/**
|
|
278
279
|
* 创建一个 fork 实例,实现"一份数据(master)多视图(fork)"的能力。
|
|
279
280
|
* @param {IModelComponentProps} [localProps={}] fork 专属的局部 props,优先级高于 master.props
|
package/lib/models/flowModel.js
CHANGED
|
@@ -62,7 +62,6 @@ var import_StepSettingsDialog = require("../components/settings/wrappers/context
|
|
|
62
62
|
var import_emitter = require("../emitter");
|
|
63
63
|
var import_InstanceFlowRegistry = require("../flow-registry/InstanceFlowRegistry");
|
|
64
64
|
var import_flowContext = require("../flowContext");
|
|
65
|
-
var import_flowEngine = require("../flowEngine");
|
|
66
65
|
var import_utils = require("../utils");
|
|
67
66
|
var import_lib = require("antd/lib");
|
|
68
67
|
var import_ModelActionRegistry = require("../action-registry/ModelActionRegistry");
|
|
@@ -94,6 +93,7 @@ const _FlowModel = class _FlowModel {
|
|
|
94
93
|
__publicField(this, "_title");
|
|
95
94
|
__publicField(this, "isNew", false);
|
|
96
95
|
// 标记是否为新建状态
|
|
96
|
+
__publicField(this, "skeleton", null);
|
|
97
97
|
/**
|
|
98
98
|
* 所有 fork 实例的引用集合。
|
|
99
99
|
* 使用 Set 便于在销毁时主动遍历并调用 dispose,避免悬挂引用。
|
|
@@ -105,7 +105,7 @@ const _FlowModel = class _FlowModel {
|
|
|
105
105
|
*/
|
|
106
106
|
__publicField(this, "forkCache", /* @__PURE__ */ new Map());
|
|
107
107
|
/**
|
|
108
|
-
* 上一次
|
|
108
|
+
* 上一次 beforeRender 的执行参数
|
|
109
109
|
*/
|
|
110
110
|
__publicField(this, "_lastAutoRunParams", null);
|
|
111
111
|
__publicField(this, "observerDispose");
|
|
@@ -120,18 +120,22 @@ const _FlowModel = class _FlowModel {
|
|
|
120
120
|
__publicField(this, "_reactiveWrapperCache");
|
|
121
121
|
__publicField(this, "flowRegistry");
|
|
122
122
|
__publicField(this, "_cleanRun");
|
|
123
|
-
__publicField(this, "_dispatchEventWithDebounce", import_lodash.default.debounce(
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
__publicField(this, "_dispatchEventWithDebounce", import_lodash.default.debounce(
|
|
124
|
+
async (eventName, inputArgs, options) => {
|
|
125
|
+
return this._dispatchEvent(eventName, inputArgs, options);
|
|
126
|
+
},
|
|
127
|
+
100
|
|
128
|
+
));
|
|
126
129
|
/**
|
|
127
|
-
* 重新执行上一次的
|
|
130
|
+
* 重新执行上一次的 beforeRender,保持参数一致
|
|
128
131
|
* 如果之前没有执行过,则直接跳过
|
|
129
132
|
* 使用 lodash debounce 避免频繁调用
|
|
130
133
|
*/
|
|
131
134
|
__publicField(this, "_rerunLastAutoRun", import_lodash.default.debounce(async () => {
|
|
132
135
|
if (this._lastAutoRunParams) {
|
|
133
136
|
try {
|
|
134
|
-
|
|
137
|
+
const [inputArgs] = this._lastAutoRunParams;
|
|
138
|
+
await this.dispatchEvent("beforeRender", inputArgs);
|
|
135
139
|
} catch (error) {
|
|
136
140
|
console.error("FlowModel._rerunLastAutoRun: Error during rerun:", error);
|
|
137
141
|
}
|
|
@@ -172,7 +176,7 @@ const _FlowModel = class _FlowModel {
|
|
|
172
176
|
return;
|
|
173
177
|
}
|
|
174
178
|
if (this.flowEngine) {
|
|
175
|
-
this.
|
|
179
|
+
this.invalidateFlowCache("beforeRender");
|
|
176
180
|
}
|
|
177
181
|
this._rerunLastAutoRun();
|
|
178
182
|
this.forks.forEach((fork) => {
|
|
@@ -234,6 +238,10 @@ const _FlowModel = class _FlowModel {
|
|
|
234
238
|
get parentId() {
|
|
235
239
|
return this._options.parentId;
|
|
236
240
|
}
|
|
241
|
+
scheduleModelOperation(toUid, fn, options) {
|
|
242
|
+
var _a;
|
|
243
|
+
return (_a = this.flowEngine) == null ? void 0 : _a.scheduleModelOperation(this, toUid, fn, options);
|
|
244
|
+
}
|
|
237
245
|
static get meta() {
|
|
238
246
|
return modelMetas.get(this);
|
|
239
247
|
}
|
|
@@ -342,13 +350,57 @@ const _FlowModel = class _FlowModel {
|
|
|
342
350
|
}
|
|
343
351
|
});
|
|
344
352
|
}
|
|
345
|
-
|
|
353
|
+
/**
|
|
354
|
+
* 失效指定事件的流程缓存;未指定 eventName 时,失效当前模型全部事件缓存。
|
|
355
|
+
* - 默认 beforeRender 与其它事件共享同一缓存体系:prefix=`event:${scope}`,flowKey=`eventName`,uid=`model.uid`
|
|
356
|
+
*/
|
|
357
|
+
invalidateFlowCache(eventName, deep = false) {
|
|
346
358
|
if (this.flowEngine) {
|
|
347
|
-
const
|
|
348
|
-
this.flowEngine.applyFlowCache
|
|
359
|
+
const scope = `event:${this.getFlowCacheScope(eventName || "beforeRender")}`;
|
|
360
|
+
const cache = this.flowEngine.applyFlowCache;
|
|
361
|
+
if (eventName) {
|
|
362
|
+
const altScope = scope.replace(/:/g, "-");
|
|
363
|
+
const uidSuffixes = [`:${this.uid}`, `-${this.uid}`];
|
|
364
|
+
const eventSegments = [`:${eventName}:`, `-${eventName}-`];
|
|
365
|
+
for (const key of cache.keys()) {
|
|
366
|
+
const startMatches = key.startsWith(scope) || key.startsWith(altScope);
|
|
367
|
+
const endMatches = uidSuffixes.some((s) => key.endsWith(s));
|
|
368
|
+
const eventMatches = eventSegments.some((seg) => key.includes(seg));
|
|
369
|
+
if (startMatches && endMatches && eventMatches) {
|
|
370
|
+
cache.delete(key);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
} else {
|
|
374
|
+
const altScope = `${scope}:`.replace(/:/g, "-");
|
|
375
|
+
const prefixes = [`${scope}:`, altScope];
|
|
376
|
+
const uidSuffixes = [`:${this.uid}`, `-${this.uid}`];
|
|
377
|
+
for (const key of cache.keys()) {
|
|
378
|
+
const startMatches = prefixes.some((p) => key.startsWith(p));
|
|
379
|
+
const endMatches = uidSuffixes.some((s) => key.endsWith(s));
|
|
380
|
+
if (startMatches && endMatches) cache.delete(key);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
349
383
|
this.forks.forEach((fork) => {
|
|
350
|
-
|
|
351
|
-
|
|
384
|
+
var _a;
|
|
385
|
+
const forkScope = `event:${((_a = fork.getFlowCacheScope) == null ? void 0 : _a.call(fork, eventName || "beforeRender")) ?? String(fork["forkId"])}`;
|
|
386
|
+
const altForkScope = forkScope.replace(/:/g, "-");
|
|
387
|
+
const uidSuffixes = [`:${this.uid}`, `-${this.uid}`];
|
|
388
|
+
if (eventName) {
|
|
389
|
+
const eventSegments = [`:${eventName}:`, `-${eventName}-`];
|
|
390
|
+
for (const key of this.flowEngine.applyFlowCache.keys()) {
|
|
391
|
+
const startMatches = key.startsWith(forkScope) || key.startsWith(altForkScope);
|
|
392
|
+
const endMatches = uidSuffixes.some((s) => key.endsWith(s));
|
|
393
|
+
const eventMatches = eventSegments.some((seg) => key.includes(seg));
|
|
394
|
+
if (startMatches && endMatches && eventMatches) this.flowEngine.applyFlowCache.delete(key);
|
|
395
|
+
}
|
|
396
|
+
} else {
|
|
397
|
+
const prefixes = [`${forkScope}:`, `${altForkScope}-`];
|
|
398
|
+
for (const key of this.flowEngine.applyFlowCache.keys()) {
|
|
399
|
+
const startMatches = prefixes.some((p) => key.startsWith(p));
|
|
400
|
+
const endMatches = uidSuffixes.some((s) => key.endsWith(s));
|
|
401
|
+
if (startMatches && endMatches) this.flowEngine.applyFlowCache.delete(key);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
352
404
|
});
|
|
353
405
|
}
|
|
354
406
|
if (deep) {
|
|
@@ -357,10 +409,10 @@ const _FlowModel = class _FlowModel {
|
|
|
357
409
|
const subModelValue = this.subModels[subModelKey];
|
|
358
410
|
if (Array.isArray(subModelValue)) {
|
|
359
411
|
for (const subModel of subModelValue) {
|
|
360
|
-
subModel.
|
|
412
|
+
subModel.invalidateFlowCache(eventName, deep);
|
|
361
413
|
}
|
|
362
414
|
} else if (subModelValue instanceof _FlowModel) {
|
|
363
|
-
subModelValue.
|
|
415
|
+
subModelValue.invalidateFlowCache(eventName, deep);
|
|
364
416
|
}
|
|
365
417
|
}
|
|
366
418
|
}
|
|
@@ -480,14 +532,15 @@ const _FlowModel = class _FlowModel {
|
|
|
480
532
|
const instanceKeys = new Set(instanceFlows.keys());
|
|
481
533
|
const staticEntries = Array.from(staticFlows.entries()).filter(([key]) => !instanceKeys.has(key));
|
|
482
534
|
const instanceEntries = Array.from(instanceFlows.entries());
|
|
483
|
-
const
|
|
484
|
-
|
|
485
|
-
const sa = a.sort ?? 0;
|
|
486
|
-
const sb = b.sort ?? 0;
|
|
535
|
+
const instanceEntriesWithIndex = instanceEntries.map((e, i) => ({ e, i }));
|
|
536
|
+
instanceEntriesWithIndex.sort((a, b) => {
|
|
537
|
+
const sa = a.e[1].sort ?? 0;
|
|
538
|
+
const sb = b.e[1].sort ?? 0;
|
|
487
539
|
if (sa !== sb) return sa - sb;
|
|
488
|
-
return
|
|
540
|
+
return a.i - b.i;
|
|
489
541
|
});
|
|
490
|
-
|
|
542
|
+
const merged = [...instanceEntriesWithIndex.map(({ e }) => e), ...staticEntries];
|
|
543
|
+
return new Map(merged);
|
|
491
544
|
}
|
|
492
545
|
setProps(props, value) {
|
|
493
546
|
if (typeof props === "string") {
|
|
@@ -544,7 +597,7 @@ const _FlowModel = class _FlowModel {
|
|
|
544
597
|
);
|
|
545
598
|
return currentFlowEngine.executor.runFlow(target, flowKey, inputArgs, runId);
|
|
546
599
|
}
|
|
547
|
-
async _dispatchEvent(eventName, inputArgs) {
|
|
600
|
+
async _dispatchEvent(eventName, inputArgs, options) {
|
|
548
601
|
const currentFlowEngine = this.flowEngine;
|
|
549
602
|
if (!currentFlowEngine) {
|
|
550
603
|
console.warn("FlowEngine not available on this model for dispatchEvent. Please set flowEngine on the model.");
|
|
@@ -555,93 +608,67 @@ const _FlowModel = class _FlowModel {
|
|
|
555
608
|
console.log(
|
|
556
609
|
`[FlowModel] dispatchEvent: uid=${this.uid}, event=${eventName}, isFork=${isFork}, cleanRun=${this.cleanRun}, targetIsFork=${(target == null ? void 0 : target.isFork) === true}`
|
|
557
610
|
);
|
|
558
|
-
await currentFlowEngine.executor.dispatchEvent(target, eventName, inputArgs);
|
|
611
|
+
return await currentFlowEngine.executor.dispatchEvent(target, eventName, inputArgs, options);
|
|
559
612
|
}
|
|
560
613
|
async dispatchEvent(eventName, inputArgs, options) {
|
|
614
|
+
const isBeforeRender = eventName === "beforeRender";
|
|
615
|
+
const defaults = isBeforeRender ? { sequential: true, useCache: true } : { sequential: true };
|
|
616
|
+
const execOptions = {
|
|
617
|
+
sequential: (options == null ? void 0 : options.sequential) ?? defaults.sequential,
|
|
618
|
+
useCache: (options == null ? void 0 : options.useCache) ?? defaults.useCache
|
|
619
|
+
};
|
|
620
|
+
if (isBeforeRender) {
|
|
621
|
+
this._lastAutoRunParams = [inputArgs, execOptions.useCache];
|
|
622
|
+
}
|
|
623
|
+
let finalInputArgs = inputArgs;
|
|
624
|
+
if (this.context.record) {
|
|
625
|
+
finalInputArgs = { record: this.context.record, ...inputArgs };
|
|
626
|
+
}
|
|
561
627
|
if (options == null ? void 0 : options.debounce) {
|
|
562
|
-
return this._dispatchEventWithDebounce(eventName,
|
|
628
|
+
return this._dispatchEventWithDebounce(eventName, finalInputArgs, execOptions);
|
|
563
629
|
}
|
|
564
|
-
return this._dispatchEvent(eventName,
|
|
630
|
+
return this._dispatchEvent(eventName, finalInputArgs, execOptions);
|
|
565
631
|
}
|
|
566
632
|
/**
|
|
567
|
-
*
|
|
568
|
-
*
|
|
633
|
+
* 按事件名获取对应的流程集合(保持 getFlows 的顺序,即按 sort 排序)。
|
|
634
|
+
* - beforeRender 兼容:除显式 on: 'beforeRender' 外,包含未声明 on 且 manual !== true 的流程。
|
|
569
635
|
*/
|
|
570
|
-
|
|
636
|
+
getEventFlows(eventName) {
|
|
571
637
|
const allFlows = this.getFlows();
|
|
572
|
-
const
|
|
573
|
-
|
|
574
|
-
|
|
638
|
+
const beforeRender = eventName === "beforeRender";
|
|
639
|
+
const isMatch = /* @__PURE__ */ __name((flow) => {
|
|
640
|
+
var _a;
|
|
641
|
+
if (beforeRender) {
|
|
642
|
+
if (flow.manual === true) return false;
|
|
643
|
+
if (!flow.on) return true;
|
|
644
|
+
return typeof flow.on === "string" ? flow.on === "beforeRender" : ((_a = flow.on) == null ? void 0 : _a.eventName) === "beforeRender";
|
|
575
645
|
}
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
return autoFlows;
|
|
646
|
+
const on = flow.on;
|
|
647
|
+
if (!on) return false;
|
|
648
|
+
return typeof on === "string" ? on === eventName : (on == null ? void 0 : on.eventName) === eventName;
|
|
649
|
+
}, "isMatch");
|
|
650
|
+
return Array.from(allFlows.values()).filter(isMatch);
|
|
582
651
|
}
|
|
583
652
|
/**
|
|
584
|
-
*
|
|
585
|
-
*
|
|
653
|
+
* 通用事件分发钩子:开始
|
|
654
|
+
* 子类可覆盖;beforeRender 事件可通过抛出 FlowExitException 提前终止。
|
|
586
655
|
*/
|
|
587
|
-
async
|
|
656
|
+
async onDispatchEventStart(eventName, options, inputArgs) {
|
|
588
657
|
}
|
|
589
658
|
/**
|
|
590
|
-
*
|
|
659
|
+
* 通用事件分发钩子:结束
|
|
591
660
|
* 子类可覆盖。
|
|
592
661
|
*/
|
|
593
|
-
async
|
|
662
|
+
async onDispatchEventEnd(eventName, options, inputArgs, results) {
|
|
594
663
|
}
|
|
595
664
|
/**
|
|
596
|
-
*
|
|
665
|
+
* 通用事件分发钩子:错误
|
|
597
666
|
* 子类可覆盖。
|
|
598
667
|
*/
|
|
599
|
-
async
|
|
668
|
+
async onDispatchEventError(eventName, options, inputArgs, error) {
|
|
600
669
|
}
|
|
601
670
|
useHooksBeforeRender() {
|
|
602
671
|
}
|
|
603
|
-
async applyAutoFlows(...args) {
|
|
604
|
-
var _a, _b;
|
|
605
|
-
const [inputArgs, useCache = true] = args;
|
|
606
|
-
const cacheKey = useCache ? import_flowEngine.FlowEngine.generateApplyFlowCacheKey(this["forkId"] ?? "autoFlow", "all", this.uid) : null;
|
|
607
|
-
if (!import_lodash.default.isEqual(inputArgs, (_a = this._lastAutoRunParams) == null ? void 0 : _a[0]) && cacheKey) {
|
|
608
|
-
this.flowEngine.applyFlowCache.delete(cacheKey);
|
|
609
|
-
}
|
|
610
|
-
this._lastAutoRunParams = args;
|
|
611
|
-
try {
|
|
612
|
-
await this.onBeforeAutoFlows(inputArgs);
|
|
613
|
-
} catch (error) {
|
|
614
|
-
if (error instanceof import_utils.FlowExitException) {
|
|
615
|
-
(_b = this.context.logger) == null ? void 0 : _b.debug(`[FlowModel.applyAutoFlows] ${error.message}`);
|
|
616
|
-
return [];
|
|
617
|
-
}
|
|
618
|
-
try {
|
|
619
|
-
await this.onAutoFlowsError(error, inputArgs);
|
|
620
|
-
} catch (_2) {
|
|
621
|
-
}
|
|
622
|
-
throw error;
|
|
623
|
-
}
|
|
624
|
-
let results = [];
|
|
625
|
-
try {
|
|
626
|
-
results = await this.flowEngine.executor.runAutoFlows(this, inputArgs, useCache);
|
|
627
|
-
} catch (error) {
|
|
628
|
-
try {
|
|
629
|
-
await this.onAutoFlowsError(error, inputArgs);
|
|
630
|
-
} catch (_2) {
|
|
631
|
-
}
|
|
632
|
-
throw error;
|
|
633
|
-
}
|
|
634
|
-
try {
|
|
635
|
-
await this.onAfterAutoFlows(results, inputArgs);
|
|
636
|
-
} catch (error) {
|
|
637
|
-
try {
|
|
638
|
-
await this.onAutoFlowsError(error, inputArgs);
|
|
639
|
-
} catch (_2) {
|
|
640
|
-
}
|
|
641
|
-
throw error;
|
|
642
|
-
}
|
|
643
|
-
return results;
|
|
644
|
-
}
|
|
645
672
|
/**
|
|
646
673
|
* 智能检测是否应该跳过响应式包装
|
|
647
674
|
* 说明:
|
|
@@ -701,13 +728,23 @@ const _FlowModel = class _FlowModel {
|
|
|
701
728
|
modelInstance.props;
|
|
702
729
|
}
|
|
703
730
|
import_react.default.useEffect(() => {
|
|
731
|
+
var _a2, _b2;
|
|
704
732
|
if (typeof renderTarget.onMount === "function") {
|
|
705
733
|
renderTarget.onMount();
|
|
706
734
|
}
|
|
735
|
+
void ((_b2 = (_a2 = renderTarget.flowEngine) == null ? void 0 : _a2.emitter) == null ? void 0 : _b2.emitAsync("model:mounted", {
|
|
736
|
+
uid: renderTarget.uid,
|
|
737
|
+
model: renderTarget
|
|
738
|
+
}));
|
|
707
739
|
return () => {
|
|
740
|
+
var _a3, _b3;
|
|
708
741
|
if (typeof renderTarget.onUnmount === "function") {
|
|
709
742
|
renderTarget.onUnmount();
|
|
710
743
|
}
|
|
744
|
+
void ((_b3 = (_a3 = renderTarget.flowEngine) == null ? void 0 : _a3.emitter) == null ? void 0 : _b3.emitAsync("model:unmounted", {
|
|
745
|
+
uid: renderTarget.uid,
|
|
746
|
+
model: renderTarget
|
|
747
|
+
}));
|
|
711
748
|
};
|
|
712
749
|
}, [renderTarget]);
|
|
713
750
|
const isConfigMode = !!((_b = (_a = modelInstance == null ? void 0 : modelInstance.flowEngine) == null ? void 0 : _a.flowSettings) == null ? void 0 : _b.enabled);
|
|
@@ -717,6 +754,7 @@ const _FlowModel = class _FlowModel {
|
|
|
717
754
|
}
|
|
718
755
|
return (_c = modelInstance.renderHiddenInConfig) == null ? void 0 : _c.call(modelInstance);
|
|
719
756
|
}
|
|
757
|
+
modelInstance.stepParams;
|
|
720
758
|
return originalRender.call(renderTarget);
|
|
721
759
|
});
|
|
722
760
|
ReactiveWrapper.displayName = `ReactiveWrapper(${modelInstance.constructor.name})`;
|
|
@@ -768,13 +806,13 @@ const _FlowModel = class _FlowModel {
|
|
|
768
806
|
}
|
|
769
807
|
async rerender() {
|
|
770
808
|
var _a;
|
|
771
|
-
await this.
|
|
809
|
+
await this.dispatchEvent("beforeRender", (_a = this._lastAutoRunParams) == null ? void 0 : _a[0], { useCache: false });
|
|
772
810
|
}
|
|
773
811
|
/**
|
|
774
|
-
*
|
|
812
|
+
* 事件缓存的作用域标识;可按事件区分(默认与事件无关的 scope 返回 'default')。
|
|
775
813
|
*/
|
|
776
|
-
|
|
777
|
-
return
|
|
814
|
+
getFlowCacheScope(eventName) {
|
|
815
|
+
return String(eventName);
|
|
778
816
|
}
|
|
779
817
|
setParent(parent) {
|
|
780
818
|
const isValidParent = parent && (parent.constructor === _FlowModel || (0, import_utils.isInheritedFrom)(parent.constructor, _FlowModel));
|
|
@@ -794,7 +832,7 @@ const _FlowModel = class _FlowModel {
|
|
|
794
832
|
this.context.removeDelegate(this.parent.context);
|
|
795
833
|
}
|
|
796
834
|
addSubModel(subKey, options) {
|
|
797
|
-
var _a;
|
|
835
|
+
var _a, _b, _c;
|
|
798
836
|
const actualParent = this["master"] || this;
|
|
799
837
|
let model;
|
|
800
838
|
if (options instanceof _FlowModel) {
|
|
@@ -821,10 +859,16 @@ const _FlowModel = class _FlowModel {
|
|
|
821
859
|
model.sortIndex = maxSortIndex + 1;
|
|
822
860
|
subModels[subKey].push(model);
|
|
823
861
|
actualParent.emitter.emit("onSubModelAdded", model);
|
|
862
|
+
(_c = (_b = actualParent.flowEngine) == null ? void 0 : _b.emitter) == null ? void 0 : _c.emit("model:subModel:added", {
|
|
863
|
+
parentUid: actualParent.uid,
|
|
864
|
+
parent: actualParent,
|
|
865
|
+
subKey,
|
|
866
|
+
model
|
|
867
|
+
});
|
|
824
868
|
return model;
|
|
825
869
|
}
|
|
826
870
|
setSubModel(subKey, options) {
|
|
827
|
-
var _a;
|
|
871
|
+
var _a, _b, _c;
|
|
828
872
|
const actualParent = this["master"] || this;
|
|
829
873
|
let model;
|
|
830
874
|
if (options instanceof _FlowModel) {
|
|
@@ -845,6 +889,12 @@ const _FlowModel = class _FlowModel {
|
|
|
845
889
|
model.setParent(actualParent);
|
|
846
890
|
actualParent.subModels[subKey] = model;
|
|
847
891
|
actualParent.emitter.emit("onSubModelAdded", model);
|
|
892
|
+
(_c = (_b = actualParent.flowEngine) == null ? void 0 : _b.emitter) == null ? void 0 : _c.emit("model:subModel:added", {
|
|
893
|
+
parentUid: actualParent.uid,
|
|
894
|
+
parent: actualParent,
|
|
895
|
+
subKey,
|
|
896
|
+
model
|
|
897
|
+
});
|
|
848
898
|
return model;
|
|
849
899
|
}
|
|
850
900
|
filterSubModels(subKey, callback) {
|
|
@@ -892,10 +942,13 @@ const _FlowModel = class _FlowModel {
|
|
|
892
942
|
createRootModel(options) {
|
|
893
943
|
return this.flowEngine.createModel(options);
|
|
894
944
|
}
|
|
895
|
-
|
|
945
|
+
/**
|
|
946
|
+
* 对指定子模型派发 beforeRender 事件(顺序执行并使用缓存)。
|
|
947
|
+
*/
|
|
948
|
+
async applySubModelsBeforeRenderFlows(subKey, inputArgs, shared) {
|
|
896
949
|
await Promise.all(
|
|
897
950
|
this.mapSubModels(subKey, async (sub) => {
|
|
898
|
-
await sub.
|
|
951
|
+
await sub.dispatchEvent("beforeRender", inputArgs);
|
|
899
952
|
})
|
|
900
953
|
);
|
|
901
954
|
}
|
|
@@ -913,7 +966,7 @@ const _FlowModel = class _FlowModel {
|
|
|
913
966
|
return cachedFork;
|
|
914
967
|
}
|
|
915
968
|
}
|
|
916
|
-
const forkId =
|
|
969
|
+
const forkId = (0, import_secure.uid)();
|
|
917
970
|
const fork = new import_forkFlowModel.ForkFlowModel(this, localProps, forkId);
|
|
918
971
|
if ((options == null ? void 0 : options.register) !== false) {
|
|
919
972
|
this.forks.add(fork);
|
|
@@ -952,7 +1005,7 @@ const _FlowModel = class _FlowModel {
|
|
|
952
1005
|
throw new Error("FlowEngine is not set on this model. Please set flowEngine before saving.");
|
|
953
1006
|
}
|
|
954
1007
|
this.observerDispose();
|
|
955
|
-
this.
|
|
1008
|
+
this.invalidateFlowCache("beforeRender", true);
|
|
956
1009
|
return this.flowEngine.removeModel(this.uid);
|
|
957
1010
|
}
|
|
958
1011
|
async save() {
|
|
@@ -969,7 +1022,7 @@ const _FlowModel = class _FlowModel {
|
|
|
969
1022
|
throw new Error("FlowEngine is not set on this model. Please set flowEngine before deleting.");
|
|
970
1023
|
}
|
|
971
1024
|
this.observerDispose();
|
|
972
|
-
this.
|
|
1025
|
+
this.invalidateFlowCache("beforeRender", true);
|
|
973
1026
|
return this.flowEngine.destroyModel(this.uid);
|
|
974
1027
|
}
|
|
975
1028
|
/**
|
|
@@ -1032,7 +1085,8 @@ const _FlowModel = class _FlowModel {
|
|
|
1032
1085
|
uid: this.uid,
|
|
1033
1086
|
...import_lodash.default.omit(this._options, ["flowEngine"]),
|
|
1034
1087
|
stepParams: this.stepParams,
|
|
1035
|
-
sortIndex: this.sortIndex
|
|
1088
|
+
sortIndex: this.sortIndex,
|
|
1089
|
+
flowRegistry: {}
|
|
1036
1090
|
};
|
|
1037
1091
|
const subModels = this.subModels;
|
|
1038
1092
|
for (const subModelKey in subModels) {
|
|
@@ -1047,8 +1101,7 @@ const _FlowModel = class _FlowModel {
|
|
|
1047
1101
|
}
|
|
1048
1102
|
}
|
|
1049
1103
|
for (const [key, flow] of this.flowRegistry.getFlows()) {
|
|
1050
|
-
data[
|
|
1051
|
-
data["flowRegistry"][key] = flow.toData();
|
|
1104
|
+
data.flowRegistry[key] = flow.toData();
|
|
1052
1105
|
}
|
|
1053
1106
|
return data;
|
|
1054
1107
|
}
|
|
@@ -31,7 +31,7 @@ export declare class ForkFlowModel<TMaster extends FlowModel = FlowModel> {
|
|
|
31
31
|
/** 是否已被释放 */
|
|
32
32
|
private disposed;
|
|
33
33
|
/** fork 在 master.forks 中的索引 */
|
|
34
|
-
readonly forkId:
|
|
34
|
+
readonly forkId: string;
|
|
35
35
|
/** 需要与 master 共享的属性列表 */
|
|
36
36
|
private static readonly SHARED_PROPERTIES;
|
|
37
37
|
/**
|
|
@@ -48,7 +48,7 @@ export declare class ForkFlowModel<TMaster extends FlowModel = FlowModel> {
|
|
|
48
48
|
* 注意:此属性通过 Proxy 在 get/set 陷阱中被动态访问,IDE 可能无法检测到使用, 切勿删除!
|
|
49
49
|
*/
|
|
50
50
|
private localProperties;
|
|
51
|
-
constructor(master: TMaster, initialProps?: IModelComponentProps, forkId?:
|
|
51
|
+
constructor(master: TMaster, initialProps?: IModelComponentProps, forkId?: string);
|
|
52
52
|
get context(): FlowModelContext;
|
|
53
53
|
/**
|
|
54
54
|
* 获取对象及其原型链上的属性描述符
|
|
@@ -58,14 +58,18 @@ export declare class ForkFlowModel<TMaster extends FlowModel = FlowModel> {
|
|
|
58
58
|
* 修改局部 props,仅影响当前 fork
|
|
59
59
|
*/
|
|
60
60
|
setProps(key: string | IModelComponentProps, value?: any): void;
|
|
61
|
+
/**
|
|
62
|
+
* 清理局部 props,仅影响当前 fork
|
|
63
|
+
*/
|
|
64
|
+
clearProps(): {};
|
|
61
65
|
/**
|
|
62
66
|
* render 依旧使用 master 的方法,但合并后的 props 需要透传
|
|
63
67
|
*/
|
|
64
68
|
render(): any;
|
|
65
69
|
/**
|
|
66
|
-
*
|
|
70
|
+
* 事件缓存的作用域标识(fork 专用)。
|
|
67
71
|
*/
|
|
68
|
-
|
|
72
|
+
getFlowCacheScope(eventName: string): string;
|
|
69
73
|
/**
|
|
70
74
|
* 释放 fork:从 master.forks 中移除自身并断开引用
|
|
71
75
|
*/
|