@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
@@ -12,24 +12,36 @@ type __VLS_Props = {
12
12
  reloadKey: number;
13
13
  keyword: string;
14
14
  externalQueryValues?: Record<string, unknown>;
15
- actionsOf?: () => RecordInlineAction[];
15
+ navigatorHostModuleAlias: string;
16
+ /** Whether this navigator's upstream selection scope is available. */
17
+ ready?: boolean;
18
+ /** The navigator's declared upstream query scope is not settled yet. */
19
+ createDisabled?: boolean;
20
+ createDisabledReason?: string;
21
+ /** Human-readable context supplied by an upstream navigator selection. */
22
+ scopeSubtitle?: string;
23
+ actionsOf?: (record: {
24
+ id?: string;
25
+ }) => RecordInlineAction[];
16
26
  };
17
- declare var __VLS_38: {};
27
+ declare var __VLS_45: {};
18
28
  type __VLS_Slots = {} & {
19
- editor?: (props: typeof __VLS_38) => any;
29
+ editor?: (props: typeof __VLS_45) => any;
20
30
  };
21
31
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
- select: (record: QueryListRecord) => any;
23
32
  action: (action: RecordInlineAction, record: QueryListRecord) => any;
33
+ select: (record: QueryListRecord) => any;
24
34
  create: () => any;
25
35
  refresh: () => any;
36
+ deselect: () => any;
26
37
  loaded: (records: QueryListRecord[]) => any;
27
38
  "update:keyword": (value: string) => any;
28
39
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
29
- onSelect?: ((record: QueryListRecord) => any) | undefined;
30
40
  onAction?: ((action: RecordInlineAction, record: QueryListRecord) => any) | undefined;
41
+ onSelect?: ((record: QueryListRecord) => any) | undefined;
31
42
  onCreate?: (() => any) | undefined;
32
43
  onRefresh?: (() => any) | undefined;
44
+ onDeselect?: (() => any) | undefined;
33
45
  onLoaded?: ((records: QueryListRecord[]) => any) | undefined;
34
46
  "onUpdate:keyword"?: ((value: string) => any) | undefined;
