@nocobase/client-v2 2.2.0-beta.9 → 2.2.1

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.
Files changed (224) hide show
  1. package/es/APIClient.d.ts +13 -3
  2. package/es/BaseApplication.d.ts +1 -0
  3. package/es/collection-field-interface/CollectionFieldInterface.d.ts +1 -0
  4. package/es/collection-field-interface/CollectionFieldInterfaceManager.d.ts +1 -0
  5. package/es/components/category-tabs/SortableCategoryTabs.d.ts +55 -0
  6. package/es/components/category-tabs/index.d.ts +9 -0
  7. package/es/components/form/ScanInput/useCodeScanner.d.ts +3 -2
  8. package/es/components/form/TypedVariableInput.d.ts +31 -5
  9. package/es/components/form/filter/CollectionFilter.d.ts +2 -0
  10. package/es/components/form/filter/CollectionFilterItem.d.ts +11 -1
  11. package/es/components/form/filter/CollectionFilterPanel.d.ts +2 -0
  12. package/es/components/form/filter/index.d.ts +2 -0
  13. package/es/components/form/filter/useFilterActionProps.d.ts +2 -0
  14. package/es/components/index.d.ts +1 -0
  15. package/es/flow/actions/index.d.ts +1 -1
  16. package/es/flow/actions/linkageRules.d.ts +27 -0
  17. package/es/flow/admin-shell/admin-layout/AdminLayoutMenuModels.d.ts +1 -0
  18. package/es/flow/components/FieldAssignExactDatePicker.d.ts +1 -0
  19. package/es/flow/components/FieldAssignValueInput.d.ts +7 -24
  20. package/es/flow/components/FlowRoute.d.ts +2 -2
  21. package/es/flow/components/RunJSValueEditor.d.ts +1 -0
  22. package/es/flow/components/field-value-variable/DateVariableEditor.d.ts +24 -0
  23. package/es/flow/components/field-value-variable/FieldValueVariableInput.d.ts +31 -0
  24. package/es/flow/components/field-value-variable/dateValue.d.ts +36 -0
  25. package/es/flow/components/field-value-variable/index.d.ts +11 -0
  26. package/es/flow/components/filter/FilterGroup.d.ts +1 -0
  27. package/es/flow/components/filter/VariableFilterItem.d.ts +6 -1
  28. package/es/flow/components/placeholders/BlockPlaceholder.d.ts +1 -0
  29. package/es/flow/index.d.ts +1 -0
  30. package/es/flow/internal/registerDeviceTypeContext.d.ts +10 -0
  31. package/es/flow/internal/utils/operatorSchemaHelper.d.ts +2 -2
  32. package/es/flow/models/actions/UpdateRecordActionUtils.d.ts +8 -2
  33. package/es/flow/models/base/ActionModelCore.d.ts +4 -2
  34. package/es/flow/models/base/BlockGridModel.d.ts +3 -0
  35. package/es/flow/models/base/CollectionBlockModel.d.ts +3 -0
  36. package/es/flow/models/base/PageModel/PageModel.d.ts +12 -0
  37. package/es/flow/models/base/PageModel/PageModelTabBar.d.ts +22 -0
  38. package/es/flow/models/base/PageModel/PageTabModel.d.ts +12 -0
  39. package/es/flow/models/blocks/details/DetailsBlockModel.d.ts +3 -0
  40. package/es/flow/models/blocks/filter-form/FilterFormGridModel.d.ts +1 -0
  41. package/es/flow/models/blocks/filter-form/FilterFormSubmitActionModel.d.ts +3 -1
  42. package/es/flow/models/blocks/form/FormBlockModel.d.ts +7 -0
  43. package/es/flow/models/blocks/form/FormGridModel.d.ts +6 -0
  44. package/es/flow/models/blocks/form/QuickEditFormModel.d.ts +17 -2
  45. package/es/flow/models/blocks/form/value-runtime/rules.d.ts +1 -0
  46. package/es/flow/models/blocks/table/JSColumnModel.d.ts +2 -0
  47. package/es/flow/models/blocks/table/TableBlockModel.d.ts +1 -0
  48. package/es/flow/models/blocks/table/TableColumnModel.d.ts +12 -0
  49. package/es/flow/models/blocks/table/utils.d.ts +1 -0
  50. package/es/flow/models/fields/AssociationFieldModel/RecordPickerFieldModel.d.ts +2 -1
  51. package/es/flow/models/fields/AssociationFieldModel/RecordSelectFieldModel.d.ts +0 -17
  52. package/es/flow/models/fields/AssociationFieldModel/recordSelectShared.d.ts +41 -0
  53. package/es/flow/models/fields/DateTimeFieldModel/dateLimit.d.ts +15 -7
  54. package/es/flow-compat/fieldValidationConstants.d.ts +1 -1
  55. package/es/flow-compat/passwordUtils.d.ts +1 -1
  56. package/es/flow-compat/routeTypes.d.ts +1 -0
  57. package/es/index.d.ts +5 -0
  58. package/es/index.mjs +199 -161
  59. package/es/ui-operation/index.d.ts +15 -0
  60. package/es/ui-operation/ui-operation-codec.d.ts +10 -0
  61. package/es/utils/getRouteRuntimeVersion.d.ts +23 -0
  62. package/es/utils/index.d.ts +1 -0
  63. package/lib/index.js +215 -177
  64. package/lib/locale/languageCodes.js +3 -1
  65. package/package.json +9 -7
  66. package/src/APIClient.ts +90 -7
  67. package/src/Application.tsx +7 -1
  68. package/src/BaseApplication.tsx +11 -6
  69. package/src/__tests__/APIClient.test.tsx +58 -0
  70. package/src/__tests__/app.test.tsx +73 -0
  71. package/src/__tests__/browserChecker.test.ts +61 -0
  72. package/src/__tests__/getRouteRuntimeVersion.test.ts +68 -0
  73. package/src/__tests__/nocobase-buildin-plugin-auth.test.tsx +35 -2
  74. package/src/__tests__/settings-center.test.tsx +270 -6
  75. package/src/acl/ACLProvider.tsx +2 -0
  76. package/src/acl/__tests__/ACLProvider.test.tsx +92 -0
  77. package/src/collection-field-interface/CollectionFieldInterface.ts +1 -0
  78. package/src/collection-field-interface/CollectionFieldInterfaceManager.ts +1 -0
  79. package/src/collection-manager/field-validation.ts +1 -1
  80. package/src/components/README.md +7 -1
  81. package/src/components/README.zh-CN.md +6 -1
  82. package/src/components/category-tabs/SortableCategoryTabs.tsx +210 -0
  83. package/src/components/category-tabs/index.ts +10 -0
  84. package/src/components/form/JsonTextArea.tsx +4 -0
  85. package/src/components/form/ScanInput/CodeScanner.tsx +79 -35
  86. package/src/components/form/ScanInput/__tests__/CodeScanner.test.tsx +101 -0
  87. package/src/components/form/ScanInput/__tests__/useCodeScanner.test.tsx +284 -11
  88. package/src/components/form/ScanInput/useCodeScanner.ts +332 -24
  89. package/src/components/form/TypedVariableInput.tsx +452 -101
  90. package/src/components/form/__tests__/TypedVariableInput.test.tsx +364 -12
  91. package/src/components/form/filter/CollectionFilter.tsx +4 -0
  92. package/src/components/form/filter/CollectionFilterItem.tsx +36 -9
  93. package/src/components/form/filter/CollectionFilterPanel.tsx +4 -0
  94. package/src/components/form/filter/__tests__/CollectionFilterItem.test.tsx +55 -0
  95. package/src/components/form/filter/__tests__/useFilterActionProps.test.tsx +95 -0
  96. package/src/components/form/filter/index.ts +2 -0
  97. package/src/components/form/filter/useFilterActionProps.ts +37 -6
  98. package/src/components/form/table/Table.tsx +81 -6
  99. package/src/components/form/table/__tests__/Table.columnWidth.test.tsx +433 -0
  100. package/src/components/index.ts +1 -0
  101. package/src/flow/FlowPage.tsx +9 -1
  102. package/src/flow/__tests__/FlowPage.test.tsx +50 -3
  103. package/src/flow/__tests__/FlowRoute.test.tsx +128 -10
  104. package/src/flow/__tests__/PluginFlowEngine.test.ts +58 -0
  105. package/src/flow/actions/__tests__/actionLinkageRules.forkProps.test.ts +314 -0
  106. package/src/flow/actions/__tests__/dataScopeFormValueClear.test.ts +102 -0
  107. package/src/flow/actions/__tests__/linkageRules.actionStates.test.ts +33 -0
  108. package/src/flow/actions/__tests__/linkageRules.subFormSetFieldProps.test.ts +72 -0
  109. package/src/flow/actions/__tests__/linkageRules.tab.test.ts +171 -0
  110. package/src/flow/actions/__tests__/linkageRulesRefresh.test.ts +7 -3
  111. package/src/flow/actions/index.ts +2 -0
  112. package/src/flow/actions/linkageRules.tsx +144 -26
  113. package/src/flow/actions/linkageRulesRefresh.tsx +2 -6
  114. package/src/flow/admin-shell/admin-layout/AdminLayoutComponent.tsx +0 -1
  115. package/src/flow/admin-shell/admin-layout/AdminLayoutMenuUtils.tsx +78 -59
  116. package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutComponent.test.tsx +253 -6
  117. package/src/flow/admin-shell/admin-layout/__tests__/AdminLayoutMenuModels.test.ts +228 -0
  118. package/src/flow/common/Markdown/style.ts +4 -0
  119. package/src/flow/components/BlockItemCard.tsx +2 -2
  120. package/src/flow/components/FieldAssignExactDatePicker.tsx +25 -11
  121. package/src/flow/components/FieldAssignValueInput.tsx +72 -584
  122. package/src/flow/components/FlowRoute.tsx +78 -32
  123. package/src/flow/components/RunJSValueEditor.tsx +9 -1
  124. package/src/flow/components/__tests__/FieldAssignValueInput.context.test.tsx +216 -0
  125. package/src/flow/components/field-value-variable/DateVariableEditor.tsx +181 -0
  126. package/src/flow/components/field-value-variable/FieldValueVariableInput.tsx +326 -0
  127. package/src/flow/components/field-value-variable/__tests__/FieldValueVariableInput.test.tsx +380 -0
  128. package/src/flow/components/field-value-variable/dateValue.ts +223 -0
  129. package/src/flow/components/field-value-variable/index.ts +12 -0
  130. package/src/flow/components/filter/FilterGroup.tsx +33 -5
  131. package/src/flow/components/filter/VariableFilterItem.tsx +170 -13
  132. package/src/flow/components/filter/__tests__/FilterGroup.test.tsx +45 -0
  133. package/src/flow/components/filter/__tests__/VariableFilterItem.leftMetaTree.test.tsx +9 -0
  134. package/src/flow/components/filter/__tests__/VariableFilterItem.test.tsx +195 -1
  135. package/src/flow/components/placeholders/BlockPlaceholder.tsx +70 -23
  136. package/src/flow/components/placeholders/__tests__/BlockPlaceholder.test.tsx +57 -7
  137. package/src/flow/index.ts +3 -0
  138. package/src/flow/internal/registerDeviceTypeContext.ts +39 -0
  139. package/src/flow/internal/utils/operatorSchemaHelper.ts +3 -2
  140. package/src/flow/models/actions/UpdateRecordActionModel.tsx +18 -1
  141. package/src/flow/models/actions/UpdateRecordActionUtils.ts +18 -6
  142. package/src/flow/models/actions/__tests__/UpdateRecordActionModel.test.ts +76 -4
  143. package/src/flow/models/base/ActionModelCore.tsx +11 -2
  144. package/src/flow/models/base/BlockGridModel.tsx +26 -0
  145. package/src/flow/models/base/CollectionBlockModel.tsx +38 -3
  146. package/src/flow/models/base/PageModel/PageModel.tsx +387 -53
  147. package/src/flow/models/base/PageModel/PageModelTabBar.tsx +114 -0
  148. package/src/flow/models/base/PageModel/PageTabModel.tsx +249 -18
  149. package/src/flow/models/base/PageModel/__tests__/PageModel.test.ts +790 -10
  150. package/src/flow/models/base/PageModel/__tests__/PageModelTabBar.module-isolation.test.tsx +130 -0
  151. package/src/flow/models/base/PageModel/__tests__/PageModelTabBar.test.tsx +118 -0
  152. package/src/flow/models/base/PageModel/__tests__/PageTabModel.test.ts +1075 -7
  153. package/src/flow/models/base/__tests__/ActionModelCore.render.test.tsx +49 -0
  154. package/src/flow/models/base/__tests__/BlockGridModel.selectSceneActivation.test.ts +124 -0
  155. package/src/flow/models/base/__tests__/CollectionBlockModel.addAppends.test.ts +41 -0
  156. package/src/flow/models/base/__tests__/CollectionBlockModel.initialBeforeRenderRefresh.test.ts +125 -9
  157. package/src/flow/models/blocks/assign-form/AssignFormItemModel.tsx +28 -53
  158. package/src/flow/models/blocks/details/DetailsBlockModel.tsx +8 -3
  159. package/src/flow/models/blocks/details/__tests__/DetailsBlockModel.initialPaginationChangeRefresh.test.ts +32 -1
  160. package/src/flow/models/blocks/filter-form/FilterFormBlockModel.tsx +28 -3
  161. package/src/flow/models/blocks/filter-form/FilterFormGridModel.tsx +36 -5
  162. package/src/flow/models/blocks/filter-form/FilterFormItemModel.tsx +155 -25
  163. package/src/flow/models/blocks/filter-form/FilterFormSubmitActionModel.tsx +57 -4
  164. package/src/flow/models/blocks/filter-form/__tests__/FilterFormGridModel.onModelCreated.test.ts +174 -1
  165. package/src/flow/models/blocks/filter-form/__tests__/FilterFormItemModel.defineChildren.test.ts +395 -1
  166. package/src/flow/models/blocks/filter-form/__tests__/FilterFormItemModel.getFilterValue.test.ts +72 -0
  167. package/src/flow/models/blocks/filter-form/__tests__/FilterFormSubmitActionModel.lifecycle.test.ts +90 -0
  168. package/src/flow/models/blocks/filter-form/__tests__/defaultValues.wiring.test.ts +66 -4
  169. package/src/flow/models/blocks/filter-manager/FilterManager.ts +5 -0
  170. package/src/flow/models/blocks/filter-manager/__tests__/FilterManager.test.ts +40 -0
  171. package/src/flow/models/blocks/form/FormBlockModel.tsx +47 -0
  172. package/src/flow/models/blocks/form/FormGridModel.tsx +4 -0
  173. package/src/flow/models/blocks/form/QuickEditFormModel.tsx +189 -36
  174. package/src/flow/models/blocks/form/__tests__/FormBlockModel.test.tsx +8 -2
  175. package/src/flow/models/blocks/form/__tests__/QuickEditFormModel.quickEdit.test.ts +350 -2
  176. package/src/flow/models/blocks/form/__tests__/runJsFormSubmit.test.ts +131 -0
  177. package/src/flow/models/blocks/form/value-runtime/__tests__/runtime.test.ts +435 -0
  178. package/src/flow/models/blocks/form/value-runtime/rules.ts +67 -14
  179. package/src/flow/models/blocks/form/value-runtime/runtime.ts +43 -19
  180. package/src/flow/models/blocks/js-block/JSBlock.tsx +1 -1
  181. package/src/flow/models/blocks/table/JSColumnModel.tsx +10 -1
  182. package/src/flow/models/blocks/table/TableActionsColumnModel.tsx +2 -1
  183. package/src/flow/models/blocks/table/TableBlockModel.tsx +29 -3
  184. package/src/flow/models/blocks/table/TableColumnModel.tsx +48 -9
  185. package/src/flow/models/blocks/table/__tests__/JSColumnModel.test.tsx +52 -5
  186. package/src/flow/models/blocks/table/__tests__/TableBlockModel.filterReset.test.ts +78 -0
  187. package/src/flow/models/blocks/table/__tests__/TableBlockModel.quickEditRefresh.test.ts +12 -0
  188. package/src/flow/models/blocks/table/__tests__/TableColumnModel.test.tsx +33 -0
  189. package/src/flow/models/blocks/table/utils.ts +7 -0
  190. package/src/flow/models/fields/AssociationFieldModel/CascadeSelectFieldModel.tsx +33 -1
  191. package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/PopupSubTableFieldModel.tsx +10 -1
  192. package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/__tests__/popupContext.test.ts +120 -0
  193. package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/actions/PopupSubTableEditActionModel.tsx +10 -2
  194. package/src/flow/models/fields/AssociationFieldModel/RecordPickerFieldModel.tsx +24 -1
  195. package/src/flow/models/fields/AssociationFieldModel/RecordSelectFieldModel.tsx +9 -136
  196. package/src/flow/models/fields/AssociationFieldModel/__tests__/RecordPickerFieldModel.itemContext.test.ts +167 -3
  197. package/src/flow/models/fields/AssociationFieldModel/recordSelectShared.tsx +156 -0
  198. package/src/flow/models/fields/DateTimeFieldModel/__tests__/DateTimeNoTzFieldModel.dateLimit.test.tsx +149 -0
  199. package/src/flow/models/fields/DateTimeFieldModel/dateLimit.ts +149 -113
  200. package/src/flow/models/fields/DisplayNumberFieldModel.tsx +1 -1
  201. package/src/flow/models/fields/JsonFieldModel.tsx +31 -8
  202. package/src/flow/models/fields/NumberFieldModel.tsx +1 -1
  203. package/src/flow/models/fields/VariableFieldFormModel.tsx +3 -3
  204. package/src/flow/models/fields/__tests__/DisplayNumberFieldModel.test.ts +33 -0
  205. package/src/flow/models/fields/__tests__/JsonFieldModel.test.ts +82 -0
  206. package/src/flow/models/fields/__tests__/NumberFieldModel.test.tsx +47 -0
  207. package/src/flow/models/fields/__tests__/VariableFieldFormModel.test.tsx +51 -0
  208. package/src/flow/models/fields/mobile-components/MobileLazySelect.tsx +26 -10
  209. package/src/flow/models/fields/mobile-components/MobileSelect.tsx +51 -14
  210. package/src/flow/models/fields/mobile-components/__tests__/MobileSelect.test.tsx +139 -13
  211. package/src/flow/utils/dataScopeFormValueClear.ts +4 -3
  212. package/src/flow-compat/fieldValidationConstants.ts +1 -1
  213. package/src/flow-compat/routeTypes.ts +1 -0
  214. package/src/index.ts +5 -0
  215. package/src/layout-manager/LayoutContentRoute.tsx +2 -1
  216. package/src/layout-manager/LayoutRoute.tsx +2 -1
  217. package/src/layout-manager/__tests__/LayoutRoute.test.tsx +87 -1
  218. package/src/locale/languageCodes.ts +3 -1
  219. package/src/nocobase-buildin-plugin/index.tsx +12 -0
  220. package/src/settings-center/AdminSettingsLayout.tsx +23 -2
  221. package/src/ui-operation/index.ts +33 -0
  222. package/src/ui-operation/ui-operation-codec.ts +54 -0
  223. package/src/utils/getRouteRuntimeVersion.ts +185 -0
  224. package/src/utils/index.tsx +1 -0
