@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,102 @@
|
|
|
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 MobilePopup_exports = {};
|
|
39
|
+
__export(MobilePopup_exports, {
|
|
40
|
+
MobilePopup: () => MobilePopup
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(MobilePopup_exports);
|
|
43
|
+
var import_antd = require("antd");
|
|
44
|
+
var import_antd_mobile = require("antd-mobile");
|
|
45
|
+
var import_react = __toESM(require("react"));
|
|
46
|
+
var import_antd_mobile_icons = require("antd-mobile-icons");
|
|
47
|
+
var import_MobilePopup = require("./MobilePopup.style");
|
|
48
|
+
var import_react_i18next = require("react-i18next");
|
|
49
|
+
const MobilePopup = /* @__PURE__ */ __name((props) => {
|
|
50
|
+
const { title, visible, onClose: closePopup, children, minHeight, className, footer } = props;
|
|
51
|
+
const { t } = (0, import_react_i18next.useTranslation)();
|
|
52
|
+
const { componentCls, hashId } = (0, import_MobilePopup.useMobileActionDrawerStyle)();
|
|
53
|
+
const style = (0, import_react.useMemo)(() => {
|
|
54
|
+
return {
|
|
55
|
+
minHeight
|
|
56
|
+
};
|
|
57
|
+
}, [minHeight]);
|
|
58
|
+
const theme = (0, import_react.useMemo)(() => {
|
|
59
|
+
return {
|
|
60
|
+
token: {
|
|
61
|
+
paddingPageHorizontal: 8,
|
|
62
|
+
paddingPageVertical: 8,
|
|
63
|
+
marginBlock: 12,
|
|
64
|
+
borderRadiusBlock: 8,
|
|
65
|
+
fontSize: 14
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}, []);
|
|
69
|
+
return /* @__PURE__ */ import_react.default.createElement(import_antd.ConfigProvider, { theme }, /* @__PURE__ */ import_react.default.createElement(
|
|
70
|
+
import_antd_mobile.Popup,
|
|
71
|
+
{
|
|
72
|
+
className: `${componentCls} ${hashId} ${className || ""}`,
|
|
73
|
+
visible,
|
|
74
|
+
onClose: closePopup,
|
|
75
|
+
onMaskClick: closePopup,
|
|
76
|
+
bodyClassName: "nb-mobile-action-drawer-body",
|
|
77
|
+
bodyStyle: {
|
|
78
|
+
padding: 0
|
|
79
|
+
},
|
|
80
|
+
maskStyle: style,
|
|
81
|
+
style,
|
|
82
|
+
destroyOnClose: true
|
|
83
|
+
},
|
|
84
|
+
/* @__PURE__ */ import_react.default.createElement("div", { className: "nb-mobile-action-drawer-header" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "nb-mobile-action-drawer-placeholder" }, /* @__PURE__ */ import_react.default.createElement(import_antd_mobile_icons.CloseOutline, null)), /* @__PURE__ */ import_react.default.createElement("span", null, title), /* @__PURE__ */ import_react.default.createElement(
|
|
85
|
+
"span",
|
|
86
|
+
{
|
|
87
|
+
className: "nb-mobile-action-drawer-close-icon",
|
|
88
|
+
onClick: closePopup,
|
|
89
|
+
role: "button",
|
|
90
|
+
tabIndex: 0,
|
|
91
|
+
"aria-label": t("Close")
|
|
92
|
+
},
|
|
93
|
+
/* @__PURE__ */ import_react.default.createElement(import_antd_mobile_icons.CloseOutline, null)
|
|
94
|
+
)),
|
|
95
|
+
children,
|
|
96
|
+
footer && /* @__PURE__ */ import_react.default.createElement("div", { className: "nb-mobile-action-drawer-footer" }, footer)
|
|
97
|
+
));
|
|
98
|
+
}, "MobilePopup");
|
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
+
0 && (module.exports = {
|
|
101
|
+
MobilePopup
|
|
102
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
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 { useStyleRegister } from '@ant-design/cssinjs';
|
|
10
|
+
type UseComponentStyleResult = {
|
|
11
|
+
wrapSSR: ReturnType<typeof useStyleRegister>;
|
|
12
|
+
hashId: string;
|
|
13
|
+
componentCls: string;
|
|
14
|
+
rootPrefixCls: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const useMobileActionDrawerStyle: (props?: any) => UseComponentStyleResult;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,186 @@
|
|
|
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 MobilePopup_style_exports = {};
|
|
29
|
+
__export(MobilePopup_style_exports, {
|
|
30
|
+
useMobileActionDrawerStyle: () => useMobileActionDrawerStyle
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(MobilePopup_style_exports);
|
|
33
|
+
var import_cssinjs = require("@ant-design/cssinjs");
|
|
34
|
+
var import_shared = require("@formily/shared");
|
|
35
|
+
var import_react = require("react");
|
|
36
|
+
var import_antd = require("antd");
|
|
37
|
+
const usePrefixCls = /* @__PURE__ */ __name((tag, props) => {
|
|
38
|
+
const { getPrefixCls } = (0, import_react.useContext)(import_antd.ConfigProvider.ConfigContext) || {};
|
|
39
|
+
if ("ConfigContext" in import_antd.ConfigProvider) {
|
|
40
|
+
return (getPrefixCls == null ? void 0 : getPrefixCls(tag, props == null ? void 0 : props.prefixCls)) || "";
|
|
41
|
+
} else {
|
|
42
|
+
const prefix = (props == null ? void 0 : props.prefixCls) ?? "ant-";
|
|
43
|
+
return `${prefix}${tag ?? ""}`;
|
|
44
|
+
}
|
|
45
|
+
}, "usePrefixCls");
|
|
46
|
+
const { ConfigContext } = import_antd.ConfigProvider;
|
|
47
|
+
const useConfig = /* @__PURE__ */ __name(() => (0, import_react.useContext)(ConfigContext), "useConfig");
|
|
48
|
+
const useToken = import_antd.theme.useToken;
|
|
49
|
+
const genCommonStyle = /* @__PURE__ */ __name((token, componentPrefixCls) => {
|
|
50
|
+
const { fontFamily, fontSize } = token;
|
|
51
|
+
const rootPrefixSelector = `[class^="${componentPrefixCls}"], [class*=" ${componentPrefixCls}"]`;
|
|
52
|
+
return {
|
|
53
|
+
[rootPrefixSelector]: {
|
|
54
|
+
fontFamily,
|
|
55
|
+
fontSize,
|
|
56
|
+
boxSizing: "border-box",
|
|
57
|
+
"&::before, &::after": {
|
|
58
|
+
boxSizing: "border-box"
|
|
59
|
+
},
|
|
60
|
+
[rootPrefixSelector]: {
|
|
61
|
+
boxSizing: "border-box",
|
|
62
|
+
"&::before, &::after": {
|
|
63
|
+
boxSizing: "border-box"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}, "genCommonStyle");
|
|
69
|
+
const genStyleHook = /* @__PURE__ */ __name((component, styleFn) => {
|
|
70
|
+
return (props) => {
|
|
71
|
+
const { theme: theme2, token, hashId } = useToken();
|
|
72
|
+
const { getPrefixCls, iconPrefixCls } = useConfig();
|
|
73
|
+
const prefixCls = usePrefixCls(component);
|
|
74
|
+
const rootPrefixCls = getPrefixCls();
|
|
75
|
+
const wrapSSR = (0, import_cssinjs.useStyleRegister)(
|
|
76
|
+
{
|
|
77
|
+
theme: theme2,
|
|
78
|
+
token,
|
|
79
|
+
hashId,
|
|
80
|
+
path: ["formily-antd", component, prefixCls, iconPrefixCls]
|
|
81
|
+
},
|
|
82
|
+
() => {
|
|
83
|
+
const componentCls = `.${prefixCls}`;
|
|
84
|
+
const mergedToken = (0, import_shared.merge)(token, {
|
|
85
|
+
componentCls,
|
|
86
|
+
prefixCls,
|
|
87
|
+
iconCls: `.${iconPrefixCls}`,
|
|
88
|
+
antCls: `.${rootPrefixCls}`
|
|
89
|
+
});
|
|
90
|
+
const styleInterpolation = styleFn(mergedToken, props, {
|
|
91
|
+
hashId,
|
|
92
|
+
prefixCls,
|
|
93
|
+
rootPrefixCls,
|
|
94
|
+
iconPrefixCls
|
|
95
|
+
});
|
|
96
|
+
return [genCommonStyle(token, prefixCls), styleInterpolation];
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
const memoizedWrapSSR = (0, import_react.useMemo)(() => {
|
|
100
|
+
return wrapSSR;
|
|
101
|
+
}, [theme2, token, hashId, prefixCls, iconPrefixCls, rootPrefixCls, props]);
|
|
102
|
+
return {
|
|
103
|
+
wrapSSR: memoizedWrapSSR,
|
|
104
|
+
hashId,
|
|
105
|
+
componentCls: prefixCls,
|
|
106
|
+
rootPrefixCls
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
}, "genStyleHook");
|
|
110
|
+
const useMobileActionDrawerStyle = genStyleHook("nb-mobile-action-drawer", (token) => {
|
|
111
|
+
const { componentCls } = token;
|
|
112
|
+
return {
|
|
113
|
+
[componentCls]: {
|
|
114
|
+
".nb-mobile-action-drawer-header": {
|
|
115
|
+
height: "var(--nb-mobile-page-header-height)",
|
|
116
|
+
display: "flex",
|
|
117
|
+
alignItems: "center",
|
|
118
|
+
justifyContent: "space-between",
|
|
119
|
+
borderBottom: `1px solid ${token.colorSplit}`,
|
|
120
|
+
position: "sticky",
|
|
121
|
+
top: 0,
|
|
122
|
+
backgroundColor: "white",
|
|
123
|
+
zIndex: 1e3,
|
|
124
|
+
// to match the button named 'Add block'
|
|
125
|
+
"& + .nb-grid-container > .nb-grid > .nb-grid-warp > .ant-btn": {
|
|
126
|
+
margin: 12
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
".nb-mobile-action-drawer-placeholder": {
|
|
130
|
+
display: "inline-block",
|
|
131
|
+
padding: 12,
|
|
132
|
+
visibility: "hidden"
|
|
133
|
+
},
|
|
134
|
+
".nb-mobile-action-drawer-close-icon": {
|
|
135
|
+
display: "inline-block",
|
|
136
|
+
padding: 12,
|
|
137
|
+
cursor: "pointer"
|
|
138
|
+
},
|
|
139
|
+
".nb-mobile-action-drawer-body": {
|
|
140
|
+
borderTopLeftRadius: 8,
|
|
141
|
+
borderTopRightRadius: 8,
|
|
142
|
+
maxHeight: "calc(100% - var(--nb-mobile-page-header-height))",
|
|
143
|
+
overflowY: "auto",
|
|
144
|
+
overflowX: "hidden",
|
|
145
|
+
backgroundColor: token.colorBgLayout,
|
|
146
|
+
// 不带 tab 页的半窗
|
|
147
|
+
"& > .nb-grid-container": {
|
|
148
|
+
padding: `${token.paddingPageVertical}px ${token.paddingPageHorizontal}px`
|
|
149
|
+
},
|
|
150
|
+
// 带有 tab 页的半窗
|
|
151
|
+
".ant-tabs-nav": {
|
|
152
|
+
marginBottom: "0px !important",
|
|
153
|
+
padding: `0 ${token.paddingPageHorizontal + token.borderRadiusBlock / 2}px`,
|
|
154
|
+
backgroundColor: token.colorBgContainer
|
|
155
|
+
},
|
|
156
|
+
// clear the margin-bottom of the last block
|
|
157
|
+
"& > .nb-grid-container > .nb-grid > .nb-grid-warp > .nb-grid-row:nth-last-child(2) .noco-card-item": {
|
|
158
|
+
marginBottom: 0,
|
|
159
|
+
"& > .ant-card": {
|
|
160
|
+
marginBottom: "0 !important"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
".nb-mobile-action-drawer-footer": {
|
|
165
|
+
padding: "8px var(--nb-mobile-page-tabs-content-padding)",
|
|
166
|
+
display: "flex",
|
|
167
|
+
alignItems: "center",
|
|
168
|
+
justifyContent: "flex-end",
|
|
169
|
+
position: "sticky",
|
|
170
|
+
bottom: 0,
|
|
171
|
+
left: 0,
|
|
172
|
+
right: 0,
|
|
173
|
+
zIndex: 1e3,
|
|
174
|
+
borderTop: `1px solid ${token.colorSplit}`,
|
|
175
|
+
backgroundColor: token.colorBgLayout,
|
|
176
|
+
".ant-btn": {
|
|
177
|
+
marginLeft: 8
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
184
|
+
0 && (module.exports = {
|
|
185
|
+
useMobileActionDrawerStyle
|
|
186
|
+
});
|
package/lib/components/index.js
CHANGED
|
@@ -33,6 +33,7 @@ __reExport(components_exports, require("./FormItem"), module.exports);
|
|
|
33
33
|
__reExport(components_exports, require("./settings"), module.exports);
|
|
34
34
|
__reExport(components_exports, require("./subModel"), module.exports);
|
|
35
35
|
__reExport(components_exports, require("./variables"), module.exports);
|
|
36
|
+
__reExport(components_exports, require("./MobilePopup"), module.exports);
|
|
36
37
|
// Annotate the CommonJS export names for ESM import in node:
|
|
37
38
|
0 && (module.exports = {
|
|
38
39
|
...require("./common/FlowSettingsButton"),
|
|
@@ -44,5 +45,6 @@ __reExport(components_exports, require("./variables"), module.exports);
|
|
|
44
45
|
...require("./FormItem"),
|
|
45
46
|
...require("./settings"),
|
|
46
47
|
...require("./subModel"),
|
|
47
|
-
...require("./variables")
|
|
48
|
+
...require("./variables"),
|
|
49
|
+
...require("./MobilePopup")
|
|
48
50
|
});
|
|
@@ -96,7 +96,7 @@ const FlowsDropdownButtonWithModel = (0, import_react.observer)(
|
|
|
96
96
|
const flowsArray = Array.from(flows.values());
|
|
97
97
|
return flowsArray.map((flow) => {
|
|
98
98
|
const configurableSteps = Object.entries(flow.steps).map(([stepKey, stepDefinition]) => {
|
|
99
|
-
var _a
|
|
99
|
+
var _a;
|
|
100
100
|
const actionStep = stepDefinition;
|
|
101
101
|
if (actionStep.hideInSettings) {
|
|
102
102
|
return null;
|
|
@@ -104,7 +104,7 @@ const FlowsDropdownButtonWithModel = (0, import_react.observer)(
|
|
|
104
104
|
const stepUiSchema = actionStep.uiSchema || {};
|
|
105
105
|
let actionUiSchema = {};
|
|
106
106
|
if (actionStep.use) {
|
|
107
|
-
const action = (
|
|
107
|
+
const action = (_a = model.getAction) == null ? void 0 : _a.call(model, actionStep.use);
|
|
108
108
|
if (action && action.uiSchema) {
|
|
109
109
|
actionUiSchema = action.uiSchema;
|
|
110
110
|
}
|
|
@@ -103,12 +103,24 @@ const DefaultSettingsIcon = /* @__PURE__ */ __name(({
|
|
|
103
103
|
const dropdownMaxHeight = (0, import_hooks.useNiceDropdownMaxHeight)([visible]);
|
|
104
104
|
const copyUidToClipboard = (0, import_react.useCallback)(
|
|
105
105
|
async (uid) => {
|
|
106
|
+
var _a;
|
|
106
107
|
try {
|
|
107
108
|
await navigator.clipboard.writeText(uid);
|
|
108
109
|
message.success(t("UID copied to clipboard"));
|
|
109
110
|
} catch (error) {
|
|
110
111
|
console.error(t("Copy failed"), ":", error);
|
|
111
|
-
|
|
112
|
+
const isHttps = typeof window !== "undefined" && ((_a = window.location) == null ? void 0 : _a.protocol) === "https:";
|
|
113
|
+
if (!isHttps) {
|
|
114
|
+
message.error(
|
|
115
|
+
t(
|
|
116
|
+
"Copy failed under HTTP. Clipboard API is unavailable on non-HTTPS pages. Please copy [{{uid}}] manually.",
|
|
117
|
+
{ uid }
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
return;
|
|
121
|
+
} else {
|
|
122
|
+
message.error(t("Copy failed, please copy [{{uid}}] manually.", { uid }));
|
|
123
|
+
}
|
|
112
124
|
}
|
|
113
125
|
},
|
|
114
126
|
[message, t]
|
|
@@ -216,13 +228,13 @@ const DefaultSettingsIcon = /* @__PURE__ */ __name(({
|
|
|
216
228
|
const getModelConfigurableFlowsAndSteps = (0, import_react.useCallback)(
|
|
217
229
|
async (targetModel, modelKey) => {
|
|
218
230
|
try {
|
|
219
|
-
const flows = targetModel.getFlows();
|
|
231
|
+
const flows = targetModel.constructor.globalFlowRegistry.getFlows();
|
|
220
232
|
const flowsArray = Array.from(flows.values());
|
|
221
233
|
const flowsWithSteps = await Promise.all(
|
|
222
234
|
flowsArray.map(async (flow) => {
|
|
223
235
|
const configurableSteps = await Promise.all(
|
|
224
236
|
Object.entries(flow.steps).map(async ([stepKey, stepDefinition]) => {
|
|
225
|
-
var _a
|
|
237
|
+
var _a;
|
|
226
238
|
const actionStep = stepDefinition;
|
|
227
239
|
if (actionStep.hideInSettings) {
|
|
228
240
|
return null;
|
|
@@ -232,9 +244,9 @@ const DefaultSettingsIcon = /* @__PURE__ */ __name(({
|
|
|
232
244
|
let stepTitle = actionStep.title;
|
|
233
245
|
if (actionStep.use) {
|
|
234
246
|
try {
|
|
235
|
-
const action = (
|
|
247
|
+
const action = (_a = targetModel.getAction) == null ? void 0 : _a.call(targetModel, actionStep.use);
|
|
236
248
|
hasActionUiSchema = action && action.uiSchema != null;
|
|
237
|
-
stepTitle = stepTitle || action.title;
|
|
249
|
+
stepTitle = stepTitle || (action == null ? void 0 : action.title);
|
|
238
250
|
} catch (error) {
|
|
239
251
|
console.warn(t("Failed to get action {{action}}", { action: actionStep.use }), ":", error);
|
|
240
252
|
}
|
|
@@ -122,7 +122,7 @@ const FlowsContextMenuWithModel = (0, import_react.observer)(
|
|
|
122
122
|
const flowsArray = Array.from(flows.values());
|
|
123
123
|
return flowsArray.map((flow) => {
|
|
124
124
|
const configurableSteps = Object.entries(flow.steps).map(([stepKey, stepDefinition]) => {
|
|
125
|
-
var _a
|
|
125
|
+
var _a;
|
|
126
126
|
const actionStep = stepDefinition;
|
|
127
127
|
if (actionStep.hideInSettings) {
|
|
128
128
|
return null;
|
|
@@ -130,7 +130,7 @@ const FlowsContextMenuWithModel = (0, import_react.observer)(
|
|
|
130
130
|
const stepUiSchema = actionStep.uiSchema || {};
|
|
131
131
|
let actionUiSchema = {};
|
|
132
132
|
if (actionStep.use) {
|
|
133
|
-
const action = (
|
|
133
|
+
const action = (_a = model.getAction) == null ? void 0 : _a.call(model, actionStep.use);
|
|
134
134
|
if (action && action.uiSchema) {
|
|
135
135
|
actionUiSchema = action.uiSchema;
|
|
136
136
|
}
|
|
@@ -45,7 +45,7 @@ interface ModelProvidedProps {
|
|
|
45
45
|
/**
|
|
46
46
|
* @default 'inside'
|
|
47
47
|
*/
|
|
48
|
-
toolbarPosition?: 'inside' | 'above';
|
|
48
|
+
toolbarPosition?: 'inside' | 'above' | 'below';
|
|
49
49
|
}
|
|
50
50
|
interface ModelByIdProps {
|
|
51
51
|
uid: string;
|
|
@@ -79,7 +79,7 @@ interface ModelByIdProps {
|
|
|
79
79
|
/**
|
|
80
80
|
* @default 'inside'
|
|
81
81
|
*/
|
|
82
|
-
toolbarPosition?: 'inside' | 'above';
|
|
82
|
+
toolbarPosition?: 'inside' | 'above' | 'below';
|
|
83
83
|
}
|
|
84
84
|
type FlowsFloatContextMenuProps = ModelProvidedProps | ModelByIdProps;
|
|
85
85
|
/**
|
|
@@ -83,7 +83,25 @@ const renderToolbarItems = /* @__PURE__ */ __name((model, showDeleteButton, show
|
|
|
83
83
|
return /* @__PURE__ */ import_react.default.createElement(ItemComponent, { key: itemConfig.key, model });
|
|
84
84
|
});
|
|
85
85
|
}, "renderToolbarItems");
|
|
86
|
-
const
|
|
86
|
+
const TOOLBAR_ITEM_WIDTH = 19;
|
|
87
|
+
const toolbarPositionToCSS = {
|
|
88
|
+
inside: `
|
|
89
|
+
top: 2px;
|
|
90
|
+
`,
|
|
91
|
+
above: `
|
|
92
|
+
top: 0px;
|
|
93
|
+
transform: translateY(-100%);
|
|
94
|
+
padding-bottom: 0px;
|
|
95
|
+
margin-bottom: -2px;
|
|
96
|
+
`,
|
|
97
|
+
below: `
|
|
98
|
+
top: 0px;
|
|
99
|
+
transform: translateY(100%);
|
|
100
|
+
padding-top: 2px;
|
|
101
|
+
margin-top: -2px;
|
|
102
|
+
`
|
|
103
|
+
};
|
|
104
|
+
const floatContainerStyles = /* @__PURE__ */ __name(({ showBackground, showBorder, ctx, toolbarPosition = "inside", toolbarCount }) => import_css.css`
|
|
87
105
|
position: relative;
|
|
88
106
|
display: inline;
|
|
89
107
|
|
|
@@ -119,6 +137,7 @@ const floatContainerStyles = /* @__PURE__ */ __name(({ showBackground, showBorde
|
|
|
119
137
|
border: ${showBorder ? "2px solid var(--colorBorderSettingsHover)" : ""};
|
|
120
138
|
border-radius: ${ctx.themeToken.borderRadiusLG}px;
|
|
121
139
|
pointer-events: none;
|
|
140
|
+
min-width: ${TOOLBAR_ITEM_WIDTH * toolbarCount}px;
|
|
122
141
|
|
|
123
142
|
&.nb-in-template {
|
|
124
143
|
background: var(--colorTemplateBgSettingsHover);
|
|
@@ -149,10 +168,7 @@ const floatContainerStyles = /* @__PURE__ */ __name(({ showBackground, showBorde
|
|
|
149
168
|
display: none; // 防止遮挡其它 icons
|
|
150
169
|
position: absolute;
|
|
151
170
|
right: 2px;
|
|
152
|
-
|
|
153
|
-
${toolbarPosition === "above" ? "transform: translateY(-100%);" : ""}
|
|
154
|
-
${toolbarPosition === "above" ? "padding-bottom: 2px;" : ""}
|
|
155
|
-
${toolbarPosition === "above" ? "margin-bottom: -2px;" : ""}
|
|
171
|
+
${toolbarPositionToCSS[toolbarPosition] || ""}
|
|
156
172
|
line-height: 16px;
|
|
157
173
|
pointer-events: all;
|
|
158
174
|
|
|
@@ -417,7 +433,13 @@ const FlowsFloatContextMenuWithModel = (0, import_react2.observer)(
|
|
|
417
433
|
"div",
|
|
418
434
|
{
|
|
419
435
|
ref: containerRef,
|
|
420
|
-
className: `${floatContainerStyles({
|
|
436
|
+
className: `${floatContainerStyles({
|
|
437
|
+
showBackground,
|
|
438
|
+
showBorder,
|
|
439
|
+
ctx: model.context,
|
|
440
|
+
toolbarPosition,
|
|
441
|
+
toolbarCount: getToolbarCount(flowEngine, extraToolbarItems)
|
|
442
|
+
})} ${hideMenu ? "hide-parent-menu" : ""} ${hasButton ? "has-button-child" : ""} ${className || ""}`,
|
|
421
443
|
style: containerStyle,
|
|
422
444
|
"data-has-float-menu": "true",
|
|
423
445
|
onMouseMove: handleChildHover
|
|
@@ -478,6 +500,13 @@ const FlowsFloatContextMenuWithModelById = (0, import_react2.observer)(
|
|
|
478
500
|
displayName: "FlowsFloatContextMenuWithModelById"
|
|
479
501
|
}
|
|
480
502
|
);
|
|
503
|
+
function getToolbarCount(flowEngine, extraToolbarItems) {
|
|
504
|
+
var _a, _b;
|
|
505
|
+
const toolbarItems = ((_b = (_a = flowEngine == null ? void 0 : flowEngine.flowSettings) == null ? void 0 : _a.getToolbarItems) == null ? void 0 : _b.call(_a)) || [];
|
|
506
|
+
const allToolbarItems = [...toolbarItems, ...extraToolbarItems || []];
|
|
507
|
+
return allToolbarItems.length;
|
|
508
|
+
}
|
|
509
|
+
__name(getToolbarCount, "getToolbarCount");
|
|
481
510
|
// Annotate the CommonJS export names for ESM import in node:
|
|
482
511
|
0 && (module.exports = {
|
|
483
512
|
FlowsFloatContextMenu
|
|
@@ -59,7 +59,7 @@ const openStepSettingsDialog = /* @__PURE__ */ __name(async ({
|
|
|
59
59
|
uiModeProps,
|
|
60
60
|
cleanup
|
|
61
61
|
}) => {
|
|
62
|
-
var _a, _b, _c, _d;
|
|
62
|
+
var _a, _b, _c, _d, _e, _f;
|
|
63
63
|
const t = (0, import_utils.getT)(model);
|
|
64
64
|
const message = model.context.message;
|
|
65
65
|
if (!model) {
|
|
@@ -132,6 +132,12 @@ const openStepSettingsDialog = /* @__PURE__ */ __name(async ({
|
|
|
132
132
|
width: dialogWidth,
|
|
133
133
|
destroyOnClose: true,
|
|
134
134
|
...(0, import_reactive.toJS)(uiModeProps),
|
|
135
|
+
// 透传 navigation,便于变量元信息根据真实视图栈推断父级弹窗
|
|
136
|
+
inputArgs: (0, import_utils.buildSettingsViewInputArgs)(
|
|
137
|
+
model,
|
|
138
|
+
{ ...((_e = (0, import_reactive.toJS)(uiModeProps)) == null ? void 0 : _e.inputArgs) || {}, __isSettingsPopup: true },
|
|
139
|
+
{ navigationOverride: (_f = ctx == null ? void 0 : ctx.view) == null ? void 0 : _f.navigation }
|
|
140
|
+
),
|
|
135
141
|
onClose: /* @__PURE__ */ __name(() => {
|
|
136
142
|
if (cleanup) {
|
|
137
143
|
cleanup();
|
|
@@ -94,6 +94,7 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
94
94
|
showValueComponent = true,
|
|
95
95
|
onlyLeafSelectable = false,
|
|
96
96
|
clearValue,
|
|
97
|
+
ignoreFieldNames,
|
|
97
98
|
...restProps
|
|
98
99
|
}) => {
|
|
99
100
|
const [currentMetaTreeNode, setCurrentMetaTreeNode] = (0, import_react.useState)(null);
|
|
@@ -143,7 +144,7 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
143
144
|
}, [currentMetaTreeNode, innerValue, resolvedMetaTree, resolvePathFromValue]);
|
|
144
145
|
(0, import_react.useEffect)(() => {
|
|
145
146
|
const restoreFromValue = /* @__PURE__ */ __name(async () => {
|
|
146
|
-
if (!Array.isArray(resolvedMetaTree) ||
|
|
147
|
+
if (!Array.isArray(resolvedMetaTree) || value == null) return;
|
|
147
148
|
if (currentMetaTreeNode) {
|
|
148
149
|
return;
|
|
149
150
|
}
|
|
@@ -196,7 +197,7 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
196
197
|
}, [renderInputComponent, resolvedMetaTreeNode, innerValue]);
|
|
197
198
|
(0, import_react.useEffect)(() => {
|
|
198
199
|
if (!resolvedMetaTreeNode) return;
|
|
199
|
-
if (!Array.isArray(resolvedMetaTree) ||
|
|
200
|
+
if (!Array.isArray(resolvedMetaTree) || innerValue == null) return;
|
|
200
201
|
const finalValue = (resolveValueFromPath == null ? void 0 : resolveValueFromPath(resolvedMetaTreeNode)) || innerValue;
|
|
201
202
|
emitChange(finalValue, resolvedMetaTreeNode);
|
|
202
203
|
setCurrentMetaTreeNode(resolvedMetaTreeNode);
|
|
@@ -241,18 +242,30 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
241
242
|
if (disabled) {
|
|
242
243
|
return;
|
|
243
244
|
}
|
|
244
|
-
setCurrentMetaTreeNode(null);
|
|
245
245
|
const cleared = clearValue !== void 0 ? clearValue : null;
|
|
246
246
|
setInnerValue(cleared);
|
|
247
|
+
try {
|
|
248
|
+
const path = resolvePathFromValue == null ? void 0 : resolvePathFromValue(cleared);
|
|
249
|
+
if (Array.isArray(resolvedMetaTree) && path && path.length > 0) {
|
|
250
|
+
const node = findMetaTreeNodeByPath(resolvedMetaTree, path);
|
|
251
|
+
if (node) {
|
|
252
|
+
setCurrentMetaTreeNode(node);
|
|
253
|
+
emitChange(cleared, node);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
} catch (_) {
|
|
258
|
+
}
|
|
259
|
+
setCurrentMetaTreeNode(null);
|
|
247
260
|
emitChange(cleared);
|
|
248
|
-
}, [emitChange, disabled, clearValue]);
|
|
261
|
+
}, [emitChange, disabled, clearValue, resolvedMetaTree, resolvePathFromValue]);
|
|
249
262
|
const stableProps = (0, import_react.useMemo)(() => {
|
|
250
263
|
const { style, onFocus, onBlur, disabled: disabled2, ...otherProps } = restProps;
|
|
251
264
|
return { style, onFocus, onBlur, otherProps };
|
|
252
265
|
}, [restProps]);
|
|
253
266
|
const inputProps = (0, import_react.useMemo)(() => {
|
|
254
267
|
const baseProps = {
|
|
255
|
-
value: innerValue
|
|
268
|
+
value: innerValue ?? "",
|
|
256
269
|
onChange: handleInputChange,
|
|
257
270
|
disabled
|
|
258
271
|
};
|
|
@@ -311,6 +324,7 @@ const VariableInputComponent = /* @__PURE__ */ __name(({
|
|
|
311
324
|
parseValueToPath: resolvePathFromValue,
|
|
312
325
|
formatPathToValue: resolveValueFromPath,
|
|
313
326
|
onlyLeafSelectable,
|
|
327
|
+
ignoreFieldNames,
|
|
314
328
|
...!showValueComponent && { children: null, placeholder: restProps == null ? void 0 : restProps.placeholder }
|
|
315
329
|
}
|
|
316
330
|
));
|
|
@@ -63,8 +63,49 @@ const VariableTagComponent = /* @__PURE__ */ __name(({
|
|
|
63
63
|
return metaTreeNode.parentTitles ? [...metaTreeNode.parentTitles, metaTreeNode.title].map(ctx.t).join("/") : ctx.t(metaTreeNode.title) || "";
|
|
64
64
|
}
|
|
65
65
|
if (!value) return String(value);
|
|
66
|
-
const
|
|
67
|
-
|
|
66
|
+
const rawPath = (0, import_utils.parseValueToPath)(value);
|
|
67
|
+
if (!rawPath || !Array.isArray(resolvedMetaTree)) {
|
|
68
|
+
return Array.isArray(rawPath) ? rawPath.join("/") : String(value);
|
|
69
|
+
}
|
|
70
|
+
const topNames = new Set((resolvedMetaTree || []).map((n) => String(n == null ? void 0 : n.name)));
|
|
71
|
+
const path = !topNames.has(String(rawPath[0])) ? rawPath.slice(1) : rawPath;
|
|
72
|
+
if (!path.length) return "";
|
|
73
|
+
let nodes = resolvedMetaTree;
|
|
74
|
+
let deepest = null;
|
|
75
|
+
let matchedCount = 0;
|
|
76
|
+
for (let i = 0; i < path.length; i++) {
|
|
77
|
+
if (!nodes) break;
|
|
78
|
+
const seg = String(path[i]);
|
|
79
|
+
const node = nodes.find((n) => String(n == null ? void 0 : n.name) === seg);
|
|
80
|
+
if (!node) break;
|
|
81
|
+
deepest = node;
|
|
82
|
+
matchedCount = i + 1;
|
|
83
|
+
if (i < path.length - 1) {
|
|
84
|
+
if (Array.isArray(node.children)) {
|
|
85
|
+
nodes = node.children;
|
|
86
|
+
} else if (typeof node.children === "function") {
|
|
87
|
+
try {
|
|
88
|
+
const childNodes = await node.children();
|
|
89
|
+
node.children = childNodes;
|
|
90
|
+
nodes = childNodes;
|
|
91
|
+
} catch {
|
|
92
|
+
nodes = void 0;
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
nodes = void 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (deepest) {
|
|
100
|
+
const titles = deepest.parentTitles ? [...deepest.parentTitles, deepest.title] : [deepest.title];
|
|
101
|
+
let label = titles.map(ctx.t).join("/");
|
|
102
|
+
if (matchedCount < path.length) {
|
|
103
|
+
const tail = path.slice(matchedCount).join("/");
|
|
104
|
+
label = tail ? `${label}/${tail}` : label;
|
|
105
|
+
}
|
|
106
|
+
return label;
|
|
107
|
+
}
|
|
108
|
+
return path.join("/");
|
|
68
109
|
},
|
|
69
110
|
{ refreshDeps: [resolvedMetaTree, value, metaTreeNode] }
|
|
70
111
|
);
|
|
@@ -18,6 +18,7 @@ export interface FlowContextSelectorProps extends Omit<CascaderProps<ContextSele
|
|
|
18
18
|
formatPathToValue?: (item: MetaTreeNode) => string;
|
|
19
19
|
open?: boolean;
|
|
20
20
|
onlyLeafSelectable?: boolean;
|
|
21
|
+
ignoreFieldNames?: string[];
|
|
21
22
|
}
|
|
22
23
|
export interface ContextSelectorItem {
|
|
23
24
|
label: React.ReactNode;
|
|
@@ -62,6 +63,7 @@ export interface VariableInputProps {
|
|
|
62
63
|
* 默认行为为 null;可设置为 '' 等,以便清空后默认切换为“常量-空字符串”。
|
|
63
64
|
*/
|
|
64
65
|
clearValue?: any;
|
|
66
|
+
ignoreFieldNames?: string[];
|
|
65
67
|
[key: string]: any;
|
|
66
68
|
}
|
|
67
69
|
export interface VariableTagProps {
|