35
47
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,31 @@
1
+ import { type RecordFormFieldDescriptor, type RecordFormFieldPickerConfig, type RecordFormRecord, type RecordFormFieldValue } from '../platform-components/index';
2
+ import type { ModuleContext } from '../web-core/index';
3
+ import type { QueryListRecord } from '../platform-components/index';
4
+ import { type ModulePageFormContribution, type ModulePageFormFieldPolicy } from './modulePageEnhancements';
5
+ type __VLS_Props = {
6
+ record: RecordFormRecord;
7
+ fields: Map<string, RecordFormFieldDescriptor>;
8
+ mode: 'create' | 'edit' | 'view';
9
+ formSessionKey: number;
10
+ validationRequestKey?: number;
11
+ optionContext: ModuleContext<QueryListRecord>;
12
+ fileTransferContext: ModuleContext<QueryListRecord>;
13
+ pickerConfigs: Record<string, RecordFormFieldPickerConfig>;
14
+ disabled: boolean;
15
+ excludeFieldNames?: string[];
16
+ contributions?: readonly ModulePageFormContribution[];
17
+ fieldPolicies?: readonly ModulePageFormFieldPolicy[];
18
+ };
19
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
+ "update:field": (fieldName: string, value: RecordFormFieldValue) => any;
21
+ "validity-change": (validity: {
22
+ valid: boolean;
23
+ }) => any;
24
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
25
+ "onUpdate:field"?: ((fieldName: string, value: RecordFormFieldValue) => any) | undefined;
26
+ "onValidity-change"?: ((validity: {
27
+ valid: boolean;
28
+ }) => any) | undefined;
29
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { type Ref } from 'vue';
2
+ import type { ManagedDetailRelationClient } from '../../web-core/index';
3
+ import type { ResolvedDetailRelationDescriptor, WebPageResponse, WebQueryRequest } from '../../web-contracts/index';
4
+ export interface ManagedDetailRelationRuntimeOptions<TRecord extends Record<string, unknown>> {
5
+ relation: Ref<ResolvedDetailRelationDescriptor | undefined>;
6
+ parentId: Ref<string | undefined>;
7
+ parentPersisted: Ref<boolean>;
8
+ mutationEnabled: Ref<boolean>;
9
+ can?: (actionCode: string) => boolean;
10
+ clientOf(parentId: string, relationCode: string): ManagedDetailRelationClient<TRecord>;
11
+ }
12
+ /**
13
+ * Source-neutral association session. List rendering stays in RecordQueryListPanel; this
14
+ * collaborator owns fixed-gateway transport, mutation serialization and cross-parent isolation.
15
+ */
16
+ export declare function useManagedDetailRelationRuntime<TRecord extends Record<string, unknown>>(options: ManagedDetailRelationRuntimeOptions<TRecord>): {
17
+ records: Ref<TRecord[], TRecord[]>;
18
+ loading: Ref<boolean, boolean>;
19
+ saving: Ref<boolean, boolean>;
20
+ busy: import("vue").ComputedRef<boolean>;
21
+ error: Ref<unknown, unknown>;
22
+ reloadKey: Ref<number, number>;
23
+ executable: import("vue").ComputedRef<ResolvedDetailRelationDescriptor | undefined>;
24
+ mutable: import("vue").ComputedRef<import("../../web-contracts/index").ResolvedDetailRelationMutationContract | undefined>;
25
+ query: (request?: WebQueryRequest) => Promise<WebPageResponse<TRecord>>;
26
+ refresh: () => void;
27
+ create: (record: TRecord) => Promise<boolean>;
28
+ update: (id: string, record: TRecord) => Promise<boolean>;
29
+ remove: (id: string, version: number) => Promise<boolean>;
30
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Common action boundary for a descriptor-driven page session.
3
+ *
4
+ * Enhancements are extension code. They may open their own UI or issue a
5
+ * request, but an exception must never escape into the host render session.
6
+ */
7
+ export declare function useModulePageActions(): {
8
+ presentActionSuccess: (result: unknown, fallbackMessage: string, source?: string) => Promise<import("../../platform-components/index").PlatformActionResult>;
9
+ runEnhancementAction: <TContext>(contribution: {
10
+ key: string;
11
+ run(context: TContext): void | Promise<void>;
12
+ }, actionContext: TContext) => Promise<void>;
13
+ };
@@ -0,0 +1,17 @@
1
+ import type { PageBootstrap } from '../../web-contracts/index';
2
+ import { type ModuleContext } from '../../web-core/index';
3
+ import type { QueryListRecord } from '../../platform-components/index';
4
+ /**
5
+ * Owns the menu-entry bootstrap session for a standard module page.
6
+ *
7
+ * A host may be rendered without a persisted menu entry (for example from a
8
+ * static route). In that case no request is issued and `ready` is immediately
9
+ * true. A failed entry lookup is intentionally stateful: it is rendered by the
10
+ * host instead of allowing the rest of the page session to start with an
11
+ * unverified module alias.
12
+ */
13
+ export declare function useModulePageBootstrap(context: ModuleContext<QueryListRecord>, menuId: () => string | undefined): {
14
+ pageBootstrap: import("vue").Ref<PageBootstrap | undefined, PageBootstrap | undefined>;
15
+ pageBootstrapError: import("vue").Ref<string | undefined, string | undefined>;
16
+ loadPageBootstrap: () => Promise<void>;
17
+ };
@@ -0,0 +1,48 @@
1
+ import { type Ref } from 'vue';
2
+ import type { RecordActionItem, RecordFormFieldDescriptor, RecordFormRecord } from '../../platform-components/index';
3
+ import type { PageBootstrap, PageBootstrapActionBlock } from '../../web-contracts/index';
4
+ import type { ModuleContext } from '../../web-core/index';
5
+ import type { QueryListRecord } from '../../platform-components/index';
6
+ interface DetailLoader {
7
+ resolveLoad(record: QueryListRecord): void;
8
+ }
9
+ export interface ModulePageDetailActionRuntimeOptions {
10
+ context: ModuleContext<QueryListRecord>;
11
+ pageBootstrap: Ref<PageBootstrap | undefined>;
12
+ selectedRecord: Ref<QueryListRecord | undefined>;
13
+ editorMode: Ref<'create' | 'edit' | 'view'>;
14
+ detail: DetailLoader;
15
+ refreshList(): void;
16
+ /** Current local-edit form validity, owned by RecordFormFields at the host boundary. */
17
+ localEditValid?: Ref<boolean>;
18
+ presentSuccess(result: unknown, fallbackMessage: string, source: string): Promise<unknown> | unknown;
19
+ presentError(cause: unknown, source: string): void;
20
+ }
21
+ /**
22
+ * Runs server-issued detail action contracts and their typed local-edit forms.
23
+ *
24
+ * The host retains layout and action routing. This runtime owns the action
25
+ * payload, refresh policy and error/success lifecycle, so presentation
26
+ * templates never acquire request or authorization responsibilities.
27
+ */
28
+ export declare function useModulePageDetailActionRuntime(options: ModulePageDetailActionRuntimeOptions): {
29
+ supportedDetailActions: import("vue").ComputedRef<RecordActionItem[]>;
30
+ localEditActionBlocks: import("vue").ComputedRef<(PageBootstrapActionBlock & {
31
+ localEditForm: NonNullable<PageBootstrapActionBlock["localEditForm"]>;
32
+ })[]>;
33
+ detailPageActions: import("vue").ComputedRef<RecordActionItem[]>;
34
+ localEditOpen: Ref<boolean, boolean>;
35
+ localEditSaving: Ref<boolean, boolean>;
36
+ localEditBlock: Ref<(PageBootstrapActionBlock & {
37
+ localEditForm: NonNullable<PageBootstrapActionBlock["localEditForm"]>;
38
+ }) | undefined, (PageBootstrapActionBlock & {
39
+ localEditForm: NonNullable<PageBootstrapActionBlock["localEditForm"]>;
40
+ }) | undefined>;
41
+ localEditDraft: Ref<RecordFormRecord | undefined, RecordFormRecord | undefined>;
42
+ localEditFields: import("vue").ComputedRef<Map<string, RecordFormFieldDescriptor>>;
43
+ handleConfiguredAction: (action: {
44
+ key?: string;
45
+ }) => boolean;
46
+ submitLocalEdit: () => Promise<void>;
47
+ };
48
+ export {};
@@ -0,0 +1,28 @@
1
+ import type { QueryListRecord } from '../../platform-components/index';
2
+ import type { ModuleContext } from '../../web-core/index';
3
+ import type { ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerAction, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageScopeContext } from '../modulePageEnhancements';
4
+ export interface ModulePageEnhancementDrawerRuntime {
5
+ definition: ModulePageDrawer;
6
+ context: ModulePageDrawerContext;
7
+ titleActions: ModulePageDrawerAction[];
8
+ closeBlocked: boolean;
9
+ }
10
+ interface Options {
11
+ module: ModuleContext<QueryListRecord>;
12
+ scope(): ModulePageScopeContext | undefined;
13
+ refreshList(): void;
14
+ reload(): void;
15
+ closeDetail(): void;
16
+ }
17
+ /** Owns frontend-only detail extension invalidation and drawer lifecycle. */
18
+ export declare function useModulePageDetailExtensionRuntime(options: Options): {
19
+ drawer: import("vue").Ref<ModulePageEnhancementDrawerRuntime | undefined, ModulePageEnhancementDrawerRuntime | undefined>;
20
+ drawerOpen: import("vue").Ref<boolean, boolean>;
21
+ refreshDetailExtensions: () => void;
22
+ sectionContext: (record: QueryListRecord) => ModulePageDetailSectionContext;
23
+ recordViewContext: (record: QueryListRecord) => ModulePageRecordViewContext;
24
+ openDrawer: (definition: ModulePageDrawer, record?: QueryListRecord) => void;
25
+ closeDrawer: () => void;
26
+ disposeDrawer: () => void;
27
+ };
28
+ export {};
@@ -0,0 +1,22 @@
1
+ import { type Ref } from 'vue';
2
+ import { type RecordFormFieldDescriptor, type RecordFormFieldState, type RecordFormFieldValue, type RecordFormRecord } from '../../platform-components/index';
3
+ import { type ModulePageFormContribution, type ModulePageFormContributionContext, type ModulePageFormContributionState } from '../modulePageEnhancements';
4
+ interface UseModulePageFormContributionRuntimeOptions {
5
+ contributions: Ref<readonly ModulePageFormContribution[]>;
6
+ mode: Ref<'create' | 'edit' | 'view'>;
7
+ draft: Ref<RecordFormRecord | undefined>;
8
+ fields: Ref<Map<string, RecordFormFieldDescriptor>>;
9
+ formSessionKey: Ref<number>;
10
+ setField(fieldName: string, value: RecordFormFieldValue): void;
11
+ }
12
+ /**
13
+ * Keeps application contribution validity at the same save boundary as the
14
+ * descriptor-owned form, without giving contributed components access to the
15
+ * module HTTP client or mutable form state.
16
+ */
17
+ export declare function useModulePageFormContributionRuntime(options: UseModulePageFormContributionRuntimeOptions): {
18
+ valid: import("vue").ComputedRef<boolean>;
19
+ contextFor: (contribution: ModulePageFormContribution, field?: Readonly<RecordFormFieldState>) => ModulePageFormContributionContext;
20
+ stateSnapshot: () => ModulePageFormContributionState;
21
+ };
22
+ export {};
@@ -0,0 +1,41 @@
1
+ import { type Ref } from 'vue';
2
+ import type { QueryListRecord, RecordQueryListMode } from '../../platform-components/index';
3
+ export interface ModulePageListSessionOptions {
4
+ selectedRecord: Ref<QueryListRecord | undefined>;
5
+ saving: Ref<boolean>;
6
+ resetDetail(): void;
7
+ invalidateDetailLoad(): void;
8
+ resetTreeSelection(): void;
9
+ openRecord(record: QueryListRecord): void;
10
+ openRecycleBinRecord(record: QueryListRecord): void;
11
+ }
12
+ /**
13
+ * Owns list-side state and record selection policy for one module-page session.
14
+ *
15
+ * This boundary deliberately has no HTTP, authorization, bootstrap or template
16
+ * dependencies. The host supplies the already-authorized detail transitions,
17
+ * keeping list/card/drawer selection behaviour reusable and directly testable.
18
+ */
19
+ export declare function useModulePageListSession(options: ModulePageListSessionOptions): {
20
+ listMode: Ref<RecordQueryListMode, RecordQueryListMode>;
21
+ reloadKey: Ref<number, number>;
22
+ cardAssistantRecords: Ref<{
23
+ [x: string]: unknown;
24
+ id?: string | undefined;
25
+ enabled?: boolean | undefined;
26
+ }[], QueryListRecord[] | {
27
+ [x: string]: unknown;
28
+ id?: string | undefined;
29
+ enabled?: boolean | undefined;
30
+ }[]>;
31
+ handleLoaded: (records: QueryListRecord[]) => void;
32
+ handleFlatManagementLoaded: (records: QueryListRecord[], recycleBinActive: boolean) => void;
33
+ setCardAssistantRecords: (records: QueryListRecord[]) => void;
34
+ resetFlatManagementSelection: () => void;
35
+ handleListModeChange: (mode: RecordQueryListMode) => void;
36
+ handleRecycleBinRestore: () => void;
37
+ selectRecord: (record: QueryListRecord) => void;
38
+ selectListDetailRecord: (record: QueryListRecord, detailSurfaceUsesDrawer: boolean) => void;
39
+ selectStandaloneListRecord: (record: QueryListRecord) => void;
40
+ openListRecord: (record: QueryListRecord) => void;
41
+ };