@nocobase/client-v2 2.2.0-alpha.1 → 2.2.0-alpha.10
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/es/APIClient.d.ts +1 -3
- package/es/BaseApplication.d.ts +3 -0
- package/es/PluginSettingsManager.d.ts +33 -0
- package/es/RouteRepository.d.ts +29 -6
- package/es/RouterManager.d.ts +15 -0
- package/es/authRedirect.d.ts +1 -0
- package/es/collection-field-interface/CollectionFieldInterface.d.ts +1 -0
- package/es/collection-field-interface/CollectionFieldInterfaceManager.d.ts +1 -0
- package/es/components/category-tabs/SortableCategoryTabs.d.ts +55 -0
- package/es/components/category-tabs/index.d.ts +9 -0
- package/es/components/form/JsonTextArea.d.ts +2 -1
- package/es/components/form/ScanInput/useCodeScanner.d.ts +3 -2
- package/es/components/form/TypedVariableInput.d.ts +31 -5
- package/es/components/form/VariableJsonTextArea.d.ts +19 -0
- package/es/components/form/filter/CollectionFilter.d.ts +2 -0
- package/es/components/form/filter/CollectionFilterItem.d.ts +11 -1
- package/es/components/form/filter/CollectionFilterPanel.d.ts +2 -0
- package/es/components/form/filter/index.d.ts +2 -0
- package/es/components/form/filter/useFilterActionProps.d.ts +2 -0
- package/es/components/form/index.d.ts +1 -0
- package/es/components/index.d.ts +2 -0
- package/es/entry-actions/EntryActionManager.d.ts +24 -0
- package/es/entry-actions/index.d.ts +9 -0
- package/es/flow/actions/afterSuccess.d.ts +8 -1
- package/es/flow/actions/index.d.ts +2 -2
- package/es/flow/actions/linkageRules.d.ts +2 -0
- package/es/flow/admin-shell/BaseLayoutModel.d.ts +6 -0
- package/es/flow/admin-shell/BaseLayoutRouteCoordinator.d.ts +7 -0
- package/es/flow/admin-shell/admin-layout/AdminLayoutEntryGuard.d.ts +2 -0
- package/es/flow/admin-shell/admin-layout/AdminLayoutMenuFlowUtils.d.ts +2 -1
- package/es/flow/admin-shell/admin-layout/AdminLayoutMenuModels.d.ts +3 -0
- package/es/flow/admin-shell/admin-layout/AdminLayoutMenuUtils.d.ts +3 -2
- package/es/flow/admin-shell/admin-layout/AdminLayoutSlotModels.d.ts +5 -0
- package/es/flow/admin-shell/admin-layout/AppListRender.d.ts +2 -1
- package/es/flow/admin-shell/admin-layout/AppSwitcherActionPanelModel.d.ts +24 -0
- package/es/flow/admin-shell/admin-layout/index.d.ts +1 -0
- package/es/flow/admin-shell/admin-layout/resolveAdminRouteRuntimeTarget.d.ts +6 -0
- package/es/flow/admin-shell/admin-layout/useApplications.d.ts +7 -2
- package/es/flow/components/FieldAssignExactDatePicker.d.ts +1 -0
- package/es/flow/components/FieldAssignRulesEditor.d.ts +3 -1
- package/es/flow/components/FieldAssignValueInput.d.ts +9 -0
- package/es/flow/components/FlowRoute.d.ts +2 -2
- package/es/flow/components/RunJSValueEditor.d.ts +1 -0
- package/es/flow/components/filter/FilterGroup.d.ts +1 -0
- package/es/flow/components/filter/VariableFilterItem.d.ts +6 -1
- package/es/flow/index.d.ts +1 -0
- package/es/flow/internal/registerDeviceTypeContext.d.ts +10 -0
- package/es/flow/models/base/ActionModelCore.d.ts +2 -0
- package/es/flow/models/base/BlockGridModel.d.ts +3 -0
- package/es/flow/models/base/GridModel.d.ts +1 -1
- package/es/flow/models/base/PageModel/PageModel.d.ts +12 -0
- package/es/flow/models/base/PageModel/PageModelTabBar.d.ts +22 -0
- package/es/flow/models/base/PageModel/PageTabModel.d.ts +12 -0
- package/es/flow/models/blocks/filter-form/FilterFormBlockModel.d.ts +5 -0
- package/es/flow/models/blocks/form/FormBlockModel.d.ts +4 -0
- package/es/flow/models/blocks/form/QuickEditFormModel.d.ts +17 -2
- package/es/flow/models/blocks/form/submitHandler.d.ts +1 -1
- package/es/flow/models/blocks/form/value-runtime/rules.d.ts +21 -0
- package/es/flow/models/blocks/form/value-runtime/runtime.d.ts +30 -0
- package/es/flow/models/blocks/form/value-runtime/types.d.ts +2 -2
- package/es/flow/models/blocks/js-block/JSBlock.d.ts +1 -0
- package/es/flow/models/blocks/table/TableActionsColumnModel.d.ts +1 -0
- package/es/flow/models/blocks/table/TableBlockModel.d.ts +1 -0
- package/es/flow/models/blocks/table/TableColumnModel.d.ts +1 -0
- package/es/flow/models/blocks/table/dragSort/dragSortHooks.d.ts +1 -1
- package/es/flow/models/blocks/table/dragSort/dragSortSettings.d.ts +2 -1
- package/es/flow/models/blocks/table/dragSort/dragSortUtils.d.ts +6 -4
- package/es/flow/models/fields/AssociationFieldModel/RecordSelectFieldModel.d.ts +2 -0
- package/es/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableColumnModel.d.ts +6 -0
- package/es/flow/models/fields/DateTimeFieldModel/dateLimit.d.ts +15 -7
- package/es/flow/resolveViewParamsToViewList.d.ts +1 -1
- package/es/flow/routeTransientInputArgs.d.ts +14 -0
- package/es/flow/utils/dataScopeRowSnapshot.d.ts +59 -0
- package/es/flow/utils/dateTimeDisplayProps.d.ts +49 -0
- package/es/flow/utils/formValueDeps.d.ts +32 -0
- package/es/flow-compat/FieldValidation.d.ts +2 -1
- package/es/flow-compat/fieldValidationConstants.d.ts +1 -1
- package/es/flow-compat/routeTypes.d.ts +1 -0
- package/es/index.d.ts +8 -1
- package/es/index.mjs +367 -181
- package/es/utils/getRouteRuntimeVersion.d.ts +23 -0
- package/es/utils/index.d.ts +1 -0
- package/es/utils/markdownSanitize.d.ts +11 -0
- package/lib/index.js +367 -181
- package/lib/locale/languageCodes.js +3 -1
- package/package.json +9 -7
- package/src/APIClient.ts +1 -10
- package/src/Application.tsx +4 -0
- package/src/BaseApplication.tsx +13 -6
- package/src/PluginSettingsManager.ts +53 -0
- package/src/RouteRepository.ts +151 -24
- package/src/RouterManager.tsx +142 -1
- package/src/__tests__/PluginSettingsManager.test.ts +13 -0
- package/src/__tests__/RouteRepository.test.ts +239 -0
- package/src/__tests__/RouterManager.test.ts +125 -0
- package/src/__tests__/app.test.tsx +73 -0
- package/src/__tests__/authRedirect.test.ts +17 -0
- package/src/__tests__/browserChecker.test.ts +61 -0
- package/src/__tests__/exports.test.ts +16 -0
- package/src/__tests__/getRouteRuntimeVersion.test.ts +68 -0
- package/src/__tests__/nocobase-buildin-plugin-auth.test.tsx +234 -2
- package/src/__tests__/plugin-manager.test.tsx +44 -2
- package/src/__tests__/settings-center.test.tsx +40 -1
- package/src/authRedirect.ts +38 -0
- package/src/collection-field-interface/CollectionFieldInterface.ts +1 -0
- package/src/collection-field-interface/CollectionFieldInterfaceManager.ts +1 -0
- package/src/collection-manager/field-configure.ts +1 -1
- package/src/collection-manager/field-validation.ts +1 -1
- package/src/collection-manager/interfaces/id.ts +1 -1
- package/src/collection-manager/interfaces/m2m.tsx +2 -2
- package/src/collection-manager/interfaces/m2o.tsx +2 -2
- package/src/collection-manager/interfaces/nanoid.ts +1 -1
- package/src/collection-manager/interfaces/o2m.tsx +2 -2
- package/src/collection-manager/interfaces/obo.tsx +2 -2
- package/src/collection-manager/interfaces/oho.tsx +2 -2
- package/src/collection-manager/interfaces/properties/index.ts +2 -2
- package/src/collection-manager/interfaces/uuid.ts +1 -1
- package/src/components/AppComponents.tsx +19 -3
- package/src/components/README.md +7 -1
- package/src/components/README.zh-CN.md +6 -1
- package/src/components/category-tabs/SortableCategoryTabs.tsx +210 -0
- package/src/components/category-tabs/index.ts +10 -0
- package/src/components/form/JsonTextArea.tsx +25 -11
- package/src/components/form/ScanInput/CodeScanner.tsx +79 -35
- package/src/components/form/ScanInput/__tests__/CodeScanner.test.tsx +101 -0
- package/src/components/form/ScanInput/__tests__/useCodeScanner.test.tsx +284 -11
- package/src/components/form/ScanInput/useCodeScanner.ts +332 -24
- package/src/components/form/TypedVariableInput.tsx +452 -101
- package/src/components/form/VariableJsonTextArea.tsx +175 -0
- package/src/components/form/__tests__/JsonTextArea.test.tsx +43 -0
- package/src/components/form/__tests__/TypedVariableInput.test.tsx +364 -12
- package/src/components/form/__tests__/VariableJsonTextArea.test.tsx +86 -0
- package/src/components/form/filter/CollectionFilter.tsx +4 -0
- package/src/components/form/filter/CollectionFilterItem.tsx +32 -7
- package/src/components/form/filter/CollectionFilterPanel.tsx +4 -0
- package/src/components/form/filter/__tests__/CollectionFilterItem.test.tsx +38 -0
- package/src/components/form/filter/__tests__/useFilterActionProps.test.tsx +95 -0
- package/src/components/form/filter/index.ts +2 -0
- package/src/components/form/filter/useFilterActionProps.ts +37 -6
- package/src/components/form/index.tsx +1 -0
- package/src/components/index.ts +2 -0
- package/src/entry-actions/EntryActionManager.ts +76 -0
- package/src/entry-actions/index.ts +10 -0
- package/src/flow/FlowPage.tsx +38 -3
- package/src/flow/__tests__/FlowPage.test.tsx +201 -27
- package/src/flow/__tests__/FlowRoute.test.tsx +1181 -80
- package/src/flow/__tests__/PluginFlowEngine.test.ts +58 -0
- package/src/flow/__tests__/getKey.test.ts +7 -0
- package/src/flow/__tests__/resolveViewParamsToViewList.test.ts +34 -0
- package/src/flow/actions/__tests__/actionLinkageRules.forkProps.test.ts +115 -0
- package/src/flow/actions/__tests__/afterSuccess.test.ts +73 -0
- package/src/flow/actions/__tests__/dataScopeFilter.test.ts +120 -0
- package/src/flow/actions/__tests__/dataScopeFormValueClear.test.ts +1124 -0
- package/src/flow/actions/__tests__/fieldLinkageRules.scopeDepth.test.ts +150 -1
- package/src/flow/actions/__tests__/linkageAssignField.legacy.test.ts +135 -0
- package/src/flow/actions/__tests__/linkageRules.hiddenSync.restore.test.ts +19 -5
- package/src/flow/actions/__tests__/linkageRules.subFormSetFieldProps.test.ts +92 -0
- package/src/flow/actions/__tests__/linkageRules.tab.test.ts +171 -0
- package/src/flow/actions/__tests__/linkageRulesRefresh.test.ts +7 -3
- package/src/flow/actions/__tests__/openView.defineProps.route.test.tsx +164 -0
- package/src/flow/actions/__tests__/subFormFieldLinkageRules.inputArgs.test.ts +2 -2
- package/src/flow/actions/afterSuccess.tsx +142 -3
- package/src/flow/actions/customVariable.tsx +1 -2
- package/src/flow/actions/dataScopeFilter.ts +20 -1
- package/src/flow/actions/dateTimeFormat.tsx +42 -28
- package/src/flow/actions/index.ts +3 -1
- package/src/flow/actions/linkageRules.tsx +209 -47
- package/src/flow/actions/linkageRulesFormValueRefresh.ts +22 -130
- package/src/flow/actions/linkageRulesRefresh.tsx +2 -6
- package/src/flow/actions/openView.tsx +59 -5
- package/src/flow/actions/runjs.tsx +2 -14
- package/src/flow/actions/validation.tsx +62 -30
- package/src/flow/admin-shell/BaseLayoutModel.tsx +149 -3
- package/src/flow/admin-shell/BaseLayoutRouteCoordinator.ts +187 -42
- package/src/flow/admin-shell/__tests__/AdminLayoutRouteCoordinator.test.ts +1020 -110
- package/src/flow/admin-shell/admin-layout/AdminLayoutComponent.tsx +74 -14
- package/src/flow/admin-shell/admin-layout/AdminLayoutEntryGuard.test.tsx +486 -0
- package/src/flow/admin-shell/admin-layout/AdminLayoutEntryGuard.tsx +64 -8
- package/src/flow/admin-shell/admin-layout/AdminLayoutMenuFlowUtils.ts +5 -3
- package/src/flow/admin-shell/admin-layout/AdminLayoutMenuModels.tsx +61 -9
- package/src/flow/admin-shell/admin-layout/AdminLayoutMenuUtils.tsx +71 -8
- package/src/flow/admin-shell/admin-layout/AdminLayoutModel.tsx +1 -1
- package/src/flow/admin-shell/admin-layout/AdminLayoutSlotModels.tsx +23 -9
- package/src/flow/admin-shell/admin-layout/AppListRender.tsx +13 -2
- package/src/flow/admin-shell/admin-layout/AppSwitcherActionPanelModel.tsx +289 -0
- package/src/flow/admin-shell/admin-layout/HelpLite.tsx +1 -3
- package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutComponent.test.tsx +435 -0
- package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutMenuModels.test.ts +99 -0
- package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutModel.test.tsx +518 -2
- package/src/flow/admin-shell/admin-layout/__tests__/TopbarActionsBar.test.tsx +214 -2
- package/src/flow/admin-shell/admin-layout/index.ts +1 -0
- package/src/flow/admin-shell/admin-layout/resolveAdminRouteRuntimeTarget.test.ts +20 -0
- package/src/flow/admin-shell/admin-layout/resolveAdminRouteRuntimeTarget.ts +33 -5
- package/src/flow/admin-shell/admin-layout/useApplications.tsx +81 -12
- package/src/flow/common/Markdown/Display.tsx +14 -3
- package/src/flow/common/Markdown/Edit.tsx +19 -7
- package/src/flow/common/Markdown/style.ts +4 -0
- package/src/flow/components/BlockItemCard.tsx +2 -2
- package/src/flow/components/DefaultValue.tsx +1 -2
- package/src/flow/components/DynamicFlowsIcon.tsx +447 -126
- package/src/flow/components/FieldAssignExactDatePicker.tsx +25 -11
- package/src/flow/components/FieldAssignRulesEditor.tsx +128 -21
- package/src/flow/components/FieldAssignValueInput.tsx +91 -20
- package/src/flow/components/FlowRoute.tsx +256 -53
- package/src/flow/components/RunJSValueEditor.tsx +9 -1
- package/src/flow/components/__tests__/DynamicFlowsIcon.test.tsx +148 -2
- package/src/flow/components/__tests__/FieldAssignRulesEditor.test.tsx +508 -4
- package/src/flow/components/__tests__/FieldAssignValueInput.context.test.tsx +216 -0
- package/src/flow/components/__tests__/fieldAssignOptions.test.ts +151 -3
- package/src/flow/components/code-editor/__tests__/useCodeRunner.test.tsx +2 -17
- package/src/flow/components/code-editor/hooks/useCodeRunner.ts +2 -14
- package/src/flow/components/code-editor/runjsDiagnostics.ts +8 -45
- package/src/flow/components/fieldAssignOptions.ts +155 -27
- package/src/flow/components/filter/FilterGroup.tsx +33 -5
- package/src/flow/components/filter/VariableFilterItem.tsx +158 -10
- package/src/flow/components/filter/__tests__/FilterGroup.test.tsx +45 -0
- package/src/flow/components/filter/__tests__/VariableFilterItem.leftMetaTree.test.tsx +9 -0
- package/src/flow/components/filter/__tests__/VariableFilterItem.test.tsx +70 -1
- package/src/flow/flows/editMarkdownFlow.tsx +1 -1
- package/src/flow/getViewDiffAndUpdateHidden.tsx +1 -0
- package/src/flow/index.ts +4 -1
- package/src/flow/internal/components/Markdown/util.ts +2 -1
- package/src/flow/internal/registerDeviceTypeContext.ts +39 -0
- package/src/flow/internal/utils/operatorSchemaHelper.ts +15 -1
- package/src/flow/models/actions/JSActionModel.tsx +2 -7
- package/src/flow/models/actions/JSCollectionActionModel.tsx +2 -7
- package/src/flow/models/actions/JSItemActionModel.tsx +2 -7
- package/src/flow/models/actions/JSRecordActionModel.tsx +2 -7
- package/src/flow/models/base/ActionModel.tsx +21 -8
- package/src/flow/models/base/ActionModelCore.tsx +11 -4
- package/src/flow/models/base/BlockGridModel.tsx +26 -0
- package/src/flow/models/base/CollectionBlockModel.tsx +6 -2
- package/src/flow/models/base/GridModel.tsx +38 -7
- package/src/flow/models/base/PageModel/PageModel.tsx +387 -50
- package/src/flow/models/base/PageModel/PageModelTabBar.tsx +114 -0
- package/src/flow/models/base/PageModel/PageTabModel.tsx +249 -18
- package/src/flow/models/base/PageModel/__tests__/PageModel.test.ts +817 -13
- package/src/flow/models/base/PageModel/__tests__/PageModelTabBar.module-isolation.test.tsx +130 -0
- package/src/flow/models/base/PageModel/__tests__/PageModelTabBar.test.tsx +118 -0
- package/src/flow/models/base/PageModel/__tests__/PageTabModel.test.ts +1075 -7
- package/src/flow/models/base/__tests__/ActionModel.test.ts +83 -0
- package/src/flow/models/base/__tests__/ActionModelCore.render.test.tsx +37 -0
- package/src/flow/models/base/__tests__/BlockGridModel.selectSceneActivation.test.ts +124 -0
- package/src/flow/models/base/__tests__/CollectionBlockModel.addAppends.test.ts +41 -0
- package/src/flow/models/base/__tests__/GridModel.dragSnapshotContainer.test.ts +239 -1
- package/src/flow/models/base/__tests__/transformRowsToSingleColumn.test.ts +48 -0
- package/src/flow/models/blocks/filter-form/FilterFormBlockModel.tsx +59 -6
- package/src/flow/models/blocks/filter-form/FilterFormItemModel.tsx +27 -12
- package/src/flow/models/blocks/filter-form/FilterFormJSActionModel.tsx +2 -7
- package/src/flow/models/blocks/filter-form/__tests__/FilterFormItemModel.defineChildren.test.ts +36 -0
- package/src/flow/models/blocks/filter-form/__tests__/defaultValues.wiring.test.ts +143 -4
- package/src/flow/models/blocks/filter-form/fields/FilterFormCustomFieldModel.tsx +1 -1
- package/src/flow/models/blocks/filter-manager/flow-actions/__tests__/customizeFilterRender.test.tsx +56 -1
- package/src/flow/models/blocks/form/EditFormModel.tsx +1 -0
- package/src/flow/models/blocks/form/FormActionModel.tsx +1 -1
- package/src/flow/models/blocks/form/FormBlockModel.tsx +7 -0
- package/src/flow/models/blocks/form/JSFormActionModel.tsx +2 -7
- package/src/flow/models/blocks/form/QuickEditFormModel.tsx +189 -36
- package/src/flow/models/blocks/form/__tests__/FormBlockModel.test.tsx +17 -0
- package/src/flow/models/blocks/form/__tests__/QuickEditFormModel.quickEdit.test.ts +350 -2
- package/src/flow/models/blocks/form/__tests__/submitHandler.test.ts +54 -1
- package/src/flow/models/blocks/form/submitHandler.ts +17 -3
- package/src/flow/models/blocks/form/value-runtime/__tests__/runtime.test.ts +940 -75
- package/src/flow/models/blocks/form/value-runtime/rules.ts +445 -13
- package/src/flow/models/blocks/form/value-runtime/runtime.ts +348 -13
- package/src/flow/models/blocks/form/value-runtime/types.ts +2 -2
- package/src/flow/models/blocks/js-block/JSBlock.tsx +225 -9
- package/src/flow/models/blocks/js-block/__tests__/JSBlockModel.test.tsx +150 -0
- package/src/flow/models/blocks/table/JSColumnModel.tsx +1 -9
- package/src/flow/models/blocks/table/TableActionsColumnModel.tsx +38 -14
- package/src/flow/models/blocks/table/TableBlockModel.tsx +42 -19
- package/src/flow/models/blocks/table/TableColumnModel.tsx +72 -6
- package/src/flow/models/blocks/table/__tests__/TableActionsColumnModel.test.tsx +111 -1
- package/src/flow/models/blocks/table/__tests__/TableBlockModel.dragSort.test.ts +127 -0
- package/src/flow/models/blocks/table/__tests__/TableBlockModel.mobileSettingsButtons.test.tsx +78 -0
- package/src/flow/models/blocks/table/__tests__/TableBlockModel.quickEditRefresh.test.ts +12 -0
- package/src/flow/models/blocks/table/__tests__/TableBlockModel.rowSelection.test.tsx +1 -0
- package/src/flow/models/blocks/table/__tests__/TableColumnModel.test.tsx +243 -1
- package/src/flow/models/blocks/table/dragSort/dragSortHooks.tsx +28 -17
- package/src/flow/models/blocks/table/dragSort/dragSortSettings.ts +13 -6
- package/src/flow/models/blocks/table/dragSort/dragSortUtils.ts +15 -2
- package/src/flow/models/fields/AssociationFieldModel/AssociationFieldModel.tsx +1 -1
- package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/PopupSubTableFieldModel.tsx +31 -7
- package/src/flow/models/fields/AssociationFieldModel/RecordSelectFieldModel.tsx +61 -17
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableColumnModel.tsx +141 -19
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/SubTableField.tsx +13 -1
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/__tests__/SubTableColumnModel.rowRecord.test.ts +197 -0
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/__tests__/SubTableFieldModel.reset.test.ts +180 -0
- package/src/flow/models/fields/AssociationFieldModel/SubTableFieldModel/index.tsx +6 -4
- package/src/flow/models/fields/AssociationFieldModel/__tests__/AssociationFieldModel.updateAssociation.test.ts +72 -0
- package/src/flow/models/fields/AssociationFieldModel/__tests__/RecordPickerFieldModel.itemContext.test.ts +23 -0
- package/src/flow/models/fields/ClickableFieldModel.tsx +5 -0
- package/src/flow/models/fields/DateTimeFieldModel/__tests__/DateTimeNoTzFieldModel.dateLimit.test.tsx +149 -0
- package/src/flow/models/fields/DateTimeFieldModel/dateLimit.ts +149 -113
- package/src/flow/models/fields/DisplayDateTimeFieldModel.tsx +29 -1
- package/src/flow/models/fields/InputFieldModel.tsx +40 -2
- package/src/flow/models/fields/JSEditableFieldModel.tsx +2 -11
- package/src/flow/models/fields/JSFieldModel.tsx +2 -7
- package/src/flow/models/fields/JSItemModel.tsx +2 -14
- package/src/flow/models/fields/SelectFieldModel.tsx +6 -4
- package/src/flow/models/fields/TextareaFieldModel.tsx +72 -3
- package/src/flow/models/fields/VariableFieldFormModel.tsx +3 -3
- package/src/flow/models/fields/__tests__/DisplayDateTimeFieldModel.test.tsx +96 -0
- package/src/flow/models/fields/__tests__/InputFieldModel.test.tsx +117 -1
- package/src/flow/models/fields/__tests__/SelectFieldModel.test.tsx +43 -0
- package/src/flow/models/fields/__tests__/TextareaFieldModel.test.tsx +131 -0
- package/src/flow/models/fields/__tests__/VariableFieldFormModel.test.tsx +51 -0
- package/src/flow/models/fields/mobile-components/MobileLazySelect.tsx +20 -10
- package/src/flow/models/fields/mobile-components/MobileSelect.tsx +24 -12
- package/src/flow/models/topbar/TopbarActionModel.tsx +168 -10
- package/src/flow/resolveViewParamsToViewList.tsx +11 -3
- package/src/flow/routeTransientInputArgs.ts +27 -0
- package/src/flow/utils/__tests__/dateTimeFormat.test.ts +300 -0
- package/src/flow/utils/dataScopeFormValueClear.ts +219 -81
- package/src/flow/utils/dataScopeRowSnapshot.ts +616 -0
- package/src/flow/utils/dateTimeDisplayProps.ts +135 -0
- package/src/flow/utils/formValueDeps.ts +170 -0
- package/src/flow-compat/FieldValidation.tsx +122 -60
- package/src/flow-compat/Popover.tsx +43 -4
- package/src/flow-compat/__tests__/Popover.test.tsx +34 -0
- package/src/flow-compat/fieldValidationConstants.ts +1 -1
- package/src/flow-compat/routeTypes.ts +1 -0
- package/src/index.ts +14 -1
- package/src/layout-manager/__tests__/LayoutRoute.test.tsx +41 -1
- package/src/locale/languageCodes.ts +3 -1
- package/src/nocobase-buildin-plugin/index.tsx +63 -15
- package/src/settings-center/AdminSettingsLayout.tsx +10 -2
- package/src/settings-center/SystemSettingsPage.tsx +1 -2
- package/src/settings-center/plugin-manager/PluginCard.tsx +2 -2
- package/src/settings-center/plugin-manager/index.tsx +3 -0
- package/src/settings-center/utils.tsx +0 -6
- package/src/utils/getRouteRuntimeVersion.ts +185 -0
- package/src/utils/index.tsx +1 -0
- package/src/utils/markdownSanitize.ts +88 -0
|
@@ -25,6 +25,7 @@ interface RouteLike {
|
|
|
25
25
|
name?: string;
|
|
26
26
|
};
|
|
27
27
|
pathname?: string;
|
|
28
|
+
state?: unknown;
|
|
28
29
|
pageUid?: string;
|
|
29
30
|
layoutBasePathname?: string;
|
|
30
31
|
layoutRoute?: {
|
|
@@ -46,6 +47,7 @@ export declare class BaseLayoutRouteCoordinator {
|
|
|
46
47
|
private basePathname;
|
|
47
48
|
private readonly runtimes;
|
|
48
49
|
private layoutContentElement;
|
|
50
|
+
private lastNonNullLayoutContentElement;
|
|
49
51
|
constructor(flowEngine: FlowEngine, options?: BaseLayoutRouteCoordinatorOptions);
|
|
50
52
|
setLayoutContentElement(element: HTMLElement | null): void;
|
|
51
53
|
registerPage(pageUid: string, meta: RoutePageMeta): RouteModel<import("@nocobase/flow-engine").DefaultStructure>;
|
|
@@ -62,6 +64,11 @@ export declare class BaseLayoutRouteCoordinator {
|
|
|
62
64
|
private shouldStepNavigate;
|
|
63
65
|
private scheduleInitialDeepLinkReplay;
|
|
64
66
|
private stepNavigate;
|
|
67
|
+
private replayActiveRuntimeViewsAfterLayoutContentElementChange;
|
|
68
|
+
private invalidatePendingRuntimeViewOpens;
|
|
69
|
+
private resetRuntimeViewStateForLayoutContentElementChange;
|
|
70
|
+
private markPendingOpenViews;
|
|
71
|
+
private clearPendingOpenViews;
|
|
65
72
|
private handleOpenViews;
|
|
66
73
|
private openViews;
|
|
67
74
|
private ensureRouteModelContext;
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import React, { type FC } from 'react';
|
|
10
|
+
import type { AdminLayoutModel } from './AdminLayoutModel';
|
|
10
11
|
export declare const AdminLayoutEntryGuard: FC<{
|
|
11
12
|
children: React.ReactNode;
|
|
13
|
+
model?: AdminLayoutModel;
|
|
12
14
|
}>;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import type { FlowSettingsContext } from '@nocobase/flow-engine';
|
|
10
10
|
import { type NocoBaseDesktopRoute } from '../../../flow-compat';
|
|
11
11
|
import { AdminLayoutMenuCreationMeta, AdminLayoutMenuCreationParams, AdminLayoutMenuCreationType, AdminLayoutMenuInsertPosition, getAdminLayoutMenuMovePositionOptions } from './AdminLayoutMenuUtils';
|
|
12
|
+
import { type AdminLayoutRoutePathLike } from './resolveAdminRouteRuntimeTarget';
|
|
12
13
|
declare const buildLinkSettingSchema: (t: (title: any) => any) => {
|
|
13
14
|
href: {
|
|
14
15
|
title: any;
|
|
@@ -99,7 +100,7 @@ export declare const createInsertMenuStep: (options: {
|
|
|
99
100
|
export declare const toTreeSelectItems: (routes: NocoBaseDesktopRoute[], ctx: Pick<FlowSettingsContext<any>, 'resolveJsonTemplate' | 't'>) => any;
|
|
100
101
|
export declare const findPrevSiblingRoute: (routes: NocoBaseDesktopRoute[], currentRoute: NocoBaseDesktopRoute | undefined) => any;
|
|
101
102
|
export declare const findNextSiblingRoute: (routes: NocoBaseDesktopRoute[], currentRoute: NocoBaseDesktopRoute | undefined) => any;
|
|
102
|
-
export declare const matchesRoutePath: (route: NocoBaseDesktopRoute | undefined, pathname: string, basename?: string) => boolean;
|
|
103
|
+
export declare const matchesRoutePath: (route: NocoBaseDesktopRoute | undefined, pathname: string, basename?: string, layout?: AdminLayoutRoutePathLike | null) => boolean;
|
|
103
104
|
export declare const buildInsertRouteSchema: (menuType: AdminLayoutMenuCreationType, pageSchemaUid: string, tabSchemaUid: string, tabSchemaName: string) => {
|
|
104
105
|
type: string;
|
|
105
106
|
'x-component': string;
|
|
@@ -10,6 +10,7 @@ import React from 'react';
|
|
|
10
10
|
import { FlowModel } from '@nocobase/flow-engine';
|
|
11
11
|
import { type NocoBaseDesktopRoute } from '../../../flow-compat';
|
|
12
12
|
import { AdminLayoutMenuCreationMeta, AdminLayoutMenuCreationParams, AdminLayoutMenuInsertPosition, AdminLayoutMenuItemStructure, AdminLayoutMenuNode, AdminLayoutMenuRouteOptions } from './AdminLayoutMenuUtils';
|
|
13
|
+
import { type AdminLayoutRoutePathLike } from './resolveAdminRouteRuntimeTarget';
|
|
13
14
|
export * from './AdminLayoutMenuUtils';
|
|
14
15
|
export declare class AdminLayoutMenuItemModel extends FlowModel<AdminLayoutMenuItemStructure> {
|
|
15
16
|
private creationPersisted;
|
|
@@ -23,6 +24,7 @@ export declare class AdminLayoutMenuItemModel extends FlowModel<AdminLayoutMenuI
|
|
|
23
24
|
isCreationSession(): boolean;
|
|
24
25
|
shouldHydratePersistedState(): boolean;
|
|
25
26
|
getRouteRepository(): any;
|
|
27
|
+
getLayout(): AdminLayoutRoutePathLike | undefined;
|
|
26
28
|
hasPersistedMenuInstanceFlowFlag(route?: NocoBaseDesktopRoute): boolean;
|
|
27
29
|
getCurrentPersistedInstanceFlowCount(): number;
|
|
28
30
|
hasPersistableMenuLinkageRules(): boolean;
|
|
@@ -30,6 +32,7 @@ export declare class AdminLayoutMenuItemModel extends FlowModel<AdminLayoutMenuI
|
|
|
30
32
|
buildRouteOptionsWithPersistedFlowFlag(hasPersistedMenuInstanceFlow: boolean): {
|
|
31
33
|
[x: string]: any;
|
|
32
34
|
hasPersistedMenuInstanceFlow?: boolean;
|
|
35
|
+
hasPersistedPageTabFlowModel?: boolean;
|
|
33
36
|
};
|
|
34
37
|
syncPersistedFlowRouteFlag(): Promise<void>;
|
|
35
38
|
destroyPersistedState(): Promise<void>;
|
|
@@ -11,6 +11,7 @@ import React, { FC } from 'react';
|
|
|
11
11
|
import { type NavigateFunction } from 'react-router-dom';
|
|
12
12
|
import { type NocoBaseDesktopRoute } from '../../../flow-compat';
|
|
13
13
|
import type { AdminLayoutMenuItemModel } from './AdminLayoutMenuModels';
|
|
14
|
+
import { type AdminLayoutRoutePathLike } from './resolveAdminRouteRuntimeTarget';
|
|
14
15
|
export type AdminLayoutMenuRenderType = 'item' | 'group';
|
|
15
16
|
export type AdminLayoutMenuRenderOptions = {
|
|
16
17
|
isMobile?: boolean;
|
|
@@ -81,7 +82,7 @@ type AdminLayoutMenuItemsParent = FlowModel & {
|
|
|
81
82
|
* @param identity 节点身份
|
|
82
83
|
* @returns 唯一占位路径
|
|
83
84
|
*/
|
|
84
|
-
export declare const getAdminLayoutMenuVirtualPath: (type: 'link' | 'designer', identity: string | number) => string;
|
|
85
|
+
export declare const getAdminLayoutMenuVirtualPath: (type: 'link' | 'designer', identity: string | number, layout?: AdminLayoutRoutePathLike | null) => string;
|
|
85
86
|
/**
|
|
86
87
|
* 仅在模板表达式内部兼容历史菜单变量写法,避免误改普通文本。
|
|
87
88
|
* @param template 原始模板字符串
|
|
@@ -159,7 +160,7 @@ export declare const AdminLayoutMenuModelRenderer: FC<{
|
|
|
159
160
|
renderType: AdminLayoutMenuRenderType;
|
|
160
161
|
options?: AdminLayoutMenuRenderOptions;
|
|
161
162
|
}>;
|
|
162
|
-
export declare function getAdminLayoutMenuInitializerButton(testId: string, launcherModel: FlowModel, parentRoute?: NocoBaseDesktopRoute): AdminLayoutMenuNode;
|
|
163
|
+
export declare function getAdminLayoutMenuInitializerButton(testId: string, launcherModel: FlowModel, parentRoute?: NocoBaseDesktopRoute, layout?: AdminLayoutRoutePathLike | null): AdminLayoutMenuNode;
|
|
163
164
|
export declare const buildMenuTitleWithIcon: (route: NocoBaseDesktopRoute, t: (title: any) => any, showIconInTitle: boolean) => {
|
|
164
165
|
name: any;
|
|
165
166
|
icon: React.JSX.Element;
|
|
@@ -7,8 +7,13 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { FC } from 'react';
|
|
10
|
+
import { type AdminLayoutRoutePathLike } from './resolveAdminRouteRuntimeTarget';
|
|
10
11
|
type AdminLayoutContentProps = {
|
|
11
12
|
onContentElementChange?: (element: HTMLDivElement | null) => void;
|
|
13
|
+
layout?: (AdminLayoutRoutePathLike & {
|
|
14
|
+
routeName?: string;
|
|
15
|
+
}) | null;
|
|
16
|
+
designable?: boolean;
|
|
12
17
|
};
|
|
13
18
|
/**
|
|
14
19
|
* AdminLayout 内部使用的内容区容器。
|
|
@@ -8,4 +8,5 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { AppListProps } from '@ant-design/pro-layout/es/components/AppsLogoComponents/types';
|
|
10
10
|
import React from 'react';
|
|
11
|
-
|
|
11
|
+
import type { AppSwitcherActionPanelModel } from './AppSwitcherActionPanelModel';
|
|
12
|
+
export declare function useAppListRender(appSwitcherModel?: AppSwitcherActionPanelModel): (appList: AppListProps) => React.JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
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 { ActionModel } from '../../models/base';
|
|
10
|
+
import { FlowModel, type SubModelItemsType } from '@nocobase/flow-engine';
|
|
11
|
+
import React from 'react';
|
|
12
|
+
type AppSwitcherActionPanelStructure = {
|
|
13
|
+
subModels: {
|
|
14
|
+
actions?: ActionModel[];
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare class AppSwitcherActionPanelModel extends FlowModel<AppSwitcherActionPanelStructure> {
|
|
18
|
+
getConfigureActionsItems(): SubModelItemsType;
|
|
19
|
+
renderConfigureActions(): React.JSX.Element;
|
|
20
|
+
private getRenderableActions;
|
|
21
|
+
hasActions(): boolean;
|
|
22
|
+
renderContent(): React.JSX.Element;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export * from './AdminLayoutComponent';
|
|
10
10
|
export * from './AdminLayoutModel';
|
|
11
|
+
export * from './AppSwitcherActionPanelModel';
|
|
11
12
|
export * from '../BaseLayoutModel';
|
|
12
13
|
export * from '../BaseLayoutRouteCoordinator';
|
|
13
14
|
export * from './AdminLayoutSlotModels';
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { BaseApplication } from '../../../BaseApplication';
|
|
10
10
|
import { type NocoBaseDesktopRoute } from '../../../flow-compat';
|
|
11
|
+
import type { LayoutDefinition } from '../../../layout-manager/types';
|
|
11
12
|
export type AdminRouteNavigationMode = 'spa' | 'document';
|
|
12
13
|
export type AdminRouteRuntimeTargetReason = 'ok' | 'missingSchemaUid' | 'unsupportedV2Runtime' | 'emptyGroup' | 'unsupportedRouteType';
|
|
13
14
|
export type AdminRouteRuntimeTarget = {
|
|
@@ -21,6 +22,7 @@ type LocationLike = {
|
|
|
21
22
|
search?: string;
|
|
22
23
|
hash?: string;
|
|
23
24
|
};
|
|
25
|
+
export type AdminLayoutRoutePathLike = Pick<LayoutDefinition, 'routePath'>;
|
|
24
26
|
type ResolveAdminRouteRuntimeTargetOptions = {
|
|
25
27
|
app: Pick<BaseApplication<any>, 'getPublicPath'> & {
|
|
26
28
|
router?: {
|
|
@@ -28,10 +30,14 @@ type ResolveAdminRouteRuntimeTargetOptions = {
|
|
|
28
30
|
};
|
|
29
31
|
};
|
|
30
32
|
route?: NocoBaseDesktopRoute;
|
|
33
|
+
layout?: AdminLayoutRoutePathLike;
|
|
31
34
|
location?: LocationLike;
|
|
32
35
|
preserveLocationState?: boolean;
|
|
33
36
|
log?: (message?: any, ...optionalParams: any[]) => void;
|
|
34
37
|
};
|
|
38
|
+
export declare const DEFAULT_ADMIN_LAYOUT_ROUTE_PATH = "/admin";
|
|
39
|
+
export declare function getAdminLayoutRoutePath(layout?: AdminLayoutRoutePathLike | null): string;
|
|
40
|
+
export declare function joinAdminLayoutRoutePath(layout: AdminLayoutRoutePathLike | null | undefined, pathname?: string | number | null): string;
|
|
35
41
|
export declare function isV2AdminRuntime(app?: ResolveAdminRouteRuntimeTargetOptions['app']): boolean;
|
|
36
42
|
export declare function toRouterNavigationPath(pathname: string, basename?: string): string;
|
|
37
43
|
export declare function isV2MenuRoute(route: NocoBaseDesktopRoute | undefined): boolean;
|
|
@@ -6,8 +6,13 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
+
import type { AppListProps } from '@ant-design/pro-layout/es/components/AppsLogoComponents/types';
|
|
9
10
|
import React from 'react';
|
|
10
|
-
|
|
11
|
+
import type { AdminLayoutModel } from './AdminLayoutModel';
|
|
12
|
+
import type { AppSwitcherActionPanelModel } from './AppSwitcherActionPanelModel';
|
|
13
|
+
export declare const APP_SWITCHER_ACTION_PANEL_MODEL_UID: string;
|
|
14
|
+
export declare const useApplications: (adminLayoutModel?: AdminLayoutModel) => {
|
|
11
15
|
Component: React.JSXElementConstructor<any> | React.ExoticComponent<any>;
|
|
12
|
-
appList:
|
|
16
|
+
appList: AppListProps;
|
|
17
|
+
appSwitcherModel: AppSwitcherActionPanelModel;
|
|
13
18
|
};
|
|
@@ -19,5 +19,6 @@ export interface FieldAssignExactDatePickerProps {
|
|
|
19
19
|
isRange?: boolean;
|
|
20
20
|
onChange?: (value: ExactDatePickerValue) => void;
|
|
21
21
|
style?: React.CSSProperties;
|
|
22
|
+
disabled?: boolean;
|
|
22
23
|
}
|
|
23
24
|
export declare const FieldAssignExactDatePicker: React.FC<FieldAssignExactDatePickerProps>;
|
|
@@ -10,7 +10,7 @@ import type { FilterGroupType } from '@nocobase/utils/client';
|
|
|
10
10
|
import React from 'react';
|
|
11
11
|
import { FieldAssignValueInput } from './FieldAssignValueInput';
|
|
12
12
|
import { type FieldAssignCascaderOption } from './fieldAssignOptions';
|
|
13
|
-
export type AssignMode = 'default' | 'assign';
|
|
13
|
+
export type AssignMode = 'default' | 'assign' | 'override';
|
|
14
14
|
type CollectionFieldLike = {
|
|
15
15
|
name?: unknown;
|
|
16
16
|
title?: unknown;
|
|
@@ -53,6 +53,8 @@ export interface FieldAssignRulesEditorProps {
|
|
|
53
53
|
defaultMode?: AssignMode;
|
|
54
54
|
/** 固定 mode:用于“仅默认值/仅赋值”的场景 */
|
|
55
55
|
fixedMode?: AssignMode;
|
|
56
|
+
/** 可选 mode 列表;fixedMode 优先级更高 */
|
|
57
|
+
allowedModes?: AssignMode[];
|
|
56
58
|
/** 是否显示 condition */
|
|
57
59
|
showCondition?: boolean;
|
|
58
60
|
/** 是否显示 enable 开关 */
|
|
@@ -10,6 +10,11 @@ import React from 'react';
|
|
|
10
10
|
import { dayjs } from '@nocobase/utils/client';
|
|
11
11
|
import { type CollectionField, type MetaTreeNode } from '@nocobase/flow-engine';
|
|
12
12
|
import { type ExactDatePickerMode } from './FieldAssignExactDatePicker';
|
|
13
|
+
type VariableInputConverters = {
|
|
14
|
+
renderInputComponent?: (metaTreeNode: MetaTreeNode | null) => React.ComponentType<any> | null;
|
|
15
|
+
resolvePathFromValue?: (value: any) => string[] | undefined;
|
|
16
|
+
resolveValueFromPath?: (metaTreeNode: MetaTreeNode) => any;
|
|
17
|
+
};
|
|
13
18
|
export type DateVariableExactNormalizeMode = 'none' | 'date' | 'datetimeNoTz' | 'iso';
|
|
14
19
|
export declare function toExactPickerDisplayValue(rawValue: unknown, options: {
|
|
15
20
|
format: string;
|
|
@@ -52,7 +57,11 @@ interface Props {
|
|
|
52
57
|
* 默认 false,保持历史行为。
|
|
53
58
|
*/
|
|
54
59
|
enableDateVariableAsConstant?: boolean;
|
|
60
|
+
/** 是否允许在变量选择器中使用 RunJS。默认 true,保持历史行为。 */
|
|
61
|
+
allowRunJS?: boolean;
|
|
55
62
|
maxAssociationFieldDepth?: number;
|
|
63
|
+
disabled?: boolean;
|
|
64
|
+
variableConverters?: VariableInputConverters;
|
|
56
65
|
}
|
|
57
66
|
export declare function mergeItemMetaTreeForAssignValue(baseTree: MetaTreeNode[], extraTree: MetaTreeNode[]): MetaTreeNode[];
|
|
58
67
|
export declare function resolveAssignValueFieldPath(itemModel: any): string | undefined;
|
|
@@ -19,8 +19,8 @@ export type FlowRouteProps = {
|
|
|
19
19
|
/**
|
|
20
20
|
* 管理后台动态页面路由组件。
|
|
21
21
|
*
|
|
22
|
-
* 负责读取当前路由页面 UID
|
|
23
|
-
*
|
|
22
|
+
* 负责读取当前路由页面 UID,并把页面生命周期桥接到 AdminLayout host model。
|
|
23
|
+
* 设备变量通常由 PluginFlowEngine 共享初始化提供;独立渲染时会在挂载后补充注册。
|
|
24
24
|
*
|
|
25
25
|
* @example
|
|
26
26
|
* ```tsx
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import { type MetaTreeNode, FlowModel } from '@nocobase/flow-engine';
|
|
10
|
+
import { type MetaTreeNode, type Converters, FlowModel } from '@nocobase/flow-engine';
|
|
11
11
|
export interface VariableFilterItemValue {
|
|
12
12
|
path: string;
|
|
13
13
|
operator: string;
|
|
@@ -19,6 +19,7 @@ export interface VariableFilterItemProps {
|
|
|
19
19
|
/** 筛选条件值对象 */
|
|
20
20
|
value: VariableFilterItemValue;
|
|
21
21
|
model: FlowModel;
|
|
22
|
+
disabled?: boolean;
|
|
22
23
|
/**
|
|
23
24
|
* 是否启用右侧 VariableInput(变量或静态值二合一)。
|
|
24
25
|
* 默认 false:保持原有行为,右侧仅静态输入组件。
|
|
@@ -29,6 +30,10 @@ export interface VariableFilterItemProps {
|
|
|
29
30
|
* 默认使用整棵 ctx 的 metaTree:model.context.getPropertyMetaTree()
|
|
30
31
|
*/
|
|
31
32
|
rightMetaTree?: MetaTreeNode[] | (() => MetaTreeNode[] | Promise<MetaTreeNode[]>);
|
|
33
|
+
/**
|
|
34
|
+
* 右侧变量的领域转换器。常量和空值仍由 VariableFilterItem 处理,未匹配的值回退到 FlowEngine 默认转换器。
|
|
35
|
+
*/
|
|
36
|
+
rightVariableConverters?: Pick<Converters, 'resolvePathFromValue' | 'resolveValueFromPath'>;
|
|
32
37
|
ignoreFieldNames?: string[];
|
|
33
38
|
maxAssociationFieldDepth?: number;
|
|
34
39
|
}
|
package/es/flow/index.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export * from './FlowPage';
|
|
|
21
21
|
export * from './models';
|
|
22
22
|
export * from './utils';
|
|
23
23
|
export * from './actions';
|
|
24
|
+
export { FieldAssignValueInput } from './components/FieldAssignValueInput';
|
|
24
25
|
export * from './system-settings';
|
|
25
26
|
export * from './admin-shell/admin-layout';
|
|
26
27
|
export * from './admin-shell/BaseLayoutModel';
|
|
@@ -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 type { FlowEngine } from '@nocobase/flow-engine';
|
|
10
|
+
export declare const registerDeviceTypeContext: (flowEngine: FlowEngine) => void;
|
|
@@ -30,6 +30,7 @@ export declare class ActionModel<T extends DefaultStructure = DefaultStructure>
|
|
|
30
30
|
enableEditTooltip: boolean;
|
|
31
31
|
enableEditTitle: boolean;
|
|
32
32
|
enableEditIcon: boolean;
|
|
33
|
+
enableEditIconOnly: boolean;
|
|
33
34
|
enableEditType: boolean;
|
|
34
35
|
enableEditDanger: boolean;
|
|
35
36
|
enableEditColor: boolean;
|
|
@@ -44,6 +45,7 @@ export declare class ActionModel<T extends DefaultStructure = DefaultStructure>
|
|
|
44
45
|
getInputArgs(): Record<string, any>;
|
|
45
46
|
onClick(event: any): void;
|
|
46
47
|
getTitle(): string;
|
|
48
|
+
getTitleFieldDescription(): any;
|
|
47
49
|
getIcon(): React.ReactNode;
|
|
48
50
|
renderButton(): React.JSX.Element;
|
|
49
51
|
render(): React.JSX.Element;
|
|
@@ -11,8 +11,11 @@ import React from 'react';
|
|
|
11
11
|
import { FilterManager } from '../blocks/filter-manager/FilterManager';
|
|
12
12
|
import { GridModel } from './GridModel';
|
|
13
13
|
export declare class BlockGridModel extends GridModel {
|
|
14
|
+
private viewActivatedListener?;
|
|
14
15
|
dragOverlayConfig: DragOverlayConfig;
|
|
15
16
|
onInit(options: any): void;
|
|
17
|
+
onMount(): void;
|
|
18
|
+
protected onUnmount(): void;
|
|
16
19
|
get subModelBaseClasses(): string[];
|
|
17
20
|
get filterManager(): FilterManager;
|
|
18
21
|
get addBlockItems(): SubModelItemsType | undefined;
|
|
@@ -91,7 +91,7 @@ export declare class GridModel<T extends {
|
|
|
91
91
|
/**
|
|
92
92
|
* 将多列栅格 rows 转换为移动端单列 rows。
|
|
93
93
|
* 遍历原 rows 的行与列顺序,把每个原列(过滤空白列后)变成一个新行(仅一列)。
|
|
94
|
-
* 行 key
|
|
94
|
+
* 行 key 使用原 rowId 与 columnIndex 生成,避免每次渲染产生随机 key 导致移动端滚动位置丢失。
|
|
95
95
|
* @param rows 原始多列 rows
|
|
96
96
|
* @returns 单列 rows
|
|
97
97
|
*/
|
|
@@ -26,11 +26,23 @@ export declare class PageModel extends FlowModel<PageModelStructure> {
|
|
|
26
26
|
private dirtyRefreshScheduled;
|
|
27
27
|
private unmounted;
|
|
28
28
|
private documentTitleUpdateVersion;
|
|
29
|
+
private implicitActiveKey?;
|
|
30
|
+
private locallyCommittedTabTransition?;
|
|
29
31
|
/**
|
|
30
32
|
* 根页面标签页开关以路由表为准,避免 flow model 里的旧配置覆盖路由管理设置。
|
|
31
33
|
*/
|
|
32
34
|
private getEnableTabs;
|
|
35
|
+
private getAllTabs;
|
|
36
|
+
private getUnhiddenTabs;
|
|
37
|
+
private getRequestedTabKey;
|
|
38
|
+
private resolveTabActiveState;
|
|
33
39
|
private getActiveTabKey;
|
|
40
|
+
private getTabActiveKeySyncDependency;
|
|
41
|
+
private requestDocumentTitleUpdate;
|
|
42
|
+
private rememberImplicitActiveKey;
|
|
43
|
+
private commitTabActiveKey;
|
|
44
|
+
private consumeLocallyCommittedTabTransition;
|
|
45
|
+
private synchronizeTabActiveKey;
|
|
34
46
|
private scheduleActiveLifecycleRefresh;
|
|
35
47
|
activateCurrentTab(forceRefresh?: boolean): void;
|
|
36
48
|
deactivateCurrentTab(): void;
|
|
@@ -0,0 +1,22 @@
|
|
|
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 { Tabs } from 'antd';
|
|
10
|
+
import type { TabsProps } from 'antd';
|
|
11
|
+
import React from 'react';
|
|
12
|
+
export declare const NO_ACTIVE_PAGE_TAB_KEY = "__no_active_page_tab__";
|
|
13
|
+
type RenderTabBar = NonNullable<React.ComponentProps<typeof Tabs>['renderTabBar']>;
|
|
14
|
+
type PageTabItem = NonNullable<TabsProps['items']>[number];
|
|
15
|
+
type FilteredPageTabBarProps = {
|
|
16
|
+
hiddenTabKeys: Set<string>;
|
|
17
|
+
hiddenActiveTabLabel?: React.ReactNode;
|
|
18
|
+
items: PageTabItem[];
|
|
19
|
+
tabBarProps: Parameters<RenderTabBar>[0];
|
|
20
|
+
};
|
|
21
|
+
export declare function FilteredPageTabBar({ hiddenTabKeys, hiddenActiveTabLabel, items, tabBarProps, }: FilteredPageTabBarProps): React.JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -22,9 +22,21 @@ export declare class BasePageTabModel extends FlowModel<{
|
|
|
22
22
|
render(): React.JSX.Element;
|
|
23
23
|
}
|
|
24
24
|
export declare class RootPageTabModel extends BasePageTabModel {
|
|
25
|
+
private persistedLinkageRulesHydrated;
|
|
26
|
+
private persistedLinkageRulesHydrating?;
|
|
27
|
+
onInit(options: any): void;
|
|
28
|
+
private hasExplicitLinkageRulesStep;
|
|
29
|
+
private shouldHydratePersistedLinkageRules;
|
|
30
|
+
private fetchPersistedAnchor;
|
|
31
|
+
private performPersistedLinkageRulesHydrate;
|
|
32
|
+
private hydratePersistedLinkageRules;
|
|
33
|
+
openFlowSettings(options?: Parameters<FlowModel['openFlowSettings']>[0]): Promise<boolean>;
|
|
25
34
|
renderChildren(): React.JSX.Element;
|
|
26
35
|
saveStepParams(): Promise<void>;
|
|
27
36
|
save(): Promise<void>;
|
|
37
|
+
private buildAnchorPayload;
|
|
38
|
+
private persistLinkageRulesToAnchor;
|
|
39
|
+
private syncPersistedPageTabFlowModelMarker;
|
|
28
40
|
destroy(): Promise<boolean>;
|
|
29
41
|
}
|
|
30
42
|
export declare class ChildPageTabModel extends BasePageTabModel {
|
|
@@ -24,6 +24,7 @@ export declare class FilterFormBlockModel extends FilterBlockModel<{
|
|
|
24
24
|
private initialDefaultsPromise?;
|
|
25
25
|
private initialRefreshHandledTargetIds;
|
|
26
26
|
private lastDefaultValueByFieldName;
|
|
27
|
+
private userEditedFieldNames;
|
|
27
28
|
private defaultValuesRefreshSeq;
|
|
28
29
|
get form(): any;
|
|
29
30
|
get title(): string;
|
|
@@ -39,6 +40,10 @@ export declare class FilterFormBlockModel extends FilterBlockModel<{
|
|
|
39
40
|
markInitialTargetRefreshHandled(targetId: string): void;
|
|
40
41
|
private ensureFilterItemsBeforeRender;
|
|
41
42
|
private canApplyFormDefaultValue;
|
|
43
|
+
private canApplyFormOverrideValue;
|
|
44
|
+
private normalizeFieldValueMode;
|
|
45
|
+
private markFilterFormUserEditedFields;
|
|
46
|
+
private resetFilterFormUserEditedFields;
|
|
42
47
|
private matchDefaultValueCondition;
|
|
43
48
|
applyFormDefaultValues(options?: {
|
|
44
49
|
force?: boolean;
|
|
@@ -51,6 +51,10 @@ export declare class FormBlockModel<T extends DefaultCollectionBlockModelStructu
|
|
|
51
51
|
* @internal
|
|
52
52
|
*/
|
|
53
53
|
resetUserModifiedFields(): void;
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
resetRuntimeUserEditedState(): void;
|
|
54
58
|
onDispatchEventStart(eventName: string, options?: any, inputArgs?: Record<string, any>): Promise<void>;
|
|
55
59
|
getStepParams(flowKey: string, stepKey: string): any | undefined;
|
|
56
60
|
getStepParams(flowKey: string): Record<string, any> | undefined;
|
|
@@ -11,6 +11,21 @@ import React from 'react';
|
|
|
11
11
|
export declare const QUICK_EDIT_POPOVER_MAX_HEIGHT = "calc(100vh - 96px)";
|
|
12
12
|
export declare const QUICK_EDIT_FORM_MAX_HEIGHT = "calc(100vh - 160px)";
|
|
13
13
|
export declare const QUICK_EDIT_MARKDOWN_HEIGHT = "min(480px, calc(100vh - 320px))";
|
|
14
|
+
type QuickEditViewBeforeClosePayload = {
|
|
15
|
+
result?: unknown;
|
|
16
|
+
force?: boolean;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
};
|
|
19
|
+
type QuickEditViewBeforeCloseHandler = (payload: QuickEditViewBeforeClosePayload) => Promise<boolean | void> | boolean | void;
|
|
20
|
+
type QuickEditViewUpdateConfig = {
|
|
21
|
+
preventClose?: boolean;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
};
|
|
24
|
+
type QuickEditViewContainer = {
|
|
25
|
+
close: (result?: unknown, force?: boolean) => Promise<boolean | void> | boolean | void;
|
|
26
|
+
update?: (newConfig: QuickEditViewUpdateConfig) => unknown;
|
|
27
|
+
beforeClose?: QuickEditViewBeforeCloseHandler;
|
|
28
|
+
};
|
|
14
29
|
export declare function getQuickEditFieldProps(collectionField: CollectionField, fieldProps?: Record<string, any>): {
|
|
15
30
|
[x: string]: any;
|
|
16
31
|
};
|
|
@@ -18,8 +33,7 @@ export declare class QuickEditFormModel extends FlowModel {
|
|
|
18
33
|
fieldPath: string;
|
|
19
34
|
resource: SingleRecordResource;
|
|
20
35
|
collection: Collection;
|
|
21
|
-
|
|
22
|
-
viewContainer: any;
|
|
36
|
+
viewContainer: QuickEditViewContainer;
|
|
23
37
|
__onSubmitSuccess: any;
|
|
24
38
|
_fieldProps: any;
|
|
25
39
|
_onOk: any;
|
|
@@ -42,3 +56,4 @@ export declare class QuickEditFormModel extends FlowModel {
|
|
|
42
56
|
addAppends(fieldPath: string, refresh?: boolean): void;
|
|
43
57
|
render(): React.JSX.Element;
|
|
44
58
|
}
|
|
59
|
+
export {};
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
export declare function submitHandler(ctx: any, params: any, cb?: (values?: any, filterByTk?: any) => void): Promise<
|
|
9
|
+
export declare function submitHandler(ctx: any, params: any, cb?: (values?: any, filterByTk?: any) => void): Promise<unknown>;
|
|
@@ -32,6 +32,7 @@ export type RuleEngineOptions = {
|
|
|
32
32
|
getFormValueAtPath: (namePath: NamePath) => any;
|
|
33
33
|
setFormValues: (callerCtx: any, patch: Patch, options?: SetOptions) => Promise<void>;
|
|
34
34
|
findExplicitHit: (pathKey: string) => string | null;
|
|
35
|
+
findUserEditedHit: (pathKey: string) => string | null;
|
|
35
36
|
lastDefaultValueByPathKey: Map<string, any>;
|
|
36
37
|
lastWriteMetaByPathKey: Map<string, FormValueWriteMeta>;
|
|
37
38
|
observableBindings: Map<string, ObservableBinding>;
|
|
@@ -122,6 +123,18 @@ export declare class RuleEngine {
|
|
|
122
123
|
private resolveRunJSValue;
|
|
123
124
|
private resolveTemplateValue;
|
|
124
125
|
private commitRuleDeps;
|
|
126
|
+
private isScalarValueTarget;
|
|
127
|
+
private shouldSkipEmptyArrayAggregateForScalarTarget;
|
|
128
|
+
private normalizeUnresolvedToManyAggregateForScalarTarget;
|
|
129
|
+
private isArrayValueCollectionField;
|
|
130
|
+
private stringifyAggregateItem;
|
|
131
|
+
private normalizeAggregateArrayForScalarTarget;
|
|
132
|
+
private shouldSkipMultiValueAggregateForScalarTarget;
|
|
133
|
+
private getClearedAggregateValueForScalarTarget;
|
|
134
|
+
private isUserClearedToManyAggregate;
|
|
135
|
+
private isTextScalarTarget;
|
|
136
|
+
private getLatestWriteMetaForPath;
|
|
137
|
+
private getToManyAggregateSourceInfo;
|
|
125
138
|
/**
|
|
126
139
|
* Check if default rule value can be applied.
|
|
127
140
|
* Default value can overwrite when:
|
|
@@ -130,6 +143,14 @@ export declare class RuleEngine {
|
|
|
130
143
|
*/
|
|
131
144
|
private checkDefaultRuleCanApply;
|
|
132
145
|
private createRuleEvaluationContext;
|
|
146
|
+
private getLocalFormValuesSnapshot;
|
|
147
|
+
private resolveLocalFormValuesPath;
|
|
148
|
+
private recordLocalFormValuesDep;
|
|
149
|
+
private extractSingleLocalFormValuesPath;
|
|
150
|
+
private stringifyTemplateReplacement;
|
|
151
|
+
private createLocalTemplateTokenStore;
|
|
152
|
+
private restoreLocalTemplateTokens;
|
|
153
|
+
private resolveLocalFormValuesTemplates;
|
|
133
154
|
private buildItemChainValue;
|
|
134
155
|
private getFieldIndexSignature;
|
|
135
156
|
private updateRuleDeps;
|