@ximatai/muyun-web-app 0.26.8 → 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 (171) hide show
  1. package/dist/DictionaryManagementView-CtIQpqVA.js +1035 -0
  2. package/dist/MenuManagementView-DJhkN2sG.js +837 -0
  3. package/dist/{MetadataOrchestrationView-DKYVGMzy.js → MetadataOrchestrationView-CzhAgEdX.js} +211 -205
  4. package/dist/{ModuleActionManagementView-DiVzuPdu.js → ModuleActionManagementView-CM2d8jPO.js} +72 -72
  5. package/dist/{RoleAuthorizationView-C0s4Bog7.js → RoleAuthorizationView-jn_WUCeg.js} +228 -221
  6. package/dist/{RoleDetailWorkspaceView-dqHxKVfd.js → RoleDetailWorkspaceView-CzaQ3Dz1.js} +1 -1
  7. package/dist/RoleManagementView-nY7qu4GF.js +1951 -0
  8. package/dist/{SystemUserDetailWorkspaceView-CQ9WeLrR.js → SystemUserDetailWorkspaceView-CBvqmWvP.js} +1 -1
  9. package/dist/SystemUserManagementView-AEomKvK7.js +887 -0
  10. package/dist/currentUserContext-B1lj1WgF.js +11 -0
  11. package/dist/index.css +1 -1
  12. package/dist/index.js +531 -4402
  13. package/dist/{platform-components-CFU_zR7-.js → platform-components-CIi6GdC9.js} +4832 -3453
  14. package/dist/types/App.vue.d.ts +1 -0
  15. package/dist/types/app/StaticRoutePageHost.vue.d.ts +11 -0
  16. package/dist/types/app/loginTenant.d.ts +1 -1
  17. package/dist/types/app/menuRouteCompiler.d.ts +45 -0
  18. package/dist/types/app/menuRouteRuntime.d.ts +24 -0
  19. package/dist/types/app/pageRouteContext.d.ts +24 -0
  20. package/dist/types/app/routeDiagnosticsStore.d.ts +10 -0
  21. package/dist/types/app/router.d.ts +15 -0
  22. package/dist/types/app/staticRouteDefinitions.d.ts +25 -0
  23. package/dist/types/app/workbenchRouteSync.d.ts +1 -1
  24. package/dist/types/app/workbenchStartup.d.ts +3 -3
  25. package/dist/types/consumer/index.d.ts +5 -3
  26. package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +3 -10
  27. package/dist/types/dynamic-page-runtime/DynamicRecordDetailActions.vue.d.ts +4 -3
  28. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +40 -0
  29. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +14 -0
  30. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +26 -0
  31. package/dist/types/dynamic-page-runtime/ModulePageFormContributionRenderer.vue.d.ts +12 -0
  32. package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +14 -0
  33. package/dist/types/dynamic-page-runtime/ModulePageListExpansionSurface.vue.d.ts +19 -0
  34. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansion.vue.d.ts +13 -0
  35. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansions.vue.d.ts +16 -0
  36. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +42 -0
  37. package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +41 -0
  38. package/dist/types/dynamic-page-runtime/NavigatorManagementEditor.vue.d.ts +20 -1
  39. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +12 -5
  40. package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +31 -0
  41. package/dist/types/dynamic-page-runtime/composables/useManagedDetailRelationRuntime.d.ts +30 -0
  42. package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +13 -0
  43. package/dist/types/dynamic-page-runtime/composables/useModulePageBootstrap.d.ts +17 -0
  44. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +48 -0
  45. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailExtensionRuntime.d.ts +26 -0
  46. package/dist/types/dynamic-page-runtime/composables/useModulePageFormContributionRuntime.d.ts +22 -0
  47. package/dist/types/dynamic-page-runtime/composables/useModulePageListSession.d.ts +41 -0
  48. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1324 -0
  49. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +22 -0
  50. package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +5 -12
  51. package/dist/types/dynamic-page-runtime/formComputeCoordinator.d.ts +18 -0
  52. package/dist/types/dynamic-page-runtime/index.d.ts +3 -2
  53. package/dist/types/dynamic-page-runtime/listPageSizePreference.d.ts +10 -0
  54. package/dist/types/dynamic-page-runtime/moduleDetailStateModel.d.ts +12 -0
  55. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +181 -7
  56. package/dist/types/dynamic-page-runtime/navigatorVisibility.d.ts +6 -0
  57. package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +2 -2
  58. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +9 -1
  59. package/dist/types/dynamic-page-runtime/relationFormComputeCoordinator.d.ts +9 -0
  60. package/dist/types/formula/FormulaRuntime.d.ts +29 -0
  61. package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +1 -0
  62. package/dist/types/{views/UserDetailWorkspaceView.vue.d.ts → platform-admin-runtime/employee/EmployeeAccountDrawer.vue.d.ts} +2 -2
  63. package/dist/types/platform-admin-runtime/employeeModulePageEnhancement.d.ts +3 -0
  64. package/dist/types/platform-admin-runtime/index.d.ts +1 -1
  65. package/dist/types/platform-admin-runtime/moduleOpenApi.d.ts +2 -0
  66. package/dist/types/platform-admin-runtime/passwordPolicyPageEnhancement.d.ts +6 -0
  67. package/dist/types/platform-admin-runtime/platformAdminRoutes.d.ts +1 -6
  68. package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +9 -0
  69. package/dist/types/platform-admin-runtime/tenant/TenantApplicationConfigurationDrawer.vue.d.ts +7 -0
  70. package/dist/types/platform-admin-runtime/tenant/TenantApplicationsDetailSection.vue.d.ts +7 -0
  71. package/dist/types/platform-admin-runtime/tenantModulePageEnhancement.d.ts +7 -0
  72. package/dist/types/platform-admin-runtime/user/UserOnlineStatusCell.vue.d.ts +8 -0
  73. package/dist/types/platform-admin-runtime/user/UserPasswordDrawer.vue.d.ts +7 -0
  74. package/dist/types/platform-admin-runtime/user/UserSessionListExpansion.vue.d.ts +7 -0
  75. package/dist/types/platform-admin-runtime/user/useUserSessionRows.d.ts +23 -0
  76. package/dist/types/platform-admin-runtime/user/userOnlineStatusStore.d.ts +11 -0
  77. package/dist/types/platform-admin-runtime/userModulePageEnhancement.d.ts +7 -0
  78. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +4 -2
  79. package/dist/types/platform-components/DetailRelationListPanel.vue.d.ts +13 -0
  80. package/dist/types/{views/EmployeeDetailWorkspaceView.vue.d.ts → platform-components/DrawerTitleActions.vue.d.ts} +2 -1
  81. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +7 -0
  82. package/dist/types/platform-components/ModuleActionButton.vue.d.ts +5 -2
  83. package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +17 -0
  84. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +3 -0
  85. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +8 -3
  86. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +5 -0
  87. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +11 -3
  88. package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +14 -6
  89. package/dist/types/platform-components/RecordExpandedSubtable.vue.d.ts +3 -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 +2 -1
  96. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +12 -2
  97. package/dist/types/platform-components/RecordPicker.vue.d.ts +10 -2
  98. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +33 -5
  99. package/dist/types/{views/EmployeeEmploymentDrawer.vue.d.ts → platform-components/RecordRelationTabs.vue.d.ts} +7 -7
  100. package/dist/types/platform-components/RecordSelectionCheckbox.vue.d.ts +13 -0
  101. package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +12 -4
  102. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +4 -2
  103. package/dist/types/platform-components/UserSessionExpandedSubtable.vue.d.ts +2 -0
  104. package/dist/types/platform-components/drawerTitleActions.d.ts +11 -0
  105. package/dist/types/platform-components/index.d.ts +11 -3
  106. package/dist/types/platform-components/optionFieldOptionCache.d.ts +3 -0
  107. package/dist/types/platform-components/recordDetailFieldModel.d.ts +2 -0
  108. package/dist/types/platform-components/recordFormFieldModel.d.ts +67 -4
  109. package/dist/types/platform-components/recordPickerConstraints.d.ts +2 -0
  110. package/dist/types/platform-components/recordPickerModel.d.ts +6 -2
  111. package/dist/types/platform-workbench/Workbench.vue.d.ts +2 -2
  112. package/dist/types/platform-workbench/index.d.ts +3 -2
  113. package/dist/types/platform-workbench/legacyPageHostTypeCompatibility.d.ts +6 -0
  114. package/dist/types/platform-workbench/menuNavigation.d.ts +24 -2
  115. package/dist/types/platform-workbench/pageCacheKey.d.ts +2 -0
  116. package/dist/types/platform-workbench/pageHostRegistry.d.ts +1 -1
  117. package/dist/types/platform-workbench/workbenchNavigation.d.ts +14 -1
  118. package/dist/types/views/PasswordPolicyPreview.vue.d.ts +7 -0
  119. package/dist/types/views/RoleAccountGrantDrawer.vue.d.ts +1 -0
  120. package/dist/types/views/RoleAuthorizationView.vue.d.ts +2 -0
  121. package/dist/types/views/RoleEmploymentGrantDrawer.vue.d.ts +1 -0
  122. package/dist/types/views/{EmployeeManagementView.vue.d.ts → UserDetailRouteView.vue.d.ts} +3 -2
  123. package/dist/types/views/UserManagementListView.vue.d.ts +3 -0
  124. package/dist/types/views/UserManagementView.vue.d.ts +1 -6
  125. package/dist/types/views/WorkspaceRouteView.vue.d.ts +3 -0
  126. package/dist/types/views/menuManagementState.d.ts +2 -0
  127. package/dist/types/views/userDetailStateModel.d.ts +1 -3
  128. package/dist/types/views/userManagementRouteState.d.ts +11 -0
  129. package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +3 -0
  130. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  131. package/dist/types/vue-ui-antdv/components/UiInput.vue.d.ts +2 -1
  132. package/dist/types/vue-ui-antdv/components/UiRadioGroup.vue.d.ts +18 -0
  133. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +2 -2
  134. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +4 -2
  135. package/dist/types/vue-ui-antdv/index.d.ts +4 -2
  136. package/dist/types/web-contracts/index.d.ts +303 -12
  137. package/dist/types/web-core/businessNotifications.d.ts +3 -2
  138. package/dist/types/web-core/index.d.ts +1 -0
  139. package/dist/types/web-core/module/abilities.d.ts +7 -7
  140. package/dist/types/web-core/module/moduleContext.d.ts +5 -3
  141. package/dist/types/web-core/module/runtimeContext.d.ts +2 -0
  142. package/dist/types/web-core/module/staticModuleClient.d.ts +36 -10
  143. package/dist/types/web-core/referenceResolveClient.d.ts +11 -0
  144. package/dist/workspaceViewSessions-B5g4M0rT.js +51 -0
  145. package/dist/workspaceViews-CkERhK0K.js +8748 -0
  146. package/package.json +1 -1
  147. package/dist/EmployeeDetailWorkspaceView-DswEDSxH.js +0 -14
  148. package/dist/EmployeeManagementView-C9STtw08.js +0 -1777
  149. package/dist/RoleManagementView-D43pUCxi.js +0 -1926
  150. package/dist/SystemUserManagementView-D75_ylYk.js +0 -758
  151. package/dist/UserDetailWorkspaceView-BCST01d2.js +0 -17
  152. package/dist/UserManagementView-CcdvDo_y.js +0 -964
  153. package/dist/pageRealtime-EAiGWKEo.js +0 -227
  154. package/dist/types/views/EmployeeDetailContent.vue.d.ts +0 -64
  155. package/dist/types/views/employeeDetailStateModel.d.ts +0 -39
  156. package/dist/types/views/employeeDetailWorkspaceSession.d.ts +0 -16
  157. package/dist/types/views/employeeDetailWorkspaceView.d.ts +0 -4
  158. package/dist/types/views/fieldUiControlManagementState.d.ts +0 -76
  159. package/dist/types/views/moduleManagementState.d.ts +0 -76
  160. package/dist/types/views/positionManagementState.d.ts +0 -218
  161. package/dist/types/views/tenantManagementState.d.ts +0 -74
  162. package/dist/types/views/useEmployeeEmploymentRows.d.ts +0 -20
  163. package/dist/types/views/userDetailWorkspaceSession.d.ts +0 -14
  164. package/dist/types/views/userDetailWorkspaceView.d.ts +0 -4
  165. package/dist/useUserSessionRows-DCpUZCzN.js +0 -128
  166. package/dist/workspaceViewSessions-Dj1LjdG1.js +0 -4984
  167. /package/dist/types/views/{FieldUiControlManagementView.vue.d.ts → DynamicModuleRouteView.vue.d.ts} +0 -0
  168. /package/dist/types/views/{ModuleManagementView.vue.d.ts → ExternalRouteView.vue.d.ts} +0 -0
  169. /package/dist/types/views/{PasswordManagementView.vue.d.ts → ModuleOpenApiRouteView.vue.d.ts} +0 -0
  170. /package/dist/types/views/{PositionManagementView.vue.d.ts → OpenApiCatalogRouteView.vue.d.ts} +0 -0
  171. /package/dist/types/views/{TenantManagementView.vue.d.ts → RouteDiagnosticsView.vue.d.ts} +0 -0
