@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
|
@@ -0,0 +1,13 @@
|
|
|
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 { FlowContext } from '../flowContext';
|
|
10
|
+
import type { ActionDefinition } from '../types';
|
|
11
|
+
type ContextDefsLike<TCtx extends FlowContext> = Partial<Pick<ActionDefinition<any, TCtx>, 'defineProperties' | 'defineMethods'>> | null | undefined;
|
|
12
|
+
export declare function createEphemeralContext<TCtx extends FlowContext>(parent: TCtx, contextDefs?: ContextDefsLike<TCtx>): Promise<TCtx>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
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 createEphemeralContext_exports = {};
|
|
29
|
+
__export(createEphemeralContext_exports, {
|
|
30
|
+
createEphemeralContext: () => createEphemeralContext
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(createEphemeralContext_exports);
|
|
33
|
+
var import_flowContext = require("../flowContext");
|
|
34
|
+
async function createEphemeralContext(parent, contextDefs) {
|
|
35
|
+
if (contextDefs == null || !contextDefs.defineProperties && !contextDefs.defineMethods) {
|
|
36
|
+
return parent;
|
|
37
|
+
}
|
|
38
|
+
const scoped = new import_flowContext.FlowContext();
|
|
39
|
+
scoped.addDelegate(parent);
|
|
40
|
+
const scopedProxy = scoped.createProxy();
|
|
41
|
+
const scopedObj = scopedProxy;
|
|
42
|
+
const parentObj = parent;
|
|
43
|
+
const getFromParent = /* @__PURE__ */ __name((key) => {
|
|
44
|
+
const val = Reflect.get(parentObj, key, parentObj);
|
|
45
|
+
return typeof val === "function" ? val.bind(parent) : val;
|
|
46
|
+
}, "getFromParent");
|
|
47
|
+
const hasInScopedOrParent = /* @__PURE__ */ __name((key) => key === "defineProperty" || key === "defineMethod" || Reflect.has(scopedObj, key) || Reflect.has(parentObj, key), "hasInScopedOrParent");
|
|
48
|
+
const injectionProxy = new Proxy(scopedProxy, {
|
|
49
|
+
get(_t, key, receiver) {
|
|
50
|
+
if (typeof key === "string") {
|
|
51
|
+
if (key === "defineProperty") {
|
|
52
|
+
return (propKey, options) => scoped.defineProperty(propKey, options);
|
|
53
|
+
}
|
|
54
|
+
if (key === "defineMethod") {
|
|
55
|
+
return (name, fn, des) => scoped.defineMethod(name, fn, des);
|
|
56
|
+
}
|
|
57
|
+
if (Reflect.has(scopedObj, key)) {
|
|
58
|
+
return Reflect.get(scopedObj, key, receiver);
|
|
59
|
+
}
|
|
60
|
+
return getFromParent(key);
|
|
61
|
+
}
|
|
62
|
+
return Reflect.get(scopedObj, key, receiver);
|
|
63
|
+
},
|
|
64
|
+
set(_t, key, value) {
|
|
65
|
+
return Reflect.set(parentObj, key, value);
|
|
66
|
+
},
|
|
67
|
+
has(_t, key) {
|
|
68
|
+
return hasInScopedOrParent(key);
|
|
69
|
+
},
|
|
70
|
+
getOwnPropertyDescriptor(_t, key) {
|
|
71
|
+
return Object.getOwnPropertyDescriptor(scopedObj, key) || Object.getOwnPropertyDescriptor(parentObj, key);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if (contextDefs) {
|
|
75
|
+
const defs = Array.isArray(contextDefs) ? contextDefs : [contextDefs];
|
|
76
|
+
for (const defLike of defs) {
|
|
77
|
+
if (!defLike) continue;
|
|
78
|
+
const dp = defLike.defineProperties;
|
|
79
|
+
if (dp) {
|
|
80
|
+
const raw = typeof dp === "function" ? await dp(injectionProxy) : dp;
|
|
81
|
+
if (!raw || typeof raw !== "object") {
|
|
82
|
+
throw new TypeError("defineProperties must return an object of PropertyOptions");
|
|
83
|
+
}
|
|
84
|
+
const propsDef = raw;
|
|
85
|
+
for (const [key, options] of Object.entries(propsDef)) {
|
|
86
|
+
if (!options || typeof options !== "object") {
|
|
87
|
+
throw new TypeError(`defineProperties['${key}'] must be a PropertyOptions object`);
|
|
88
|
+
}
|
|
89
|
+
scoped.defineProperty(key, options);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const dm = defLike.defineMethods;
|
|
93
|
+
if (dm) {
|
|
94
|
+
const raw = typeof dm === "function" ? await dm(injectionProxy) : dm;
|
|
95
|
+
if (!raw || typeof raw !== "object") {
|
|
96
|
+
throw new TypeError("defineMethods must return an object of functions");
|
|
97
|
+
}
|
|
98
|
+
const methodsDef = raw;
|
|
99
|
+
for (const [key, fn] of Object.entries(methodsDef)) {
|
|
100
|
+
if (typeof fn !== "function") {
|
|
101
|
+
throw new TypeError(`defineMethods['${key}'] must be a function`);
|
|
102
|
+
}
|
|
103
|
+
scoped.defineMethod(key, fn);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const outerProxy = new Proxy(scopedProxy, {
|
|
109
|
+
get(_t, key, receiver) {
|
|
110
|
+
if (typeof key === "string") {
|
|
111
|
+
if (key === "defineProperty") {
|
|
112
|
+
return (propKey, options) => parent.defineProperty(propKey, options);
|
|
113
|
+
}
|
|
114
|
+
if (key === "defineMethod") {
|
|
115
|
+
return (name, fn, des) => parent.defineMethod(name, fn, des);
|
|
116
|
+
}
|
|
117
|
+
if (Reflect.has(scopedObj, key)) {
|
|
118
|
+
return Reflect.get(scopedObj, key, receiver);
|
|
119
|
+
}
|
|
120
|
+
return getFromParent(key);
|
|
121
|
+
}
|
|
122
|
+
return Reflect.get(scopedObj, key, receiver);
|
|
123
|
+
},
|
|
124
|
+
set(_t, key, value) {
|
|
125
|
+
return Reflect.set(parentObj, key, value);
|
|
126
|
+
},
|
|
127
|
+
has(_t, key) {
|
|
128
|
+
return hasInScopedOrParent(key);
|
|
129
|
+
},
|
|
130
|
+
getOwnPropertyDescriptor(_t, key) {
|
|
131
|
+
return Object.getOwnPropertyDescriptor(scopedObj, key) || Object.getOwnPropertyDescriptor(parentObj, key);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return outerProxy;
|
|
135
|
+
}
|
|
136
|
+
__name(createEphemeralContext, "createEphemeralContext");
|
|
137
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
138
|
+
0 && (module.exports = {
|
|
139
|
+
createEphemeralContext
|
|
140
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import { FlowDefinition } from '../FlowDefinition';
|
|
10
|
+
export declare const isBeforeRenderFlow: (flow: FlowDefinition) => boolean;
|
|
@@ -11,6 +11,7 @@ var __defProp = Object.defineProperty;
|
|
|
11
11
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
13
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
14
15
|
var __export = (target, all) => {
|
|
15
16
|
for (var name in all)
|
|
16
17
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -24,19 +25,24 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
24
25
|
return to;
|
|
25
26
|
};
|
|
26
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var
|
|
28
|
-
__export(
|
|
29
|
-
|
|
28
|
+
var flows_exports = {};
|
|
29
|
+
__export(flows_exports, {
|
|
30
|
+
isBeforeRenderFlow: () => isBeforeRenderFlow
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(flows_exports);
|
|
33
|
+
const isBeforeRenderFlow = /* @__PURE__ */ __name((flow) => {
|
|
34
|
+
if (typeof flow.on === "string") {
|
|
35
|
+
return flow.on === "beforeRender";
|
|
36
|
+
}
|
|
37
|
+
if (typeof flow.on === "object") {
|
|
38
|
+
return flow.on.eventName === "beforeRender";
|
|
39
|
+
}
|
|
40
|
+
if (!flow.on && flow.manual !== true) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}, "isBeforeRenderFlow");
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
isBeforeRenderFlow
|
|
30
48
|
});
|
|
31
|
-
module.exports = __toCommonJS(api_request_post_snippet_exports);
|
|
32
|
-
var api_request_post_snippet_default = {
|
|
33
|
-
contexts: ["*"],
|
|
34
|
-
prefix: "sn-api-post",
|
|
35
|
-
label: "POST request template",
|
|
36
|
-
description: "Basic template to send a POST request via ctx.api",
|
|
37
|
-
content: `
|
|
38
|
-
const res = await ctx.api.request({ url: '/your/api', method: 'post', data: { name: 'NocoBase' } });
|
|
39
|
-
ctx.message.success(ctx.t('POST request completed'));
|
|
40
|
-
console.log(ctx.t('POST result:'), res);
|
|
41
|
-
`
|
|
42
|
-
};
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -15,8 +15,13 @@ export { resolveCreateModelOptions, resolveDefaultParams, resolveExpressions } f
|
|
|
15
15
|
export { compileUiSchema, resolveStepUiSchema, resolveUiMode } from './schema-utils';
|
|
16
16
|
export { setupRuntimeContextSteps } from './setupRuntimeContextSteps';
|
|
17
17
|
export { createCollectionContextMeta } from './createCollectionContextMeta';
|
|
18
|
-
export {
|
|
18
|
+
export { createAssociationAwareObjectMetaFactory, createAssociationSubpathResolver } from './associationObjectVariable';
|
|
19
|
+
export { buildRecordMeta, collectContextParamsForTemplate, createCurrentRecordMetaFactory, createRecordResolveOnServerWithLocal, createRecordMetaFactory, extractUsedVariableNames, extractUsedVariablePaths, inferRecordRef, type RecordParamsBuilder, } from './variablesParams';
|
|
19
20
|
export { extractPropertyPath, formatPathToVariable, isVariableExpression } from './context';
|
|
20
21
|
export { clearAutoFlowError, getAutoFlowError, setAutoFlowError, type AutoFlowError } from './autoFlowError';
|
|
21
22
|
export { parsePathnameToViewParams, type ViewParam } from './parsePathnameToViewParams';
|
|
22
|
-
export {
|
|
23
|
+
export { buildSettingsViewInputArgs } from './buildSettingsViewInputArgs';
|
|
24
|
+
export { createSafeDocument, createSafeWindow, createSafeNavigator } from './safeGlobals';
|
|
25
|
+
export { createEphemeralContext } from './createEphemeralContext';
|
|
26
|
+
export { pruneFilter } from './pruneFilter';
|
|
27
|
+
export { isBeforeRenderFlow } from './flows';
|
package/lib/utils/index.js
CHANGED
|
@@ -32,13 +32,19 @@ __export(utils_exports, {
|
|
|
32
32
|
FlowExitException: () => import_exceptions.FlowExitException,
|
|
33
33
|
MENU_KEYS: () => import_constants.MENU_KEYS,
|
|
34
34
|
buildRecordMeta: () => import_variablesParams.buildRecordMeta,
|
|
35
|
+
buildSettingsViewInputArgs: () => import_buildSettingsViewInputArgs.buildSettingsViewInputArgs,
|
|
35
36
|
clearAutoFlowError: () => import_autoFlowError.clearAutoFlowError,
|
|
36
37
|
collectContextParamsForTemplate: () => import_variablesParams.collectContextParamsForTemplate,
|
|
37
38
|
compileUiSchema: () => import_schema_utils.compileUiSchema,
|
|
39
|
+
createAssociationAwareObjectMetaFactory: () => import_associationObjectVariable.createAssociationAwareObjectMetaFactory,
|
|
40
|
+
createAssociationSubpathResolver: () => import_associationObjectVariable.createAssociationSubpathResolver,
|
|
38
41
|
createCollectionContextMeta: () => import_createCollectionContextMeta.createCollectionContextMeta,
|
|
39
42
|
createCurrentRecordMetaFactory: () => import_variablesParams.createCurrentRecordMetaFactory,
|
|
43
|
+
createEphemeralContext: () => import_createEphemeralContext.createEphemeralContext,
|
|
40
44
|
createRecordMetaFactory: () => import_variablesParams.createRecordMetaFactory,
|
|
45
|
+
createRecordResolveOnServerWithLocal: () => import_variablesParams.createRecordResolveOnServerWithLocal,
|
|
41
46
|
createSafeDocument: () => import_safeGlobals.createSafeDocument,
|
|
47
|
+
createSafeNavigator: () => import_safeGlobals.createSafeNavigator,
|
|
42
48
|
createSafeWindow: () => import_safeGlobals.createSafeWindow,
|
|
43
49
|
defineAction: () => import_flow_definitions.defineAction,
|
|
44
50
|
escapeT: () => import_translation.escapeT,
|
|
@@ -48,11 +54,12 @@ __export(utils_exports, {
|
|
|
48
54
|
formatPathToVariable: () => import_context.formatPathToVariable,
|
|
49
55
|
getAutoFlowError: () => import_autoFlowError.getAutoFlowError,
|
|
50
56
|
getT: () => import_translation.getT,
|
|
51
|
-
inferParentRecordRef: () => import_variablesParams.inferParentRecordRef,
|
|
52
57
|
inferRecordRef: () => import_variablesParams.inferRecordRef,
|
|
58
|
+
isBeforeRenderFlow: () => import_flows.isBeforeRenderFlow,
|
|
53
59
|
isInheritedFrom: () => import_inheritance.isInheritedFrom,
|
|
54
60
|
isVariableExpression: () => import_context.isVariableExpression,
|
|
55
61
|
parsePathnameToViewParams: () => import_parsePathnameToViewParams.parsePathnameToViewParams,
|
|
62
|
+
pruneFilter: () => import_pruneFilter.pruneFilter,
|
|
56
63
|
resolveCreateModelOptions: () => import_params_resolvers.resolveCreateModelOptions,
|
|
57
64
|
resolveDefaultParams: () => import_params_resolvers.resolveDefaultParams,
|
|
58
65
|
resolveExpressions: () => import_params_resolvers.resolveExpressions,
|
|
@@ -72,11 +79,16 @@ var import_params_resolvers = require("./params-resolvers");
|
|
|
72
79
|
var import_schema_utils = require("./schema-utils");
|
|
73
80
|
var import_setupRuntimeContextSteps = require("./setupRuntimeContextSteps");
|
|
74
81
|
var import_createCollectionContextMeta = require("./createCollectionContextMeta");
|
|
82
|
+
var import_associationObjectVariable = require("./associationObjectVariable");
|
|
75
83
|
var import_variablesParams = require("./variablesParams");
|
|
76
84
|
var import_context = require("./context");
|
|
77
85
|
var import_autoFlowError = require("./autoFlowError");
|
|
78
86
|
var import_parsePathnameToViewParams = require("./parsePathnameToViewParams");
|
|
87
|
+
var import_buildSettingsViewInputArgs = require("./buildSettingsViewInputArgs");
|
|
79
88
|
var import_safeGlobals = require("./safeGlobals");
|
|
89
|
+
var import_createEphemeralContext = require("./createEphemeralContext");
|
|
90
|
+
var import_pruneFilter = require("./pruneFilter");
|
|
91
|
+
var import_flows = require("./flows");
|
|
80
92
|
// Annotate the CommonJS export names for ESM import in node:
|
|
81
93
|
0 && (module.exports = {
|
|
82
94
|
BLOCK_GROUP_CONFIGS,
|
|
@@ -85,13 +97,19 @@ var import_safeGlobals = require("./safeGlobals");
|
|
|
85
97
|
FlowExitException,
|
|
86
98
|
MENU_KEYS,
|
|
87
99
|
buildRecordMeta,
|
|
100
|
+
buildSettingsViewInputArgs,
|
|
88
101
|
clearAutoFlowError,
|
|
89
102
|
collectContextParamsForTemplate,
|
|
90
103
|
compileUiSchema,
|
|
104
|
+
createAssociationAwareObjectMetaFactory,
|
|
105
|
+
createAssociationSubpathResolver,
|
|
91
106
|
createCollectionContextMeta,
|
|
92
107
|
createCurrentRecordMetaFactory,
|
|
108
|
+
createEphemeralContext,
|
|
93
109
|
createRecordMetaFactory,
|
|
110
|
+
createRecordResolveOnServerWithLocal,
|
|
94
111
|
createSafeDocument,
|
|
112
|
+
createSafeNavigator,
|
|
95
113
|
createSafeWindow,
|
|
96
114
|
defineAction,
|
|
97
115
|
escapeT,
|
|
@@ -101,11 +119,12 @@ var import_safeGlobals = require("./safeGlobals");
|
|
|
101
119
|
formatPathToVariable,
|
|
102
120
|
getAutoFlowError,
|
|
103
121
|
getT,
|
|
104
|
-
inferParentRecordRef,
|
|
105
122
|
inferRecordRef,
|
|
123
|
+
isBeforeRenderFlow,
|
|
106
124
|
isInheritedFrom,
|
|
107
125
|
isVariableExpression,
|
|
108
126
|
parsePathnameToViewParams,
|
|
127
|
+
pruneFilter,
|
|
109
128
|
resolveCreateModelOptions,
|
|
110
129
|
resolveDefaultParams,
|
|
111
130
|
resolveExpressions,
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
* Lightweight JSX -> JS compiler for RunJS user code.
|
|
11
|
+
* - Uses sucrase via dynamic import (lazy; avoids static cycles and cost when not needed)
|
|
12
|
+
* - Maps JSX to ctx.React.createElement / ctx.React.Fragment so no global React is required
|
|
13
|
+
* - If sucrase is unavailable or transform throws, returns original code as graceful fallback
|
|
14
|
+
*/
|
|
15
|
+
export declare function compileRunJs(code: string): Promise<string>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
17
|
+
var __export = (target, all) => {
|
|
18
|
+
for (var name in all)
|
|
19
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
|
+
};
|
|
21
|
+
var __copyProps = (to, from, except, desc) => {
|
|
22
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
+
for (let key of __getOwnPropNames(from))
|
|
24
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
25
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
26
|
+
}
|
|
27
|
+
return to;
|
|
28
|
+
};
|
|
29
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
30
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
31
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
32
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
33
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
34
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
35
|
+
mod
|
|
36
|
+
));
|
|
37
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
38
|
+
var jsxTransform_exports = {};
|
|
39
|
+
__export(jsxTransform_exports, {
|
|
40
|
+
compileRunJs: () => compileRunJs
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(jsxTransform_exports);
|
|
43
|
+
async function compileRunJs(code) {
|
|
44
|
+
var _a;
|
|
45
|
+
const maybeJSX = /<[A-Za-z]|<\//.test(code);
|
|
46
|
+
if (!maybeJSX) return code;
|
|
47
|
+
try {
|
|
48
|
+
const mod = await import("sucrase");
|
|
49
|
+
const transform = (mod == null ? void 0 : mod.transform) || ((_a = mod == null ? void 0 : mod.default) == null ? void 0 : _a.transform);
|
|
50
|
+
if (typeof transform !== "function") return code;
|
|
51
|
+
const res = transform(code, {
|
|
52
|
+
transforms: ["jsx"],
|
|
53
|
+
jsxPragma: "ctx.React.createElement",
|
|
54
|
+
jsxFragmentPragma: "ctx.React.Fragment",
|
|
55
|
+
// Keep ES syntax as-is; JSRunner runs in modern engines
|
|
56
|
+
disableESTransforms: true,
|
|
57
|
+
production: true
|
|
58
|
+
});
|
|
59
|
+
return (res && (res.code || (res == null ? void 0 : res.output))) ?? code;
|
|
60
|
+
} catch (_e) {
|
|
61
|
+
return code;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
__name(compileRunJs, "compileRunJs");
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
compileRunJs
|
|
68
|
+
});
|
|
@@ -44,8 +44,8 @@ __export(params_resolvers_exports, {
|
|
|
44
44
|
resolveExpressions: () => resolveExpressions
|
|
45
45
|
});
|
|
46
46
|
module.exports = __toCommonJS(params_resolvers_exports);
|
|
47
|
+
var import_shared = require("@nocobase/shared");
|
|
47
48
|
var import_lodash = __toESM(require("lodash"));
|
|
48
|
-
var import_client = require("@nocobase/utils/client");
|
|
49
49
|
async function resolveDefaultParams(defaultParams, ctx) {
|
|
50
50
|
if (!defaultParams) {
|
|
51
51
|
return {};
|
|
@@ -275,9 +275,9 @@ async function compileExpression(expression, ctx) {
|
|
|
275
275
|
if (!first) return void 0;
|
|
276
276
|
const base = await ctx[first];
|
|
277
277
|
if (segs.length === 0) return base;
|
|
278
|
-
return (0,
|
|
278
|
+
return (0, import_shared.getValuesByPath)(base, segs.join("."));
|
|
279
279
|
}, "resolveDotOnlyPath");
|
|
280
|
-
const singleMatch = expression.match(/^\{\{\s*(
|
|
280
|
+
const singleMatch = expression.match(/^\s*\{\{\s*([^{}]+?)\s*\}\}\s*$/);
|
|
281
281
|
if (singleMatch) {
|
|
282
282
|
const inner = singleMatch[1];
|
|
283
283
|
const dotPath = matchDotOnly(inner);
|
|
@@ -54,16 +54,52 @@ const parsePathnameToViewParams = /* @__PURE__ */ __name((pathname) => {
|
|
|
54
54
|
break;
|
|
55
55
|
}
|
|
56
56
|
} else if (currentView && i + 1 < segments.length) {
|
|
57
|
-
const
|
|
57
|
+
const rawValue = segments[i + 1];
|
|
58
|
+
let decoded = rawValue;
|
|
59
|
+
try {
|
|
60
|
+
decoded = decodeURIComponent(rawValue);
|
|
61
|
+
} catch (_) {
|
|
62
|
+
}
|
|
58
63
|
switch (segment) {
|
|
59
64
|
case "tab":
|
|
60
|
-
currentView.tabUid =
|
|
65
|
+
currentView.tabUid = decoded;
|
|
61
66
|
break;
|
|
62
|
-
case "filterbytk":
|
|
63
|
-
|
|
67
|
+
case "filterbytk": {
|
|
68
|
+
const parseKeyValuePairs = /* @__PURE__ */ __name((s) => {
|
|
69
|
+
const obj = {};
|
|
70
|
+
s.split("&").forEach((pair) => {
|
|
71
|
+
const [k, v = ""] = pair.split("=");
|
|
72
|
+
if (!k) return;
|
|
73
|
+
try {
|
|
74
|
+
const key = decodeURIComponent(k);
|
|
75
|
+
const val = decodeURIComponent(v);
|
|
76
|
+
obj[key] = val;
|
|
77
|
+
} catch (_) {
|
|
78
|
+
obj[k] = v;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return obj;
|
|
82
|
+
}, "parseKeyValuePairs");
|
|
83
|
+
let parsed = decoded;
|
|
84
|
+
if (decoded && (decoded.startsWith("{") || decoded.startsWith("["))) {
|
|
85
|
+
try {
|
|
86
|
+
const maybe = JSON.parse(decoded);
|
|
87
|
+
if (maybe && typeof maybe === "object" && !Array.isArray(maybe)) {
|
|
88
|
+
parsed = maybe;
|
|
89
|
+
} else {
|
|
90
|
+
parsed = decoded;
|
|
91
|
+
}
|
|
92
|
+
} catch (_) {
|
|
93
|
+
parsed = decoded;
|
|
94
|
+
}
|
|
95
|
+
} else if (decoded && decoded.includes("=") && decoded.includes("&")) {
|
|
96
|
+
parsed = parseKeyValuePairs(decoded);
|
|
97
|
+
}
|
|
98
|
+
currentView.filterByTk = parsed;
|
|
64
99
|
break;
|
|
100
|
+
}
|
|
65
101
|
case "sourceid":
|
|
66
|
-
currentView.sourceId =
|
|
102
|
+
currentView.sourceId = decoded;
|
|
67
103
|
break;
|
|
68
104
|
default:
|
|
69
105
|
break;
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
* 递归清理筛选对象中的“空值”。
|
|
11
|
+
*
|
|
12
|
+
* 规则:
|
|
13
|
+
* - 移除:`null`、`undefined`、空字符串 `''`、空数组 `[]`、空对象 `{}`;
|
|
14
|
+
* - 保留:`false`、`0` 等有意义的“假值”。
|
|
15
|
+
*
|
|
16
|
+
* 注意:当清理后整体变为空结构时,返回 `undefined`,用于表示无需下发该条件。
|
|
17
|
+
*
|
|
18
|
+
* @param input 任意筛选对象/数组/原始值
|
|
19
|
+
* @returns 清理后的对象;若为空则返回 `undefined`
|
|
20
|
+
*/
|
|
21
|
+
export declare function pruneFilter<T = any>(input: T): T | undefined;
|
package/lib/{runjs-context/snippets/global/try-catch-async.snippet.js → utils/pruneFilter.js}
RENAMED
|
@@ -11,6 +11,7 @@ var __defProp = Object.defineProperty;
|
|
|
11
11
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
13
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
14
15
|
var __export = (target, all) => {
|
|
15
16
|
for (var name in all)
|
|
16
17
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -24,21 +25,28 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
24
25
|
return to;
|
|
25
26
|
};
|
|
26
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var
|
|
28
|
-
__export(
|
|
29
|
-
|
|
28
|
+
var pruneFilter_exports = {};
|
|
29
|
+
__export(pruneFilter_exports, {
|
|
30
|
+
pruneFilter: () => pruneFilter
|
|
30
31
|
});
|
|
31
|
-
module.exports = __toCommonJS(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
module.exports = __toCommonJS(pruneFilter_exports);
|
|
33
|
+
function pruneFilter(input) {
|
|
34
|
+
if (Array.isArray(input)) {
|
|
35
|
+
const arr = input.map((v) => pruneFilter(v)).filter((v) => v !== void 0);
|
|
36
|
+
return arr.length ? arr : void 0;
|
|
37
|
+
}
|
|
38
|
+
if (input && typeof input === "object") {
|
|
39
|
+
const out = {};
|
|
40
|
+
Object.keys(input).forEach((k) => {
|
|
41
|
+
const v = pruneFilter(input[k]);
|
|
42
|
+
if (v !== void 0) out[k] = v;
|
|
43
|
+
});
|
|
44
|
+
return Object.keys(out).length ? out : void 0;
|
|
45
|
+
}
|
|
46
|
+
return input === null || input === void 0 || typeof input === "string" && input === "" ? void 0 : input;
|
|
42
47
|
}
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
__name(pruneFilter, "pruneFilter");
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
pruneFilter
|
|
52
|
+
});
|
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
|
-
* 统一的安全全局对象代理:window/document
|
|
11
|
-
* -
|
|
12
|
-
* - document
|
|
10
|
+
* 统一的安全全局对象代理:window/document/navigator
|
|
11
|
+
* - window:仅允许常用的定时器、console、Math、Date、addEventListener、open(安全包装)、location(安全代理)
|
|
12
|
+
* - document:仅允许 createElement/querySelector/querySelectorAll
|
|
13
|
+
* - navigator:仅提供极少量低风险能力(clipboard.writeText、onLine、language、languages)
|
|
13
14
|
* - 不允许随意访问未声明的属性,最小权限原则
|
|
14
15
|
*/
|
|
15
16
|
export declare function createSafeWindow(extra?: Record<string, any>): {};
|
|
16
17
|
export declare function createSafeDocument(extra?: Record<string, any>): {};
|
|
18
|
+
export declare function createSafeNavigator(extra?: Record<string, any>): {};
|
package/lib/utils/safeGlobals.js
CHANGED
|
@@ -28,6 +28,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
28
28
|
var safeGlobals_exports = {};
|
|
29
29
|
__export(safeGlobals_exports, {
|
|
30
30
|
createSafeDocument: () => createSafeDocument,
|
|
31
|
+
createSafeNavigator: () => createSafeNavigator,
|
|
31
32
|
createSafeWindow: () => createSafeWindow
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(safeGlobals_exports);
|
|
@@ -172,8 +173,47 @@ function createSafeDocument(extra) {
|
|
|
172
173
|
);
|
|
173
174
|
}
|
|
174
175
|
__name(createSafeDocument, "createSafeDocument");
|
|
176
|
+
function createSafeNavigator(extra) {
|
|
177
|
+
var _a;
|
|
178
|
+
const nav = typeof window !== "undefined" && window.navigator || void 0;
|
|
179
|
+
const clipboard = {};
|
|
180
|
+
const writeText = (_a = nav == null ? void 0 : nav.clipboard) == null ? void 0 : _a.writeText;
|
|
181
|
+
if (typeof writeText === "function") {
|
|
182
|
+
clipboard.writeText = writeText.bind(nav.clipboard);
|
|
183
|
+
}
|
|
184
|
+
const allowed = {
|
|
185
|
+
clipboard
|
|
186
|
+
};
|
|
187
|
+
Object.defineProperty(allowed, "onLine", {
|
|
188
|
+
get: /* @__PURE__ */ __name(() => !!(nav == null ? void 0 : nav.onLine), "get"),
|
|
189
|
+
enumerable: true,
|
|
190
|
+
configurable: false
|
|
191
|
+
});
|
|
192
|
+
Object.defineProperty(allowed, "language", {
|
|
193
|
+
get: /* @__PURE__ */ __name(() => nav == null ? void 0 : nav.language, "get"),
|
|
194
|
+
enumerable: true,
|
|
195
|
+
configurable: false
|
|
196
|
+
});
|
|
197
|
+
Object.defineProperty(allowed, "languages", {
|
|
198
|
+
get: /* @__PURE__ */ __name(() => (nav == null ? void 0 : nav.languages) ? [...nav.languages] : void 0, "get"),
|
|
199
|
+
enumerable: true,
|
|
200
|
+
configurable: false
|
|
201
|
+
});
|
|
202
|
+
Object.assign(allowed, extra || {});
|
|
203
|
+
return new Proxy(
|
|
204
|
+
{},
|
|
205
|
+
{
|
|
206
|
+
get(_t, prop) {
|
|
207
|
+
if (prop in allowed) return allowed[prop];
|
|
208
|
+
throw new Error(`Access to navigator property "${String(prop)}" is not allowed.`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
__name(createSafeNavigator, "createSafeNavigator");
|
|
175
214
|
// Annotate the CommonJS export names for ESM import in node:
|
|
176
215
|
0 && (module.exports = {
|
|
177
216
|
createSafeDocument,
|
|
217
|
+
createSafeNavigator,
|
|
178
218
|
createSafeWindow
|
|
179
219
|
});
|
|
@@ -131,14 +131,14 @@ function compileUiSchema(scope, uiSchema, options = {}) {
|
|
|
131
131
|
}
|
|
132
132
|
__name(compileUiSchema, "compileUiSchema");
|
|
133
133
|
async function resolveStepUiSchema(model, flow, step) {
|
|
134
|
-
var _a
|
|
134
|
+
var _a;
|
|
135
135
|
const flowRuntimeContext = new import_flowContext.FlowRuntimeContext(model, flow.key, "settings");
|
|
136
136
|
(0, import_setupRuntimeContextSteps.setupRuntimeContextSteps)(flowRuntimeContext, flow.steps, model, flow.key);
|
|
137
137
|
flowRuntimeContext.defineProperty("currentStep", { value: step });
|
|
138
138
|
let stepUiSchema = step.uiSchema;
|
|
139
139
|
if (step.use) {
|
|
140
140
|
try {
|
|
141
|
-
const action = (
|
|
141
|
+
const action = (_a = model.getAction) == null ? void 0 : _a.call(model, step.use);
|
|
142
142
|
if (action && action.uiSchema) {
|
|
143
143
|
stepUiSchema = stepUiSchema || action.uiSchema;
|
|
144
144
|
}
|