@@ -6,7 +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 { AxiosRequestConfig } from 'axios';
10
+ type UpdateRecordActionParams = {
11
+ assignedValues?: unknown;
12
+ requestConfig?: AxiosRequestConfig;
13
+ };
9
14
  export declare function refreshLinkageRulesAfterUpdate(ctx: any): Promise<void>;
10
- export declare function applyUpdateRecordAction(ctx: any, params: any, options?: {
15
+ export declare function applyUpdateRecordAction(ctx: any, params: UpdateRecordActionParams, options?: {
11
16
  settingsFlowKey?: string;
12
- }): Promise<void>;
17
+ }): Promise<boolean>;
18
+ export {};
@@ -6,7 +6,8 @@
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 { DefaultStructure, FlowModel } from '@nocobase/flow-engine';
9
+ import { FlowModel } from '@nocobase/flow-engine';
10
+ import type { DefaultStructure, FlowModelOptions } from '@nocobase/flow-engine';
10
11
  import type { ButtonProps } from 'antd/es/button';
11
12
  import React from 'react';
12
13
  export declare function ActionWithoutPermission(props: any): React.JSX.Element;
@@ -41,7 +42,8 @@ export declare class ActionModel<T extends DefaultStructure = DefaultStructure>
41
42
  static _getScene(): any[];
