@ximatai/muyun-web-app 0.26.11 → 0.26.12

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 (142) hide show
  1. package/dist/ModuleActionManagementView-BHEooZ5L.js +672 -0
  2. package/dist/ModuleGovernanceView-DB3TWlMy.js +28521 -0
  3. package/dist/{RoleDetailWorkspaceView-UOm1ejGH.js → RoleDetailWorkspaceView-D6X7pAj5.js} +467 -457
  4. package/dist/index.css +1 -1
  5. package/dist/index.js +1942 -359
  6. package/dist/moduleGovernanceWorkspaceView-C5pqJOEJ.js +40 -0
  7. package/dist/platform-workbench-DJj42YQP.js +22911 -0
  8. package/dist/rolldown-runtime-DPVXH0ON.js +17 -0
  9. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +0 -2
  10. package/dist/types/app/LoginView.vue.d.ts +1 -1
  11. package/dist/types/app/workbenchRouteSync.d.ts +10 -1
  12. package/dist/types/app/workbenchSessionTabs.d.ts +22 -0
  13. package/dist/types/app/workbenchStartup.d.ts +7 -0
  14. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +4 -1
  15. package/dist/types/consumer/index.d.ts +1 -0
  16. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +1 -1
  17. package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +12 -1
  18. package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +17 -0
  19. package/dist/types/dynamic-page-runtime/NavigatorPanelActions.vue.d.ts +22 -0
  20. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +11 -11
  21. package/dist/types/dynamic-page-runtime/childAggregateContext.d.ts +11 -0
  22. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +80 -26
  23. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +1 -1
  24. package/dist/types/dynamic-page-runtime/formActionResult.d.ts +5 -0
  25. package/dist/types/dynamic-page-runtime/formComputeCoordinator.d.ts +7 -4
  26. package/dist/types/dynamic-page-runtime/formValidationCoordinator.d.ts +17 -0
  27. package/dist/types/dynamic-page-runtime/index.d.ts +1 -1
  28. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +6 -0
  29. package/dist/types/dynamic-page-runtime/pageActionInvocation.d.ts +7 -0
  30. package/dist/types/dynamic-page-runtime/pageActionPlacement.d.ts +14 -0
  31. package/dist/types/dynamic-page-runtime/recordMutationPayload.d.ts +3 -0
  32. package/dist/types/formula/FormulaRuntime.d.ts +6 -0
  33. package/dist/types/platform-admin-runtime/module-menu/ModuleMenuDrawer.vue.d.ts +7 -0
  34. package/dist/types/platform-admin-runtime/module-menu/ModuleMenuEntriesSection.vue.d.ts +7 -0
  35. package/dist/types/platform-admin-runtime/module-menu/moduleMenuClient.d.ts +16 -0
  36. package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +2 -0
  37. package/dist/types/platform-components/AdaptiveHeaderActionBar.vue.d.ts +24 -0
  38. package/dist/types/platform-components/BusinessNotificationPanel.vue.d.ts +15 -1
  39. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +8 -3
  40. package/dist/types/platform-components/DetailRelationListPanel.vue.d.ts +1 -1
  41. package/dist/types/platform-components/FormulaExpressionEditor.vue.d.ts +54 -0
  42. package/dist/types/platform-components/ManagementExplorerColumn.vue.d.ts +15 -3
  43. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +5 -3
  44. package/dist/types/platform-components/ManagementWorkspace.vue.d.ts +11 -0
  45. package/dist/types/platform-components/ModuleActionButton.vue.d.ts +3 -3
  46. package/dist/types/platform-components/QueryGroupedSummary.vue.d.ts +21 -0
  47. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +2 -0
  48. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +41 -2
  49. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +4 -1
  50. package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +2 -0
  51. package/dist/types/platform-components/RecordExplorerCreateButton.vue.d.ts +16 -0
  52. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +16 -5
  53. package/dist/types/platform-components/RecordFieldLabel.vue.d.ts +16 -0
  54. package/dist/types/platform-components/RecordFormFields.vue.d.ts +21 -2
  55. package/dist/types/platform-components/RecordFormGrid.vue.d.ts +24 -0
  56. package/dist/types/platform-components/RecordListExplorer.vue.d.ts +23 -1
  57. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +1 -1
  58. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +9 -3
  59. package/dist/types/platform-components/RecordPermissionDialog.vue.d.ts +15 -0
  60. package/dist/types/platform-components/RecordPicker.vue.d.ts +1 -1
  61. package/dist/types/platform-components/RecordQueryEnumFilter.vue.d.ts +17 -0
  62. package/dist/types/platform-components/RecordQueryListCell.vue.d.ts +12 -0
  63. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +104 -61
  64. package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +124 -0
  65. package/dist/types/platform-components/RecordRelationTable.vue.d.ts +62 -0
  66. package/dist/types/platform-components/RecordRelationValue.vue.d.ts +9 -0
  67. package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +3 -3
  68. package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +2 -0
  69. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +14 -3
  70. package/dist/types/platform-components/adaptiveHeaderActionLayout.d.ts +22 -0
  71. package/dist/types/platform-components/formulaExpressionTokens.d.ts +18 -0
  72. package/dist/types/platform-components/index.d.ts +20 -1
  73. package/dist/types/platform-components/managementExplorerContext.d.ts +11 -0
  74. package/dist/types/platform-components/managementWorkspaceContext.d.ts +20 -0
  75. package/dist/types/platform-components/managementWorkspaceLayout.d.ts +14 -0
  76. package/dist/types/platform-components/optionFieldOptionCache.d.ts +1 -1
  77. package/dist/types/platform-components/recordActionBarModel.d.ts +3 -0
  78. package/dist/types/platform-components/recordQueryListColumnModel.d.ts +42 -0
  79. package/dist/types/platform-components/selectionRefresh.d.ts +9 -0
  80. package/dist/types/platform-components/sortPartitionKey.d.ts +5 -0
  81. package/dist/types/platform-workbench/index.d.ts +2 -0
  82. package/dist/types/platform-workbench/useWorkspaceViewUnsavedState.d.ts +5 -0
  83. package/dist/types/platform-workbench/workbenchNavigation.d.ts +5 -1
  84. package/dist/types/platform-workbench/workspaceViewContract.d.ts +5 -0
  85. package/dist/types/platform-workbench/workspaceViewHost.d.ts +5 -0
  86. package/dist/types/platform-workbench/workspaceViewNavigation.d.ts +9 -0
  87. package/dist/types/platform-workbench/workspaceViewUnsavedState.d.ts +3 -0
  88. package/dist/types/views/BusinessRuleGovernanceSurface.vue.d.ts +10 -0
  89. package/dist/types/views/MetadataGovernanceSurface.vue.d.ts +8 -0
  90. package/dist/types/views/MetadataSourceTree.vue.d.ts +44 -0
  91. package/dist/types/views/ModuleBusinessPreview.vue.d.ts +7 -0
  92. package/dist/types/views/ModuleExperienceProfileOverview.vue.d.ts +7 -0
  93. package/dist/types/views/ModuleGovernanceView.vue.d.ts +9 -0
  94. package/dist/types/views/PageCompositionDescriptorPreview.vue.d.ts +54 -0
  95. package/dist/types/views/PageCompositionTree.vue.d.ts +103 -0
  96. package/dist/types/views/PageCompositionWorkspace.vue.d.ts +7 -0
  97. package/dist/types/views/PageQuerySummaryEditor.vue.d.ts +48 -0
  98. package/dist/types/views/businessRuleGovernance.d.ts +201 -0
  99. package/dist/types/views/metadataModelEditSession.d.ts +75 -0
  100. package/dist/types/views/metadataModelTree.d.ts +40 -0
  101. package/dist/types/views/metadataNaming.d.ts +7 -0
  102. package/dist/types/views/metadataOrchestrationState.d.ts +161 -6
  103. package/dist/types/views/metadataSourceTree.d.ts +10 -0
  104. package/dist/types/views/moduleGovernanceWorkspaceView.d.ts +9 -0
  105. package/dist/types/views/pageCompositionDraftState.d.ts +375 -0
  106. package/dist/types/views/pageCompositionDragPayload.d.ts +26 -0
  107. package/dist/types/views/pageCompositionMode.d.ts +86 -0
  108. package/dist/types/views/pageCompositionPlacement.d.ts +48 -0
  109. package/dist/types/views/pageCompositionTransport.d.ts +9 -0
  110. package/dist/types/views/usePageCompositionActionPreviewDrag.d.ts +41 -0
  111. package/dist/types/views/usePageCompositionPreviewDrag.d.ts +48 -0
  112. package/dist/types/vue-ui-antdv/components/UiActionButton.vue.d.ts +2 -2
  113. package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +6 -3
  114. package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +5 -2
  115. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  116. package/dist/types/vue-ui-antdv/components/UiPopover.vue.d.ts +22 -0
  117. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +1 -1
  118. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +5 -1
  119. package/dist/types/vue-ui-antdv/components/UiSwitch.vue.d.ts +1 -1
  120. package/dist/types/vue-ui-antdv/components/UiTextArea.vue.d.ts +38 -1
  121. package/dist/types/vue-ui-antdv/components/UiTokenInput.vue.d.ts +62 -0
  122. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +63 -9
  123. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +1 -1
  124. package/dist/types/vue-ui-antdv/index.d.ts +6 -1
  125. package/dist/types/vue-ui-antdv/treeStructure.d.ts +18 -0
  126. package/dist/types/vue-ui-antdv/types.d.ts +64 -0
  127. package/dist/types/vue-ui-antdv/useTreeLoader.d.ts +21 -0
  128. package/dist/types/vue-ui-antdv/useTreeMotion.d.ts +9 -0
  129. package/dist/types/vue-ui-antdv/useUiTreeDrag.d.ts +32 -0
  130. package/dist/types/web-contracts/index.d.ts +67 -7
  131. package/dist/types/web-core/module/index.d.ts +1 -0
  132. package/dist/types/web-core/module/moduleContext.d.ts +15 -0
  133. package/dist/types/web-core/module/pageActionEntries.d.ts +21 -0
  134. package/dist/types/web-core/module/runtimeContext.d.ts +7 -3
  135. package/dist/types/web-core/module/staticModuleClient.d.ts +25 -2
  136. package/dist/workspaceViews-DI_1vYX9.js +3518 -0
  137. package/package.json +1 -1
  138. package/dist/MetadataOrchestrationView-F_Bmfn9K.js +0 -661
  139. package/dist/ModuleActionManagementView-Db_3Twom.js +0 -597
  140. package/dist/platform-components-59b4qzUL.js +0 -12489
  141. package/dist/types/views/metadataOrchestrationWorkspaceView.d.ts +0 -6
  142. package/dist/workspaceViews-BvV8mpML.js +0 -11149