@@ -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;
@@ -30,12 +30,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
30
30
  openSearch: typeof openSearch;
31
31
  toggleSearch: typeof toggleSearch;
32
32
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
33
- select: (record: TreeRecordBase) => any;
34
33
  action: (action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any;
34
+ select: (record: TreeRecordBase) => any;
35
+ deselect: () => any;
35
36
  loaded: (records: TreeRecordBase[]) => any;
36
37
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
37
- onSelect?: ((record: TreeRecordBase) => any) | undefined;
38
38
  onAction?: ((action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any) | undefined;
39
+ onSelect?: ((record: TreeRecordBase) => any) | undefined;
40
+ onDeselect?: (() => any) | undefined;
39
41
  onLoaded?: ((records: TreeRecordBase[]) => any) | undefined;
40
42
  }>, {
41
43
  filterOption: (record: TreeRecordBase, normalizedKeyword: string) => boolean;
@@ -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,7 +79,7 @@ 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
85
  export { createScopedResourceTreeModuleContext } 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,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;
@@ -61,6 +105,13 @@ export interface ResolveRecordFormFieldNamesOptions {
61
105
  }
62
106
  export declare function resolveRecordFormFieldNames(fields?: Map<string, RecordFormFieldDescriptor>, fallback?: Record<string, RecordFormFieldFallback>, options?: ResolveRecordFormFieldNamesOptions): string[];
63
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>;
64
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?: {
@@ -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;
@@ -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;
@@ -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';
@@ -5,7 +5,7 @@ export interface PageDescriptorResolveOptions {
5
5
  businessRoutePrefixes?: string[];
6
6
  /** Optional legacy mapping for framework-owned static business pages. */
7
7
  businessModuleRoutes?: Record<string, string>;
8
- /** Stable readable routes whose content is rendered by the standard dynamic module host. */
8
+ /** Semantic overrides in the canonical dynamic module route catalog. */
9
9
  dynamicModuleRoutes?: Record<string, string>;
10
10
  /** Page layout contracts keyed by a static business route. */
11
11
  businessRouteLayouts?: Record<string, PageLayoutMode>;
@@ -24,8 +24,30 @@ export declare function isTabMenuTarget(target: MenuNavigationTarget): boolean;
24
24
  export declare function isWindowMenuTarget(target: MenuNavigationTarget): boolean;
25
25
  export declare function resolvePageDescriptor(target: MenuNavigationTarget, options?: PageDescriptorResolveOptions): PageDescriptor;
26
26
  export declare function createMenuTab(menu: MenuRecord, target: MenuNavigationTarget, options?: PageDescriptorResolveOptions): MenuTab;
27
+ /** Adds a page-instance key once and preserves it on address replacement or restoration. */
28
+ export declare function withPageInstanceKey(descriptor: PageDescriptor, instanceKey?: string): PageDescriptor;
27
29
  export declare function findFirstNavigationMenu(nodes: MenuTreeNode[]): MenuRecord | undefined;
28
30
  export declare function tabKeyOf(descriptor: PageDescriptor): string;
29
- export declare function pageDescriptorToUrl(descriptor: PageDescriptor): string;
31
+ /**
32
+ * Stable page intent without the workbench instance marker.
33
+ * `by-params` workspace views use this to focus an existing logical view while
34
+ * the actual tab key still contains InstanceKey for cached route isolation.
35
+ */
36
+ export declare function tabIdentityKeyOf(descriptor: PageDescriptor): string;
37
+ export declare function pageInstanceKeyOf(descriptor: PageDescriptor): string | undefined;
38
+ /**
39
+ * Serializes a descriptor to its public address.
40
+ *
41
+ * Dynamic module addresses are always derived from the canonical route catalog.
42
+ * Workbench instance state and menu identity remain internal state, never URL state.
43
+ */
44
+ export declare function pageDescriptorToUrl(descriptor: PageDescriptor, options?: PageDescriptorResolveOptions): string;
45
+ /**
46
+ * Produces a reversible public address for every valid dynamic module alias.
47
+ * Semantic overrides are reserved for platform concepts whose domain wording is
48
+ * intentionally different from their module alias.
49
+ */
50
+ export declare function canonicalDynamicModulePath(moduleAlias: string, options?: Pick<PageDescriptorUrlParseOptions, 'dynamicModuleRoutes'>): string;
51
+ export declare function dynamicModuleAliasFromPath(path: string, options?: Pick<PageDescriptorUrlParseOptions, 'dynamicModuleRoutes'>): string | undefined;
30
52
  export declare function pageDescriptorFromUrl(url: string, options?: PageDescriptorUrlParseOptions): PageDescriptor;
31
53
  export declare function tryPageDescriptorFromUrl(url: string, options?: PageDescriptorUrlParseOptions): PageDescriptor | undefined;
@@ -0,0 +1,2 @@
1
+ import type { RouteLocationNormalizedLoaded } from 'vue-router';
2
+ export declare function pageCacheKey(route: RouteLocationNormalizedLoaded, pageInstanceKey?: string): string;
@@ -1,3 +1,3 @@
1
1
  import type { PageHostType } from '../web-contracts/index';
2
- export type PageHostComponentName = 'PlatformRouteHost' | 'BusinessRouteHost' | 'DynamicModuleHost' | 'ExternalPageHost';
2
+ export type PageHostComponentName = 'PlatformRouteHost' | 'BusinessRouteHost' | 'ModulePageHost' | 'ExternalPageHost';
3
3
  export declare function resolvePageHostComponentName(hostType: PageHostType): PageHostComponentName;
@@ -1,14 +1,27 @@
1
- import type { PageDescriptor } from '../web-contracts/index';
1
+ import type { PageDescriptor, RouteQueryValue } from '../web-contracts/index';
2
+ export interface OpenRouteOptions {
3
+ /** Opens an independent internal tab instance without changing the public URL. */
4
+ newInstance?: boolean;
5
+ tabTitle?: string;
6
+ query?: Record<string, RouteQueryValue>;
7
+ }
2
8
  export interface WorkbenchNavigation {
9
+ openRoute(path: string, options?: OpenRouteOptions): WorkbenchPageOpenResult;
10
+ replaceRoute(path: string, options?: OpenRouteOptions): WorkbenchPageOpenResult;
11
+ closeCurrentTab(fallbackPath: string): WorkbenchPageOpenResult;
3
12
  /** Opens a page and reports whether the target host was newly created. */
4
13
  openPage(descriptor: PageDescriptor): WorkbenchPageOpenResult;
5
14
  /** Replaces one existing host by its stable tab key without changing that tab's identity. */
6
15
  replacePage(pageKey: string, descriptor: PageDescriptor): void;
7
16
  /** Closes one workbench page through the owning shell's tab-state policy. */
8
17
  closePage(pageKey: string): void;
18
+ /** Updates one page title without writing display data to the URL. */
19
+ setTabName(instanceKey: string, name: string): void;
9
20
  }
10
21
  export interface WorkbenchPageOpenResult {
11
22
  created: boolean;
12
23
  }
24
+ /** Builds a public workbench address. Page-instance identity never enters the address. */
25
+ export declare function routeUrlWithOpenOptions(path: string, options?: OpenRouteOptions): string;
13
26
  export declare function provideWorkbenchNavigation(navigation: WorkbenchNavigation): void;
14
27
  export declare function useWorkbenchNavigation(): WorkbenchNavigation | undefined;
@@ -0,0 +1,7 @@
1
+ import type { ModulePageCardAssistantContext } from '../dynamic-page-runtime/index';
2
+ type __VLS_Props = {
3
+ context: ModulePageCardAssistantContext;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -2,6 +2,7 @@ import type { Role } from '../web-contracts/index';
2
2
  import type { ModuleContext } from '../web-core/index';
3
3
  type __VLS_Props = {
4
4
  open: boolean;
5
+ container: HTMLElement | null;
5
6
  context: ModuleContext<Role>;
6
7
  role?: Role;
7
8
  };
@@ -1,5 +1,7 @@
1
1
  type __VLS_Props = {
2
2
  roleId?: string;
3
+ /** Parent page root required when this view is displayed inside a drawer. */
4
+ container?: HTMLElement | null;
3
5
  /** A parent management tab owns the initial wide drawer before promotion. */
4
6
  drawer?: boolean;
5
7
  };
@@ -2,6 +2,7 @@ import type { Role } from '../web-contracts/index';
2
2
  import type { ModuleContext } from '../web-core/index';
3
3
  type __VLS_Props = {
4
4
  open: boolean;
5
+ container: HTMLElement | null;
5
6
  context: ModuleContext<Role>;
6
7
  role?: Role;
7
8
  };
@@ -1,6 +1,7 @@
1
+ import { type UserRouteAction } from './userManagementRouteState';
1
2
  type __VLS_Props = {
2
- recordId?: string;
3
- mode?: 'view' | 'edit';
3
+ action: UserRouteAction;
4
+ userId?: string;
4
5
  };
5
6
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
7
  declare const _default: typeof __VLS_export;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -1,8 +1,3 @@
1
- type __VLS_Props = {
2
- /** Present only when this component is restored as a workbench task. */
3
- recordId?: string;
4
- mode?: 'view' | 'edit';
5
- };
6
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
2
  declare const _default: typeof __VLS_export;
8
3
  export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -84,6 +84,7 @@ export declare function createMenuManagementState(schemeContext: ModuleContext<M
84
84
  id: string;
85
85
  title: string;
86
86
  schemeId: string;
87
+ entryType?: import("../web-contracts/index").MenuEntryType | undefined;
87
88
  openMode?: MenuOpenMode | undefined;
88
89
  moduleAlias?: string | undefined;
89
90
  route?: string | undefined;
@@ -107,6 +108,7 @@ export declare function createMenuManagementState(schemeContext: ModuleContext<M
107
108
  id: string;
108
109
  title: string;
109
110
  schemeId: string;
111
+ entryType?: import("../web-contracts/index").MenuEntryType | undefined;
110
112
  openMode?: MenuOpenMode | undefined;
111
113
  moduleAlias?: string | undefined;
112
114
  route?: string | undefined;
@@ -5,7 +5,5 @@ export interface UserDetailRequestState {
5
5
  selectedUserKey?: string;
6
6
  recordId: string;
7
7
  }
8
- export declare function canSwitchUserDetailContext(saving: boolean): boolean;
8
+ /** 只有仍属于当前用户和当前请求的结果才能写入页面。 */
9
9
  export declare function shouldCommitUserDetailRequest(state: UserDetailRequestState): boolean;
10
- export declare function persistedUserDetailMode(mode: UserDetailMode): 'view' | 'edit';
11
- export declare function hasUserDetailUnsavedChanges(draft: object, selected: object): boolean;
@@ -0,0 +1,11 @@
1
+ import type { LocationQuery } from 'vue-router';
2
+ export type UserRouteAction = 'add' | 'view' | 'edit';
3
+ export interface UserManagementRouteState {
4
+ action?: UserRouteAction;
5
+ userId?: string;
6
+ error?: string;
7
+ }
8
+ /** 用户地址只表达业务页面状态;页签实例由工作台内部状态管理。 */
9
+ export declare function userManagementRouteStateOf(routePath: string | undefined, userId: string | undefined, query: LocationQuery): UserManagementRouteState;
10
+ /** 给每个地址操作提供页面标题的通用文字。 */
11
+ export declare function userActionTitle(action: UserRouteAction): string;
@@ -10,6 +10,8 @@ type __VLS_Props = {
10
10
  ariaLabel?: string;
11
11
  iconName?: UiIconName;
12
12
  iconPosition?: 'start' | 'end';
13
+ /** Fixed square hit area for compact actions whose content is only an icon. */
14
+ iconOnly?: boolean;
13
15
  };
14
16
  declare var __VLS_16: {};
15
17
  type __VLS_Slots = {} & {
@@ -30,6 +32,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
30
32
  ariaLabel: string;
31
33
  iconName: UiIconName;
32
34
  iconPosition: "start" | "end";
35
+ iconOnly: boolean;
33
36
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
37
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
38
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,4 @@
1
- export type UiIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'left' | 'lock' | 'menu-collapse' | 'menu-expand' | 'notification' | 'open-in-new' | 'plus' | 'pin-off' | 'pin' | 'power' | 'reload' | 'right' | 'save' | 'search' | 'skin' | 'settings';
1
+ export type UiIconName = 'app' | 'check' | 'close' | 'delete' | 'download' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'left' | 'lock' | 'menu-collapse' | 'menu-expand' | 'minus' | 'notification' | 'open-in-new' | 'plus' | 'pin-off' | 'pin' | 'power' | 'reload' | 'right' | 'save' | 'search' | 'skin' | 'settings' | 'swap';
2
2
  type __VLS_Props = {
3
3
  name: UiIconName;
4
4
  };
@@ -1,13 +1,14 @@
1
1
  import type { Primitive } from '../../web-contracts/index';
2
2
  type __VLS_Props = {
3
3
  value?: Primitive;
4
- type?: 'text' | 'password' | 'email' | 'search' | 'number' | 'url';
4
+ type?: 'text' | 'password' | 'email' | 'search' | 'number' | 'url' | 'date' | 'datetime-local';
5
5
  placeholder?: string;
6
6
  disabled?: boolean;
7
7
  autofocus?: boolean;
8
8
  allowClear?: boolean;
9
9
  autocomplete?: string;
10
10
  required?: boolean;
11
+ step?: string | number;
11
12
  ariaLabel?: string;
12
13
  };
13
14
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -0,0 +1,18 @@
1
+ export interface UiRadioOption {
2
+ value: string;
3
+ label: string;
4
+ disabled?: boolean;
5
+ }
6
+ type __VLS_Props = {
7
+ value?: string;
8
+ options: readonly UiRadioOption[];
9
+ disabled?: boolean;
10
+ size?: 'small' | 'default' | 'large';
11
+ };
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ "update:value": (value: string) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ "onUpdate:value"?: ((value: string) => any) | undefined;
16
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
@@ -9,11 +9,11 @@ type __VLS_Props = {
9
9
  clickable?: boolean;
10
10
  };
11
11
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
- click: () => any;
13
12
  action: (action: import("../../web-contracts/index.ts").RecordInlineAction) => any;
13
+ click: () => any;
14
14
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
- onClick?: (() => any) | undefined;
16
15
  onAction?: ((action: import("../../web-contracts/index.ts").RecordInlineAction) => any) | undefined;
16
+ onClick?: (() => any) | undefined;
17
17
  }>, {
18
18
  secondary: string;
19
19
  actions: UiRecordInlineAction[];