42
43
  static _isScene(scene: ActionSceneType): boolean;
43
44
  getAclActionName(): any;
44
- onInit(options: any): void;
45
+ onInit(options: FlowModelOptions<T>): void;
46
+ serialize(): Record<string, any>;
45
47
  getInputArgs(): Record<string, any>;
46
48
  onClick(event: any): void;
47
49
  getTitle(): string;
@@ -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;
@@ -7,6 +7,7 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import { BaseRecordResource, Collection, CollectionField, DataSource, DefaultStructure, FlowModelContext, MultiRecordResource, SingleRecordResource } from '@nocobase/flow-engine';
10
+ import React from 'react';
10
11
  import { DataBlockModel } from './DataBlockModel';
11
12
  export interface ResourceSettingsInitParams {
12
13
  dataSourceKey: string;
@@ -66,6 +67,8 @@ export declare class CollectionBlockModel<T = DefaultStructure> extends DataBloc
66
67
  onInit(options: any): void;
67
68
  createResource(ctx: any, params: any): SingleRecordResource | MultiRecordResource;
68
69
  refresh(): Promise<void>;
70
+ isExternalDataSource(): boolean;
71
+ render(): React.JSX.Element;
69
72
  protected defaultBlockTitle(): string;
70
73
  addAppends(fieldPath: string, refresh?: boolean): void;
71
74
  }
