@ximatai/muyun-web-app 0.26.7 → 0.26.9

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 (198) hide show
  1. package/dist/DictionaryManagementView-CtIQpqVA.js +1035 -0
  2. package/dist/MenuManagementView-DJhkN2sG.js +837 -0
  3. package/dist/{MetadataOrchestrationView-B-CPudJl.js → MetadataOrchestrationView-CzhAgEdX.js} +210 -204
  4. package/dist/{ModuleActionManagementView-CmVj0e0C.js → ModuleActionManagementView-CM2d8jPO.js} +69 -69
  5. package/dist/RoleAuthorizationView-jn_WUCeg.js +599 -0
  6. package/dist/{RoleDetailWorkspaceView-DmJlJgAj.js → RoleDetailWorkspaceView-CzaQ3Dz1.js} +1 -1
  7. package/dist/RoleManagementView-nY7qu4GF.js +1951 -0
  8. package/dist/{SystemUserDetailWorkspaceView-U6Ij0US1.js → SystemUserDetailWorkspaceView-CBvqmWvP.js} +1 -1
  9. package/dist/SystemUserManagementView-AEomKvK7.js +887 -0
  10. package/dist/index.css +1 -1
  11. package/dist/index.js +651 -6970
  12. package/dist/{platform-components-DKKWbNrz.js → platform-components-CIi6GdC9.js} +5292 -3634
  13. package/dist/types/App.vue.d.ts +1 -0
  14. package/dist/types/app/StaticRoutePageHost.vue.d.ts +11 -0
  15. package/dist/types/app/loginTenant.d.ts +1 -1
  16. package/dist/types/app/menuRouteCompiler.d.ts +45 -0
  17. package/dist/types/app/menuRouteRuntime.d.ts +24 -0
  18. package/dist/types/app/pageRouteContext.d.ts +24 -0
  19. package/dist/types/app/routeDiagnosticsStore.d.ts +10 -0
  20. package/dist/types/app/router.d.ts +15 -0
  21. package/dist/types/app/staticRouteDefinitions.d.ts +25 -0
  22. package/dist/types/app/workbenchRouteSync.d.ts +1 -1
  23. package/dist/types/app/workbenchStartup.d.ts +9 -5
  24. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +2 -2
  25. package/dist/types/consumer/index.d.ts +7 -4
  26. package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +3 -10
  27. package/dist/types/{views/EmployeeEmploymentDrawer.vue.d.ts → dynamic-page-runtime/DynamicModuleWorkspaceDetailView.vue.d.ts} +3 -7
  28. package/dist/types/dynamic-page-runtime/DynamicRecordDetailActions.vue.d.ts +39 -0
  29. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +40 -0
  30. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +14 -0
  31. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +26 -0
  32. package/dist/types/dynamic-page-runtime/ModulePageFormContributionRenderer.vue.d.ts +12 -0
  33. package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +14 -0
  34. package/dist/types/dynamic-page-runtime/ModulePageListExpansionSurface.vue.d.ts +19 -0
  35. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansion.vue.d.ts +13 -0
  36. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansions.vue.d.ts +16 -0
  37. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +42 -0
  38. package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +41 -0
  39. package/dist/types/dynamic-page-runtime/NavigatorManagementEditor.vue.d.ts +44 -0
  40. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +50 -0
  41. package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +31 -0
  42. package/dist/types/dynamic-page-runtime/composables/useManagedDetailRelationRuntime.d.ts +30 -0
  43. package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +13 -0
  44. package/dist/types/dynamic-page-runtime/composables/useModulePageBootstrap.d.ts +17 -0
  45. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +48 -0
  46. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailExtensionRuntime.d.ts +26 -0
  47. package/dist/types/dynamic-page-runtime/composables/useModulePageFormContributionRuntime.d.ts +22 -0
  48. package/dist/types/dynamic-page-runtime/composables/useModulePageListSession.d.ts +41 -0
  49. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1324 -0
  50. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +22 -0
  51. package/dist/types/dynamic-page-runtime/detailSurfacePreference.d.ts +10 -0
  52. package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +5 -12
  53. package/dist/types/dynamic-page-runtime/formComputeCoordinator.d.ts +18 -0
  54. package/dist/types/dynamic-page-runtime/index.d.ts +4 -2
  55. package/dist/types/dynamic-page-runtime/listPageSizePreference.d.ts +10 -0
  56. package/dist/types/dynamic-page-runtime/moduleDetailStateModel.d.ts +12 -0
  57. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +218 -6
  58. package/dist/types/dynamic-page-runtime/modulePageNavigation.d.ts +1 -1
  59. package/dist/types/dynamic-page-runtime/navigatorVisibility.d.ts +6 -0
  60. package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +6 -0
  61. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +35 -0
  62. package/dist/types/dynamic-page-runtime/relationFormComputeCoordinator.d.ts +9 -0
  63. package/dist/types/formula/FormulaRuntime.d.ts +29 -0
  64. package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +1 -0
  65. package/dist/types/{views/EmployeeDetailWorkspaceView.vue.d.ts → platform-admin-runtime/employee/EmployeeAccountDrawer.vue.d.ts} +2 -1
  66. package/dist/types/platform-admin-runtime/employeeModulePageEnhancement.d.ts +3 -0
  67. package/dist/types/platform-admin-runtime/moduleOpenApi.d.ts +2 -0
  68. package/dist/types/platform-admin-runtime/passwordPolicyPageEnhancement.d.ts +6 -0
  69. package/dist/types/platform-admin-runtime/platformAdminRoutes.d.ts +1 -1
  70. package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +9 -0
  71. package/dist/types/platform-admin-runtime/realtime.d.ts +2 -1
  72. package/dist/types/platform-admin-runtime/tenant/TenantApplicationConfigurationDrawer.vue.d.ts +7 -0
  73. package/dist/types/platform-admin-runtime/tenant/TenantApplicationsDetailSection.vue.d.ts +7 -0
  74. package/dist/types/platform-admin-runtime/tenantModulePageEnhancement.d.ts +7 -0
  75. package/dist/types/platform-admin-runtime/user/UserOnlineStatusCell.vue.d.ts +8 -0
  76. package/dist/types/platform-admin-runtime/user/UserPasswordDrawer.vue.d.ts +7 -0
  77. package/dist/types/platform-admin-runtime/user/UserSessionListExpansion.vue.d.ts +7 -0
  78. package/dist/types/platform-admin-runtime/user/useUserSessionRows.d.ts +23 -0
  79. package/dist/types/platform-admin-runtime/user/userOnlineStatusStore.d.ts +11 -0
  80. package/dist/types/platform-admin-runtime/userModulePageEnhancement.d.ts +7 -0
  81. package/dist/types/platform-components/BusinessNotificationPanel.vue.d.ts +12 -0
  82. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +10 -2
  83. package/dist/types/platform-components/DetailRelationListPanel.vue.d.ts +13 -0
  84. package/dist/types/{views/EmployeeManagementView.vue.d.ts → platform-components/DrawerTitleActions.vue.d.ts} +2 -2
  85. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +7 -0
  86. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +5 -3
  87. package/dist/types/platform-components/ManagementWorkspace.vue.d.ts +8 -2
  88. package/dist/types/platform-components/ModuleActionButton.vue.d.ts +5 -2
  89. package/dist/types/platform-components/RecordActionBar.vue.d.ts +1 -1
  90. package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +17 -0
  91. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +7 -1
  92. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +8 -3
  93. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +5 -0
  94. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +17 -7
  95. package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +15 -5
  96. package/dist/types/platform-components/RecordExpandedSubtable.vue.d.ts +3 -0
  97. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +4 -0
  98. package/dist/types/platform-components/RecordFormFields.vue.d.ts +29 -1
  99. package/dist/types/platform-components/RecordImageFileReferencePreview.vue.d.ts +11 -0
  100. package/dist/types/platform-components/RecordListExpansionSurface.vue.d.ts +13 -0
  101. package/dist/types/platform-components/RecordListExplorer.vue.d.ts +4 -2
  102. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +6 -2
  103. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +12 -2
  104. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +2 -0
  105. package/dist/types/platform-components/RecordPicker.vue.d.ts +10 -2
  106. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +42 -7
  107. package/dist/types/platform-components/RecordRelationTabs.vue.d.ts +14 -0
  108. package/dist/types/platform-components/RecordSelectionCheckbox.vue.d.ts +13 -0
  109. package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +3 -0
  110. package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +21 -7
  111. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +7 -2
  112. package/dist/types/platform-components/UserSessionExpandedSubtable.vue.d.ts +2 -0
  113. package/dist/types/platform-components/drawerTitleActions.d.ts +11 -0
  114. package/dist/types/platform-components/index.d.ts +15 -5
  115. package/dist/types/platform-components/managementWorkspaceLayout.d.ts +14 -0
  116. package/dist/types/platform-components/optionFieldOptionCache.d.ts +3 -0
  117. package/dist/types/platform-components/recordDetailFieldModel.d.ts +2 -0
  118. package/dist/types/platform-components/recordFormFieldModel.d.ts +69 -6
  119. package/dist/types/platform-components/recordPickerConstraints.d.ts +2 -0
  120. package/dist/types/platform-components/recordPickerModel.d.ts +6 -2
  121. package/dist/types/platform-components/recycleBinState.d.ts +2 -0
  122. package/dist/types/platform-components/scopedTreeModuleContext.d.ts +11 -0
  123. package/dist/types/platform-workbench/Workbench.vue.d.ts +2 -2
  124. package/dist/types/platform-workbench/index.d.ts +4 -2
  125. package/dist/types/platform-workbench/legacyPageHostTypeCompatibility.d.ts +6 -0
  126. package/dist/types/platform-workbench/menuNavigation.d.ts +26 -1
  127. package/dist/types/platform-workbench/modulePageWorkspaceViews.d.ts +7 -0
  128. package/dist/types/platform-workbench/pageCacheKey.d.ts +2 -0
  129. package/dist/types/platform-workbench/pageHostRegistry.d.ts +1 -1
  130. package/dist/types/platform-workbench/workbenchLayout.d.ts +36 -0
  131. package/dist/types/platform-workbench/workbenchNavigation.d.ts +16 -1
  132. package/dist/types/platform-workbench/workspaceViewHost.d.ts +2 -0
  133. package/dist/types/views/PasswordPolicyPreview.vue.d.ts +7 -0
  134. package/dist/types/views/RoleAccountGrantDrawer.vue.d.ts +1 -0
  135. package/dist/types/views/RoleAuthorizationView.vue.d.ts +2 -0
  136. package/dist/types/views/RoleEmploymentGrantDrawer.vue.d.ts +1 -0
  137. package/dist/types/views/{UserDetailWorkspaceView.vue.d.ts → UserDetailRouteView.vue.d.ts} +3 -2
  138. package/dist/types/views/UserManagementView.vue.d.ts +1 -6
  139. package/dist/types/views/menuManagementState.d.ts +2 -0
  140. package/dist/types/views/userDetailStateModel.d.ts +1 -3
  141. package/dist/types/views/userManagementRouteState.d.ts +11 -0
  142. package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +4 -1
  143. package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +1 -1
  144. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  145. package/dist/types/vue-ui-antdv/components/UiInput.vue.d.ts +2 -1
  146. package/dist/types/vue-ui-antdv/components/UiModal.vue.d.ts +1 -1
  147. package/dist/types/vue-ui-antdv/components/UiRadioGroup.vue.d.ts +18 -0
  148. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +2 -2
  149. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +1 -1
  150. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +4 -2
  151. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +7 -1
  152. package/dist/types/vue-ui-antdv/index.d.ts +5 -2
  153. package/dist/types/web-contracts/index.d.ts +408 -24
  154. package/dist/types/web-core/businessNotifications.d.ts +4 -0
  155. package/dist/types/web-core/index.d.ts +2 -0
  156. package/dist/types/web-core/module/abilities.d.ts +7 -7
  157. package/dist/types/web-core/module/moduleContext.d.ts +6 -3
  158. package/dist/types/web-core/module/runtimeContext.d.ts +5 -1
  159. package/dist/types/web-core/module/staticModuleClient.d.ts +42 -9
  160. package/dist/types/web-core/realtime.d.ts +5 -1
  161. package/dist/types/web-core/referenceResolveClient.d.ts +11 -0
  162. package/dist/workspaceViewSessions-B5g4M0rT.js +51 -0
  163. package/dist/workspaceViews-CkERhK0K.js +8748 -0
  164. package/package.json +1 -1
  165. package/dist/EmployeeDetailWorkspaceView-DYJLlkSz.js +0 -14
  166. package/dist/EmployeeManagementView-taxWUa7g.js +0 -1778
  167. package/dist/RoleAuthorizationView-q_6CsBYq.js +0 -592
  168. package/dist/RoleManagementView-HCa9rH0f.js +0 -1927
  169. package/dist/SystemUserManagementView-C1CkKivH.js +0 -758
  170. package/dist/UserDetailWorkspaceView-OPYvD6mH.js +0 -17
  171. package/dist/UserManagementView-gbCL9SnC.js +0 -965
  172. package/dist/pageRealtime-CzJlr9hs.js +0 -225
  173. package/dist/types/views/EmployeeDetailContent.vue.d.ts +0 -64
  174. package/dist/types/views/PositionManagementView.vue.d.ts +0 -3
  175. package/dist/types/views/TenantManagementView.vue.d.ts +0 -3
  176. package/dist/types/views/applicationManagementState.d.ts +0 -64
  177. package/dist/types/views/departmentManagementState.d.ts +0 -137
  178. package/dist/types/views/employeeDetailStateModel.d.ts +0 -39
  179. package/dist/types/views/employeeDetailWorkspaceSession.d.ts +0 -16
  180. package/dist/types/views/employeeDetailWorkspaceView.d.ts +0 -4
  181. package/dist/types/views/fieldSpecManagementState.d.ts +0 -80
  182. package/dist/types/views/fieldUiControlManagementState.d.ts +0 -76
  183. package/dist/types/views/moduleManagementState.d.ts +0 -76
  184. package/dist/types/views/organizationManagementState.d.ts +0 -64
  185. package/dist/types/views/positionManagementState.d.ts +0 -218
  186. package/dist/types/views/tenantManagementState.d.ts +0 -74
  187. package/dist/types/views/useEmployeeEmploymentRows.d.ts +0 -20
  188. package/dist/types/views/userDetailWorkspaceSession.d.ts +0 -14
  189. package/dist/types/views/userDetailWorkspaceView.d.ts +0 -4
  190. package/dist/useUserSessionRows-CBHEzRFQ.js +0 -128
  191. package/dist/workspaceViewSessions-DkB9myrq.js +0 -3252
  192. /package/dist/types/views/{ApplicationManagementView.vue.d.ts → DynamicModuleRouteView.vue.d.ts} +0 -0
  193. /package/dist/types/views/{DepartmentManagementView.vue.d.ts → ExternalRouteView.vue.d.ts} +0 -0
  194. /package/dist/types/views/{FieldSpecManagementView.vue.d.ts → ModuleOpenApiRouteView.vue.d.ts} +0 -0
  195. /package/dist/types/views/{FieldUiControlManagementView.vue.d.ts → OpenApiCatalogRouteView.vue.d.ts} +0 -0
  196. /package/dist/types/views/{ModuleManagementView.vue.d.ts → RouteDiagnosticsView.vue.d.ts} +0 -0
  197. /package/dist/types/views/{OrganizationManagementView.vue.d.ts → UserManagementListView.vue.d.ts} +0 -0
  198. /package/dist/types/views/{PasswordManagementView.vue.d.ts → WorkspaceRouteView.vue.d.ts} +0 -0
