@ximatai/muyun-web-app 0.26.8 → 0.26.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/{MetadataOrchestrationView-DKYVGMzy.js → MetadataOrchestrationView-BhtVwJII.js} +210 -204
  2. package/dist/{ModuleActionManagementView-DiVzuPdu.js → ModuleActionManagementView-DpZS-xAD.js} +74 -74
  3. package/dist/{RoleAuthorizationView-C0s4Bog7.js → RoleAuthorizationView-8lilhtMB.js} +193 -139
  4. package/dist/{RoleDetailWorkspaceView-dqHxKVfd.js → RoleDetailWorkspaceView-CFha6JHn.js} +1 -1
  5. package/dist/{RoleManagementView-D43pUCxi.js → RoleManagementView-0_KDrzgh.js} +572 -550
  6. package/dist/index.css +1 -1
  7. package/dist/index.js +536 -4427
  8. package/dist/{platform-components-CFU_zR7-.js → platform-components-oRIsIoxu.js} +5154 -3608
  9. package/dist/types/App.vue.d.ts +1 -0
  10. package/dist/types/app/StaticRoutePageHost.vue.d.ts +13 -0
  11. package/dist/types/app/loginTenant.d.ts +1 -1
  12. package/dist/types/app/menuRouteCompiler.d.ts +45 -0
  13. package/dist/types/app/menuRouteRuntime.d.ts +24 -0
  14. package/dist/types/app/pageRouteContext.d.ts +24 -0
  15. package/dist/types/app/routeDiagnosticsStore.d.ts +10 -0
  16. package/dist/types/app/router.d.ts +15 -0
  17. package/dist/types/app/staticRouteDefinitions.d.ts +25 -0
  18. package/dist/types/app/workbenchRouteSync.d.ts +1 -1
  19. package/dist/types/app/workbenchStartup.d.ts +3 -3
  20. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +4 -2
  21. package/dist/types/consumer/index.d.ts +5 -3
  22. package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +3 -10
  23. package/dist/types/dynamic-page-runtime/DynamicRecordDetailActions.vue.d.ts +4 -3
  24. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +42 -0
  25. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +15 -0
  26. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +28 -0
  27. package/dist/types/dynamic-page-runtime/ModulePageFormContributionRenderer.vue.d.ts +12 -0
  28. package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +14 -0
  29. package/dist/types/dynamic-page-runtime/ModulePageListExpansionSurface.vue.d.ts +20 -0
  30. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansion.vue.d.ts +14 -0
  31. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansions.vue.d.ts +17 -0
  32. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +44 -0
  33. package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +41 -0
  34. package/dist/types/dynamic-page-runtime/NavigatorManagementEditor.vue.d.ts +20 -1
  35. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +17 -5
  36. package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +31 -0
  37. package/dist/types/dynamic-page-runtime/composables/useManagedDetailRelationRuntime.d.ts +30 -0
  38. package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +13 -0
  39. package/dist/types/dynamic-page-runtime/composables/useModulePageBootstrap.d.ts +17 -0
  40. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +48 -0
  41. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailExtensionRuntime.d.ts +28 -0
  42. package/dist/types/dynamic-page-runtime/composables/useModulePageFormContributionRuntime.d.ts +22 -0
  43. package/dist/types/dynamic-page-runtime/composables/useModulePageListSession.d.ts +41 -0
  44. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1378 -0
  45. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +23 -0
  46. package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +5 -12
  47. package/dist/types/dynamic-page-runtime/formComputeCoordinator.d.ts +18 -0
  48. package/dist/types/dynamic-page-runtime/index.d.ts +4 -2
  49. package/dist/types/dynamic-page-runtime/listPageSizePreference.d.ts +10 -0
  50. package/dist/types/dynamic-page-runtime/moduleDetailStateModel.d.ts +12 -0
  51. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +215 -9
  52. package/dist/types/dynamic-page-runtime/navigatorEntrySelection.d.ts +18 -0
  53. package/dist/types/dynamic-page-runtime/navigatorVisibility.d.ts +6 -0
  54. package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +10 -2
  55. package/dist/types/dynamic-page-runtime/pageNavigatorItemModel.d.ts +13 -0
  56. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +12 -3
  57. package/dist/types/dynamic-page-runtime/relationFormComputeCoordinator.d.ts +9 -0
  58. package/dist/types/formula/FormulaRuntime.d.ts +29 -0
  59. package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +1 -0
  60. package/dist/types/{views/SystemUserManagementView.vue.d.ts → platform-admin-runtime/employee/EmployeeAccountDrawer.vue.d.ts} +2 -2
  61. package/dist/types/platform-admin-runtime/employeeModulePageEnhancement.d.ts +3 -0
  62. package/dist/types/platform-admin-runtime/index.d.ts +1 -1
  63. package/dist/types/platform-admin-runtime/moduleOpenApi.d.ts +2 -0
  64. package/dist/types/platform-admin-runtime/passwordPolicyPageEnhancement.d.ts +6 -0
  65. package/dist/types/platform-admin-runtime/platformAdminRoutes.d.ts +1 -6
  66. package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +15 -0
  67. package/dist/types/{views/EmployeeManagementView.vue.d.ts → platform-admin-runtime/tenant/TenantApplicationConfigurationDrawer.vue.d.ts} +2 -2
  68. package/dist/types/platform-admin-runtime/tenant/TenantApplicationsDetailSection.vue.d.ts +7 -0
  69. package/dist/types/platform-admin-runtime/tenantModulePageEnhancement.d.ts +7 -0
  70. package/dist/types/platform-admin-runtime/user/UserOnlineStatusCell.vue.d.ts +8 -0
  71. package/dist/types/platform-admin-runtime/user/UserPasswordDrawer.vue.d.ts +7 -0
  72. package/dist/types/platform-admin-runtime/user/UserSessionListExpansion.vue.d.ts +7 -0
  73. package/dist/types/platform-admin-runtime/user/useUserSessionRows.d.ts +23 -0
  74. package/dist/types/platform-admin-runtime/user/userOnlineStatusStore.d.ts +11 -0
  75. package/dist/types/platform-admin-runtime/userModulePageEnhancement.d.ts +7 -0
  76. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +8 -2
  77. package/dist/types/platform-components/DetailRelationListPanel.vue.d.ts +13 -0
  78. package/dist/types/{views/SystemUserDetailWorkspaceView.vue.d.ts → platform-components/DrawerTitleActions.vue.d.ts} +2 -2
  79. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +7 -0
  80. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +2 -0
  81. package/dist/types/platform-components/ModuleActionButton.vue.d.ts +5 -2
  82. package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +17 -0
  83. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +5 -0
  84. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +8 -3
  85. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +5 -0
  86. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +11 -3
  87. package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +14 -6
  88. package/dist/types/platform-components/RecordExpandedSubtable.vue.d.ts +3 -0
  89. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +2 -0
  90. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +4 -0
  91. package/dist/types/platform-components/RecordFormFields.vue.d.ts +29 -1
  92. package/dist/types/platform-components/RecordImageFileReferencePreview.vue.d.ts +11 -0
  93. package/dist/types/platform-components/RecordListExpansionSurface.vue.d.ts +13 -0
  94. package/dist/types/platform-components/RecordListExplorer.vue.d.ts +4 -2
  95. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +4 -1
  96. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +12 -2
  97. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +2 -0
  98. package/dist/types/platform-components/RecordPicker.vue.d.ts +12 -2
  99. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +39 -5
  100. package/dist/types/{views/EmployeeEmploymentDrawer.vue.d.ts → platform-components/RecordRelationTabs.vue.d.ts} +7 -7
  101. package/dist/types/platform-components/RecordSelectionCheckbox.vue.d.ts +13 -0
  102. package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +2 -0
  103. package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +12 -4
  104. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +8 -2
  105. package/dist/types/platform-components/UserSessionExpandedSubtable.vue.d.ts +2 -0
  106. package/dist/types/platform-components/drawerTitleActions.d.ts +11 -0
  107. package/dist/types/platform-components/index.d.ts +11 -5
  108. package/dist/types/platform-components/optionFieldOptionCache.d.ts +3 -0
  109. package/dist/types/platform-components/recordDetailFieldModel.d.ts +2 -0
  110. package/dist/types/platform-components/recordFormFieldModel.d.ts +82 -5
  111. package/dist/types/platform-components/recordPickerConstraints.d.ts +4 -0
  112. package/dist/types/platform-components/recordPickerModel.d.ts +6 -2
  113. package/dist/types/platform-workbench/Workbench.vue.d.ts +4 -2
  114. package/dist/types/platform-workbench/index.d.ts +3 -2
  115. package/dist/types/platform-workbench/legacyPageHostTypeCompatibility.d.ts +6 -0
  116. package/dist/types/platform-workbench/menuNavigation.d.ts +24 -2
  117. package/dist/types/platform-workbench/pageCacheKey.d.ts +2 -0
  118. package/dist/types/platform-workbench/pageHostRegistry.d.ts +1 -1
  119. package/dist/types/platform-workbench/workbenchNavigation.d.ts +14 -1
  120. package/dist/types/views/PasswordPolicyPreview.vue.d.ts +7 -0
  121. package/dist/types/views/RoleAccountGrantDrawer.vue.d.ts +1 -0
  122. package/dist/types/views/RoleAuthorizationView.vue.d.ts +2 -0
  123. package/dist/types/views/RoleEmploymentGrantDrawer.vue.d.ts +1 -0
  124. package/dist/types/views/{EmployeeDetailWorkspaceView.vue.d.ts → UserDetailRouteView.vue.d.ts} +3 -1
  125. package/dist/types/views/UserManagementView.vue.d.ts +1 -6
  126. package/dist/types/views/userDetailStateModel.d.ts +1 -3
  127. package/dist/types/views/userManagementRouteState.d.ts +11 -0
  128. package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +3 -0
  129. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  130. package/dist/types/vue-ui-antdv/components/UiInput.vue.d.ts +2 -1
  131. package/dist/types/vue-ui-antdv/components/UiRadioGroup.vue.d.ts +18 -0
  132. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +2 -2
  133. package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +4 -2
  134. package/dist/types/vue-ui-antdv/components/UiSwitch.vue.d.ts +2 -0
  135. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +4 -2
  136. package/dist/types/vue-ui-antdv/index.d.ts +4 -2
  137. package/dist/types/web-contracts/index.d.ts +375 -14
  138. package/dist/types/web-core/businessNotifications.d.ts +3 -2
  139. package/dist/types/web-core/http.d.ts +6 -0
  140. package/dist/types/web-core/index.d.ts +1 -0
  141. package/dist/types/web-core/module/abilities.d.ts +7 -7
  142. package/dist/types/web-core/module/index.d.ts +1 -1
  143. package/dist/types/web-core/module/moduleContext.d.ts +6 -3
  144. package/dist/types/web-core/module/runtimeContext.d.ts +2 -0
  145. package/dist/types/web-core/module/staticModuleClient.d.ts +42 -10
  146. package/dist/types/web-core/realtime.d.ts +8 -0
  147. package/dist/types/web-core/referenceResolveClient.d.ts +11 -0
  148. package/dist/workspaceViews-D-RiJ64o.js +9078 -0
  149. package/package.json +1 -1
  150. package/dist/EmployeeDetailWorkspaceView-DswEDSxH.js +0 -14
  151. package/dist/EmployeeManagementView-C9STtw08.js +0 -1777
  152. package/dist/SystemUserDetailWorkspaceView-CQ9WeLrR.js +0 -17
  153. package/dist/SystemUserManagementView-D75_ylYk.js +0 -758
  154. package/dist/UserDetailWorkspaceView-BCST01d2.js +0 -17
  155. package/dist/UserManagementView-CcdvDo_y.js +0 -964
  156. package/dist/pageRealtime-EAiGWKEo.js +0 -227
  157. package/dist/types/platform-components/scopedResourceTreeModuleContext.d.ts +0 -6
  158. package/dist/types/views/EmployeeDetailContent.vue.d.ts +0 -64
  159. package/dist/types/views/UserDetailWorkspaceView.vue.d.ts +0 -7
  160. package/dist/types/views/dictionaryManagementState.d.ts +0 -215
  161. package/dist/types/views/employeeDetailStateModel.d.ts +0 -39
  162. package/dist/types/views/employeeDetailWorkspaceSession.d.ts +0 -16
  163. package/dist/types/views/employeeDetailWorkspaceView.d.ts +0 -4
  164. package/dist/types/views/fieldUiControlManagementState.d.ts +0 -76
  165. package/dist/types/views/menuManagementState.d.ts +0 -178
  166. package/dist/types/views/moduleManagementState.d.ts +0 -76
  167. package/dist/types/views/positionManagementState.d.ts +0 -218
  168. package/dist/types/views/systemUserDetailWorkspaceSession.d.ts +0 -12
  169. package/dist/types/views/systemUserDetailWorkspaceView.d.ts +0 -5
  170. package/dist/types/views/tenantManagementState.d.ts +0 -74
  171. package/dist/types/views/useEmployeeEmploymentRows.d.ts +0 -20
  172. package/dist/types/views/userDetailWorkspaceSession.d.ts +0 -14
  173. package/dist/types/views/userDetailWorkspaceView.d.ts +0 -4
  174. package/dist/useUserSessionRows-DCpUZCzN.js +0 -128
  175. package/dist/workspaceViewSessions-Dj1LjdG1.js +0 -4984
  176. /package/dist/types/views/{DictionaryManagementView.vue.d.ts → DynamicModuleRouteView.vue.d.ts} +0 -0
  177. /package/dist/types/views/{FieldUiControlManagementView.vue.d.ts → ExternalRouteView.vue.d.ts} +0 -0
  178. /package/dist/types/views/{MenuManagementView.vue.d.ts → ModuleOpenApiRouteView.vue.d.ts} +0 -0
  179. /package/dist/types/views/{ModuleManagementView.vue.d.ts → OpenApiCatalogRouteView.vue.d.ts} +0 -0
  180. /package/dist/types/views/{PasswordManagementView.vue.d.ts → RouteDiagnosticsView.vue.d.ts} +0 -0
  181. /package/dist/types/views/{PositionManagementView.vue.d.ts → UserManagementListView.vue.d.ts} +0 -0
  182. /package/dist/types/views/{TenantManagementView.vue.d.ts → WorkspaceRouteView.vue.d.ts} +0 -0