@@ -84,7 +84,12 @@ export interface WebBusinessNotification {
84
84
  content: string;
85
85
  dismissible: boolean;
86
86
  actions: WebBusinessNotificationAction[];
87
+ /** Optional standard card accent. Omit it to use the neutral platform presentation. */
88
+ tone?: WebBusinessNotificationTone;
89
+ /** The business fact's occurrence time, displayed in the workbench time zone when supplied. */
90
+ occurredAt?: string;
87
91
  }
92
+ export type WebBusinessNotificationTone = 'default' | 'success' | 'danger';
88
93
  export type WebBusinessNotificationAction = WebBusinessNotificationNavigateAction | WebBusinessNotificationRecordAction;
89
94
  export interface WebBusinessNotificationNavigateAction {
90
95
  kind: 'navigate';
@@ -129,6 +134,8 @@ export interface WebTreeNode<T> {
129
134
  * them to their own icon implementations.
130
135
  */
131
136
  export interface RecordInlineAction {
137
+ /** Optional single-level menu, rendered in the same stable inline action slot. */
138
+ items?: Array<Pick<RecordInlineAction, 'key' | 'title' | 'disabled' | 'danger'>>;
132
139
  key: string;
133
140
  /** Standard record action whose availability is resolved for the rendered record. */
134
141
  actionCode?: string;
@@ -140,7 +147,7 @@ export interface RecordInlineAction {
140
147
  disabledReason?: string;
141
148
  danger?: boolean;
142
149
  }
143
- export type RecordInlineActionIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'lock' | 'notification' | 'plus' | 'power' | 'reload' | 'save' | 'search' | 'settings';
150
+ export type RecordInlineActionIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'eye' | 'eye-off' | 'filter' | 'help' | 'lock' | 'notification' | 'plus' | 'power' | 'reload' | 'save' | 'search' | 'settings';
144
151
  export interface CurrentUser {
145
152
  userId: string;
146
153
  username?: string;
@@ -258,6 +265,8 @@ export interface PageBootstrapActionBlock {
258
265
  key?: string;
259
266
  actionCode: string;
260
267
  title?: string;
268
+ /** Business importance only; card shells decide direct display or “更多”. */
269
+ importance?: 'PRIMARY' | 'STANDARD' | 'SECONDARY';
261
270
  position?: string;
262
271
  targetUiConfigId?: string;
263
272
  submitPath?: string;
@@ -382,6 +391,8 @@ export interface ResolvedDetailRelationListField {
382
391
  title?: string;
383
392
  fieldForm?: string;
384
393
  fieldUiControlAlias?: string;
394
+ /** Source-neutral scalar value fact used by relation previews and portable list renderers. */
395
+ valueType?: ViewFieldValueType | string;
385
396
  width?: number;
386
397
  align?: 'left' | 'center' | 'right' | string;
387
398
  maxDisplayLines?: number;
@@ -626,6 +637,8 @@ export interface QuerySchemaField {
626
637
  defaultOperator?: QueryOperator;
627
638
  quickSearch?: boolean;
628
639
  sortable?: boolean;
640
+ /** Explicit field-domain binding; distinguishes options from reference title companions. */
641
+ optionBinding?: OptionBindingDescriptor;
629
642
  optionTitleField?: string;
630
643
  }
631
644
  export interface QuerySchemaQuickSearch {
@@ -665,7 +678,7 @@ export interface UiFormula {
665
678
  /** Versioned program compiled by FormulaEngine. The browser executes it locally and never parses expression. */
666
679
  export interface FormulaProgram {
667
680
  schemaVersion: number;
668
- profile: 'WEB_UI' | 'PAGE_TEXT' | 'FORM_COMPUTE';
681
+ profile: 'WEB_UI' | 'PAGE_TEXT' | 'FORM_COMPUTE' | 'FORM_VALIDATION';
669
682
  root: FormulaNode;
670
683
  referencedFields: string[];
671
684
  }
@@ -777,6 +790,8 @@ export interface ResolvedReferenceFieldDescriptor {
777
790
  candidateDependencies?: ReferenceCandidateDependency[];
778
791
  /** Read-side title projection for this scalar reference, when supplied by the server. */
779
792
  titleField?: string;
793
+ /** Target fields mapped by metadata to read-only source-record display projections. */
794
+ displayProjections?: ResolvedReferenceDisplayProjectionDescriptor[];
780
795
  /**
781
796
  * Explicitly authorized target-field paths available after choosing this ONE reference.
782
797
  * Paths are relative to this reference field; the form runtime prefixes them with the
@@ -791,6 +806,10 @@ export interface ResolvedReferenceFieldDescriptor {
791
806
  export interface ResolvedReferenceSelectionProjectionDescriptor {
792
807
  path: string[];
793
808
  }
809
+ export interface ResolvedReferenceDisplayProjectionDescriptor {
810
+ targetField: string;
811
+ outputField: string;
812
+ }
794
813
  export interface ReferenceCandidateDependency {
795
814
  sourceField: string;
796
815
  targetField: string;
@@ -832,6 +851,14 @@ export interface ResolvedFormComputeRuleDescriptor {
832
851
  triggerFields: string[];
833
852
  writePolicy: 'ALWAYS';
834
853
  }
854
+ /** Server-issued browser pre-save validation; the server enforces the same rule on mutation. */
855
+ export interface ResolvedFormValidationRuleDescriptor {
856
+ code: string;
857
+ program: FormulaProgram;
858
+ inputFields: string[];
859
+ targetField?: string;
860
+ message: string;
861
+ }
835
862
  export interface ResolvedViewDescriptor {
836
863
  viewCode: string;
837
864
  viewKind: ModuleViewKind;
@@ -842,6 +869,7 @@ export interface ResolvedViewDescriptor {
842
869
  sourceUiConfigId?: string;
843
870
  formGroups?: FormGroupDescriptor[];
844
871
  formComputeRules?: ResolvedFormComputeRuleDescriptor[];
872
+ formValidationRules?: ResolvedFormValidationRuleDescriptor[];
845
873
  }
846
874
  export type ModulePageTemplate = 'FLAT_MANAGEMENT' | 'LIST_DETAIL_CARD' | 'TREE_MANAGEMENT';
847
875
  export interface ResolvedPageExplorerDescriptor {
@@ -877,7 +905,7 @@ export interface ResolvedPageNavigatorLevelDescriptor {
877
905
  */
878
906
  sourceScope?: 'NONE' | 'CURRENT_TENANT';
879
907
  /** When present, the navigator source exposes its own standard CRUD affordances in place. */
880
- management?: ResolvedPageNavigatorManagementDescriptor;
908
+ management?: ResolvedPageNavigatorManagementDescriptor | null;
881
909
  }
882
910
  export interface ResolvedPageContextBindingDescriptor {
883
911
  source: 'SESSION' | 'NAVIGATOR' | 'RESOLVED_SELECTION';
@@ -915,10 +943,14 @@ export interface ResolvedPageTextDescriptor {
915
943
  export interface ResolvedPageListQuerySummaryDescriptor {
916
944
  key: string;
917
945
  title: string;
918
- source: 'MATCHED_COUNT' | 'CONTRIBUTOR';
946
+ source: 'MATCHED_COUNT' | 'SUM' | 'CONTRIBUTOR' | 'GROUPED';
947
+ fieldName?: string;
919
948
  contributorKey?: string;
949
+ groupByField?: string;
950
+ groupByTitle?: string;
951
+ sumFieldTitle?: string;
920
952
  }
921
- /** A persistent boolean query control rendered after search and before advanced filtering. */
953
+ /** A persistent boolean query control rendered before search; advanced filtering follows search. */
922
954
  export interface ResolvedPageListPersistentQueryControlDescriptor {
923
955
  externalCriteriaKey: string;
924
956
  title: string;
@@ -944,6 +976,8 @@ export interface ResolvedPageDetailWorkspaceViewDescriptor {
944
976
  type: string;
945
977
  }
946
978
  export interface ResolvedModulePageDescriptor {
979
+ /** Omitted uses the module default; empty disables page quick search. */
980
+ quickSearchFields?: string[];
947
981
  template: ModulePageTemplate;
948
982
  explorer?: ResolvedPageExplorerDescriptor;
949
983
  navigator?: ResolvedPageNavigatorDescriptor;
@@ -951,8 +985,24 @@ export interface ResolvedModulePageDescriptor {
951
985
  /** Declared action-contribution tree rendered as the main TREE_MANAGEMENT resource. */
952
986
  treeResource?: ResolvedPageTreeResourceDescriptor;
953
987
  detail: ResolvedPageDetailDescriptor;
988
+ /** Actions placed only into platform-owned page regions. */
989
+ actions?: ResolvedPageActionDescriptor[];
990
+ managedActions?: boolean;
954
991
  traits: ('STANDARD_CRUD' | 'ENABLED_STATUS' | 'RECYCLE_BIN' | 'RESPONSIVE_DETAIL_SURFACE')[];
955
992
  }
993
+ /** Compiled transport for an action that explicitly supports a standard page surface. */
994
+ export interface PageActionInvocation {
995
+ method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
996
+ path: string;
997
+ input: 'NONE' | 'FORM_RECORD';
998
+ }
999
+ export interface ResolvedPageActionDescriptor {
1000
+ title?: string;
1001
+ operation?: string;
1002
+ actionCode: string;
1003
+ anchor: 'PAGE' | 'DETAIL' | 'FORM';
1004
+ invocation?: PageActionInvocation;
1005
+ }
956
1006
  export interface ResolvedPageTreeResourceDescriptor {
957
1007
  resource: string;
958
1008
  scopeNavigatorKey: string;
@@ -963,6 +1013,8 @@ export interface ResolvedPageTreeResourceDescriptor {
963
1013
  title: string;
964
1014
  emptyDescription: string;
965
1015
  createTitle: string;
1016
+ /** Persisted fields that define the resource's own server-authoritative sort partition. */
1017
+ sortPartitionFields: string[];
966
1018
  }
967
1019
  export interface ResolvedUiActionConfirmationDescriptor {
968
1020
  mode: 'typedText';
@@ -1268,6 +1320,8 @@ export interface PlatformModule extends StandardEnabledTreeEntity {
1268
1320
  }
1269
1321
  /** A governed operation exposed by one platform module. */
1270
1322
  export interface PlatformModuleAction extends StandardEnabledSortableEntity {
1323
+ bindingPending?: boolean;
1324
+ formSupported?: boolean;
1271
1325
  moduleAlias?: string;
1272
1326
  actionCode?: string;
1273
1327
  entityAlias?: string;
@@ -1323,7 +1377,8 @@ export interface ModuleMetadataRelation extends StandardSortableEntity {
1323
1377
  moduleAlias?: string;
1324
1378
  metadataId?: string;
1325
1379
  relationAlias?: string;
1326
- relationRole?: 'MAIN' | 'CHILD';
1380
+ /** Runtime APIs serialize Java code enums using their lower-case code; upper-case remains accepted for fixtures. */
1381
+ relationRole?: 'main' | 'child' | 'MAIN' | 'CHILD';
1327
1382
  parentMetadataId?: string;
1328
1383
  foreignKey?: string;
1329
1384
  autoPopulate?: boolean;
@@ -1346,6 +1401,7 @@ export interface FieldSpec extends StandardEnabledSortableEntity {
1346
1401
  queryOperators?: string[];
1347
1402
  defaultUiControlAlias?: string;
1348
1403
  uiControlAliases?: string[];
1404
+ safeTargetFieldSpecAliases?: string[];
1349
1405
  }
1350
1406
  export interface FieldUiControl extends StandardEnabledSortableEntity {
1351
1407
  alias?: string;
@@ -1391,9 +1447,13 @@ export interface DictionaryItem extends StandardEnabledTreeEntity {
1391
1447
  categoryAlias?: string;
1392
1448
  code?: string;
1393
1449
  }
1394
- export interface TreeSortRequest {
1450
+ /** Relative placement for a sortable flat record collection. */
1451
+ export interface SortRequest {
1395
1452
  previousId?: string | null;
1396
1453
  nextId?: string | null;
1454
+ }
1455
+ /** Relative placement for a sortable tree record collection. */
1456
+ export interface TreeSortRequest extends SortRequest {
1397
1457
  parentId?: string | null;
1398
1458
  }
1399
1459
  export type FieldKind = 'input' | 'select' | 'dictionary-select' | 'reference-select';
@@ -4,3 +4,4 @@ export * from './staticModuleClient';
4
4
  export type { ModuleActionState, ModuleRecordActionAvailability, ModuleRuntimeAction, ModuleRuntimeContext, ModuleRuntimeContextState, } from './runtimeContext';
5
5
  export type { ModuleAbilityClients, ModuleAbilities } from './abilities';
6
6
  export * from './moduleContext';
7
+ export * from './pageActionEntries';
@@ -1,3 +1,4 @@
1
+ import { type PropType } from 'vue';
1
2
  import type { HttpClient } from '../http';
2
3
  import { type ModuleAbilities } from './abilities';
3
4
  import { type ModuleActionState, type ModuleRecordActionAvailability, type ModuleRuntimeAction, type ModuleRuntimeContextState } from './runtimeContext';
@@ -34,6 +35,20 @@ export declare function createModuleContext<TRecord>(options: ModuleContextOptio
34
35
  export declare function createModuleTreeContext<TRecord>(options: ModuleContextOptions): ModuleTreeContext<TRecord>;
35
36
  export declare function useModuleContext<TRecord>(options?: Partial<ModuleContextOptions>): ModuleContext<TRecord>;
36
37
  export declare function useModuleTreeContext<TRecord>(options?: Partial<ModuleContextOptions>): ModuleTreeContext<TRecord>;
38
+ /** An immutable transport boundary; remount it to begin a separate business data session. */
39
+ export declare const ModuleHttpProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
40
+ http: {
41
+ type: PropType<HttpClient>;
42
+ required: true;
43
+ };
44
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
45
+ [key: string]: any;
46
+ }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
47
+ http: {
48
+ type: PropType<HttpClient>;
49
+ required: true;
50
+ };
51
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
37
52
  export declare const ModuleContextProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
38
53
  moduleAlias: {
39
54
  type: StringConstructor;
@@ -0,0 +1,21 @@
1
+ /** Shared interaction vocabulary for page design and business rendering. */
2
+ export declare function pageActionIntent(code: string, anchor: string): {
3
+ operation: string;
4
+ title: string;
5
+ mode?: "create" | "edit";
6
+ };
7
+ export declare function pageActionEntryTitle(entry: {
8
+ actionCode: string;
9
+ anchor: string;
10
+ title?: string;
11
+ }): string;
12
+ export declare function pageActionEntryVisible(entry: {
13
+ actionCode: string;
14
+ anchor: string;
15
+ hidden?: boolean;
16
+ operation?: string;
17
+ }, mode: 'view' | 'create' | 'edit'): boolean;
18
+ export declare function pageActionEntryDescription(entry: {
19
+ actionCode: string;
20
+ anchor: string;
21
+ }): string;
@@ -1,8 +1,11 @@
1
- import type { ResolvedModuleUiDescriptor } from '../../web-contracts/index';
1
+ import type { PageActionInvocation, ResolvedModuleUiDescriptor } from '../../web-contracts/index';
2
2
  import { type AppError } from '../errors';
3
3
  import type { HttpClient } from '../http';
4
4
  import type { ModuleAbilityCode } from './abilityCodes';
5
5
  export interface ModuleRuntimeAction {
6
+ bindingPending?: boolean;
7
+ formSupported?: boolean;
8
+ invocations?: Partial<Record<'PAGE' | 'DETAIL' | 'FORM', PageActionInvocation>>;
6
9
  actionCode: string;
7
10
  permissionActionCode?: string;
8
11
  title?: string;
@@ -38,6 +41,7 @@ export interface ModuleRecordActionDecision {
38
41
  }
39
42
  export interface ModuleRuntimeContext {
40
43
  moduleAlias: string;
44
+ tenantRequired?: boolean;
41
45
  title?: string;
42
46
  moduleKind?: 'STATIC' | 'DYNAMIC';
43
47
  entryType?: 'module' | 'route' | 'link';
@@ -45,10 +49,10 @@ export interface ModuleRuntimeContext {
45
49
  entryExternalUrl?: string;
46
50
  mainEntityAlias?: string;
47
51
  capabilities: string[];
52
+ /** Persisted fields that define the server-authoritative sort partition. */
53
+ sortPartitionFields?: string[];
48
54
  abilities?: string[];
49
55
  actions: ModuleRuntimeAction[];
50
- /** Read-only projections this module deliberately exposes for page navigation. */
51
- navigatorSourceCapabilities?: Array<'REFERENCE_QUERY' | 'REFERENCE_TREE'>;
52
56
  uiDescriptor?: ResolvedModuleUiDescriptor;
53
57
  }
54
58
  export interface ModuleRuntimeContextState {
@@ -1,4 +1,4 @@
1
- import type { TreeSortRequest, WebActionResultFacts, WebActionResultEnvelope, QuerySchema, WebListResponse, WebPageResponse, WebQueryRequest, WebTreeNode } from '../../web-contracts/index';
1
+ import type { SortRequest, TreeSortRequest, WebActionResultFacts, WebActionResultEnvelope, QuerySchema, WebListResponse, WebPageResponse, WebQueryRequest, WebTreeNode } from '../../web-contracts/index';
2
2
  import type { HttpClient } from '../http';
3
3
  export interface StaticRecordMutationResult<TRecord> extends WebActionResultFacts {
4
4
  record: TRecord;
@@ -21,6 +21,8 @@ export interface ModuleCrudClient<TRecord> {
21
21
  delete(id: string, request: RecordActionRequest): Promise<StaticCountMutationResult>;
22
22
  enable(id: string, request: RecordActionRequest): Promise<StaticCountMutationResult>;
23
23
  disable(id: string, request: RecordActionRequest): Promise<StaticCountMutationResult>;
24
+ /** Optional capability: plain CRUD consumers must not be forced to implement sorting. */
25
+ sort?(id: string, request: SortRequest): Promise<StaticCountMutationResult>;
24
26
  }
25
27
  /** Source-neutral tree extension for a platform module. */
26
28
  export interface ModuleTreeClient<TRecord> extends ModuleCrudClient<TRecord> {
@@ -32,7 +34,12 @@ export interface ModuleTreeClient<TRecord> extends ModuleCrudClient<TRecord> {
32
34
  subtree(id: string, options?: {
33
35
  includeSelf?: boolean;
34
36
  }): Promise<WebListResponse<WebTreeNode<TRecord>>>;
35
- sort(id: string, request: TreeSortRequest): Promise<StaticCountMutationResult>;
37
+ sort(id: string, request: TreeSortRequest, options?: TreeSortOptions): Promise<StaticCountMutationResult>;
38
+ }
39
+ export interface TreeSortOptions {
40
+ externalQueryValues?: Record<string, unknown>;
41
+ navigatorHostModuleAlias?: string;
42
+ navigatorTargetLevelKey?: string;
36
43
  }
37
44
  export interface ModuleEnableClient {
38
45
  enable(id: string, request: RecordActionRequest): Promise<StaticCountMutationResult>;
@@ -83,3 +90,19 @@ export type StaticModuleTreeClient<TRecord> = ModuleTreeClient<TRecord>;
83
90
  export declare const createStaticModuleCrudClient: typeof createModuleCrudClient;
84
91
  /** @deprecated Use createModuleTreeClient. Retained for published consumer compatibility. */
85
92
  export declare const createStaticModuleTreeClient: typeof createModuleTreeClient;
93
+ /**
94
+ * Dynamic records use a typed `{ id, version, values, children }` wire envelope while static
95
+ * records already publish their fields at the root. The shared module client is the only place
96
+ * that should bridge this transport difference: every page surface then consumes one flat record
97
+ * contract, including aggregate children, and submits that same accepted shape back to the
98
+ * dynamic deserializer.
99
+ */
100
+ export declare function normalizeModuleRecord<TRecord>(record: TRecord): TRecord;
101
+ /**
102
+ * Normalizes a page response at the source-neutral module transport boundary.
103
+ *
104
+ * <p>Association query contracts use their server-issued route directly instead of the standard
105
+ * module CRUD path, but they still return the same dynamic record envelope. Keeping this helper
106
+ * public lets those descriptor-driven surfaces reuse the one normalization rule.</p>
107
+ */
108
+ export declare function normalizeModulePageResponse<TRecord>(response: WebPageResponse<TRecord>): WebPageResponse<TRecord>;