@@ -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 {
@@ -39,3 +39,6 @@ export declare class DetailsBlockModel extends CollectionBlockModel<{
39
39
  renderConfigureActions(): React.JSX.Element;
40
40
  renderComponent(): React.JSX.Element;
41
41
  }
42
+ export declare const DetailsPagination: React.MemoExoticComponent<import("@formily/reactive-react").ReactFC<{
43
+ model: DetailsBlockModel;
44
+ }>>;
@@ -28,6 +28,7 @@ export declare class FilterFormGridModel extends GridModel {
28
28
  readonly loading: {
29
29
  value: boolean;
30
30
  };
31
+ private isRecordSelectFilterField;
31
32
  private getAssociationFilterTargetKey;
32
33
  private normalizeFilterFormLayout;
33
34
  private normalizeStoredFullLayout;
@@ -10,6 +10,8 @@ import type { ButtonProps } from 'antd/es/button';
10
10
  import { FilterFormActionModel } from './FilterFormActionModel';
11
11
  export declare class FilterFormSubmitActionModel extends FilterFormActionModel {
12
12
  defaultProps: ButtonProps;
13
- onInit(options: any): void;
13
+ private getLifecycleAction;
14
+ private syncAutoTriggerFilter;
15
+ onMount(): void;
14
16
  onUnmount(): void;
15
17
  }
@@ -24,8 +24,15 @@ type DefaultCollectionBlockModelStructure = {
24
24
  type CustomFormBlockModelClassesEnum = {};
25
25
  export declare class FormBlockModel<T extends DefaultCollectionBlockModelStructure = DefaultCollectionBlockModelStructure> extends CollectionBlockModel<T> {
26
26
  formValueRuntime?: FormValueRuntime;
27
+ serialize(): {
28
+ variableContractType: {
29
+ type: string;
30
+ use: string;
31
+ };
32
+ };
27
33
  private userModifiedTopLevelFields;
28
34
  get form(): FormInstance<any>;
35
+ submitFromRunJs(): void;
29
36
  _defaultCustomModelClasses: {
30
37
  FormActionGroupModel: string;
31
38
  FormItemModel: string;
@@ -18,6 +18,12 @@ export type DefaultFormGridStructure = {
18
18
  };
19
19
  };
20
20
  export declare class FormGridModel<T extends DefaultFormGridStructure = DefaultFormGridStructure> extends GridModel<T> {
21
+ serialize(): {
22
+ variableContractType: {
23
+ type: string;
24
+ use: string;
25
+ };
26
+ };
21
27
  itemFallback: React.JSX.Element;
22
28
  itemSettingsMenuLevel: number;
23
29
  itemFlowSettings: {
@@ -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
- now: number;
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 {};
@@ -16,6 +16,7 @@ type ObservableBinding = {
16
16
  };
17
17
  export type RuleEngineOptions = {
18
18
  getBlockModelUid: () => string;
19
+ getAssignRulesModelUid: () => string | undefined;
19
20
  getActionName: () => string | undefined;
20
21
  getBlockContext: () => any;
21
22
  getEngine: () => any;
@@ -6,10 +6,12 @@
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 { FlowModelOptions } from '@nocobase/flow-engine';
9
10
  import React from 'react';
10
11
  import { TableCustomColumnModel } from './TableCustomColumnModel';
11
12
  export declare class JSColumnModel extends TableCustomColumnModel {
12
13
  private _RenderComponent?;
14
+ onInit(options: FlowModelOptions): void;
13
15
  renderHiddenInConfig(): React.JSX.Element;
14
16
  getInputArgs(): {};
15
17
  getColumnProps(): {
@@ -36,6 +36,7 @@ export declare class TableBlockModel extends CollectionBlockModel<TableBlockMode
36
36
  };
37
37
  customModelClasses: CustomTableBlockModelClassesEnum;
38
38
  get resource(): MultiRecordResource<any>;
39
+ resetAfterFilterChange(): void;
39
40
  private readonly columns;
40
41
  private disposeAutorun;
41
42
  onMount(): void;
@@ -7,9 +7,19 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import { DisplayItemModel, FlowModelContext, ModelRenderMode } from '@nocobase/flow-engine';
10
+ import type { FlowModel } from '@nocobase/flow-engine';
10
11
  import { TableColumnProps } from 'antd';
11
12
  import React from 'react';
12
13
  export declare function FieldDeletePlaceholder(props: any): React.JSX.Element;
14
+ type FieldPermissionPlaceholderModel = FlowModel & {
15
+ fieldPath?: string;
16
+ forbidden?: {
17
+ actionName?: string;
18
+ } | null;
19
+ };
20
+ export declare function FieldWithoutPermissionPlaceholder({ targetModel, }?: {
21
+ targetModel?: FieldPermissionPlaceholderModel;
22
+ }): React.JSX.Element;
13
23
  export declare const TABLE_COLUMN_MIN_WIDTH = 10;
14
24
  export declare function normalizeTableColumnWidth(width: number | null | undefined): number;
15
25
  export declare const CustomWidth: ({ setOpen, t, handleChange, defaultValue }: {
@@ -23,9 +33,11 @@ export declare class TableColumnModel extends DisplayItemModel {
23
33
  afterAddAsSubModel(): Promise<void>;
24
34
  renderHiddenInConfig(): React.ReactNode | undefined;
25
35
  static defineChildren(ctx: FlowModelContext): any;
36
+ canQuickEdit(record: Record<string, unknown>): boolean;
26
37
  getColumnProps(): TableColumnProps & {
27
38
  sortField?: string;
28
39
  };
29
40
  onInit(options: any): void;
30
41
  renderItem(): any;
31
42
  }
43
+ export {};
@@ -3,6 +3,7 @@ export declare function extractIndex(str: any): string;
3
3
  export declare function adjustColumnOrder(columns: any): any[];
4
4
  export declare function setNestedValue(data: any, recordIndex: any, value: any): void;
5
5
  export declare function extractIds(data: any): any[];
6
+ export declare function extractRowKeys(data: Record<string, unknown>[], key: string | string[]): any;
6
7
  /**
7
8
  * 生成表格行唯一 key
8
9
  * @param record 当前行数据
@@ -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
- import { CollectionField, FlowModel } from '@nocobase/flow-engine';
9
+ import { CollectionField, MultiRecordResource, FlowModel } from '@nocobase/flow-engine';
10
10
  import React from 'react';
11
11
  import { FieldModel } from '../../base/FieldModel';
12
12
  import { type ItemChain } from './itemChain';
@@ -45,6 +45,7 @@ export declare function RecordPickerContent({ model, toOne }: {
45
45
  toOne?: boolean;
46
46
  }): React.JSX.Element;
47
47
  export declare class RecordPickerFieldModel extends FieldModel {
48
+ resource: MultiRecordResource;
48
49
  selectedRows: {
49
50
  value: any[];
50
51
  };
@@ -9,22 +9,6 @@
9
9
  import { CollectionField, MultiRecordResource } from '@nocobase/flow-engine';
10
10
  import React from 'react';
11
11
  import { AssociationFieldModel } from './AssociationFieldModel';
12
- import { type AssociationOption, type LazySelectProps } from './recordSelectShared';
13
- type HydrateStatus = 'pending' | 'done';
14
- type HydrationCandidate = {
15
- item: AssociationOption;
16
- tk: any;
17
- tkKey: string;
18
- };
19
- export declare function collectAssociationHydrationCandidates(options: {
20
- value: LazySelectProps['value'];
21
- isMultiple: boolean;
22
- valueKey: string;
23
- labelKey: string;
24
- statusMap: Map<string, HydrateStatus>;
25
- }): HydrationCandidate[];
26
- export declare function getAssociationHydrationNamePath(model: any): any;
27
- export declare function getAssociationHydrationSetterContext(model: any): any;
28
12
  export declare function CreateContent({ model, toOne }: {
29
13
  model: any;
30
14
  toOne?: boolean;
@@ -45,4 +29,3 @@ export declare class RecordSelectFieldModel extends AssociationFieldModel {
45
29
  change(value: any): void;
46
30
  render(): React.JSX.Element;
47
31
  }
48
- export {};
@@ -39,6 +39,46 @@ export interface LazySelectProps extends Omit<SelectProps<any>, 'mode' | 'option
39
39
  allowCreate?: boolean;
40
40
  allowEdit?: boolean;
41
41
  }
42
+ type AssociationHydrationSetterOptions = {
43
+ source?: string;
44
+ markExplicit?: boolean;
45
+ triggerEvent?: boolean;
46
+ };
47
+ type AssociationHydrationSetterContext = {
48
+ setFormValue?: (namePath: unknown, value: unknown, options?: AssociationHydrationSetterOptions) => Promise<unknown> | void;
49
+ };
50
+ export type AssociationHydrationModel = {
51
+ resource?: {
52
+ get?: (tk: unknown) => Promise<unknown> | unknown;
53
+ };
54
+ context?: unknown;
55
+ props?: {
56
+ name?: unknown;
57
+ };
58
+ };
59
+ type AssociationHydrationStatus = 'pending' | 'done';
60
+ type AssociationHydrationCandidate = {
61
+ item: AssociationOption;
62
+ tk: unknown;
63
+ tkKey: string;
64
+ };
65
+ export declare function isAssociationRecord(value: unknown): value is AssociationOption;
66
+ export declare function collectAssociationHydrationCandidates(options: {
67
+ value: LazySelectProps['value'];
68
+ isMultiple: boolean;
69
+ valueKey: string;
70
+ labelKey: string;
71
+ statusMap: Map<string, AssociationHydrationStatus>;
72
+ }): AssociationHydrationCandidate[];
73
+ export declare function getAssociationHydrationNamePath(model: AssociationHydrationModel): any;
74
+ export declare function getAssociationHydrationSetterContext(model: AssociationHydrationModel): AssociationHydrationSetterContext;
75
+ export declare function useAssociationValueHydration(options: {
76
+ model: AssociationHydrationModel;
77
+ value: LazySelectProps['value'];
78
+ isMultiple: boolean;
79
+ fieldNames: AssociationFieldNames;
80
+ onChange: LazySelectProps['onChange'];
81
+ }): void;
42
82
  export interface LabelByFieldProps {
43
83
  option: AssociationOption;
44
84
  fieldNames: AssociationFieldNames;
@@ -46,3 +86,4 @@ export interface LabelByFieldProps {
46
86
  export declare function LabelByField(props: Readonly<LabelByFieldProps>): React.JSX.Element;
47
87
  export declare function toSelectValue(record: AssociationOption | AssociationOption[] | string | string[] | number | number[] | undefined, fieldNames: AssociationFieldNames, multiple?: boolean, valueMode?: 'record' | 'value', options?: AssociationOption[]): any;
48
88
  export declare function resolveOptions(options: AssociationOption[] | undefined, value: AssociationOption | AssociationOption[] | string | string[] | number | number[] | undefined, isMultiple: boolean): AssociationOption[];
89
+ export {};
@@ -6,15 +6,23 @@
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 { Dayjs } from 'dayjs';
9
10
  type DateLimitProps = {
10
- _minDate?: any;
11
- _maxDate?: any;
12
- currentForm?: any;
11
+ _minDate?: unknown;
12
+ _maxDate?: unknown;
13
+ currentForm?: unknown;
13
14
  };
15
+ type DisabledTimeConfig = {
16
+ disabledHours: () => number[];
17
+ disabledMinutes: (selectedHour: number) => number[];
18
+ disabledSeconds: (selectedHour: number, selectedMinute: number) => number[];
19
+ };
20
+ type DisabledDate = (current: Dayjs) => boolean;
21
+ type DisabledTime = (current: Dayjs | null) => DisabledTimeConfig;
14
22
  export declare function useDateLimit(props: DateLimitProps): {
15
- minDate: any;
16
- maxDate: any;
17
- disabledDate: any;
18
- disabledTime: any;
23
+ minDate: Dayjs;
24
+ maxDate: Dayjs;
25
+ disabledDate: DisabledDate;
26
+ disabledTime: DisabledTime;
19
27
  };
20
28
  export {};
@@ -277,7 +277,7 @@ export declare const FIELDS_VALIDATION_OPTIONS: {
277
277
  }];
278
278
  }, {
279
279
  readonly key: "multiple";
280
- readonly label: "Multiple";
280
+ readonly label: "Multiple of";
281
281
  readonly hasValue: true;
282
282
  readonly params: readonly [{
283
283
  readonly key: "base";
@@ -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 const getStrength: (val: any) => 60 | 0 | 100 | 80 | 40 | 20;
9
+ export declare const getStrength: (val: any) => 0 | 60 | 100 | 80 | 40 | 20;
@@ -16,6 +16,7 @@ export declare enum NocoBaseDesktopRouteType {
16
16
  }
17
17
  export interface NocoBaseDesktopRouteOptions {
18
18
  hasPersistedMenuInstanceFlow?: boolean;
19
+ hasPersistedPageTabFlowModel?: boolean;
19
20
  [key: string]: any;
20
21
  }
21
22
  export interface NocoBaseDesktopRoute {
package/es/index.d.ts CHANGED
@@ -28,6 +28,8 @@ export * from './layout-manager';
28
28
  export * from './hooks';
29
29
  export { default as languageCodes } from './locale/languageCodes';
30
30
  export * from './nocobase-buildin-plugin';
31
+ export { getRouteRuntimeVersion } from './utils/getRouteRuntimeVersion';
32
+ export type { RouteRuntimeVersion } from './utils/getRouteRuntimeVersion';
31
33
  export * from './collection-field-interface/CollectionFieldInterface';
32
34
  export * from './collection-field-interface/CollectionFieldInterfaceManager';
33
35
  export * from './collection-manager/field-configure';
@@ -38,7 +40,10 @@ export * from './collection-manager/template-fields';
38
40
  export * from './data-source';
39
41
  export * from './entry-actions';
40
42
  export * from './flow';
43
+ export { CodeEditorExtension } from './flow/components/code-editor/extension';
44
+ export type { CodeEditorExtra, CodeEditorExtraRegistry, EditorRef } from './flow/components/code-editor/types';
41
45
  export { DEFAULT_DATA_SOURCE_KEY, IconPicker, isTitleField, isTitleFieldInterface, NocoBaseDesktopRouteType, } from './flow-compat';
42
46
  export type { NocoBaseDesktopRoute } from './flow-compat';
43
47
  export * from './utils/markdownSanitize';
48
+ export * from './ui-operation';
44
49
  export { default as AntdAppProvider } from './theme/AntdAppProvider';