@nocobase/client-v2 2.2.0-alpha.1 → 2.2.0-alpha.3
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/PluginSettingsManager.d.ts +33 -0
- package/es/RouteRepository.d.ts +21 -6
- 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/TypedVariableInput.d.ts +22 -4
- package/es/components/form/VariableJsonTextArea.d.ts +19 -0
- package/es/components/form/filter/CollectionFilterItem.d.ts +11 -1
- package/es/components/form/filter/index.d.ts +2 -0
- package/es/components/form/index.d.ts +1 -0
- package/es/components/index.d.ts +2 -0
- package/es/flow/actions/afterSuccess.d.ts +8 -1
- package/es/flow/actions/index.d.ts +1 -1
- 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 +2 -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/resolveAdminRouteRuntimeTarget.d.ts +6 -0
- package/es/flow/components/FieldAssignRulesEditor.d.ts +3 -1
- package/es/flow/components/FieldAssignValueInput.d.ts +2 -0
- package/es/flow/index.d.ts +1 -0
- package/es/flow/models/base/GridModel.d.ts +1 -1
- 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/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/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/resolveViewParamsToViewList.d.ts +1 -1
- 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/index.d.ts +2 -1
- package/es/index.mjs +233 -137
- package/lib/index.js +234 -138
- package/package.json +7 -7
- package/src/PluginSettingsManager.ts +53 -0
- package/src/RouteRepository.ts +126 -24
- package/src/__tests__/PluginSettingsManager.test.ts +13 -0
- package/src/__tests__/RouteRepository.test.ts +216 -0
- package/src/__tests__/browserChecker.test.ts +61 -0
- package/src/__tests__/exports.test.ts +16 -0
- package/src/__tests__/nocobase-buildin-plugin-auth.test.tsx +199 -0
- package/src/__tests__/plugin-manager.test.tsx +44 -2
- package/src/__tests__/settings-center.test.tsx +40 -1
- package/src/collection-manager/field-configure.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 +21 -11
- package/src/components/form/TypedVariableInput.tsx +416 -93
- 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 +268 -9
- package/src/components/form/__tests__/VariableJsonTextArea.test.tsx +86 -0
- package/src/components/form/filter/CollectionFilterItem.tsx +32 -7
- package/src/components/form/filter/__tests__/CollectionFilterItem.test.tsx +38 -0
- package/src/components/form/filter/index.ts +2 -0
- package/src/components/form/index.tsx +1 -0
- package/src/components/index.ts +2 -0
- package/src/flow/__tests__/FlowRoute.test.tsx +443 -5
- package/src/flow/__tests__/getKey.test.ts +7 -0
- package/src/flow/__tests__/resolveViewParamsToViewList.test.ts +34 -0
- package/src/flow/actions/__tests__/afterSuccess.test.ts +73 -0
- package/src/flow/actions/__tests__/dataScopeFilter.test.ts +58 -0
- package/src/flow/actions/__tests__/dataScopeFormValueClear.test.ts +1022 -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__/openView.defineProps.route.test.tsx +104 -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 +10 -0
- package/src/flow/actions/dateTimeFormat.tsx +42 -28
- package/src/flow/actions/index.ts +1 -1
- package/src/flow/actions/linkageRules.tsx +123 -35
- package/src/flow/actions/linkageRulesFormValueRefresh.ts +22 -130
- package/src/flow/actions/openView.tsx +38 -4
- package/src/flow/actions/runjs.tsx +2 -14
- package/src/flow/actions/validation.tsx +62 -30
- package/src/flow/admin-shell/BaseLayoutModel.tsx +25 -3
- package/src/flow/admin-shell/BaseLayoutRouteCoordinator.ts +5 -2
- package/src/flow/admin-shell/__tests__/AdminLayoutRouteCoordinator.test.ts +13 -0
- package/src/flow/admin-shell/admin-layout/AdminLayoutComponent.tsx +34 -10
- package/src/flow/admin-shell/admin-layout/AdminLayoutEntryGuard.test.tsx +310 -0
- package/src/flow/admin-shell/admin-layout/AdminLayoutEntryGuard.tsx +44 -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/HelpLite.tsx +1 -3
- package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutComponent.test.tsx +188 -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 +82 -0
- package/src/flow/admin-shell/admin-layout/__tests__/TopbarActionsBar.test.tsx +166 -2
- 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/components/DefaultValue.tsx +1 -2
- package/src/flow/components/DynamicFlowsIcon.tsx +447 -126
- package/src/flow/components/FieldAssignRulesEditor.tsx +128 -21
- package/src/flow/components/FieldAssignValueInput.tsx +10 -5
- package/src/flow/components/FlowRoute.tsx +56 -11
- 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__/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/flows/editMarkdownFlow.tsx +1 -1
- package/src/flow/getViewDiffAndUpdateHidden.tsx +1 -0
- package/src/flow/index.ts +2 -1
- 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 +12 -1
- package/src/flow/models/base/ActionModelCore.tsx +6 -4
- package/src/flow/models/base/GridModel.tsx +38 -7
- package/src/flow/models/base/PageModel/PageModel.tsx +4 -1
- package/src/flow/models/base/PageModel/__tests__/PageModel.test.ts +28 -4
- 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__/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 +31 -3
- package/src/flow/models/blocks/filter-form/FilterFormJSActionModel.tsx +2 -7
- package/src/flow/models/blocks/filter-form/__tests__/defaultValues.wiring.test.ts +77 -0
- 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/__tests__/FormBlockModel.test.tsx +17 -0
- 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 +36 -13
- package/src/flow/models/blocks/table/TableBlockModel.tsx +38 -17
- package/src/flow/models/blocks/table/TableColumnModel.tsx +36 -3
- 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.rowSelection.test.tsx +1 -0
- package/src/flow/models/blocks/table/__tests__/TableColumnModel.test.tsx +159 -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 +29 -6
- package/src/flow/models/fields/AssociationFieldModel/RecordSelectFieldModel.tsx +16 -4
- 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/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 +49 -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 +100 -0
- package/src/flow/models/topbar/TopbarActionModel.tsx +93 -10
- package/src/flow/resolveViewParamsToViewList.tsx +11 -3
- package/src/flow/utils/__tests__/dateTimeFormat.test.ts +258 -0
- package/src/flow/utils/dataScopeFormValueClear.ts +218 -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/index.ts +8 -1
- package/src/layout-manager/__tests__/LayoutRoute.test.tsx +41 -1
- package/src/nocobase-buildin-plugin/index.tsx +44 -14
- 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
|
@@ -86,6 +86,7 @@ interface InternalPageItemRecord extends PluginSettingsPageItemOptions {
|
|
|
86
86
|
export declare class PluginSettingsManager<TApp extends BaseApplication<any> = BaseApplication<any>> {
|
|
87
87
|
protected menus: Record<string, InternalMenuItemRecord>;
|
|
88
88
|
protected pages: Record<string, InternalPageItemRecord>;
|
|
89
|
+
protected pluginSettingsLinks: Record<string, string>;
|
|
89
90
|
protected aclSnippets: string[];
|
|
90
91
|
app: TApp;
|
|
91
92
|
private cachedList;
|
|
@@ -165,6 +166,38 @@ export declare class PluginSettingsManager<TApp extends BaseApplication<any> = B
|
|
|
165
166
|
* @returns {boolean} 是否已注册
|
|
166
167
|
*/
|
|
167
168
|
has(name: string): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* 绑定插件管理列表中的 plugin name 到实际 settings 入口。
|
|
171
|
+
*
|
|
172
|
+
* 插件管理列表使用 applicationPlugins.name 判断是否显示 Settings 入口,
|
|
173
|
+
* 但部分插件会把设置页挂到共享菜单或历史路径下。
|
|
174
|
+
*
|
|
175
|
+
* @param pluginName 插件管理列表中的插件名
|
|
176
|
+
* @param settingsName menu 或 page 名称
|
|
177
|
+
* @returns {void}
|
|
178
|
+
*/
|
|
179
|
+
setPluginSettingsLink(pluginName: string, settingsName: string): void;
|
|
180
|
+
/**
|
|
181
|
+
* 获取插件管理列表中的 plugin name 对应的 settings 名称。
|
|
182
|
+
*
|
|
183
|
+
* @param pluginName 插件管理列表中的插件名
|
|
184
|
+
* @returns {string} settings 名称
|
|
185
|
+
*/
|
|
186
|
+
getPluginSettingsName(pluginName: string): string;
|
|
187
|
+
/**
|
|
188
|
+
* 判断插件管理列表中的插件是否有可跳转的 settings 入口。
|
|
189
|
+
*
|
|
190
|
+
* @param pluginName 插件管理列表中的插件名
|
|
191
|
+
* @returns {boolean} 是否已注册 settings 入口
|
|
192
|
+
*/
|
|
193
|
+
hasPluginSettings(pluginName: string): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* 获取插件管理列表中的插件对应的 settings 路径。
|
|
196
|
+
*
|
|
197
|
+
* @param pluginName 插件管理列表中的插件名
|
|
198
|
+
* @returns {string} settings 绝对路径
|
|
199
|
+
*/
|
|
200
|
+
getPluginSettingsRoutePath(pluginName: string): string;
|
|
168
201
|
/**
|
|
169
202
|
* 获取单个 menu 或 page 的只读快照。
|
|
170
203
|
*
|
package/es/RouteRepository.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ import type { NocoBaseDesktopRoute } from './flow-compat';
|
|
|
11
11
|
type RouteSubscriber = () => void;
|
|
12
12
|
type RouteCreateValues = Partial<NocoBaseDesktopRoute>;
|
|
13
13
|
type RouteUpdateValues = Partial<NocoBaseDesktopRoute>;
|
|
14
|
+
type RouteLayoutLike = {
|
|
15
|
+
uid?: unknown;
|
|
16
|
+
};
|
|
14
17
|
type RouteMutationOptions = {
|
|
15
18
|
refreshAfterMutation?: boolean;
|
|
16
19
|
};
|
|
@@ -28,18 +31,22 @@ export declare class RouteRepository {
|
|
|
28
31
|
api?: APIClient;
|
|
29
32
|
};
|
|
30
33
|
routes: NocoBaseDesktopRoute[];
|
|
31
|
-
protected subscribers:
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
+
protected subscribers: Map<RouteSubscriber, string>;
|
|
35
|
+
protected accessibleLoadingPromises: Map<string, Promise<NocoBaseDesktopRoute[]>>;
|
|
36
|
+
private layoutActivations;
|
|
37
|
+
private routeCaches;
|
|
38
|
+
private refreshRequestIds;
|
|
39
|
+
private notifiedLayoutUid;
|
|
34
40
|
constructor(ctx: {
|
|
35
41
|
api?: APIClient;
|
|
36
42
|
});
|
|
43
|
+
activateLayout(layout?: RouteLayoutLike): () => void;
|
|
37
44
|
/**
|
|
38
45
|
* 同步当前可访问桌面路由,并通知订阅方刷新。
|
|
39
46
|
*
|
|
40
47
|
* @param routes 最新的桌面路由树
|
|
41
48
|
*/
|
|
42
|
-
setRoutes(routes: NocoBaseDesktopRoute[]): void;
|
|
49
|
+
setRoutes(routes: NocoBaseDesktopRoute[], layoutUid?: string): void;
|
|
43
50
|
/**
|
|
44
51
|
* 读取当前缓存的桌面路由树。
|
|
45
52
|
*
|
|
@@ -58,12 +65,13 @@ export declare class RouteRepository {
|
|
|
58
65
|
* @returns 最新的路由数组
|
|
59
66
|
*/
|
|
60
67
|
refreshAccessible(): Promise<any>;
|
|
68
|
+
private refreshAccessibleByLayout;
|
|
61
69
|
/**
|
|
62
70
|
* 确保当前用户可访问的桌面路由至少完成一次初始化加载。
|
|
63
71
|
*
|
|
64
72
|
* @returns 当前可访问的路由数组
|
|
65
73
|
*/
|
|
66
|
-
ensureAccessibleLoaded(): Promise<
|
|
74
|
+
ensureAccessibleLoaded(): Promise<any>;
|
|
67
75
|
/**
|
|
68
76
|
* 订阅路由缓存变化,用于驱动 React 上下文刷新。
|
|
69
77
|
*
|
|
@@ -118,7 +126,14 @@ export declare class RouteRepository {
|
|
|
118
126
|
getRouteBySchemaUid(schemaUid: string): NocoBaseDesktopRoute | undefined;
|
|
119
127
|
protected getAPIClient(): APIClient;
|
|
120
128
|
protected getResource(collectionName: string): import("@nocobase/sdk").IResource;
|
|
121
|
-
protected emitChange(): void;
|
|
129
|
+
protected emitChange(layoutUid?: string): void;
|
|
130
|
+
private getCurrentLayoutUid;
|
|
131
|
+
private normalizeLayoutUid;
|
|
132
|
+
private getReadableLayoutUid;
|
|
133
|
+
private getRouteCache;
|
|
134
|
+
private syncRoutesProperty;
|
|
135
|
+
private nextRefreshRequestId;
|
|
136
|
+
private getRefreshRequestId;
|
|
122
137
|
private findRoute;
|
|
123
138
|
}
|
|
124
139
|
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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 React from 'react';
|
|
10
|
+
/**
|
|
11
|
+
* A category descriptor for {@link SortableCategoryTabs}. The component is
|
|
12
|
+
* i18n-agnostic: `label` is rendered verbatim, so consumers pass an
|
|
13
|
+
* already-compiled/translated node. `color` is an antd preset color name or a
|
|
14
|
+
* hex string; `'default'` / `undefined` renders no badge color.
|
|
15
|
+
*/
|
|
16
|
+
export type SortableCategoryTabItem = {
|
|
17
|
+
id: string | number;
|
|
18
|
+
label: React.ReactNode;
|
|
19
|
+
color?: string;
|
|
20
|
+
};
|
|
21
|
+
export type SortableCategoryTabsProps = {
|
|
22
|
+
activeKey: string;
|
|
23
|
+
onChange: (key: string) => void;
|
|
24
|
+
/** Draggable category tabs (the fixed leading tab is configured via `allTab`). */
|
|
25
|
+
categories: SortableCategoryTabItem[];
|
|
26
|
+
/** The fixed, non-draggable leading tab, e.g. "All". */
|
|
27
|
+
allTab: {
|
|
28
|
+
key: string;
|
|
29
|
+
label: React.ReactNode;
|
|
30
|
+
};
|
|
31
|
+
/** Show the "+" add button and handle its click. */
|
|
32
|
+
onAdd?: () => void;
|
|
33
|
+
/** Per-category edit menu item handler; menu is hidden when omitted. */
|
|
34
|
+
onEdit?: (id: string | number) => void;
|
|
35
|
+
/** Per-category delete menu item handler; menu is hidden when omitted. */
|
|
36
|
+
onDelete?: (id: string | number) => void;
|
|
37
|
+
/** Reorder handler. Receives the dragged and dropped category ids. */
|
|
38
|
+
onSort?: (sourceId: string | number, targetId: string | number) => void | Promise<void>;
|
|
39
|
+
/** Consumer-translated labels for the per-category dropdown menu. */
|
|
40
|
+
menuLabels?: {
|
|
41
|
+
edit?: string;
|
|
42
|
+
delete?: string;
|
|
43
|
+
};
|
|
44
|
+
className?: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* A draggable, editable category tab bar. Renders only the tab bar (no content
|
|
48
|
+
* panes) — the page renders its content below and reacts to `activeKey`.
|
|
49
|
+
*
|
|
50
|
+
* Shared by settings pages that group records under reorderable categories
|
|
51
|
+
* (data-source collections, workflows, …). Drag-to-reorder is powered by
|
|
52
|
+
* `@dnd-kit`; the "+" / per-tab edit-delete affordances are optional.
|
|
53
|
+
*/
|
|
54
|
+
export declare function SortableCategoryTabs(props: SortableCategoryTabsProps): React.JSX.Element;
|
|
55
|
+
export default SortableCategoryTabs;
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
export * from './SortableCategoryTabs';
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import type { TextAreaProps } from 'antd/es/input';
|
|
10
|
+
import type { TextAreaRef } from 'antd/es/input/TextArea';
|
|
10
11
|
import React from 'react';
|
|
11
12
|
export interface JsonTextAreaProps extends Omit<TextAreaProps, 'value' | 'onChange'> {
|
|
12
13
|
value?: unknown;
|
|
@@ -15,4 +16,4 @@ export interface JsonTextAreaProps extends Omit<TextAreaProps, 'value' | 'onChan
|
|
|
15
16
|
json5?: boolean;
|
|
16
17
|
showError?: boolean;
|
|
17
18
|
}
|
|
18
|
-
export declare const JsonTextArea: React.MemoExoticComponent<
|
|
19
|
+
export declare const JsonTextArea: React.MemoExoticComponent<React.ForwardRefExoticComponent<JsonTextAreaProps & React.RefAttributes<TextAreaRef>>>;
|
|
@@ -10,11 +10,11 @@ import { type MetaTreeNode } from '@nocobase/flow-engine';
|
|
|
10
10
|
import React from 'react';
|
|
11
11
|
import { type VariableDelimiters } from './VariableInput';
|
|
12
12
|
/**
|
|
13
|
-
* Constant types this input can edit.
|
|
14
|
-
* `useTypedConstant`
|
|
15
|
-
*
|
|
13
|
+
* Constant types this input can edit. Matches v1 `Variable.Input`
|
|
14
|
+
* `useTypedConstant` minus `'null'` (handled by the dedicated `nullable` prop).
|
|
15
|
+
* `'object'` renders an inline JSON editor (textarea).
|
|
16
16
|
*/
|
|
17
|
-
export type TypedConstantType = 'string' | 'number' | 'boolean' | 'date';
|
|
17
|
+
export type TypedConstantType = 'string' | 'number' | 'boolean' | 'date' | 'object';
|
|
18
18
|
/**
|
|
19
19
|
* One allowed constant type. Either a bare type name (`'number'`) or a
|
|
20
20
|
* `[type, editorProps]` pair (`['number', { min: 1, max: 65535 }]`) where
|
|
@@ -40,16 +40,34 @@ export interface TypedVariableInputProps {
|
|
|
40
40
|
* Restrict the variable picker to specific top-level meta-tree namespaces
|
|
41
41
|
* (e.g. `['$env']`). When omitted, every registered top-level property is
|
|
42
42
|
* exposed — matching `VariableInput`'s default behaviour.
|
|
43
|
+
*
|
|
44
|
+
* Ignored when `metaTree` is supplied (an explicit tree wins).
|
|
43
45
|
*/
|
|
44
46
|
namespaces?: string[];
|
|
45
47
|
/** Additional leaves appended to the picker after the namespace-filtered nodes. */
|
|
46
48
|
extraNodes?: MetaTreeNode[];
|
|
49
|
+
/**
|
|
50
|
+
* Provide the variable tree explicitly instead of reading the global
|
|
51
|
+
* FlowContext meta tree. When set, `namespaces`/`extraNodes` are ignored and
|
|
52
|
+
* this tree is used verbatim — use for context-scoped variable sources that
|
|
53
|
+
* are not part of the global registry (e.g. a workflow node's upstream
|
|
54
|
+
* outputs). Lazy `children` thunks are resolved on demand as the user
|
|
55
|
+
* expands the cascader.
|
|
56
|
+
*/
|
|
57
|
+
metaTree?: MetaTreeNode[];
|
|
47
58
|
/**
|
|
48
59
|
* When true (default), the switcher exposes a `Null` option that resets the
|
|
49
60
|
* value to `null`. When false, the value is constrained to one of the
|
|
50
61
|
* allowed types or a variable reference.
|
|
51
62
|
*/
|
|
52
63
|
nullable?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Opt-in: when the incoming `value` is `undefined`, initialize the editor to
|
|
66
|
+
* the first allowed constant type instead of rendering the null-mode
|
|
67
|
+
* placeholder. `null` still keeps its explicit null semantics; only
|
|
68
|
+
* `undefined` triggers this path.
|
|
69
|
+
*/
|
|
70
|
+
defaultToFirstConstantTypeWhenUndefined?: boolean;
|
|
53
71
|
/** Variable-token delimiters. Default `['{{', '}}']` — see `VariableInput`. */
|
|
54
72
|
delimiters?: VariableDelimiters;
|
|
55
73
|
disabled?: boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
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 MetaTreeNode } from '@nocobase/flow-engine';
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import { type JsonTextAreaProps } from './JsonTextArea';
|
|
12
|
+
export interface VariableJsonTextAreaProps extends JsonTextAreaProps {
|
|
13
|
+
namespaces?: string[];
|
|
14
|
+
extraNodes?: MetaTreeNode[];
|
|
15
|
+
metaTree?: MetaTreeNode[] | (() => MetaTreeNode[] | Promise<MetaTreeNode[]>);
|
|
16
|
+
formatPathToValue?: (meta: MetaTreeNode) => string | undefined;
|
|
17
|
+
}
|
|
18
|
+
export declare const VariableJsonTextArea: React.MemoExoticComponent<(props: VariableJsonTextAreaProps) => React.JSX.Element>;
|
|
19
|
+
export declare const VariableJSON: React.MemoExoticComponent<(props: VariableJsonTextAreaProps) => React.JSX.Element>;
|
|
@@ -37,6 +37,16 @@ export interface CollectionFilterItemProps {
|
|
|
37
37
|
app?: {
|
|
38
38
|
getComponent?: (name: string) => React.ComponentType<any> | undefined;
|
|
39
39
|
};
|
|
40
|
+
/** Optional override for the left field picker placeholder. */
|
|
41
|
+
fieldPlaceholder?: string;
|
|
42
|
+
/** Optional override for the operator picker placeholder. */
|
|
43
|
+
operatorPlaceholder?: string;
|
|
44
|
+
/** Optional override for the value input placeholder. Pass `null` to suppress it. */
|
|
45
|
+
valuePlaceholder?: string | null;
|
|
46
|
+
/** Optional override for the left field picker width. Defaults to v2's original 200px. */
|
|
47
|
+
fieldWidth?: number;
|
|
48
|
+
/** Optional override for the operator picker min-width. Defaults to v2's original 120px. */
|
|
49
|
+
operatorMinWidth?: number;
|
|
40
50
|
}
|
|
41
51
|
/**
|
|
42
52
|
* Filter row bound directly to a `Collection`, with no `FlowModel` dependency. Use this from settings pages or other surfaces that need a filter UI but don't have (and shouldn't synthesise) a block model just to satisfy `FilterItem`. Pair with `FilterContainer` via either an inline wrapper or `createCollectionFilterItem(collection)`.
|
|
@@ -47,7 +57,7 @@ export declare const CollectionFilterItem: FC<CollectionFilterItemProps>;
|
|
|
47
57
|
/**
|
|
48
58
|
* Convenience factory returning a `FilterContainer`-compatible `FilterItem` component bound to a specific collection. Avoids creating an inline closure on every parent render, which would otherwise reset any focused inner antd control.
|
|
49
59
|
*/
|
|
50
|
-
export declare function createCollectionFilterItem(collection: Collection, bound?: Pick<CollectionFilterItemProps, 'filterableFieldNames' | 'nonfilterableFieldNames' | 'noIgnore' | 't' | 'app'>): React.FC<{
|
|
60
|
+
export declare function createCollectionFilterItem(collection: Collection, bound?: Pick<CollectionFilterItemProps, 'filterableFieldNames' | 'nonfilterableFieldNames' | 'noIgnore' | 't' | 'app' | 'fieldPlaceholder' | 'operatorPlaceholder' | 'valuePlaceholder' | 'fieldWidth' | 'operatorMinWidth'>): React.FC<{
|
|
51
61
|
value: CollectionFilterItemValue;
|
|
52
62
|
}>;
|
|
53
63
|
export default CollectionFilterItem;
|
|
@@ -9,5 +9,7 @@
|
|
|
9
9
|
export { CollectionFilter } from './CollectionFilter';
|
|
10
10
|
export type { CollectionFilterProps } from './CollectionFilter';
|
|
11
11
|
export { CollectionFilterPanel } from './CollectionFilterPanel';
|
|
12
|
+
export { CollectionFilterItem } from './CollectionFilterItem';
|
|
13
|
+
export type { CollectionFilterItemValue } from './CollectionFilterItem';
|
|
12
14
|
export type { CollectionFilterPanelProps, CollectionFilterPanelRef } from './CollectionFilterPanel';
|
|
13
15
|
export type { CompiledFilter } from './useFilterActionProps';
|
package/es/components/index.d.ts
CHANGED
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export * from './AppComponents';
|
|
10
10
|
export * from './BlankComponent';
|
|
11
|
+
export * from './category-tabs';
|
|
11
12
|
export * from './form/table/dnd';
|
|
12
13
|
export * from './form';
|
|
13
14
|
export * from './Icon';
|
|
15
|
+
export * from './KeepAlive';
|
|
14
16
|
export * from './PoweredBy';
|
|
15
17
|
export * from './RouterContextCleaner';
|
|
16
18
|
export * from './SwitchLanguage';
|
|
@@ -6,4 +6,11 @@
|
|
|
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
|
-
|
|
9
|
+
import { FlowContext, type FlowRuntimeContext, type MetaTreeNode } from '@nocobase/flow-engine';
|
|
10
|
+
type ResponseRecordPlainStepContext = {
|
|
11
|
+
steps?: FlowRuntimeContext['steps'];
|
|
12
|
+
};
|
|
13
|
+
export declare function getAfterSuccessResponseRecord(ctx: FlowContext | ResponseRecordPlainStepContext): any;
|
|
14
|
+
export declare function getMetaTreeWithResponseRecord(ctx: FlowRuntimeContext): MetaTreeNode[];
|
|
15
|
+
export declare const afterSuccess: import("@nocobase/flow-engine").ActionDefinition<import("@nocobase/flow-engine").FlowModel<import("@nocobase/flow-engine").DefaultStructure>, FlowContext>;
|
|
16
|
+
export {};
|
|
@@ -6,7 +6,7 @@
|
|
|
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
|
|
9
|
+
export { afterSuccess } from './afterSuccess';
|
|
10
10
|
export * from './confirm';
|
|
11
11
|
export * from './dataScope';
|
|
12
12
|
export * from './openView';
|
|
@@ -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;
|
|
@@ -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,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;
|
|
@@ -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 开关 */
|
|
@@ -52,6 +52,8 @@ interface Props {
|
|
|
52
52
|
* 默认 false,保持历史行为。
|
|
53
53
|
*/
|
|
54
54
|
enableDateVariableAsConstant?: boolean;
|
|
55
|
+
/** 是否允许在变量选择器中使用 RunJS。默认 true,保持历史行为。 */
|
|
56
|
+
allowRunJS?: boolean;
|
|
55
57
|
maxAssociationFieldDepth?: number;
|
|
56
58
|
}
|
|
57
59
|
export declare function mergeItemMetaTreeForAssignValue(baseTree: MetaTreeNode[], extraTree: MetaTreeNode[]): MetaTreeNode[];
|
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';
|
|
@@ -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
|
*/
|
|
@@ -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;
|
|
@@ -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;
|