@@ -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;
@@ -16,11 +21,13 @@ type __VLS_Props = {
16
21
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
22
  select: (record: RecordPickerRecord | undefined) => any;
18
23
  "update:value": (value: string | undefined) => any;
24
+ "selection-resolved": (record: RecordPickerRecord | undefined) => any;
19
25
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
26
  onSelect?: ((record: RecordPickerRecord | undefined) => any) | undefined;
21
27
  "onUpdate:value"?: ((value: string | undefined) => any) | undefined;
28
+ "onSelection-resolved"?: ((record: RecordPickerRecord | undefined) => any) | undefined;
22
29
  }>, {
23
- mode: "list" | "tree";
30
+ mode: RecordPickerMode;
24
31
  disabled: boolean;
25
32
  value: string;
26
33
  placeholder: string;
@@ -28,6 +35,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
28
35
  filterOption: (record: RecordPickerRecord, keyword: string) => boolean;
29
36
  titleOf: (record: RecordPickerRecord) => string;
30
37
  reloadKey: number;
38
+ loadOptions: (keyword: string) => Promise<RecordPickerRecord[]>;
39
+ loadTree: () => Promise<WebTreeNode<RecordPickerRecord>[]>;
40
+ resolveOptions: (values: string[]) => Promise<RecordPickerRecord[]>;
31
41
  constraints: PickerConstraint<RecordPickerRecord>[];
32
42
  descriptionOf: (record: RecordPickerRecord) => string | undefined;
33
43
  }, {}, {}, {}, 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, ResolvedPageListPersistentQueryControlDescriptor, ResolvedViewFieldDescriptor, ResolvedPageListQuerySummaryDescriptor } 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> & {
@@ -48,6 +48,8 @@ type __VLS_Props = {
48
48
  extraRowActionsOf?: (record: QueryListRecord) => RecordActionItem[];
49
49
  rowActionStateOf?: (record: QueryListRecord, action: RecordActionItem) => Partial<RecordActionItem> | undefined;
50
50
  rowActionsTitle?: string;
51
+ /** Allows an embedding lifecycle to suppress an otherwise-declared row action slot. */
52
+ rowActionsVisible?: boolean;
51
53
  /** Width of the fixed right-side action column. Defaults to the platform compact width. */
52
54
  actionColumnWidth?: string | number;
53
55
  cellRenderers?: Record<string, (record: QueryListRecord) => string>;
@@ -56,11 +58,30 @@ type __VLS_Props = {
56
58
  expandedRowKeys?: string[];
57
59
  reloadKey?: number;
58
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;
59
69
  pageSize?: number;
70
+ pageSizeOptions?: number[];
60
71
  uiConfigId?: string;
61
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;
62
79
  ready?: boolean;
63
80
  externalQueryValues?: Record<string, unknown>;
81
+ /** Descriptor-owned controls rendered after quick search and before advanced filtering. */
82
+ persistentQueryControls?: ResolvedPageListPersistentQueryControlDescriptor[];
83
+ /** Descriptor-owned result-set facts rendered at the left of the list footer. */
84
+ querySummaries?: ResolvedPageListQuerySummaryDescriptor[];
64
85
  /** Descriptor-owned external criteria that must be exposed by the query schema. */
65
86
  requiredExternalCriteriaKeys?: string[];
66
87
  quickSearchPlaceholder?: string;
@@ -90,8 +111,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
90
111
  clearSelection: typeof clearSelection;
91
112
  refresh: typeof refresh;
92
113
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
93
- select: (record: QueryListRecord) => any;
94
114
  action: (action: RecordActionItem, event: MouseEvent) => any;
115
+ select: (record: QueryListRecord) => any;
95
116
  rowDblclick: (record: QueryListRecord, event: MouseEvent) => any;
96
117
  rowExpand: (record: QueryListRecord, expanded: boolean) => any;
97
118
  loaded: (records: QueryListRecord[]) => any;
@@ -99,9 +120,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
99
120
  batchAction: (action: RecordActionItem, records: QueryListRecord[], event: MouseEvent, clearSelection: () => void) => any;
100
121
  rowAction: (action: ResolvedRecordActionItem, record: QueryListRecord, event?: MouseEvent | undefined) => any;
101
122
  modeChange: (mode: RecordQueryListMode) => any;
123
+ pageSizeChange: (pageSize: number) => any;
102
124
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
103
- onSelect?: ((record: QueryListRecord) => any) | undefined;
104
125
  onAction?: ((action: RecordActionItem, event: MouseEvent) => any) | undefined;
126
+ onSelect?: ((record: QueryListRecord) => any) | undefined;
105
127
  onRowDblclick?: ((record: QueryListRecord, event: MouseEvent) => any) | undefined;
106
128
  onRowExpand?: ((record: QueryListRecord, expanded: boolean) => any) | undefined;
107
129
  onLoaded?: ((records: QueryListRecord[]) => any) | undefined;
@@ -109,7 +131,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
109
131
  onBatchAction?: ((action: RecordActionItem, records: QueryListRecord[], event: MouseEvent, clearSelection: () => void) => any) | undefined;
110
132
  onRowAction?: ((action: ResolvedRecordActionItem, record: QueryListRecord, event?: MouseEvent | undefined) => any) | undefined;
111
133
  onModeChange?: ((mode: RecordQueryListMode) => any) | undefined;
134
+ onPageSizeChange?: ((pageSize: number) => any) | undefined;
112
135
  }>, {
136
+ uiConfigId: string;
113
137
  mode: RecordQueryListMode;
114
138
  actions: RecordActionItem[];
115
139
  selectedKey: string;
@@ -119,12 +143,11 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
119
143
  actionColumnWidth: string | number;
120
144
  emptyDescription: string;
121
145
  pageSize: number;
122
- uiConfigId: string;
146
+ pageSizeOptions: number[];
123
147
  queryTemplateId: string;
124
148
  reloadKey: number;
125
149
  externalQueryValues: Record<string, unknown>;
126
150
  ready: boolean;
127
- refreshTitle: string;
128
151
  additionalColumns: Array<RecordQueryListColumn & {
129
152
  before?: string;
130
153
  after?: string;
@@ -140,7 +163,18 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
140
163
  extraRowActionsOf: (record: QueryListRecord) => RecordActionItem[];
141
164
  rowActionStateOf: (record: QueryListRecord, action: RecordActionItem) => Partial<RecordActionItem> | undefined;
142
165
  rowActionsTitle: string;
166
+ rowActionsVisible: boolean;
143
167
  cellRenderers: Record<string, (record: QueryListRecord) => string>;
168
+ refreshTitle: string;
169
+ showTitle: boolean;
170
+ headerVisible: boolean;
171
+ showRecycleBin: boolean;
172
+ embedded: boolean;
173
+ querySchema: QuerySchema;
174
+ queryable: boolean;
175
+ pageable: boolean;
176
+ persistentQueryControls: ResolvedPageListPersistentQueryControlDescriptor[];
177
+ querySummaries: ResolvedPageListQuerySummaryDescriptor[];
144
178
  requiredExternalCriteriaKeys: string[];
145
179
  quickSearchPlaceholder: string;
146
180
  waitingDescription: string;
@@ -1,14 +1,14 @@
1
- import type { Employee } from '../web-contracts/index';
2
1
  type __VLS_Props = {
3
- open: boolean;
4
- employee?: Employee;
2
+ tabs: Array<{
3
+ key: string;
4
+ title: string;
5
+ }>;
6
+ activeKey?: string;
5
7
  };
6
8
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- close: () => any;
8
- saved: (employeeId: string) => any;
9
+ "update:activeKey": (key: string) => any;
9
10
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
- onClose?: (() => any) | undefined;
11
- onSaved?: ((employeeId: string) => any) | undefined;
11
+ "onUpdate:activeKey"?: ((key: string) => any) | undefined;
12
12
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  declare const _default: typeof __VLS_export;
14
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;
@@ -4,6 +4,7 @@ type __VLS_Props = {
4
4
  /** Explains why this otherwise visible status control is unavailable. */
5
5
  disabledReason?: string;
6
6
  loading?: boolean;
7
+ size?: 'default' | 'small';
7
8
  showLabel?: boolean;
8
9
  };
9
10
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -12,6 +13,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
12
13
  onChange?: ((enabled: boolean) => any) | undefined;
13
14
  }>, {
14
15
  enabled: boolean;
16
+ size: "default" | "small";
15
17
  disabled: boolean;
16
18
  loading: boolean;
17
19
  disabledReason: string;
@@ -11,7 +11,7 @@ type __VLS_Props = {
11
11
  };
12
12
  declare var __VLS_14: {
13
13
  index: number;
14
- }, __VLS_32: {}, __VLS_34: {}, __VLS_37: {}, __VLS_46: {}, __VLS_49: {}, __VLS_51: {};
14
+ }, __VLS_32: {}, __VLS_34: {}, __VLS_37: {}, __VLS_46: {}, __VLS_49: {}, __VLS_52: {}, __VLS_55: {}, __VLS_57: {}, __VLS_60: {}, __VLS_63: {};
15
15
  type __VLS_Slots = {} & {
16
16
  navigator?: (props: typeof __VLS_14) => any;
17
17
  } & {
@@ -21,11 +21,19 @@ type __VLS_Slots = {} & {
21
21
  } & {
22
22
  'explorer-footer'?: (props: typeof __VLS_37) => any;
23
23
  } & {
24
- 'detail-status'?: (props: typeof __VLS_46) => any;
24
+ 'detail-outside-top'?: (props: typeof __VLS_46) => any;
25
25
  } & {
26
- 'detail-actions'?: (props: typeof __VLS_49) => any;
26
+ 'detail-status'?: (props: typeof __VLS_49) => any;
27
27
  } & {
28
- default?: (props: typeof __VLS_51) => any;
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;
29
37
  };
30
38
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
31
39
  refresh: () => any;
@@ -9,6 +9,8 @@ type __VLS_Props = {
9
9
  reloadKey?: number;
10
10
  /** Descriptor-owned criteria from upstream navigator levels. */
11
11
  externalQueryValues?: Record<string, unknown>;
12
+ navigatorHostModuleAlias?: string;
13
+ navigatorTargetLevelKey?: string;
12
14
  keyword?: string;
13
15
  searchMode?: TreeRecordSearchMode;
14
16
  searchTrigger?: 'inline' | 'external';
@@ -30,16 +32,20 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
30
32
  openSearch: typeof openSearch;
31
33
  toggleSearch: typeof toggleSearch;
32
34
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
33
- select: (record: TreeRecordBase) => any;
34
35
  action: (action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any;
36
+ select: (record: TreeRecordBase) => any;
37
+ deselect: () => any;
35
38
  loaded: (records: TreeRecordBase[]) => any;
36
39
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
37
- onSelect?: ((record: TreeRecordBase) => any) | undefined;
38
40
  onAction?: ((action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any) | undefined;
41
+ onSelect?: ((record: TreeRecordBase) => any) | undefined;
42
+ onDeselect?: (() => any) | undefined;
39
43
  onLoaded?: ((records: TreeRecordBase[]) => any) | undefined;
40
44
  }>, {
41
45
  filterOption: (record: TreeRecordBase, normalizedKeyword: string) => boolean;
42
46
  emptyDescription: string;
47
+ navigatorHostModuleAlias: string;
48
+ navigatorTargetLevelKey: string;
43
49
  searchPlaceholder: string;
44
50
  selectedId: string;
45
51
  keyword: string;
@@ -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
+ }
@@ -2,8 +2,11 @@ export {};
2
2
  export { default as ApplicationScopeSwitcher } from './ApplicationScopeSwitcher.vue';
3
3
  export { default as BusinessNotificationPanel } from './BusinessNotificationPanel.vue';
4
4
  export { confirmAction } from '../vue-ui-antdv/index';
5
+ export { UiModal } from '../vue-ui-antdv/index';
5
6
  export { default as CrudRecordListExplorer } from './CrudRecordListExplorer.vue';
6
7
  export { default as DrawerOperationBar } from './DrawerOperationBar.vue';
8
+ export { default as DrawerTitleActions } from './DrawerTitleActions.vue';
9
+ export type { DrawerTitleAction } from './drawerTitleActions';
7
10
  export { default as DateTimeText } from './DateTimeText.vue';
8
11
  export { default as FileSizeText } from './FileSizeText.vue';
9
12
  export { default as FileTransferUploader } from './FileTransferUploader.vue';
@@ -17,15 +20,20 @@ export { default as ManagementExplorerColumn } from './ManagementExplorerColumn.
17
20
  export { MANAGEMENT_WORKSPACE_LAYOUT, listDetailWorkspaceMinWidth } from './managementWorkspaceLayout';
18
21
  export { providePageLayout, usePageLayout } from './pageLayoutContext';
19
22
  export { default as RecordActionBar } from './RecordActionBar.vue';
23
+ export { default as RecordContentSectionHeading } from './RecordContentSectionHeading.vue';
20
24
  export { default as RecordDetailDrawer } from './RecordDetailDrawer.vue';
21
25
  export type { DrawerPromotion } from './drawerPromotion';
22
26
  export { default as RecordExternalChangeNotice } from './RecordExternalChangeNotice.vue';
23
27
  export { default as RecordDetailFields } from './RecordDetailFields.vue';
24
28
  export { default as RecordDetailExtensionSection } from './RecordDetailExtensionSection.vue';
29
+ export { default as RecordRelationTabs } from './RecordRelationTabs.vue';
30
+ export { default as DetailRelationListPanel } from './DetailRelationListPanel.vue';
25
31
  export { default as RecordDetailPanel } from './RecordDetailPanel.vue';
26
32
  export { default as RecordPanelButton } from './RecordPanelButton.vue';
33
+ export { default as RecordSelectionCheckbox } from './RecordSelectionCheckbox.vue';
27
34
  export { default as RecordPanelState } from './RecordPanelState.vue';
28
35
  export { default as RecordExpandedSubtable } from './RecordExpandedSubtable.vue';
36
+ export { default as RecordListExpansionSurface } from './RecordListExpansionSurface.vue';
29
37
  export { default as UserSessionExpandedSubtable } from './UserSessionExpandedSubtable.vue';
30
38
  export { userSessionBrowserTitle, userSessionPresenceDescription, userSessionPresenceTitle, userSessionTerminalTitle, } from './userSessionPresentation';
31
39
  export { default as RecordExplorerPanel } from './RecordExplorerPanel.vue';
@@ -53,13 +61,13 @@ export { default as TreeRecordExplorer } from './TreeRecordExplorer.vue';
53
61
  export { enabledOnly, firstConstraintMessage, notDescendantOf, notRecordIds, parentRecordConstraints, } from './recordPickerConstraints';
54
62
  export { defaultTreeRecordMatches, defaultTreeRecordTitle, expandAllTreeRecords, filterTreeRecords, firstTwoTreeLevels, flattenTreeRecords, } from './treeRecordModel';
55
63
  export type { PickerConstraint, PickerConstraintContext, RecordPickerRecord, } from './recordPickerConstraints';
56
- export { resolveRecordPickerMode } from './recordPickerModel';
64
+ export { recordPickerModeOf, resolveRecordPickerMode } from './recordPickerModel';
57
65
  export type { RecordPickerMode } from './recordPickerModel';
58
66
  export type { RecordActionItem, ResolvedRecordActionItem } from './recordActionBarModel';
59
67
  export type { RecordDetailDisplayResolver, RecordDetailDisplayValue } from './recordDetailFieldModel';
60
68
  export type { RecordListExplorerRecord } from './RecordListExplorer.vue';
61
69
  export type { QueryListRecord, RecordQueryListCellComponent, RecordQueryListColumn, RecordQueryListMode, StandardCrudRowActionKey, } from './RecordQueryListPanel.vue';
62
- export type { RecordFormFieldDescriptor, RecordFormFieldFallback, RecordFormFieldPickerConfig, RecordFormFieldState, RecordFormFieldValue, RecordFormRecord, } from './recordFormFieldModel';
70
+ export type { RecordFormFieldDescriptor, RecordFormFieldFallback, RecordFormFieldPickerConfig, RecordFormFieldState, RecordFieldRenderer, RecordFormFieldValue, RecordFormRecord, } from './recordFormFieldModel';
63
71
  export type { CrudRecordListBase } from './crudRecordListModel';
64
72
  export { defaultCrudRecordListMatches, defaultCrudRecordListSubtitle, defaultCrudRecordListTitle, } from './crudRecordListModel';
65
73
  export { resolveRecordActions } from './recordActionBarModel';
@@ -71,10 +79,9 @@ export { formatPlatformFileSize } from './platformFileSize';
71
79
  export type { PlatformFileSizeDisplay, PlatformFileSizeOptions } from './platformFileSize';
72
80
  export { providePlatformTimeZoneContext, usePlatformTimeZoneContext } from './platformTimeZoneContext';
73
81
  export type { PlatformDateTimeDisplay, PlatformDateTimeOptions, PlatformDateTimePrecision, } from './platformDateTime';
74
- export { childResourceDefaultFormViewCode, resolveRecordFormFieldNames, resolveRecordFormFieldState, resolveRecordFormFields, } from './recordFormFieldModel';
82
+ export { applyReferenceDependencyClears, childResourceDefaultFormViewCode, resolveRecordDetailFields, resolveRecordFormFieldNames, resolveRecordBooleanStatusValue, resolveRecordFormFieldState, resolveRecordFormFields, evaluateUiFormula, recordFieldRendererRegistry, } from './recordFormFieldModel';
75
83
  export { createQueryScopedTreeModuleContext, createScopedTreeClient, createScopedTreeModuleContext, } from './scopedTreeModuleContext';
76
84
  export { createEmptyStaticTreeClient, createStaticTreeResourceModuleContext, } from './staticTreeResourceModuleContext';
77
- export { createScopedResourceTreeModuleContext } from './scopedResourceTreeModuleContext';
78
85
  export { presentPlatformError, presentPlatformMessage, presentPlatformSuccess, } from './platformErrorFeedback';
79
86
  export { handlePlatformActionSuccess, presentPlatformActionSuccess } from './platformActionResultFeedback';
80
87
  export { createPlatformActionResultReactionHandlers, mergePlatformActionResultReactionHandlers, platformActionResultReactions, platformActionResultReactionTypes, resolvePlatformActionResult, resolvePlatformActionResultMessage, withPlatformActionResultReactions, } from './platformActionResultReactions';
@@ -90,4 +97,3 @@ export type { StaticCrudCardMode, StaticCrudConfirmAction, StaticCrudManagementO
90
97
  export type { TreeRecordBase } from './treeRecordModel';
91
98
  export type { ScopedTreeModuleContextOptions } from './scopedTreeModuleContext';
92
99
  export type { StaticTreeResourceModuleContextOptions } from './staticTreeResourceModuleContext';
93
- export type { ScopedResourceTreeModuleContextOptions } from './scopedResourceTreeModuleContext';
@@ -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,52 @@
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
+ * Ephemeral, descriptor-authorized values from selected ONE references. These are deliberately
19
+ * separate from the draft because they describe the selected target, not fields owned by it.
20
+ */
21
+ export type RecordFormSelectionContext = Record<string, unknown>;
22
+ /**
23
+ * Applies the platform-owned consequence of changing a reference dependency.
24
+ * The owner of a draft record calls this after accepting a field edit, so the
25
+ * behavior is identical for regular forms and one-cell-at-a-time child grids.
26
+ */
27
+ export declare function applyReferenceDependencyClears(record: RecordFormRecord, fieldName: string, value: RecordFormFieldValue, fields: Map<string, RecordFormFieldDescriptor> | undefined): RecordFormRecord;
28
+ /**
29
+ * Transport values emitted by the standard editor. JSON is deliberately represented as parsed
30
+ * objects/arrays rather than a display string, so dynamic records retain their JSON column
31
+ * semantics all the way to the HTTP request.
32
+ */
33
+ export type RecordFormFieldValue = string | number | boolean | OptionValueList | string[] | JsonValue | undefined;
34
+ export type JsonValue = null | boolean | number | string | JsonValue[] | {
35
+ [key: string]: JsonValue;
36
+ };
12
37
  /** A business boolean does not inherit the lifecycle field's implicit enabled default. */
13
38
  export type RecordBooleanStatusValue = boolean | undefined;
14
- export type RecordFormFieldControlType = 'input' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'fileTransfer' | 'imageFileTransfer';
39
+ export type RecordFormFieldControlType = 'input' | 'numberInput' | 'dateInput' | 'dateTimeInput' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'fileTransfer' | 'imageFileTransfer' | 'unsupported';
40
+ export interface RecordFieldRenderer {
41
+ rendererType: string;
42
+ controlType: Exclude<RecordFormFieldControlType, 'unsupported'>;
43
+ supports: (field: RecordFormFieldDescriptor) => boolean;
44
+ }
45
+ /**
46
+ * The standard-form renderer catalog maps platform semantics to local form facades. It intentionally
47
+ * contains no UI-adapter component names, so a descriptor cannot choose arbitrary client code.
48
+ */
49
+ export declare const recordFieldRendererRegistry: readonly RecordFieldRenderer[];
15
50
  export interface RecordFormFieldFallback {
16
51
  label: string;
17
52
  required?: boolean;
@@ -25,8 +60,11 @@ export interface RecordFormFieldFallback {
25
60
  }
26
61
  export interface RecordFormFieldPickerConfig {
27
62
  context: ModuleContext<RecordPickerRecord>;
63
+ loadOptions?: (keyword: string) => Promise<RecordPickerRecord[]>;
64
+ loadTree?: () => Promise<WebTreeNode<RecordPickerRecord>[]>;
65
+ resolveOptions?: (values: string[]) => Promise<RecordPickerRecord[]>;
28
66
  reloadKey?: number;
29
- mode?: 'list' | 'tree';
67
+ mode?: RecordPickerMode;
30
68
  placeholder?: string;
31
69
  allowClear?: boolean;
32
70
  constraints?: PickerConstraint<RecordPickerRecord>[];
@@ -41,15 +79,28 @@ export interface RecordFormFieldState {
41
79
  readOnly: boolean;
42
80
  visible: boolean;
43
81
  controlType: RecordFormFieldControlType;
82
+ fieldControl?: ResolvedFieldControlDescriptor;
83
+ /**
84
+ * Published storage semantics drive the editor wire codec. In particular LONG and DECIMAL
85
+ * deliberately remain text in the browser so JSON.stringify cannot round enterprise values.
86
+ */
87
+ valueType?: ViewFieldValueType;
88
+ /** Set only when an authoritative field-control descriptor cannot be executed safely. */
89
+ rendererDiagnostic?: string;
44
90
  columnSpan: number;
45
91
  hasOption: boolean;
46
92
  optionSelectionMode?: 'SINGLE' | 'MULTIPLE';
47
93
  optionTitleField?: string;
94
+ optionItems?: import('../web-contracts/index').OptionItemDescriptor[];
48
95
  referenceTitleField?: string;
96
+ /** Title for the standard TreeAbility root sentinel when this field is a tree parent reference. */
97
+ treeRootTitle?: string;
49
98
  fileReference?: ResolvedFileReferenceFieldDescriptor;
50
99
  pickerConfig?: RecordFormFieldPickerConfig;
51
100
  booleanStatus?: BooleanStatusPresentation;
52
101
  valuePresentation?: FieldValuePresentation;
102
+ /** Source field used while this nullable field is inheriting instead of overriding. */
103
+ overrideOf?: string;
53
104
  disabledHint?: string;
54
105
  placeholder?: string;
55
106
  options?: Option[];
@@ -61,6 +112,13 @@ export interface ResolveRecordFormFieldNamesOptions {
61
112
  }
62
113
  export declare function resolveRecordFormFieldNames(fields?: Map<string, RecordFormFieldDescriptor>, fallback?: Record<string, RecordFormFieldFallback>, options?: ResolveRecordFormFieldNamesOptions): string[];
63
114
  export declare function resolveRecordFormFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string, editorSurface?: string): Map<string, RecordFormFieldDescriptor>;
115
+ /**
116
+ * Resolves the read-only page-detail projection. A detail display is deliberately a separate
117
+ * view from the editor: it may expose contextual fields which are write-hidden (for example a
118
+ * navigator-provided scope), while avoiding editor-only controls in the standard detail grid.
119
+ * Pages without an explicit display retain the existing editor-as-display fallback.
120
+ */
121
+ export declare function resolveRecordDetailFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string): Map<string, RecordFormFieldDescriptor>;
64
122
  export declare function resolveRecordFormGroups(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string, editorSurface?: string): FormGroupDescriptor[];
65
123
  export declare function childResourceDefaultFormViewCode(resource: string): string;
66
124
  export declare function resolveRecordFormFieldState(fieldName: string, options?: {
@@ -69,10 +127,29 @@ export declare function resolveRecordFormFieldState(fieldName: string, options?:
69
127
  pickerConfigs?: Record<string, RecordFormFieldPickerConfig>;
70
128
  placeholderOf?: (fieldName: string, field: RecordFormFieldState) => string | undefined;
71
129
  record?: RecordFormRecord;
130
+ selectionContext?: RecordFormSelectionContext;
72
131
  }): RecordFormFieldState;
73
- export declare function evaluateUiFormula(formula: UiFormula, record: RecordFormRecord): boolean;
132
+ export declare function evaluateUiFormula(formula: UiFormula, record: RecordFormRecord, selectionContext?: RecordFormSelectionContext): boolean;
133
+ /**
134
+ * Produces the only reference-derived values that WEB_UI formulas may observe. The descriptor
135
+ * owns both the source field and relative target paths; browser code never infers a path from a
136
+ * candidate object. The first delivery supports ONE references only.
137
+ */
138
+ export declare function resolveReferenceSelectionContext(sourceField: string, reference: ResolvedReferenceFieldDescriptor | undefined, record: RecordPickerRecord | undefined): RecordFormSelectionContext;
74
139
  /**
75
140
  * Preserves an absent business value as unknown instead of treating it as true.
76
141
  * `enabledStatus` deliberately retains its separate lifecycle default semantics.
77
142
  */
78
143
  export declare function resolveRecordBooleanStatusValue(value: unknown): RecordBooleanStatusValue;
144
+ /**
145
+ * Native number inputs emit text. INTEGER is the only standard numeric field that is safe as a
146
+ * JavaScript number; LONG and DECIMAL use an exact textual wire form and are parsed by the
147
+ * field-aware server deserializer. Do not turn these values into `Number` before JSON encoding.
148
+ */
149
+ export declare function decodeNumberEditorValue(value: string, valueType?: ViewFieldValueType): number | string | undefined;
150
+ /** Converts the canonical UTC-second record value to the browser-local datetime-local value. */
151
+ export declare function formatDateTimeLocalEditorValue(value: unknown): string | undefined;
152
+ /** Converts browser-local datetime-local input to the dynamic-record UTC-second wire contract. */
153
+ export declare function decodeDateTimeLocalEditorValue(value: string): string | undefined;
154
+ export declare function formatJsonEditorValue(value: unknown): string | undefined;
155
+ export declare function decodeJsonEditorValue(value: string): JsonValue | undefined;
@@ -4,6 +4,10 @@ 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>;
9
+ /** Server-authorized target projections used only by the owning form's transient UI context. */
10
+ projections?: Record<string, unknown>;
7
11
  }
8
12
  export interface PickerConstraintContext<TRecord extends RecordPickerRecord> {
9
13
  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;
@@ -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_82: {
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_82) => 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;
@@ -25,6 +25,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
25
25
  closeTab: (key: string) => any;
26
26
  toggleTabLock: (key: string) => any;
27
27
  reorderTabs: (keys: string[]) => any;
28
+ refreshPage: (key: string) => any;
28
29
  "update:activeTabKey": (key: string) => any;
29
30
  userCommand: (key: string) => any;
30
31
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
@@ -35,6 +36,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
35
36
  onCloseTab?: ((key: string) => any) | undefined;
36
37
  onToggleTabLock?: ((key: string) => any) | undefined;
37
38
  onReorderTabs?: ((keys: string[]) => any) | undefined;
39
+ onRefreshPage?: ((key: string) => any) | undefined;
38
40
  "onUpdate:activeTabKey"?: ((key: string) => any) | undefined;
39
41
  onUserCommand?: ((key: string) => any) | undefined;
40
42
  }>, {
@@ -4,14 +4,15 @@ export { default as WorkbenchOutlet } from './WorkbenchOutlet.vue';
4
4
  export { default as WorkspaceViewOutlet } from './WorkspaceViewOutlet.vue';
5
5
  export { syncModulePageWorkspaceViewContributions } from './modulePageWorkspaceViews';
6
6
  export { provideWorkbenchNavigation, useWorkbenchNavigation } from './workbenchNavigation';
7
- export type { WorkbenchNavigation, WorkbenchPageOpenResult } from './workbenchNavigation';
7
+ export type { OpenRouteOptions, WorkbenchNavigation, WorkbenchPageOpenResult } from './workbenchNavigation';
8
+ export { routeUrlWithOpenOptions } from './workbenchNavigation';
8
9
  export { configureWorkspaceViewContributions, createWorkspaceViewDescriptor, createWorkspaceViewRegistry, dismissWorkspaceViewDescriptor, resolveWorkspaceView, } from './workspaceViews';
9
10
  export { provideWorkspaceViewHost, useWorkspaceViewHost } from './workspaceViewHost';
10
11
  export { defineWorkspaceView } from './workspaceViewContract';
11
12
  export type { ResolvedWorkspaceView, WorkspaceViewRegistry } from './workspaceViews';
12
13
  export type { WorkspaceViewDefinition, WorkspaceViewInput, WorkspaceViewPresentation, WorkspaceDrawerProfile, } from './workspaceViewContract';
13
14
  export type { WorkspaceViewHost } from './workspaceViewHost';
14
- export { createMenuTab, findFirstNavigationMenu, getMenuNavigationTarget, isTabMenuTarget, isWindowMenuTarget, pageDescriptorFromUrl, pageDescriptorToUrl, resolvePageDescriptor, tabKeyOf, tryPageDescriptorFromUrl, } from './menuNavigation';
15
+ export { createMenuTab, canonicalDynamicModulePath, dynamicModuleAliasFromPath, findFirstNavigationMenu, getMenuNavigationTarget, isTabMenuTarget, isWindowMenuTarget, pageDescriptorFromUrl, pageDescriptorToUrl, pageInstanceKeyOf, resolvePageDescriptor, tabIdentityKeyOf, tabKeyOf, tryPageDescriptorFromUrl, withPageInstanceKey, } from './menuNavigation';
15
16
  export type { PageDescriptorResolveOptions, PageDescriptorUrlParseOptions } from './menuNavigation';
16
17
  export { buildWorkbenchMegaMenuModel, createWorkbenchMenuNodes, filterWorkbenchMenuNodes, findWorkbenchMenuNodeById, findWorkbenchMenuPath, firstDeepRootIdOf, } from './menuTreeModel';
17
18
  export type { WorkbenchMegaMenuModel, WorkbenchMenuNode } from './menuTreeModel';
@@ -0,0 +1,6 @@
1
+ import type { PageHostType } from '../web-contracts/index';
2
+ /**
3
+ * Restored workbench state can still carry the pre-source-neutral host value.
4
+ * Keep the historical spelling isolated here so new routing code has one name.
5
+ */
6
+ export declare function isLegacyModulePageHostType(hostType: PageHostType): hostType is 'dynamic-module-host';