@@ -5,6 +5,7 @@ type __VLS_Props = {
5
5
  loading?: boolean;
6
6
  danger?: boolean;
7
7
  title?: string;
8
+ ariaLabel?: string;
8
9
  iconName?: UiIconName;
9
10
  };
10
11
  declare var __VLS_10: {};
@@ -21,6 +22,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
21
22
  danger: boolean;
22
23
  disabled: boolean;
23
24
  loading: boolean;
25
+ ariaLabel: string;
24
26
  iconName: UiIconName;
25
27
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
28
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,10 +1,15 @@
1
1
  import { type ModuleContext } from '../web-core/index';
2
+ import type { WebTreeNode } from '../web-contracts/index';
2
3
  import { type PickerConstraint, type RecordPickerRecord } from './recordPickerConstraints';
4
+ import { type RecordPickerMode } from './recordPickerModel';
3
5
  type __VLS_Props = {
4
6
  context: ModuleContext<RecordPickerRecord>;
7
+ loadOptions?: (keyword: string) => Promise<RecordPickerRecord[]>;
8
+ loadTree?: () => Promise<WebTreeNode<RecordPickerRecord>[]>;
9
+ resolveOptions?: (values: string[]) => Promise<RecordPickerRecord[]>;
5
10
  value?: string;
6
11
  reloadKey?: number;
7
- mode?: 'list' | 'tree';
12
+ mode?: RecordPickerMode;
8
13
  placeholder?: string;
9
14
  disabled?: boolean;
10
15
  allowClear?: boolean;
@@ -20,14 +25,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
20
25
  onSelect?: ((record: RecordPickerRecord | undefined) => any) | undefined;
21
26
  "onUpdate:value"?: ((value: string | undefined) => any) | undefined;
22
27
  }>, {
28
+ mode: RecordPickerMode;
23
29
  disabled: boolean;
24
30
  value: string;
25
31
  placeholder: string;
26
32
  allowClear: boolean;
27
- mode: "list" | "tree";
28
33
  filterOption: (record: RecordPickerRecord, keyword: string) => boolean;
29
34
  titleOf: (record: RecordPickerRecord) => string;
30
35
  reloadKey: number;
36
+ loadOptions: (keyword: string) => Promise<RecordPickerRecord[]>;
37
+ loadTree: () => Promise<WebTreeNode<RecordPickerRecord>[]>;
38
+ resolveOptions: (values: string[]) => Promise<RecordPickerRecord[]>;
31
39
  constraints: PickerConstraint<RecordPickerRecord>[];
32
40
  descriptionOf: (record: RecordPickerRecord) => string | undefined;
33
41
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,5 +1,5 @@
1
1
  import { type Component } from 'vue';
2
- import type { ResolvedViewFieldDescriptor } from '../web-contracts/index';
2
+ import type { QuerySchema, ResolvedViewFieldDescriptor } from '../web-contracts/index';
3
3
  import { type ModuleContext } from '../web-core/index';
4
4
  import { type RecordActionItem, type ResolvedRecordActionItem } from './recordActionBarModel';
5
5
  export type QueryListRecord = Record<string, unknown> & {
@@ -7,6 +7,7 @@ export type QueryListRecord = Record<string, unknown> & {
7
7
  enabled?: boolean;
8
8
  };
9
9
  export type RecordQueryListMode = 'normal' | 'recycleBin';
10
+ export type StandardCrudRowActionKey = 'view' | 'edit' | 'delete';
10
11
  export interface RecordQueryListColumn {
11
12
  key: string;
12
13
  title: string;
@@ -39,10 +40,16 @@ type __VLS_Props = {
39
40
  batchActions?: RecordActionItem[];
40
41
  standardCrudActions?: boolean;
41
42
  standardCrudRowActions?: boolean;
43
+ /** Limits built-in row operations without replacing the platform list interaction. */
44
+ standardCrudRowActionKeys?: StandardCrudRowActionKey[];
45
+ /** Optional authorization-code overrides for platform built-in row operations. */
46
+ standardCrudRowActionCodes?: Partial<Record<StandardCrudRowActionKey, string>>;
42
47
  rowActionsOf?: (record: QueryListRecord) => RecordActionItem[];
43
48
  extraRowActionsOf?: (record: QueryListRecord) => RecordActionItem[];
44
49
  rowActionStateOf?: (record: QueryListRecord, action: RecordActionItem) => Partial<RecordActionItem> | undefined;
45
50
  rowActionsTitle?: string;
51
+ /** Allows an embedding lifecycle to suppress an otherwise-declared row action slot. */
52
+ rowActionsVisible?: boolean;
46
53
  /** Width of the fixed right-side action column. Defaults to the platform compact width. */
47
54
  actionColumnWidth?: string | number;
48
55
  cellRenderers?: Record<string, (record: QueryListRecord) => string>;
@@ -51,9 +58,24 @@ type __VLS_Props = {
51
58
  expandedRowKeys?: string[];
52
59
  reloadKey?: number;
53
60
  refreshTitle?: string;
61
+ /** Embedded section hosts may own the visible heading while this panel keeps an icon-only refresh. */
62
+ showTitle?: boolean;
63
+ /** Lets a parent lifecycle suppress the complete operation toolbar in read mode. */
64
+ headerVisible?: boolean;
65
+ /** Recycle-bin navigation is operational chrome and may be hidden by an embedding lifecycle. */
66
+ showRecycleBin?: boolean;
67
+ /** Removes the standalone card shell when a section already owns the visual boundary. */
68
+ embedded?: boolean;
54
69
  pageSize?: number;
70
+ pageSizeOptions?: number[];
55
71
  uiConfigId?: string;
56
72
  queryTemplateId?: string;
73
+ /** A source-owned query schema avoids forcing embedded relation lists through target-module access. */
74
+ querySchema?: QuerySchema;
75
+ /** Read-only relation runners may deliberately suppress ad-hoc query controls. */
76
+ queryable?: boolean;
77
+ /** A relation query can intentionally be a bounded, non-pageable result. */
78
+ pageable?: boolean;
57
79
  ready?: boolean;
58
80
  externalQueryValues?: Record<string, unknown>;
59
81
  /** Descriptor-owned external criteria that must be exposed by the query schema. */
@@ -85,8 +107,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
85
107
  clearSelection: typeof clearSelection;
86
108
  refresh: typeof refresh;
87
109
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
88
- select: (record: QueryListRecord) => any;
89
110
  action: (action: RecordActionItem, event: MouseEvent) => any;
111
+ select: (record: QueryListRecord) => any;
90
112
  rowDblclick: (record: QueryListRecord, event: MouseEvent) => any;
91
113
  rowExpand: (record: QueryListRecord, expanded: boolean) => any;
92
114
  loaded: (records: QueryListRecord[]) => any;
@@ -94,9 +116,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
94
116
  batchAction: (action: RecordActionItem, records: QueryListRecord[], event: MouseEvent, clearSelection: () => void) => any;
95
117
  rowAction: (action: ResolvedRecordActionItem, record: QueryListRecord, event?: MouseEvent | undefined) => any;
96
118
  modeChange: (mode: RecordQueryListMode) => any;
119
+ pageSizeChange: (pageSize: number) => any;
97
120
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
98
- onSelect?: ((record: QueryListRecord) => any) | undefined;
99
121
  onAction?: ((action: RecordActionItem, event: MouseEvent) => any) | undefined;
122
+ onSelect?: ((record: QueryListRecord) => any) | undefined;
100
123
  onRowDblclick?: ((record: QueryListRecord, event: MouseEvent) => any) | undefined;
101
124
  onRowExpand?: ((record: QueryListRecord, expanded: boolean) => any) | undefined;
102
125
  onLoaded?: ((records: QueryListRecord[]) => any) | undefined;
@@ -104,9 +127,11 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
104
127
  onBatchAction?: ((action: RecordActionItem, records: QueryListRecord[], event: MouseEvent, clearSelection: () => void) => any) | undefined;
105
128
  onRowAction?: ((action: ResolvedRecordActionItem, record: QueryListRecord, event?: MouseEvent | undefined) => any) | undefined;
106
129
  onModeChange?: ((mode: RecordQueryListMode) => any) | undefined;
130
+ onPageSizeChange?: ((pageSize: number) => any) | undefined;
107
131
  }>, {
108
- actions: RecordActionItem[];
132
+ uiConfigId: string;
109
133
  mode: RecordQueryListMode;
134
+ actions: RecordActionItem[];
110
135
  selectedKey: string;
111
136
  columns: RecordQueryListColumn[];
112
137
  rowKey: string;
@@ -114,11 +139,11 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
114
139
  actionColumnWidth: string | number;
115
140
  emptyDescription: string;
116
141
  pageSize: number;
117
- uiConfigId: string;
142
+ pageSizeOptions: number[];
118
143
  queryTemplateId: string;
119
144
  reloadKey: number;
145
+ externalQueryValues: Record<string, unknown>;
120
146
  ready: boolean;
121
- refreshTitle: string;
122
147
  additionalColumns: Array<RecordQueryListColumn & {
123
148
  before?: string;
124
149
  after?: string;
@@ -128,12 +153,22 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
128
153
  batchActions: RecordActionItem[];
129
154
  standardCrudActions: boolean;
130
155
  standardCrudRowActions: boolean;
156
+ standardCrudRowActionKeys: StandardCrudRowActionKey[];
157
+ standardCrudRowActionCodes: Partial<Record<StandardCrudRowActionKey, string>>;
131
158
  rowActionsOf: (record: QueryListRecord) => RecordActionItem[];
132
159
  extraRowActionsOf: (record: QueryListRecord) => RecordActionItem[];
133
160
  rowActionStateOf: (record: QueryListRecord, action: RecordActionItem) => Partial<RecordActionItem> | undefined;
134
161
  rowActionsTitle: string;
162
+ rowActionsVisible: boolean;
135
163
  cellRenderers: Record<string, (record: QueryListRecord) => string>;
136
- externalQueryValues: Record<string, unknown>;
164
+ refreshTitle: string;
165
+ showTitle: boolean;
166
+ headerVisible: boolean;
167
+ showRecycleBin: boolean;
168
+ embedded: boolean;
169
+ querySchema: QuerySchema;
170
+ queryable: boolean;
171
+ pageable: boolean;
137
172
  requiredExternalCriteriaKeys: string[];
138
173
  quickSearchPlaceholder: string;
139
174
  waitingDescription: string;
@@ -0,0 +1,14 @@
1
+ type __VLS_Props = {
2
+ tabs: Array<{
3
+ key: string;
4
+ title: string;
5
+ }>;
6
+ activeKey?: string;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ "update:activeKey": (key: string) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ "onUpdate:activeKey"?: ((key: string) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,13 @@
1
+ type __VLS_Props = {
2
+ checked?: boolean;
3
+ indeterminate?: boolean;
4
+ disabled?: boolean;
5
+ ariaLabel?: string;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ "update:checked": (checked: boolean) => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ "onUpdate:checked"?: ((checked: boolean) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -1,6 +1,8 @@
1
1
  type __VLS_Props = {
2
2
  enabled?: boolean;
3
3
  disabled?: boolean;
4
+ /** Explains why this otherwise visible status control is unavailable. */
5
+ disabledReason?: string;
4
6
  loading?: boolean;
5
7
  showLabel?: boolean;
6
8
  };
@@ -12,6 +14,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
12
14
  enabled: boolean;
13
15
  disabled: boolean;
14
16
  loading: boolean;
17
+ disabledReason: string;
15
18
  showLabel: boolean;
16
19
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
20
  declare const _default: typeof __VLS_export;
@@ -7,20 +7,33 @@ type __VLS_Props = {
7
7
  explorerSearchKeyword?: string;
8
8
  explorerSearchPlaceholder?: string;
9
9
  explorerSearchable?: boolean;
10
+ navigatorCount?: number;
10
11
  };
11
- declare var __VLS_24: {}, __VLS_26: {}, __VLS_29: {}, __VLS_38: {}, __VLS_41: {}, __VLS_43: {};
12
+ declare var __VLS_14: {
13
+ index: number;
14
+ }, __VLS_32: {}, __VLS_34: {}, __VLS_37: {}, __VLS_46: {}, __VLS_49: {}, __VLS_52: {}, __VLS_55: {}, __VLS_57: {}, __VLS_60: {}, __VLS_63: {};
12
15
  type __VLS_Slots = {} & {
13
- 'explorer-actions'?: (props: typeof __VLS_24) => any;
16
+ navigator?: (props: typeof __VLS_14) => any;
14
17
  } & {
15
- explorer?: (props: typeof __VLS_26) => any;
18
+ 'explorer-actions'?: (props: typeof __VLS_32) => any;
16
19
  } & {
17
- 'explorer-footer'?: (props: typeof __VLS_29) => any;
20
+ explorer?: (props: typeof __VLS_34) => any;
18
21
  } & {
19
- 'detail-status'?: (props: typeof __VLS_38) => any;
22
+ 'explorer-footer'?: (props: typeof __VLS_37) => any;
20
23
  } & {
21
- 'detail-actions'?: (props: typeof __VLS_41) => any;
24
+ 'detail-outside-top'?: (props: typeof __VLS_46) => any;
22
25
  } & {
23
- default?: (props: typeof __VLS_43) => any;
26
+ 'detail-status'?: (props: typeof __VLS_49) => any;
27
+ } & {
28
+ 'detail-actions'?: (props: typeof __VLS_52) => any;
29
+ } & {
30
+ 'detail-content-top'?: (props: typeof __VLS_55) => any;
31
+ } & {
32
+ default?: (props: typeof __VLS_57) => any;
33
+ } & {
34
+ 'detail-content-bottom'?: (props: typeof __VLS_60) => any;
35
+ } & {
36
+ 'detail-outside-bottom'?: (props: typeof __VLS_63) => any;
24
37
  };
25
38
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
26
39
  refresh: () => any;
@@ -33,6 +46,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
33
46
  explorerSearchKeyword: string;
34
47
  explorerSearchPlaceholder: string;
35
48
  explorerSearchable: boolean;
49
+ navigatorCount: number;
36
50
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
51
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
52
  declare const _default: typeof __VLS_export;
@@ -7,6 +7,8 @@ type __VLS_Props = {
7
7
  context: ModuleContext<TreeRecordBase>;
8
8
  selectedId?: string;
9
9
  reloadKey?: number;
10
+ /** Descriptor-owned criteria from upstream navigator levels. */
11
+ externalQueryValues?: Record<string, unknown>;
10
12
  keyword?: string;
11
13
  searchMode?: TreeRecordSearchMode;
12
14
  searchTrigger?: 'inline' | 'external';
@@ -28,12 +30,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
28
30
  openSearch: typeof openSearch;
29
31
  toggleSearch: typeof toggleSearch;
30
32
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
31
- select: (record: TreeRecordBase) => any;
32
33
  action: (action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any;
34
+ select: (record: TreeRecordBase) => any;
35
+ deselect: () => any;
33
36
  loaded: (records: TreeRecordBase[]) => any;
34
37
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
35
- onSelect?: ((record: TreeRecordBase) => any) | undefined;
36
38
  onAction?: ((action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any) | undefined;
39
+ onSelect?: ((record: TreeRecordBase) => any) | undefined;
40
+ onDeselect?: (() => any) | undefined;
37
41
  onLoaded?: ((records: TreeRecordBase[]) => any) | undefined;
38
42
  }>, {
39
43
  filterOption: (record: TreeRecordBase, normalizedKeyword: string) => boolean;
@@ -47,6 +51,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
47
51
  tagOf: (record: TreeRecordBase) => string | undefined;
48
52
  mutedOf: (record: TreeRecordBase) => boolean;
49
53
  reloadKey: number;
54
+ externalQueryValues: Record<string, unknown>;
50
55
  loadingTip: string;
51
56
  fallbackTitle: string;
52
57
  searchMode: TreeRecordSearchMode;
@@ -4,6 +4,7 @@ type __VLS_Props = {
4
4
  loading?: boolean;
5
5
  error?: string;
6
6
  actionsDisabled?: boolean;
7
+ embedded?: boolean;
7
8
  canRevoke?: (session: UserSessionView) => boolean;
8
9
  canRevokeAll?: boolean;
9
10
  };
@@ -18,6 +19,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
18
19
  }>, {
19
20
  loading: boolean;
20
21
  error: string;
22
+ embedded: boolean;
21
23
  actionsDisabled: boolean;
22
24
  canRevoke: (session: UserSessionView) => boolean;
23
25
  canRevokeAll: boolean;
@@ -0,0 +1,11 @@
1
+ /** A business-owned action rendered in the platform drawer title region. */
2
+ export interface DrawerTitleAction {
3
+ key: string;
4
+ label: string;
5
+ title?: string;
6
+ emphasis?: 'primary' | 'secondary' | 'quiet';
7
+ intent?: 'normal' | 'danger';
8
+ disabled?: boolean;
9
+ loading?: boolean;
10
+ run(): void | Promise<void>;
11
+ }
@@ -1,8 +1,12 @@
1
1
  export {};
2
2
  export { default as ApplicationScopeSwitcher } from './ApplicationScopeSwitcher.vue';
3
+ export { default as BusinessNotificationPanel } from './BusinessNotificationPanel.vue';
3
4
  export { confirmAction } from '../vue-ui-antdv/index';
5
+ export { UiModal } from '../vue-ui-antdv/index';
4
6
  export { default as CrudRecordListExplorer } from './CrudRecordListExplorer.vue';
5
7
  export { default as DrawerOperationBar } from './DrawerOperationBar.vue';
8
+ export { default as DrawerTitleActions } from './DrawerTitleActions.vue';
9
+ export type { DrawerTitleAction } from './drawerTitleActions';
6
10
  export { default as DateTimeText } from './DateTimeText.vue';
7
11
  export { default as FileSizeText } from './FileSizeText.vue';
8
12
  export { default as FileTransferUploader } from './FileTransferUploader.vue';
@@ -13,17 +17,23 @@ export { default as EnabledSelect } from './EnabledSelect.vue';
13
17
  export { default as ModuleActionButton } from './ModuleActionButton.vue';
14
18
  export { default as ManagementWorkspace } from './ManagementWorkspace.vue';
15
19
  export { default as ManagementExplorerColumn } from './ManagementExplorerColumn.vue';
20
+ export { MANAGEMENT_WORKSPACE_LAYOUT, listDetailWorkspaceMinWidth } from './managementWorkspaceLayout';
16
21
  export { providePageLayout, usePageLayout } from './pageLayoutContext';
17
22
  export { default as RecordActionBar } from './RecordActionBar.vue';
23
+ export { default as RecordContentSectionHeading } from './RecordContentSectionHeading.vue';
18
24
  export { default as RecordDetailDrawer } from './RecordDetailDrawer.vue';
19
25
  export type { DrawerPromotion } from './drawerPromotion';
20
26
  export { default as RecordExternalChangeNotice } from './RecordExternalChangeNotice.vue';
21
27
  export { default as RecordDetailFields } from './RecordDetailFields.vue';
22
28
  export { default as RecordDetailExtensionSection } from './RecordDetailExtensionSection.vue';
29
+ export { default as RecordRelationTabs } from './RecordRelationTabs.vue';
30
+ export { default as DetailRelationListPanel } from './DetailRelationListPanel.vue';
23
31
  export { default as RecordDetailPanel } from './RecordDetailPanel.vue';
24
32
  export { default as RecordPanelButton } from './RecordPanelButton.vue';
33
+ export { default as RecordSelectionCheckbox } from './RecordSelectionCheckbox.vue';
25
34
  export { default as RecordPanelState } from './RecordPanelState.vue';
26
35
  export { default as RecordExpandedSubtable } from './RecordExpandedSubtable.vue';
36
+ export { default as RecordListExpansionSurface } from './RecordListExpansionSurface.vue';
27
37
  export { default as UserSessionExpandedSubtable } from './UserSessionExpandedSubtable.vue';
28
38
  export { userSessionBrowserTitle, userSessionPresenceDescription, userSessionPresenceTitle, userSessionTerminalTitle, } from './userSessionPresentation';
29
39
  export { default as RecordExplorerPanel } from './RecordExplorerPanel.vue';
@@ -51,13 +61,13 @@ export { default as TreeRecordExplorer } from './TreeRecordExplorer.vue';
51
61
  export { enabledOnly, firstConstraintMessage, notDescendantOf, notRecordIds, parentRecordConstraints, } from './recordPickerConstraints';
52
62
  export { defaultTreeRecordMatches, defaultTreeRecordTitle, expandAllTreeRecords, filterTreeRecords, firstTwoTreeLevels, flattenTreeRecords, } from './treeRecordModel';
53
63
  export type { PickerConstraint, PickerConstraintContext, RecordPickerRecord, } from './recordPickerConstraints';
54
- export { resolveRecordPickerMode } from './recordPickerModel';
64
+ export { recordPickerModeOf, resolveRecordPickerMode } from './recordPickerModel';
55
65
  export type { RecordPickerMode } from './recordPickerModel';
56
66
  export type { RecordActionItem, ResolvedRecordActionItem } from './recordActionBarModel';
57
67
  export type { RecordDetailDisplayResolver, RecordDetailDisplayValue } from './recordDetailFieldModel';
58
68
  export type { RecordListExplorerRecord } from './RecordListExplorer.vue';
59
- export type { QueryListRecord, RecordQueryListCellComponent, RecordQueryListColumn, RecordQueryListMode, } from './RecordQueryListPanel.vue';
60
- export type { RecordFormFieldDescriptor, RecordFormFieldFallback, RecordFormFieldPickerConfig, RecordFormFieldState, RecordFormFieldValue, RecordFormRecord, } from './recordFormFieldModel';
69
+ export type { QueryListRecord, RecordQueryListCellComponent, RecordQueryListColumn, RecordQueryListMode, StandardCrudRowActionKey, } from './RecordQueryListPanel.vue';
70
+ export type { RecordFormFieldDescriptor, RecordFormFieldFallback, RecordFormFieldPickerConfig, RecordFormFieldState, RecordFieldRenderer, RecordFormFieldValue, RecordFormRecord, } from './recordFormFieldModel';
61
71
  export type { CrudRecordListBase } from './crudRecordListModel';
62
72
  export { defaultCrudRecordListMatches, defaultCrudRecordListSubtitle, defaultCrudRecordListTitle, } from './crudRecordListModel';
63
73
  export { resolveRecordActions } from './recordActionBarModel';
@@ -69,8 +79,8 @@ export { formatPlatformFileSize } from './platformFileSize';
69
79
  export type { PlatformFileSizeDisplay, PlatformFileSizeOptions } from './platformFileSize';
70
80
  export { providePlatformTimeZoneContext, usePlatformTimeZoneContext } from './platformTimeZoneContext';
71
81
  export type { PlatformDateTimeDisplay, PlatformDateTimeOptions, PlatformDateTimePrecision, } from './platformDateTime';
72
- export { childResourceDefaultFormViewCode, resolveRecordFormFieldNames, resolveRecordFormFieldState, resolveRecordFormFields, } from './recordFormFieldModel';
73
- export { createScopedTreeClient, createScopedTreeModuleContext } from './scopedTreeModuleContext';
82
+ export { applyReferenceDependencyClears, childResourceDefaultFormViewCode, resolveRecordDetailFields, resolveRecordFormFieldNames, resolveRecordBooleanStatusValue, resolveRecordFormFieldState, resolveRecordFormFields, evaluateUiFormula, recordFieldRendererRegistry, } from './recordFormFieldModel';
83
+ export { createQueryScopedTreeModuleContext, createScopedTreeClient, createScopedTreeModuleContext, } from './scopedTreeModuleContext';
74
84
  export { createEmptyStaticTreeClient, createStaticTreeResourceModuleContext, } from './staticTreeResourceModuleContext';
75
85
  export { createScopedResourceTreeModuleContext } from './scopedResourceTreeModuleContext';
76
86
  export { presentPlatformError, presentPlatformMessage, presentPlatformSuccess, } from './platformErrorFeedback';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared geometry for the platform management workspace.
3
+ *
4
+ * Keep responsive promotion independent from each page's DSL: descriptors say
5
+ * whether a page has a detail surface; the runtime decides whether that surface
6
+ * can share the available workspace with its list and navigators.
7
+ */
8
+ export declare const MANAGEMENT_WORKSPACE_LAYOUT: {
9
+ readonly explorerWidth: 280;
10
+ readonly listMinWidth: 720;
11
+ readonly detailMinWidth: 560;
12
+ readonly columnGap: 12;
13
+ };
14
+ export declare function listDetailWorkspaceMinWidth(explorerCount: number): number;
@@ -0,0 +1,3 @@
1
+ import type { OptionItemDescriptor } from '../web-contracts/index';
2
+ import type { ModuleContext } from '../web-core/index';
3
+ export declare function loadOptionFieldItems(context: ModuleContext<unknown>, fieldName: string): Promise<OptionItemDescriptor[]>;
@@ -1,7 +1,9 @@
1
+ import type { OptionItemDescriptor } from '../web-contracts/index';
1
2
  import type { RecordFormFieldState, RecordFormRecord } from './recordFormFieldModel';
2
3
  export type RecordDetailDisplayValue = string | number | boolean | undefined | null;
3
4
  export type RecordDetailDisplayResolver = (fieldName: string, value: unknown, record: RecordFormRecord, field: RecordFormFieldState) => RecordDetailDisplayValue;
4
5
  export declare function resolveRecordDetailDisplayValue(field: RecordFormFieldState, record: RecordFormRecord, options?: {
5
6
  displayOf?: RecordDetailDisplayResolver;
6
7
  emptyText?: string;
8
+ optionItems?: OptionItemDescriptor[];
7
9
  }): string;
@@ -1,17 +1,47 @@
1
- import type { Option, OptionValueList, ResolvedReferenceFieldDescriptor, BooleanStatusPresentation, ResolvedOptionFieldDescriptor, ResolvedFileReferenceFieldDescriptor, ResolvedModuleUiDescriptor, ResolvedViewFieldDescriptor, FieldValuePresentation, FormGroupDescriptor, UiFormula, ViewFieldDefinition } from '../web-contracts/index';
1
+ import type { Option, OptionValueList, ResolvedReferenceFieldDescriptor, BooleanStatusPresentation, ResolvedOptionFieldDescriptor, ResolvedFileReferenceFieldDescriptor, ResolvedFieldControlDescriptor, ResolvedModuleUiDescriptor, ResolvedViewFieldDescriptor, ViewFieldValueType, FieldValuePresentation, FormGroupDescriptor, UiFormula, ViewFieldDefinition } from '../web-contracts/index';
2
2
  import type { ModuleContext } from '../web-core/index';
3
3
  import type { PickerConstraint, RecordPickerRecord } from './recordPickerConstraints';
4
+ import type { WebTreeNode } from '../web-contracts/index';
5
+ import type { RecordPickerMode } from './recordPickerModel';
4
6
  export type RecordFormFieldDescriptor = (ViewFieldDefinition | ResolvedViewFieldDescriptor) & {
7
+ /** Optional during the protocol migration; resolved descriptors take precedence over legacy uiType. */
8
+ fieldControl?: ResolvedFieldControlDescriptor;
5
9
  option?: ResolvedOptionFieldDescriptor;
6
10
  reference?: ResolvedReferenceFieldDescriptor;
7
11
  fileReference?: ResolvedFileReferenceFieldDescriptor;
8
12
  formGroup?: FormGroupDescriptor;
13
+ /** Published storage type; resolved descriptors use it to select a lossless editor codec. */
14
+ valueType?: ViewFieldValueType;
9
15
  };
10
16
  export type RecordFormRecord = Record<string, unknown>;
11
- export type RecordFormFieldValue = string | number | boolean | OptionValueList | string[] | undefined;
17
+ /**
18
+ * Applies the platform-owned consequence of changing a reference dependency.
19
+ * The owner of a draft record calls this after accepting a field edit, so the
20
+ * behavior is identical for regular forms and one-cell-at-a-time child grids.
21
+ */
22
+ export declare function applyReferenceDependencyClears(record: RecordFormRecord, fieldName: string, value: RecordFormFieldValue, fields: Map<string, RecordFormFieldDescriptor> | undefined): RecordFormRecord;
23
+ /**
24
+ * Transport values emitted by the standard editor. JSON is deliberately represented as parsed
25
+ * objects/arrays rather than a display string, so dynamic records retain their JSON column
26
+ * semantics all the way to the HTTP request.
27
+ */
28
+ export type RecordFormFieldValue = string | number | boolean | OptionValueList | string[] | JsonValue | undefined;
29
+ export type JsonValue = null | boolean | number | string | JsonValue[] | {
30
+ [key: string]: JsonValue;
31
+ };
12
32
  /** A business boolean does not inherit the lifecycle field's implicit enabled default. */
13
33
  export type RecordBooleanStatusValue = boolean | undefined;
14
- export type RecordFormFieldControlType = 'input' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'fileTransfer' | 'imageFileTransfer';
34
+ export type RecordFormFieldControlType = 'input' | 'numberInput' | 'dateInput' | 'dateTimeInput' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'fileTransfer' | 'imageFileTransfer' | 'unsupported';
35
+ export interface RecordFieldRenderer {
36
+ rendererType: string;
37
+ controlType: Exclude<RecordFormFieldControlType, 'unsupported'>;
38
+ supports: (field: RecordFormFieldDescriptor) => boolean;
39
+ }
40
+ /**
41
+ * The standard-form renderer catalog maps platform semantics to local form facades. It intentionally
42
+ * contains no UI-adapter component names, so a descriptor cannot choose arbitrary client code.
43
+ */
44
+ export declare const recordFieldRendererRegistry: readonly RecordFieldRenderer[];
15
45
  export interface RecordFormFieldFallback {
16
46
  label: string;
17
47
  required?: boolean;
@@ -25,8 +55,11 @@ export interface RecordFormFieldFallback {
25
55
  }
26
56
  export interface RecordFormFieldPickerConfig {
27
57
  context: ModuleContext<RecordPickerRecord>;
58
+ loadOptions?: (keyword: string) => Promise<RecordPickerRecord[]>;
59
+ loadTree?: () => Promise<WebTreeNode<RecordPickerRecord>[]>;
60
+ resolveOptions?: (values: string[]) => Promise<RecordPickerRecord[]>;
28
61
  reloadKey?: number;
29
- mode?: 'list' | 'tree';
62
+ mode?: RecordPickerMode;
30
63
  placeholder?: string;
31
64
  allowClear?: boolean;
32
65
  constraints?: PickerConstraint<RecordPickerRecord>[];
@@ -41,11 +74,22 @@ export interface RecordFormFieldState {
41
74
  readOnly: boolean;
42
75
  visible: boolean;
43
76
  controlType: RecordFormFieldControlType;
77
+ fieldControl?: ResolvedFieldControlDescriptor;
78
+ /**
79
+ * Published storage semantics drive the editor wire codec. In particular LONG and DECIMAL
80
+ * deliberately remain text in the browser so JSON.stringify cannot round enterprise values.
81
+ */
82
+ valueType?: ViewFieldValueType;
83
+ /** Set only when an authoritative field-control descriptor cannot be executed safely. */
84
+ rendererDiagnostic?: string;
44
85
  columnSpan: number;
45
86
  hasOption: boolean;
46
87
  optionSelectionMode?: 'SINGLE' | 'MULTIPLE';
47
88
  optionTitleField?: string;
89
+ optionItems?: import('../web-contracts/index').OptionItemDescriptor[];
48
90
  referenceTitleField?: string;
91
+ /** Title for the standard TreeAbility root sentinel when this field is a tree parent reference. */
92
+ treeRootTitle?: string;
49
93
  fileReference?: ResolvedFileReferenceFieldDescriptor;
50
94
  pickerConfig?: RecordFormFieldPickerConfig;
51
95
  booleanStatus?: BooleanStatusPresentation;
@@ -60,8 +104,15 @@ export interface ResolveRecordFormFieldNamesOptions {
60
104
  exclude?: Iterable<string>;
61
105
  }
62
106
  export declare function resolveRecordFormFieldNames(fields?: Map<string, RecordFormFieldDescriptor>, fallback?: Record<string, RecordFormFieldFallback>, options?: ResolveRecordFormFieldNamesOptions): string[];
63
- export declare function resolveRecordFormFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined, viewCode?: string): Map<string, RecordFormFieldDescriptor>;
64
- export declare function resolveRecordFormGroups(uiDescriptor: ResolvedModuleUiDescriptor | undefined, viewCode?: string): FormGroupDescriptor[];
107
+ export declare function resolveRecordFormFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string, editorSurface?: string): Map<string, RecordFormFieldDescriptor>;
108
+ /**
109
+ * Resolves the read-only page-detail projection. A detail display is deliberately a separate
110
+ * view from the editor: it may expose contextual fields which are write-hidden (for example a
111
+ * navigator-provided scope), while avoiding editor-only controls in the standard detail grid.
112
+ * Pages without an explicit display retain the existing editor-as-display fallback.
113
+ */
114
+ export declare function resolveRecordDetailFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined): Map<string, RecordFormFieldDescriptor>;
115
+ export declare function resolveRecordFormGroups(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string, editorSurface?: string): FormGroupDescriptor[];
65
116
  export declare function childResourceDefaultFormViewCode(resource: string): string;
66
117
  export declare function resolveRecordFormFieldState(fieldName: string, options?: {
67
118
  fields?: Map<string, RecordFormFieldDescriptor>;
@@ -76,3 +127,15 @@ export declare function evaluateUiFormula(formula: UiFormula, record: RecordForm
76
127
  * `enabledStatus` deliberately retains its separate lifecycle default semantics.
77
128
  */
78
129
  export declare function resolveRecordBooleanStatusValue(value: unknown): RecordBooleanStatusValue;
130
+ /**
131
+ * Native number inputs emit text. INTEGER is the only standard numeric field that is safe as a
132
+ * JavaScript number; LONG and DECIMAL use an exact textual wire form and are parsed by the
133
+ * field-aware server deserializer. Do not turn these values into `Number` before JSON encoding.
134
+ */
135
+ export declare function decodeNumberEditorValue(value: string, valueType?: ViewFieldValueType): number | string | undefined;
136
+ /** Converts the canonical UTC-second record value to the browser-local datetime-local value. */
137
+ export declare function formatDateTimeLocalEditorValue(value: unknown): string | undefined;
138
+ /** Converts browser-local datetime-local input to the dynamic-record UTC-second wire contract. */
139
+ export declare function decodeDateTimeLocalEditorValue(value: string): string | undefined;
140
+ export declare function formatJsonEditorValue(value: unknown): string | undefined;
141
+ export declare function decodeJsonEditorValue(value: string): JsonValue | undefined;
@@ -4,6 +4,8 @@ export interface RecordPickerRecord {
4
4
  title?: string;
5
5
  code?: string;
6
6
  enabled?: boolean;
7
+ /** Server-authorized values applied after choosing this candidate. */
8
+ affectPatch?: Record<string, unknown>;
7
9
  }
8
10
  export interface PickerConstraintContext<TRecord extends RecordPickerRecord> {
9
11
  records: TRecord[];
@@ -1,2 +1,6 @@
1
- export type RecordPickerMode = 'list' | 'tree';
2
- export declare function resolveRecordPickerMode(mode: RecordPickerMode, treeAvailable: boolean): RecordPickerMode;
1
+ import type { ReferencePickerMode } from '../web-contracts/index';
2
+ export type RecordPickerMode = 'list' | 'tree' | 'auto';
3
+ export type ResolvedRecordPickerMode = Exclude<RecordPickerMode, 'auto'>;
4
+ export declare function resolveRecordPickerMode(mode: RecordPickerMode, treeAvailable: boolean): ResolvedRecordPickerMode;
5
+ /** AUTO preserves the legacy capability-based choice for descriptors without an explicit picker mode. */
6
+ export declare function recordPickerModeOf(mode?: ReferencePickerMode): RecordPickerMode;
@@ -7,6 +7,8 @@ export interface RecycleBinStateOptions<TRecord> {
7
7
  /** 外部刷新信号,变化时重新加载列表 */
8
8
  reloadKey?: Ref<number>;
9
9
  }
10
+ /** Turns lifecycle facts from the platform into concise operator-facing guidance. */
11
+ export declare function recycleBinRestoreUnavailableReason(item: RecycleBinItem<unknown>): string | undefined;
10
12
  export declare function useRecycleBinState<TRecord>(options: RecycleBinStateOptions<TRecord>): {
11
13
  items: Ref<{
12
14
  record: import("vue").UnwrapRef<TRecord>;
@@ -1,3 +1,4 @@
1
+ import type { RouteQueryValue } from '../web-contracts/index';
1
2
  import type { ModuleContext, StaticModuleTreeClient } from '../web-core/index';
2
3
  export interface ScopedTreeModuleContextOptions {
3
4
  scopeFieldName: string;
@@ -6,5 +7,15 @@ export interface ScopedTreeModuleContextOptions {
6
7
  sortPath?: string;
7
8
  treeQueryParam?: string;
8
9
  }
10
+ /**
11
+ * Gives a tree client declared page-context criteria. An empty context is deliberately fail-closed:
12
+ * a dependent picker must not expose records from an unselected business scope.
13
+ */
14
+ export interface QueryScopedTreeModuleContextOptions {
15
+ queryValues: Record<string, RouteQueryValue> | undefined | (() => Record<string, RouteQueryValue> | undefined);
16
+ treePath: string;
17
+ sortPath?: string;
18
+ }
19
+ export declare function createQueryScopedTreeModuleContext<TRecord>(context: ModuleContext<TRecord>, options: QueryScopedTreeModuleContextOptions): ModuleContext<TRecord>;
9
20
  export declare function createScopedTreeModuleContext<TRecord>(context: ModuleContext<TRecord>, options: ScopedTreeModuleContextOptions): ModuleContext<TRecord>;
10
21
  export declare function createScopedTreeClient<TRecord>(context: ModuleContext<TRecord>, options: ScopedTreeModuleContextOptions): StaticModuleTreeClient<TRecord>;
@@ -9,13 +9,13 @@ type __VLS_Props = {
9
9
  realtimeStatus?: WorkbenchRealtimeStatus;
10
10
  themeAppearance?: 'light' | 'dark';
11
11
  };
12
- declare var __VLS_88: {
12
+ declare var __VLS_80: {
13
13
  activeTab: MenuTab;
14
14
  target: MenuNavigationTarget | undefined;
15
15
  pageDescriptor: PageDescriptor | undefined;
16
16
  };
17
17
  type __VLS_Slots = {} & {
18
- default?: (props: typeof __VLS_88) => any;
18
+ default?: (props: typeof __VLS_80) => any;
19
19
  };
20
20
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
21
  closeTabs: (keys: string[]) => any;