@nocobase/flow-engine 2.0.0-alpha.7 → 2.0.0-alpha.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/BlockScopedFlowEngine.d.ts +23 -0
- package/lib/BlockScopedFlowEngine.js +91 -0
- package/lib/FlowContextProvider.d.ts +2 -2
- package/lib/FlowContextProvider.js +3 -3
- package/lib/FlowDefinition.d.ts +6 -4
- package/lib/JSRunner.d.ts +6 -0
- package/lib/JSRunner.js +27 -1
- package/lib/ViewScopedFlowEngine.d.ts +1 -1
- package/lib/ViewScopedFlowEngine.js +18 -1
- package/lib/acl/Acl.d.ts +12 -12
- package/lib/acl/Acl.js +88 -30
- package/lib/components/DynamicFlowsEditor.js +2 -4
- package/lib/components/FieldModelRenderer.js +17 -9
- package/lib/components/FieldSkeleton.d.ts +10 -0
- package/lib/components/FieldSkeleton.js +64 -0
- package/lib/components/FlowContextSelector.js +19 -3
- package/lib/components/FlowModelRenderer.d.ts +4 -6
- package/lib/components/FlowModelRenderer.js +35 -53
- 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/common/withFlowDesignMode.d.ts +1 -1
- package/lib/components/common/withFlowDesignMode.js +5 -5
- package/lib/components/dnd/gridDragPlanner.d.ts +1 -0
- package/lib/components/dnd/gridDragPlanner.js +53 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +3 -1
- package/lib/components/settings/independents/dropdown/FlowsDropdownButton.js +71 -53
- package/lib/components/settings/wrappers/component/SelectWithTitle.d.ts +19 -0
- package/lib/components/settings/wrappers/component/SelectWithTitle.js +136 -0
- package/lib/components/settings/wrappers/component/SwitchWithTitle.d.ts +10 -0
- package/lib/components/settings/wrappers/component/SwitchWithTitle.js +111 -0
- package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +233 -97
- package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +71 -54
- package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.d.ts +2 -2
- package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.js +63 -23
- package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +13 -2
- package/lib/components/settings/wrappers/embedded/FlowSettings.js +42 -28
- package/lib/components/settings/wrappers/embedded/FlowsSettings.js +3 -3
- package/lib/components/settings/wrappers/embedded/FlowsSettingsContent.js +52 -32
- package/lib/components/subModel/AddSubModelButton.d.ts +7 -0
- package/lib/components/subModel/AddSubModelButton.js +78 -8
- package/lib/components/subModel/LazyDropdown.js +14 -15
- package/lib/components/subModel/utils.d.ts +1 -1
- package/lib/components/subModel/utils.js +21 -11
- package/lib/components/variables/VariableInput.js +26 -6
- package/lib/components/variables/VariableTag.js +43 -2
- package/lib/components/variables/types.d.ts +2 -0
- package/lib/components/variables/utils.js +4 -2
- package/lib/data-source/index.d.ts +23 -4
- package/lib/data-source/index.js +135 -14
- package/lib/data-source/jioToJoiSchema.js +1 -0
- package/lib/emitter.d.ts +6 -0
- package/lib/emitter.js +12 -0
- package/lib/executor/FlowExecutor.d.ts +6 -6
- package/lib/executor/FlowExecutor.js +302 -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 +105 -6
- package/lib/flowContext.js +447 -139
- package/lib/flowEngine.d.ts +71 -1
- package/lib/flowEngine.js +319 -16
- package/lib/flowSettings.d.ts +4 -3
- package/lib/flowSettings.js +45 -21
- package/lib/hooks/useApplyAutoFlows.d.ts +1 -0
- package/lib/hooks/useApplyAutoFlows.js +3 -2
- package/lib/index.d.ts +14 -3
- package/lib/index.js +54 -7
- package/lib/locale/de-DE.json +62 -0
- package/lib/locale/en-US.json +57 -45
- package/lib/locale/es-ES.json +62 -0
- package/lib/locale/fr-FR.json +62 -0
- package/lib/locale/hu-HU.json +62 -0
- package/lib/locale/id-ID.json +62 -0
- package/lib/locale/index.d.ts +114 -90
- package/lib/locale/it-IT.json +62 -0
- package/lib/locale/ja-JP.json +62 -0
- package/lib/locale/ko-KR.json +62 -0
- package/lib/locale/nl-NL.json +62 -0
- package/lib/locale/pt-BR.json +62 -0
- package/lib/locale/ru-RU.json +62 -0
- package/lib/locale/tr-TR.json +62 -0
- package/lib/locale/uk-UA.json +62 -0
- package/lib/locale/vi-VN.json +62 -0
- package/lib/locale/zh-CN.json +58 -46
- package/lib/locale/zh-TW.json +62 -0
- package/lib/models/CollectionFieldModel.d.ts +7 -2
- package/lib/models/CollectionFieldModel.js +63 -16
- package/lib/models/flowModel.d.ts +76 -32
- package/lib/models/flowModel.js +300 -112
- 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 +14 -11
- package/lib/reactive/index.d.ts +10 -0
- package/lib/{runjs-context/snippets/global/api-request-post.snippet.js → reactive/index.js} +14 -15
- package/lib/reactive/observer.d.ts +19 -0
- package/lib/reactive/observer.js +109 -0
- package/lib/resources/baseRecordResource.d.ts +6 -0
- package/lib/resources/baseRecordResource.js +38 -3
- package/lib/resources/multiRecordResource.d.ts +5 -2
- package/lib/resources/multiRecordResource.js +26 -10
- package/lib/resources/singleRecordResource.js +8 -3
- package/lib/resources/sqlResource.d.ts +5 -3
- package/lib/resources/sqlResource.js +30 -28
- package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.d.ts +1 -6
- package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +37 -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/JSEditableFieldRunJSContext.d.ts +16 -0
- package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.js +125 -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 +34 -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 +879 -0
- package/lib/runjs-context/contributions.d.ts +33 -0
- package/lib/runjs-context/contributions.js +88 -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 +88 -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 +24 -3
- package/lib/runjs-context/snippets/index.js +183 -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/runjsLibs.d.ts +28 -0
- package/lib/runjsLibs.js +532 -0
- package/lib/scheduler/ModelOperationScheduler.d.ts +53 -0
- package/lib/scheduler/ModelOperationScheduler.js +262 -0
- package/lib/types.d.ts +66 -7
- package/lib/types.js +4 -3
- package/lib/utils/associationObjectVariable.d.ts +32 -0
- package/lib/utils/associationObjectVariable.js +157 -0
- package/lib/utils/createCollectionContextMeta.d.ts +1 -1
- package/lib/utils/createCollectionContextMeta.js +9 -4
- 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/console-log-ctx.snippet.js → utils/flows.js} +21 -14
- package/lib/utils/index.d.ts +9 -3
- package/lib/utils/index.js +30 -2
- package/lib/utils/jsxTransform.d.ts +15 -0
- package/lib/utils/jsxTransform.js +68 -0
- package/lib/utils/params-resolvers.js +19 -12
- 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/resolveModuleUrl.d.ts +58 -0
- package/lib/utils/resolveModuleUrl.js +65 -0
- package/lib/utils/runjsModuleLoader.d.ts +58 -0
- package/lib/utils/runjsModuleLoader.js +422 -0
- package/lib/utils/runjsTemplateCompat.d.ts +35 -0
- package/lib/utils/runjsTemplateCompat.js +743 -0
- package/lib/utils/safeGlobals.d.ts +6 -8
- package/lib/utils/safeGlobals.js +169 -14
- package/lib/utils/schema-utils.d.ts +6 -0
- package/lib/utils/schema-utils.js +71 -6
- package/lib/utils/serverContextParams.d.ts +4 -0
- package/lib/utils/serverContextParams.js +2 -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 +141 -61
- package/lib/views/DialogComponent.js +1 -5
- package/lib/views/DrawerComponent.js +18 -9
- package/lib/views/PageComponent.js +5 -5
- package/lib/views/ViewNavigation.d.ts +11 -15
- package/lib/views/ViewNavigation.js +37 -19
- package/lib/views/createViewMeta.d.ts +27 -5
- package/lib/views/createViewMeta.js +338 -72
- package/lib/views/index.d.ts +1 -1
- package/lib/views/index.js +4 -0
- package/lib/views/useDialog.d.ts +10 -9
- package/lib/views/useDialog.js +46 -34
- package/lib/views/useDrawer.d.ts +10 -9
- package/lib/views/useDrawer.js +74 -48
- package/lib/views/usePage.d.ts +14 -9
- package/lib/views/usePage.js +82 -33
- package/lib/views/usePopover.js +4 -1
- package/lib/views/viewEvents.d.ts +17 -0
- package/lib/views/viewEvents.js +90 -0
- package/package.json +6 -3
- package/src/BlockScopedFlowEngine.ts +85 -0
- package/src/FlowContextProvider.tsx +4 -2
- package/src/JSRunner.ts +39 -1
- package/src/ViewScopedFlowEngine.ts +21 -1
- package/src/__tests__/JSRunner.test.ts +125 -52
- package/src/__tests__/blockScopedFlowEngine.test.ts +154 -0
- package/src/__tests__/createViewMeta.popup.test.ts +203 -0
- package/src/__tests__/flow-engine.test.ts +3 -0
- package/src/__tests__/flowContext.test.ts +160 -0
- package/src/__tests__/flowContextCreateJSRunner.test.ts +163 -0
- package/src/__tests__/flowEngine.dataSourceDirty.test.ts +63 -0
- package/src/__tests__/flowEngine.destroyModel.test.ts +74 -0
- package/src/__tests__/flowEngine.moveModel.test.ts +43 -0
- package/src/__tests__/flowEngine.removeModel.test.ts +72 -0
- package/src/__tests__/flowEngine.saveModel.test.ts +4 -0
- package/src/__tests__/flowModel.openView.navigation.test.ts +31 -2
- package/src/__tests__/flowRunJSContextDefine.test.ts +508 -0
- package/src/__tests__/flowSettings.open.test.tsx +71 -15
- 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__/provider.test.tsx +0 -5
- package/src/__tests__/runjsContext.test.ts +219 -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__/runjsExternalLibs.test.ts +242 -0
- package/src/__tests__/runjsLibsLazyLoading.test.ts +44 -0
- package/src/__tests__/runjsLocales.test.ts +39 -0
- package/src/__tests__/runjsPreprocessDefault.test.ts +49 -0
- package/src/__tests__/runjsRuntimeFeatures.test.ts +461 -0
- package/src/__tests__/runjsSnippets.test.ts +140 -0
- package/src/__tests__/viewScopedFlowEngine.test.ts +101 -3
- package/src/acl/Acl.tsx +85 -31
- package/src/acl/__tests__/Acl.test.tsx +43 -1
- package/src/components/DynamicFlowsEditor.tsx +0 -10
- package/src/components/FieldModelRenderer.tsx +22 -9
- package/src/components/FieldSkeleton.tsx +27 -0
- package/src/components/FlowContextSelector.tsx +20 -2
- package/src/components/FlowModelRenderer.tsx +52 -84
- 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__/FlowModelRenderer.test.tsx +89 -0
- package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +6 -6
- package/src/components/__tests__/gridDragPlanner.test.ts +141 -1
- package/src/components/common/withFlowDesignMode.tsx +5 -5
- package/src/components/dnd/gridDragPlanner.ts +60 -0
- package/src/components/index.ts +1 -0
- package/src/components/settings/independents/dropdown/FlowsDropdownButton.tsx +34 -17
- package/src/components/settings/wrappers/component/SelectWithTitle.tsx +110 -0
- package/src/components/settings/wrappers/component/SwitchWithTitle.tsx +83 -0
- package/src/components/settings/wrappers/component/__tests__/InlineControls.test.tsx +74 -0
- package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +272 -125
- package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +34 -18
- package/src/components/settings/wrappers/contextual/FlowsFloatContextMenu.tsx +56 -18
- package/src/components/settings/wrappers/contextual/StepSettings.tsx +1 -2
- package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +13 -1
- package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +624 -0
- package/src/components/settings/wrappers/embedded/FlowSettings.tsx +47 -35
- package/src/components/settings/wrappers/embedded/FlowsSettings.tsx +1 -1
- package/src/components/settings/wrappers/embedded/FlowsSettingsContent.tsx +64 -42
- package/src/components/subModel/AddSubModelButton.tsx +104 -9
- package/src/components/subModel/LazyDropdown.tsx +14 -14
- package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +168 -7
- package/src/components/subModel/__tests__/utils.test.ts +12 -12
- package/src/components/subModel/utils.ts +25 -6
- package/src/components/variables/VariableInput.tsx +32 -6
- package/src/components/variables/VariableTag.tsx +54 -2
- package/src/components/variables/types.ts +2 -0
- package/src/components/variables/utils.ts +7 -3
- package/src/data-source/index.ts +143 -12
- package/src/data-source/jioToJoiSchema.ts +1 -0
- package/src/emitter.ts +14 -0
- package/src/executor/FlowExecutor.ts +383 -119
- package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
- package/src/executor/__tests__/flowExecutor.test.ts +217 -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 +646 -158
- package/src/flowEngine.ts +385 -14
- package/src/flowSettings.ts +59 -30
- package/src/hooks/useApplyAutoFlows.ts +5 -3
- package/src/index.ts +26 -3
- package/src/locale/de-DE.json +62 -0
- package/src/locale/en-US.json +57 -45
- package/src/locale/es-ES.json +62 -0
- package/src/locale/fr-FR.json +62 -0
- package/src/locale/hu-HU.json +62 -0
- package/src/locale/id-ID.json +62 -0
- package/src/locale/it-IT.json +62 -0
- package/src/locale/ja-JP.json +62 -0
- package/src/locale/ko-KR.json +62 -0
- package/src/locale/nl-NL.json +62 -0
- package/src/locale/pt-BR.json +62 -0
- package/src/locale/ru-RU.json +62 -0
- package/src/locale/tr-TR.json +62 -0
- package/src/locale/uk-UA.json +62 -0
- package/src/locale/vi-VN.json +62 -0
- package/src/locale/zh-CN.json +58 -46
- package/src/locale/zh-TW.json +62 -0
- package/src/models/CollectionFieldModel.tsx +82 -18
- package/src/models/__tests__/dispatchEvent.behavior.test.ts +169 -0
- package/src/models/__tests__/dispatchEvent.when.test.ts +356 -0
- package/src/models/__tests__/flowEngine.resolveUse.test.ts +170 -0
- package/src/models/__tests__/flowModel.clone.test.ts +416 -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 +296 -119
- package/src/models/__tests__/forkFlowModel.test.ts +40 -7
- package/src/models/flowModel.tsx +426 -148
- package/src/models/forkFlowModel.ts +48 -8
- package/src/provider.tsx +18 -14
- package/src/reactive/__tests__/observer.test.tsx +211 -0
- package/src/reactive/index.ts +11 -0
- package/src/reactive/observer.tsx +101 -0
- package/src/resources/__tests__/multiRecordResource.test.ts +44 -0
- package/src/resources/__tests__/sqlResource.test.ts +60 -0
- package/src/resources/baseRecordResource.ts +46 -3
- package/src/resources/multiRecordResource.ts +28 -12
- package/src/resources/singleRecordResource.ts +9 -3
- package/src/resources/sqlResource.ts +33 -32
- package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +38 -21
- package/src/runjs-context/contexts/JSBlockRunJSContext.ts +50 -34
- package/src/runjs-context/contexts/JSCollectionActionRunJSContext.ts +15 -16
- package/src/runjs-context/contexts/JSColumnRunJSContext.ts +58 -0
- package/src/runjs-context/contexts/JSEditableFieldRunJSContext.ts +106 -0
- package/src/runjs-context/contexts/JSFieldRunJSContext.ts +30 -25
- package/src/runjs-context/contexts/JSItemRunJSContext.ts +35 -21
- package/src/runjs-context/contexts/JSRecordActionRunJSContext.ts +17 -18
- package/src/runjs-context/contexts/base.ts +871 -0
- package/src/runjs-context/contributions.ts +88 -0
- package/src/runjs-context/helpers.ts +32 -30
- package/src/runjs-context/registry.ts +16 -47
- package/src/runjs-context/setup.ts +57 -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 +212 -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/runjsLibs.ts +622 -0
- package/src/scheduler/ModelOperationScheduler.ts +306 -0
- package/src/types.ts +86 -5
- package/src/utils/__tests__/createCollectionContextMeta.test.ts +51 -0
- package/src/utils/__tests__/flows.test.ts +65 -0
- package/src/utils/__tests__/jsxTransform.test.ts +38 -0
- package/src/utils/__tests__/params-resolvers.test.ts +40 -0
- package/src/utils/__tests__/parsePathnameToViewParams.test.ts +25 -0
- package/src/utils/__tests__/pruneFilter.test.ts +38 -0
- package/src/utils/__tests__/runjsRequireAsyncAutoWhitelist.test.ts +38 -0
- package/src/utils/__tests__/runjsTemplateCompat.test.ts +159 -0
- package/src/utils/__tests__/safeGlobals.test.ts +79 -2
- package/src/utils/__tests__/utils.test.ts +114 -15
- package/src/utils/__tests__/variablesParams.test.ts +120 -0
- package/src/utils/associationObjectVariable.ts +180 -0
- package/src/utils/createCollectionContextMeta.ts +9 -3
- package/src/utils/createEphemeralContext.ts +142 -0
- package/src/utils/flows.ts +23 -0
- package/src/utils/index.ts +17 -3
- package/src/utils/jsxTransform.ts +39 -0
- package/src/utils/params-resolvers.ts +25 -11
- package/src/utils/parsePathnameToViewParams.ts +50 -6
- package/src/utils/pruneFilter.ts +41 -0
- package/src/utils/resolveModuleUrl.ts +91 -0
- package/src/utils/runjsModuleLoader.ts +553 -0
- package/src/utils/runjsTemplateCompat.ts +828 -0
- package/src/utils/safeGlobals.ts +181 -15
- package/src/utils/schema-utils.ts +81 -3
- package/src/utils/serverContextParams.ts +6 -0
- package/src/utils/translation.ts +7 -2
- package/src/utils/variablesParams.ts +164 -72
- package/src/views/DialogComponent.tsx +1 -4
- package/src/views/DrawerComponent.tsx +19 -7
- package/src/views/PageComponent.tsx +3 -5
- package/src/views/ViewNavigation.ts +49 -43
- package/src/views/__tests__/FlowView.usePage.test.tsx +186 -0
- package/src/views/__tests__/ViewNavigation.test.ts +54 -34
- package/src/views/__tests__/useDialog.closeDestroy.test.tsx +159 -0
- package/src/views/__tests__/viewEvents.resolveOpenerEngine.test.ts +28 -0
- package/src/views/createViewMeta.ts +402 -73
- package/src/views/index.tsx +1 -1
- package/src/views/useDialog.tsx +52 -31
- package/src/views/useDrawer.tsx +99 -55
- package/src/views/usePage.tsx +101 -33
- package/src/views/usePopover.tsx +4 -1
- package/src/views/viewEvents.ts +55 -0
- 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/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
|
@@ -45,18 +45,7 @@ var import_reactive = require("@formily/reactive");
|
|
|
45
45
|
var import_lodash = __toESM(require("lodash"));
|
|
46
46
|
var import_flowContext = require("../flowContext");
|
|
47
47
|
var import_baseRecordResource = require("./baseRecordResource");
|
|
48
|
-
|
|
49
|
-
let index = 1;
|
|
50
|
-
const bind = {};
|
|
51
|
-
const sql = template.replace(/{{\s*([^}]+)\s*}}/g, (_2, expr) => {
|
|
52
|
-
const key = `__var${index}`;
|
|
53
|
-
bind[key] = `{{${expr.trim()}}}`;
|
|
54
|
-
index++;
|
|
55
|
-
return `$${key}`;
|
|
56
|
-
});
|
|
57
|
-
return { sql, bind };
|
|
58
|
-
}
|
|
59
|
-
__name(transformSQL, "transformSQL");
|
|
48
|
+
var import_client = require("@nocobase/utils/client");
|
|
60
49
|
const _FlowSQLRepository = class _FlowSQLRepository {
|
|
61
50
|
ctx;
|
|
62
51
|
constructor(ctx) {
|
|
@@ -72,16 +61,17 @@ const _FlowSQLRepository = class _FlowSQLRepository {
|
|
|
72
61
|
});
|
|
73
62
|
}
|
|
74
63
|
async run(sql, options = {}) {
|
|
75
|
-
const
|
|
76
|
-
const
|
|
64
|
+
const { sql: transformedSQL, bind, liquidContext } = await (0, import_client.transformSQL)(sql);
|
|
65
|
+
const resolved = await this.ctx.resolveJsonTemplate({ bind, liquidContext });
|
|
66
|
+
const parsedSQL = await (0, import_client.parseLiquidContext)(transformedSQL, resolved.liquidContext);
|
|
77
67
|
const { data } = await this.ctx.api.request({
|
|
78
68
|
method: "POST",
|
|
79
69
|
url: "flowSql:run",
|
|
80
70
|
data: {
|
|
81
|
-
sql:
|
|
71
|
+
sql: parsedSQL,
|
|
82
72
|
...options,
|
|
83
73
|
bind: {
|
|
84
|
-
...bind,
|
|
74
|
+
...resolved.bind,
|
|
85
75
|
...options.bind
|
|
86
76
|
}
|
|
87
77
|
}
|
|
@@ -105,7 +95,7 @@ const _FlowSQLRepository = class _FlowSQLRepository {
|
|
|
105
95
|
uid
|
|
106
96
|
}
|
|
107
97
|
});
|
|
108
|
-
const bind = await this.ctx.resolveJsonTemplate(response.data.data || {});
|
|
98
|
+
const { bind, liquidContext } = await this.ctx.resolveJsonTemplate(response.data.data || {});
|
|
109
99
|
const { data } = await this.ctx.api.request({
|
|
110
100
|
method: "POST",
|
|
111
101
|
url: "flowSql:runById",
|
|
@@ -114,8 +104,9 @@ const _FlowSQLRepository = class _FlowSQLRepository {
|
|
|
114
104
|
...options,
|
|
115
105
|
bind: {
|
|
116
106
|
...bind,
|
|
117
|
-
...options.bind
|
|
118
|
-
}
|
|
107
|
+
...options == null ? void 0 : options.bind
|
|
108
|
+
},
|
|
109
|
+
liquidContext
|
|
119
110
|
}
|
|
120
111
|
});
|
|
121
112
|
return data == null ? void 0 : data.data;
|
|
@@ -135,6 +126,7 @@ const _SQLResource = class _SQLResource extends import_baseRecordResource.BaseRe
|
|
|
135
126
|
_data = import_reactive.observable.ref(null);
|
|
136
127
|
_meta = import_reactive.observable.ref({});
|
|
137
128
|
refreshTimer = null;
|
|
129
|
+
refreshWaiters = [];
|
|
138
130
|
_debugEnabled = false;
|
|
139
131
|
_sql;
|
|
140
132
|
// 请求配置 - 与 APIClient 接口保持一致
|
|
@@ -227,19 +219,23 @@ const _SQLResource = class _SQLResource extends import_baseRecordResource.BaseRe
|
|
|
227
219
|
this.request.data.bind = bind;
|
|
228
220
|
return this;
|
|
229
221
|
}
|
|
222
|
+
setLiquidContext(liquidContext) {
|
|
223
|
+
this.request.data.liquidContext = liquidContext;
|
|
224
|
+
return this;
|
|
225
|
+
}
|
|
230
226
|
async run() {
|
|
231
227
|
return this._debugEnabled ? await this.runBySQL() : await this.runById();
|
|
232
228
|
}
|
|
233
229
|
async runBySQL() {
|
|
234
230
|
const sql = this._sql;
|
|
235
|
-
const
|
|
236
|
-
const
|
|
231
|
+
const { sql: transformedSQL, bind, liquidContext } = await (0, import_client.transformSQL)(sql);
|
|
232
|
+
const resolved = await this.context.resolveJsonTemplate({ bind, liquidContext });
|
|
237
233
|
const options = import_lodash.default.cloneDeep({
|
|
238
234
|
method: "post",
|
|
239
235
|
...this.getRefreshRequestOptions()
|
|
240
236
|
});
|
|
241
|
-
options.data.
|
|
242
|
-
options.data.
|
|
237
|
+
options.data.sql = await (0, import_client.parseLiquidContext)(transformedSQL, resolved.liquidContext);
|
|
238
|
+
options.data.bind = resolved.bind;
|
|
243
239
|
return await this.runAction("run", options);
|
|
244
240
|
}
|
|
245
241
|
async runById() {
|
|
@@ -249,8 +245,9 @@ const _SQLResource = class _SQLResource extends import_baseRecordResource.BaseRe
|
|
|
249
245
|
uid: this.request.data.uid
|
|
250
246
|
}
|
|
251
247
|
});
|
|
252
|
-
const bind = await this.context.resolveJsonTemplate(data);
|
|
248
|
+
const { bind, liquidContext } = await this.context.resolveJsonTemplate(data);
|
|
253
249
|
this.setBind(bind);
|
|
250
|
+
this.setLiquidContext(liquidContext);
|
|
254
251
|
return await this.runAction("runById", {
|
|
255
252
|
method: "post",
|
|
256
253
|
...this.getRefreshRequestOptions()
|
|
@@ -265,20 +262,25 @@ const _SQLResource = class _SQLResource extends import_baseRecordResource.BaseRe
|
|
|
265
262
|
clearTimeout(this.refreshTimer);
|
|
266
263
|
}
|
|
267
264
|
return new Promise((resolve, reject) => {
|
|
265
|
+
this.refreshWaiters.push({ resolve, reject });
|
|
268
266
|
this.refreshTimer = setTimeout(async () => {
|
|
267
|
+
const waiters = this.refreshWaiters;
|
|
268
|
+
this.refreshWaiters = [];
|
|
269
|
+
this.refreshTimer = null;
|
|
269
270
|
try {
|
|
270
271
|
this.clearError();
|
|
271
272
|
this.loading = true;
|
|
273
|
+
this.emit("loading");
|
|
272
274
|
const { data, meta } = await this.run();
|
|
273
275
|
this.setData(data).setMeta(meta);
|
|
274
|
-
this.emit("refresh");
|
|
275
276
|
this.loading = false;
|
|
276
|
-
|
|
277
|
+
this.emit("refresh");
|
|
278
|
+
waiters.forEach((w) => w.resolve());
|
|
277
279
|
} catch (error) {
|
|
278
280
|
this.setError(error);
|
|
279
|
-
|
|
281
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
282
|
+
waiters.forEach((w) => w.reject(err));
|
|
280
283
|
} finally {
|
|
281
|
-
this.refreshTimer = null;
|
|
282
284
|
this.loading = false;
|
|
283
285
|
}
|
|
284
286
|
});
|
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { FlowRunJSContext } from '
|
|
9
|
+
import { FlowRunJSContext } from '../../flowContext';
|
|
10
10
|
export declare class FormJSFieldItemRunJSContext extends FlowRunJSContext {
|
|
11
|
-
static injectDefaultGlobals(): {
|
|
12
|
-
window: {};
|
|
13
|
-
document: {};
|
|
14
|
-
};
|
|
15
|
-
constructor(delegate: any);
|
|
16
11
|
}
|
|
@@ -30,36 +30,53 @@ __export(FormJSFieldItemRunJSContext_exports, {
|
|
|
30
30
|
FormJSFieldItemRunJSContext: () => FormJSFieldItemRunJSContext
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(FormJSFieldItemRunJSContext_exports);
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
const _FormJSFieldItemRunJSContext = class _FormJSFieldItemRunJSContext extends import_FlowRunJSContext.FlowRunJSContext {
|
|
36
|
-
static injectDefaultGlobals() {
|
|
37
|
-
return { window: (0, import_utils.createSafeWindow)(), document: (0, import_utils.createSafeDocument)() };
|
|
38
|
-
}
|
|
39
|
-
constructor(delegate) {
|
|
40
|
-
super(delegate);
|
|
41
|
-
this.defineProperty("element", { get: /* @__PURE__ */ __name(() => this._delegate["element"], "get") });
|
|
42
|
-
this.defineProperty("record", { get: /* @__PURE__ */ __name(() => this._delegate["record"], "get") });
|
|
43
|
-
this.defineProperty("value", { get: /* @__PURE__ */ __name(() => this._delegate["value"], "get") });
|
|
44
|
-
}
|
|
33
|
+
var import_flowContext = require("../../flowContext");
|
|
34
|
+
const _FormJSFieldItemRunJSContext = class _FormJSFieldItemRunJSContext extends import_flowContext.FlowRunJSContext {
|
|
45
35
|
};
|
|
46
36
|
__name(_FormJSFieldItemRunJSContext, "FormJSFieldItemRunJSContext");
|
|
47
37
|
let FormJSFieldItemRunJSContext = _FormJSFieldItemRunJSContext;
|
|
48
38
|
FormJSFieldItemRunJSContext.define({
|
|
49
39
|
label: "FormJSFieldItem RunJS context",
|
|
50
40
|
properties: {
|
|
51
|
-
element:
|
|
52
|
-
|
|
53
|
-
|
|
41
|
+
element: `ElementProxy instance providing a safe DOM container for form field rendering.
|
|
42
|
+
Supports innerHTML, append, and other DOM manipulation methods.`,
|
|
43
|
+
value: `Current field value (read-only in display mode; in controlled scenarios, use setProps to modify).`,
|
|
44
|
+
record: `Current record data object (read-only).
|
|
45
|
+
Contains all field values of the parent record.`,
|
|
46
|
+
formValues: {
|
|
47
|
+
description: "Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",
|
|
48
|
+
detail: "Record<string, any>",
|
|
49
|
+
examples: ["const { name, status } = ctx.formValues || {};"]
|
|
50
|
+
}
|
|
54
51
|
},
|
|
55
52
|
methods: {
|
|
56
|
-
onRefReady:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
onRefReady: `Wait for form field container DOM element to be ready before executing callback.
|
|
54
|
+
Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`,
|
|
55
|
+
setProps: `Set form field properties programmatically.
|
|
56
|
+
Parameters: (fieldModel: any, props: { value?: any, disabled?: boolean, visible?: boolean }) => void
|
|
57
|
+
Example: ctx.setProps(fieldModel, { value: "new value" })`
|
|
61
58
|
}
|
|
62
59
|
});
|
|
60
|
+
FormJSFieldItemRunJSContext.define(
|
|
61
|
+
{
|
|
62
|
+
label: "\u8868\u5355 JS \u5B57\u6BB5\u9879 RunJS \u4E0A\u4E0B\u6587",
|
|
63
|
+
properties: {
|
|
64
|
+
element: "ElementProxy\uFF0C\u8868\u5355\u5B57\u6BB5\u5BB9\u5668",
|
|
65
|
+
value: "\u5B57\u6BB5\u503C\uFF08\u5C55\u793A\u6A21\u5F0F\u4E3A\u53EA\u8BFB\uFF1B\u53D7\u63A7\u573A\u666F\u7528 setProps \u4FEE\u6539\uFF09",
|
|
66
|
+
record: "\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF09",
|
|
67
|
+
formValues: {
|
|
68
|
+
description: "\u5F53\u524D\u8868\u5355\u503C\u5FEB\u7167\uFF08\u5BF9\u8C61\uFF09\u3002\u4EC5\u8868\u5355\u76F8\u5173\u4E0A\u4E0B\u6587\u53EF\u7528\uFF08Create/Edit Form\uFF09\u3002",
|
|
69
|
+
detail: "Record<string, any>",
|
|
70
|
+
examples: ["const { name, status } = ctx.formValues || {};"]
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
methods: {
|
|
74
|
+
onRefReady: "\u5BB9\u5668\u5C31\u7EEA\u56DE\u8C03",
|
|
75
|
+
setProps: "\u8BBE\u7F6E\u8868\u5355\u9879\u5C5E\u6027\uFF1A`setProps(fieldModel, { value })`\uFF08\u7531\u8054\u52A8/\u8868\u5355\u4E0A\u4E0B\u6587\u63D0\u4F9B\uFF09"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{ locale: "zh-CN" }
|
|
79
|
+
);
|
|
63
80
|
// Annotate the CommonJS export names for ESM import in node:
|
|
64
81
|
0 && (module.exports = {
|
|
65
82
|
FormJSFieldItemRunJSContext
|
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { FlowRunJSContext } from '
|
|
9
|
+
import { FlowRunJSContext } from '../../flowContext';
|
|
10
10
|
export declare class JSBlockRunJSContext extends FlowRunJSContext {
|
|
11
|
-
static injectDefaultGlobals(): {
|
|
12
|
-
window: {};
|
|
13
|
-
document: {};
|
|
14
|
-
};
|
|
15
|
-
constructor(delegate: any);
|
|
16
11
|
}
|
|
@@ -30,48 +30,61 @@ __export(JSBlockRunJSContext_exports, {
|
|
|
30
30
|
JSBlockRunJSContext: () => JSBlockRunJSContext
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(JSBlockRunJSContext_exports);
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
const _JSBlockRunJSContext = class _JSBlockRunJSContext extends import_FlowRunJSContext.FlowRunJSContext {
|
|
36
|
-
static injectDefaultGlobals() {
|
|
37
|
-
return { window: (0, import_utils.createSafeWindow)(), document: (0, import_utils.createSafeDocument)() };
|
|
38
|
-
}
|
|
39
|
-
constructor(delegate) {
|
|
40
|
-
super(delegate);
|
|
41
|
-
this.defineProperty("element", { get: /* @__PURE__ */ __name(() => this._delegate["element"], "get") });
|
|
42
|
-
this.defineProperty("record", { get: /* @__PURE__ */ __name(() => this._delegate["record"], "get") });
|
|
43
|
-
this.defineProperty("value", { get: /* @__PURE__ */ __name(() => this._delegate["value"], "get") });
|
|
44
|
-
}
|
|
33
|
+
var import_flowContext = require("../../flowContext");
|
|
34
|
+
const _JSBlockRunJSContext = class _JSBlockRunJSContext extends import_flowContext.FlowRunJSContext {
|
|
45
35
|
};
|
|
46
36
|
__name(_JSBlockRunJSContext, "JSBlockRunJSContext");
|
|
47
37
|
let JSBlockRunJSContext = _JSBlockRunJSContext;
|
|
48
38
|
JSBlockRunJSContext.define({
|
|
49
|
-
label: "
|
|
39
|
+
label: "RunJS context",
|
|
50
40
|
properties: {
|
|
51
|
-
element:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
element: {
|
|
42
|
+
description: `ElementProxy instance providing a safe DOM container.
|
|
43
|
+
Supports innerHTML, append, and other DOM manipulation methods.
|
|
44
|
+
Use this to render content in the JS block.`,
|
|
45
|
+
detail: "ElementProxy",
|
|
46
|
+
properties: {
|
|
47
|
+
innerHTML: "Set or read the HTML content of the container element."
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
record: `Current record data object (read-only).
|
|
51
|
+
Available when the JS block is within a data block or detail view context.`,
|
|
52
|
+
value: "Current value of the field or component, if available in the current context.",
|
|
53
|
+
React: "React library",
|
|
54
|
+
antd: "Ant Design library"
|
|
56
55
|
},
|
|
57
56
|
methods: {
|
|
58
|
-
onRefReady:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
"Render React": { $ref: "scene/jsblock/render-react", prefix: "sn-jsb-react" },
|
|
64
|
-
"Init ECharts": { $ref: "libs/echarts-init", prefix: "sn-echarts" },
|
|
65
|
-
"Render card": { $ref: "scene/jsblock/render-card", prefix: "sn-jsb-card" },
|
|
66
|
-
"Button handler": { $ref: "scene/jsblock/render-button-handler", prefix: "sn-jsb-button" },
|
|
67
|
-
"JSX mount": { $ref: "scene/jsblock/jsx-mount", prefix: "sn-jsx-mount" },
|
|
68
|
-
"JSX unmount": { $ref: "scene/jsblock/jsx-unmount", prefix: "sn-jsx-unmount" },
|
|
69
|
-
Notification: { $ref: "global/notification-open", prefix: "sn-notify" },
|
|
70
|
-
"Window open": { $ref: "global/window-open", prefix: "sn-window-open" },
|
|
71
|
-
"Add click listener": { $ref: "scene/jsblock/add-event-listener", prefix: "sn-jsb-click" },
|
|
72
|
-
"Append style": { $ref: "scene/jsblock/append-style", prefix: "sn-jsb-style" }
|
|
57
|
+
onRefReady: `Wait for container DOM element to be ready before executing callback.
|
|
58
|
+
Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
|
|
59
|
+
Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,
|
|
60
|
+
requireAsync: "Load external library: `const lib = await ctx.requireAsync(url)`",
|
|
61
|
+
importAsync: "Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."
|
|
73
62
|
}
|
|
74
63
|
});
|
|
64
|
+
JSBlockRunJSContext.define(
|
|
65
|
+
{
|
|
66
|
+
label: "RunJS \u4E0A\u4E0B\u6587",
|
|
67
|
+
properties: {
|
|
68
|
+
element: {
|
|
69
|
+
description: "ElementProxy\uFF0C\u5B89\u5168\u7684 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",
|
|
70
|
+
detail: "ElementProxy",
|
|
71
|
+
properties: {
|
|
72
|
+
innerHTML: "\u8BFB\u53D6\u6216\u8BBE\u7F6E\u5BB9\u5668\u7684 HTML \u5185\u5BB9"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
record: "\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF0C\u7528\u4E8E\u6570\u636E\u533A\u5757/\u8BE6\u60C5\u7B49\u573A\u666F\uFF09",
|
|
76
|
+
value: "\u5F53\u524D\u503C\uFF08\u82E5\u5B58\u5728\uFF09",
|
|
77
|
+
React: "React \u5E93",
|
|
78
|
+
antd: "Ant Design \u5E93"
|
|
79
|
+
},
|
|
80
|
+
methods: {
|
|
81
|
+
onRefReady: "\u5BB9\u5668 ref \u5C31\u7EEA\u56DE\u8C03\uFF1A\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",
|
|
82
|
+
requireAsync: "\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",
|
|
83
|
+
importAsync: "\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`\u3002\n\u6CE8\u610F\uFF1A\u5F53\u6A21\u5757\u53EA\u6709 default \u4E00\u4E2A\u5BFC\u51FA\u65F6\uFF0Cctx.importAsync \u4F1A\u76F4\u63A5\u8FD4\u56DE default \u503C\uFF08\u65E0\u9700\u518D\u5199 `.default`\uFF09\u3002"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{ locale: "zh-CN" }
|
|
87
|
+
);
|
|
75
88
|
// Annotate the CommonJS export names for ESM import in node:
|
|
76
89
|
0 && (module.exports = {
|
|
77
90
|
JSBlockRunJSContext
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { FlowRunJSContext } from '
|
|
9
|
+
import { FlowRunJSContext } from '../../flowContext';
|
|
10
10
|
export declare class JSCollectionActionRunJSContext extends FlowRunJSContext {
|
|
11
|
-
constructor(delegate: any);
|
|
12
11
|
}
|
|
@@ -30,29 +30,28 @@ __export(JSCollectionActionRunJSContext_exports, {
|
|
|
30
30
|
JSCollectionActionRunJSContext: () => JSCollectionActionRunJSContext
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(JSCollectionActionRunJSContext_exports);
|
|
33
|
-
var
|
|
34
|
-
const _JSCollectionActionRunJSContext = class _JSCollectionActionRunJSContext extends
|
|
35
|
-
constructor(delegate) {
|
|
36
|
-
super(delegate);
|
|
37
|
-
this.defineProperty("resource", { get: /* @__PURE__ */ __name(() => this._delegate["resource"], "get") });
|
|
38
|
-
}
|
|
33
|
+
var import_flowContext = require("../../flowContext");
|
|
34
|
+
const _JSCollectionActionRunJSContext = class _JSCollectionActionRunJSContext extends import_flowContext.FlowRunJSContext {
|
|
39
35
|
};
|
|
40
36
|
__name(_JSCollectionActionRunJSContext, "JSCollectionActionRunJSContext");
|
|
41
37
|
let JSCollectionActionRunJSContext = _JSCollectionActionRunJSContext;
|
|
42
38
|
JSCollectionActionRunJSContext.define({
|
|
43
39
|
label: "JSCollectionAction RunJS context",
|
|
44
40
|
properties: {
|
|
45
|
-
resource:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
runAction: "Run action",
|
|
49
|
-
message: "Message API"
|
|
50
|
-
},
|
|
51
|
-
snipastes: {
|
|
52
|
-
"Selected count": { $ref: "scene/actions/collection-selected-count", prefix: "sn-act-selected-count" },
|
|
53
|
-
"Iterate selected rows": { $ref: "scene/actions/iterate-selected-rows", prefix: "sn-act-iterate" }
|
|
41
|
+
resource: `Collection resource instance providing access to selected rows, pagination, and data operations.
|
|
42
|
+
Use ctx.resource.selectedRows to get selected records.
|
|
43
|
+
Use ctx.resource.pagination for page info.`
|
|
54
44
|
}
|
|
55
45
|
});
|
|
46
|
+
JSCollectionActionRunJSContext.define(
|
|
47
|
+
{
|
|
48
|
+
label: "JS \u96C6\u5408\u52A8\u4F5C RunJS \u4E0A\u4E0B\u6587",
|
|
49
|
+
properties: {
|
|
50
|
+
resource: "\u5217\u8868\u8D44\u6E90\uFF08\u5305\u542B\u9009\u4E2D\u884C/\u5206\u9875\u4FE1\u606F\u7B49\uFF09"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{ locale: "zh-CN" }
|
|
54
|
+
);
|
|
56
55
|
// Annotate the CommonJS export names for ESM import in node:
|
|
57
56
|
0 && (module.exports = {
|
|
58
57
|
JSCollectionActionRunJSContext
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { FlowRunJSContext } from '
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
import { FlowRunJSContext } from '../../flowContext';
|
|
10
|
+
/**
|
|
11
|
+
* RunJS context for JSColumnModel (table custom column).
|
|
12
|
+
* Focused on per-row rendering with access to current record and cell element.
|
|
13
|
+
*/
|
|
14
|
+
export declare class JSColumnRunJSContext extends FlowRunJSContext {
|
|
12
15
|
}
|
|
@@ -0,0 +1,78 @@
|
|
|
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 JSColumnRunJSContext_exports = {};
|
|
29
|
+
__export(JSColumnRunJSContext_exports, {
|
|
30
|
+
JSColumnRunJSContext: () => JSColumnRunJSContext
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(JSColumnRunJSContext_exports);
|
|
33
|
+
var import_flowContext = require("../../flowContext");
|
|
34
|
+
const _JSColumnRunJSContext = class _JSColumnRunJSContext extends import_flowContext.FlowRunJSContext {
|
|
35
|
+
};
|
|
36
|
+
__name(_JSColumnRunJSContext, "JSColumnRunJSContext");
|
|
37
|
+
let JSColumnRunJSContext = _JSColumnRunJSContext;
|
|
38
|
+
JSColumnRunJSContext.define({
|
|
39
|
+
label: "JSColumn RunJS context",
|
|
40
|
+
properties: {
|
|
41
|
+
element: "ElementProxy instance providing a safe DOM container for the current table cell. Supports innerHTML/append and basic DOM APIs.",
|
|
42
|
+
record: "Current row record object (read-only).",
|
|
43
|
+
recordIndex: "Index of the current row in the page (0-based).",
|
|
44
|
+
collection: "Collection definition metadata (read-only).",
|
|
45
|
+
viewer: "View controller providing dialog/drawer/embed helpers for interactions initiated from the cell (e.g., open details).",
|
|
46
|
+
React: "React library",
|
|
47
|
+
antd: "Ant Design library"
|
|
48
|
+
},
|
|
49
|
+
methods: {
|
|
50
|
+
onRefReady: "Wait for cell DOM element to be ready before executing callback. Parameters: (ref, callback, timeout?) => void",
|
|
51
|
+
requireAsync: "Load external library by URL: `const lib = await ctx.requireAsync(url)`",
|
|
52
|
+
importAsync: "Dynamically import ESM module by URL: `const mod = await ctx.importAsync(url)`"
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
JSColumnRunJSContext.define(
|
|
56
|
+
{
|
|
57
|
+
label: "JS \u5217 RunJS \u4E0A\u4E0B\u6587",
|
|
58
|
+
properties: {
|
|
59
|
+
element: "ElementProxy\uFF0C\u8868\u683C\u5355\u5143\u683C\u7684\u5B89\u5168 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",
|
|
60
|
+
record: "\u5F53\u524D\u884C\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF09",
|
|
61
|
+
recordIndex: "\u5F53\u524D\u884C\u7D22\u5F15\uFF08\u4ECE 0 \u5F00\u59CB\uFF09",
|
|
62
|
+
collection: "\u96C6\u5408\u5B9A\u4E49\u5143\u6570\u636E\uFF08\u53EA\u8BFB\uFF09",
|
|
63
|
+
viewer: "\u89C6\u56FE\u63A7\u5236\u5668\uFF0C\u53EF\u7528\u4E8E\u5728\u5355\u5143\u683C\u4E2D\u89E6\u53D1\u62BD\u5C49/\u5BF9\u8BDD\u6846/\u5185\u5D4C\u7B49\u4EA4\u4E92",
|
|
64
|
+
React: "React \u5E93",
|
|
65
|
+
antd: "Ant Design \u5E93"
|
|
66
|
+
},
|
|
67
|
+
methods: {
|
|
68
|
+
onRefReady: "\u7B49\u5F85\u5355\u5143\u683C DOM \u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)",
|
|
69
|
+
requireAsync: "\u6309 URL \u5F02\u6B65\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",
|
|
70
|
+
importAsync: "\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{ locale: "zh-CN" }
|
|
74
|
+
);
|
|
75
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
76
|
+
0 && (module.exports = {
|
|
77
|
+
JSColumnRunJSContext
|
|
78
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import { FlowRunJSContext } from '../../flowContext';
|
|
10
|
+
/**
|
|
11
|
+
* RunJS context for JSEditableFieldModel (form editable custom field).
|
|
12
|
+
* NOTE: Some APIs (e.g., getValue/setValue/element) are provided by the model's runtime handler.
|
|
13
|
+
* This doc is used for editor autocomplete and AI coding assistance.
|
|
14
|
+
*/
|
|
15
|
+
export declare class JSEditableFieldRunJSContext extends FlowRunJSContext {
|
|
16
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
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 JSEditableFieldRunJSContext_exports = {};
|
|
29
|
+
__export(JSEditableFieldRunJSContext_exports, {
|
|
30
|
+
JSEditableFieldRunJSContext: () => JSEditableFieldRunJSContext
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(JSEditableFieldRunJSContext_exports);
|
|
33
|
+
var import_flowContext = require("../../flowContext");
|
|
34
|
+
const _JSEditableFieldRunJSContext = class _JSEditableFieldRunJSContext extends import_flowContext.FlowRunJSContext {
|
|
35
|
+
};
|
|
36
|
+
__name(_JSEditableFieldRunJSContext, "JSEditableFieldRunJSContext");
|
|
37
|
+
let JSEditableFieldRunJSContext = _JSEditableFieldRunJSContext;
|
|
38
|
+
JSEditableFieldRunJSContext.define({
|
|
39
|
+
label: "JSEditableField RunJS context",
|
|
40
|
+
properties: {
|
|
41
|
+
element: {
|
|
42
|
+
description: "ElementProxy instance providing a safe DOM container for field rendering. In editable mode this container is typically a <span> element.",
|
|
43
|
+
detail: "ElementProxy"
|
|
44
|
+
},
|
|
45
|
+
value: {
|
|
46
|
+
description: "Current field value (read-only snapshot). In editable scenarios, prefer ctx.getValue()/ctx.setValue(v) for two-way binding.",
|
|
47
|
+
detail: "any",
|
|
48
|
+
examples: ["const v = ctx.getValue?.() ?? ctx.value;", 'ctx.setValue?.("new value");']
|
|
49
|
+
},
|
|
50
|
+
record: {
|
|
51
|
+
description: "Current record data object (read-only). Available in forms that are bound to a record.",
|
|
52
|
+
detail: "Record<string, any>"
|
|
53
|
+
},
|
|
54
|
+
form: {
|
|
55
|
+
description: 'Ant Design Form instance for reading/writing other fields. Example: ctx.form.getFieldValue("name")',
|
|
56
|
+
detail: "FormInstance"
|
|
57
|
+
},
|
|
58
|
+
formValues: {
|
|
59
|
+
description: "Snapshot of current form values (object). Prefer ctx.form.getFieldsValue() when you need the latest values.",
|
|
60
|
+
detail: "Record<string, any>"
|
|
61
|
+
},
|
|
62
|
+
namePath: {
|
|
63
|
+
description: "Field namePath in the form (array). Useful for advanced Form operations.",
|
|
64
|
+
detail: "Array<string | number>"
|
|
65
|
+
},
|
|
66
|
+
disabled: "Whether the field is disabled (boolean).",
|
|
67
|
+
readOnly: "Whether the field is read-only (boolean)."
|
|
68
|
+
},
|
|
69
|
+
methods: {
|
|
70
|
+
getValue: {
|
|
71
|
+
description: "Get current field value (recommended for editable custom fields).",
|
|
72
|
+
detail: "() => any",
|
|
73
|
+
completion: { insertText: "ctx.getValue?.()" }
|
|
74
|
+
},
|
|
75
|
+
setValue: {
|
|
76
|
+
description: "Set current field value (two-way binding with the form).",
|
|
77
|
+
detail: "(value: any) => void",
|
|
78
|
+
completion: { insertText: "ctx.setValue?.(value)" },
|
|
79
|
+
examples: ["ctx.setValue?.(e.target.value);"]
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
JSEditableFieldRunJSContext.define(
|
|
84
|
+
{
|
|
85
|
+
label: "JS \u53EF\u7F16\u8F91\u5B57\u6BB5 RunJS \u4E0A\u4E0B\u6587",
|
|
86
|
+
properties: {
|
|
87
|
+
element: {
|
|
88
|
+
description: "ElementProxy\uFF0C\u5B57\u6BB5\u6E32\u67D3\u7684\u5B89\u5168\u5BB9\u5668\uFF08\u901A\u5E38\u4E3A <span> \u5BB9\u5668\uFF09\u3002",
|
|
89
|
+
detail: "ElementProxy"
|
|
90
|
+
},
|
|
91
|
+
value: {
|
|
92
|
+
description: "\u5B57\u6BB5\u5F53\u524D\u503C\uFF08\u53EA\u8BFB\u5FEB\u7167\uFF09\u3002\u53EF\u7F16\u8F91\u573A\u666F\u5EFA\u8BAE\u4F7F\u7528 ctx.getValue()/ctx.setValue(v) \u505A\u53CC\u5411\u7ED1\u5B9A\u3002",
|
|
93
|
+
detail: "any",
|
|
94
|
+
examples: ["const v = ctx.getValue?.() ?? ctx.value;", 'ctx.setValue?.("\u65B0\u503C");']
|
|
95
|
+
},
|
|
96
|
+
record: { description: "\u5F53\u524D\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF1B\u8868\u5355\u7ED1\u5B9A\u8BB0\u5F55\u65F6\u53EF\u7528\uFF09\u3002", detail: "Record<string, any>" },
|
|
97
|
+
form: { description: "Ant Design Form \u5B9E\u4F8B\uFF0C\u53EF\u8BFB\u5199\u5176\u5B83\u5B57\u6BB5\u3002", detail: "FormInstance" },
|
|
98
|
+
formValues: {
|
|
99
|
+
description: "\u5F53\u524D\u8868\u5355\u503C\u5FEB\u7167\uFF08\u5BF9\u8C61\uFF09\u3002\u9700\u8981\u6700\u65B0\u503C\u53EF\u7528 ctx.form.getFieldsValue()\u3002",
|
|
100
|
+
detail: "Record<string, any>"
|
|
101
|
+
},
|
|
102
|
+
namePath: { description: "\u5B57\u6BB5\u5728\u8868\u5355\u4E2D\u7684 namePath\uFF08\u6570\u7EC4\uFF09\u3002", detail: "Array<string | number>" },
|
|
103
|
+
disabled: "\u662F\u5426\u7981\u7528\uFF08boolean\uFF09",
|
|
104
|
+
readOnly: "\u662F\u5426\u53EA\u8BFB\uFF08boolean\uFF09"
|
|
105
|
+
},
|
|
106
|
+
methods: {
|
|
107
|
+
getValue: {
|
|
108
|
+
description: "\u83B7\u53D6\u5B57\u6BB5\u5F53\u524D\u503C\uFF08\u53EF\u7F16\u8F91\u5B57\u6BB5\u63A8\u8350\u4F7F\u7528\uFF09\u3002",
|
|
109
|
+
detail: "() => any",
|
|
110
|
+
completion: { insertText: "ctx.getValue?.()" }
|
|
111
|
+
},
|
|
112
|
+
setValue: {
|
|
113
|
+
description: "\u8BBE\u7F6E\u5B57\u6BB5\u5F53\u524D\u503C\uFF08\u4E0E\u8868\u5355\u53CC\u5411\u7ED1\u5B9A\uFF09\u3002",
|
|
114
|
+
detail: "(value: any) => void",
|
|
115
|
+
completion: { insertText: "ctx.setValue?.(value)" },
|
|
116
|
+
examples: ["ctx.setValue?.(e.target.value);"]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{ locale: "zh-CN" }
|
|
121
|
+
);
|
|
122
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
123
|
+
0 && (module.exports = {
|
|
124
|
+
JSEditableFieldRunJSContext
|
|
125
|
+
});
|
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { FlowRunJSContext } from '
|
|
9
|
+
import { FlowRunJSContext } from '../../flowContext';
|
|
10
10
|
export declare class JSFieldRunJSContext extends FlowRunJSContext {
|
|
11
|
-
static injectDefaultGlobals(): {
|
|
12
|
-
window: {};
|
|
13
|
-
document: {};
|
|
14
|
-
};
|
|
15
|
-
constructor(delegate: any);
|
|
16
11
|
}
|