@ximatai/muyun-web-app 0.26.9 → 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 (70) hide show
  1. package/dist/{MetadataOrchestrationView-CzhAgEdX.js → MetadataOrchestrationView-BhtVwJII.js} +182 -182
  2. package/dist/{ModuleActionManagementView-CM2d8jPO.js → ModuleActionManagementView-DpZS-xAD.js} +70 -70
  3. package/dist/RoleAuthorizationView-8lilhtMB.js +646 -0
  4. package/dist/{RoleDetailWorkspaceView-CzaQ3Dz1.js → RoleDetailWorkspaceView-CFha6JHn.js} +1 -1
  5. package/dist/{RoleManagementView-nY7qu4GF.js → RoleManagementView-0_KDrzgh.js} +511 -514
  6. package/dist/index.css +1 -1
  7. package/dist/index.js +282 -302
  8. package/dist/{platform-components-CIi6GdC9.js → platform-components-oRIsIoxu.js} +2060 -1893
  9. package/dist/types/app/StaticRoutePageHost.vue.d.ts +2 -0
  10. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +4 -2
  11. package/dist/types/consumer/index.d.ts +1 -1
  12. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +3 -1
  13. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +2 -1
  14. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +3 -1
  15. package/dist/types/dynamic-page-runtime/ModulePageListExpansionSurface.vue.d.ts +2 -1
  16. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansion.vue.d.ts +2 -1
  17. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansions.vue.d.ts +2 -1
  18. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +3 -1
  19. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +7 -2
  20. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailExtensionRuntime.d.ts +2 -0
  21. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +69 -15
  22. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +3 -2
  23. package/dist/types/dynamic-page-runtime/index.d.ts +2 -1
  24. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +35 -3
  25. package/dist/types/dynamic-page-runtime/navigatorEntrySelection.d.ts +18 -0
  26. package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +8 -0
  27. package/dist/types/dynamic-page-runtime/pageNavigatorItemModel.d.ts +13 -0
  28. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +9 -8
  29. package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +6 -0
  30. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +4 -0
  31. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +2 -0
  32. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +5 -3
  33. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +2 -0
  34. package/dist/types/platform-components/RecordFormFields.vue.d.ts +2 -2
  35. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +2 -0
  36. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +2 -0
  37. package/dist/types/platform-components/RecordPicker.vue.d.ts +2 -0
  38. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +7 -1
  39. package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +2 -0
  40. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +4 -0
  41. package/dist/types/platform-components/index.d.ts +0 -2
  42. package/dist/types/platform-components/recordFormFieldModel.d.ts +16 -2
  43. package/dist/types/platform-components/recordPickerConstraints.d.ts +2 -0
  44. package/dist/types/platform-workbench/Workbench.vue.d.ts +4 -2
  45. package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +4 -2
  46. package/dist/types/vue-ui-antdv/components/UiSwitch.vue.d.ts +2 -0
  47. package/dist/types/web-contracts/index.d.ts +72 -2
  48. package/dist/types/web-core/http.d.ts +6 -0
  49. package/dist/types/web-core/module/index.d.ts +1 -1
  50. package/dist/types/web-core/module/moduleContext.d.ts +2 -1
  51. package/dist/types/web-core/module/staticModuleClient.d.ts +6 -0
  52. package/dist/types/web-core/realtime.d.ts +8 -0
  53. package/dist/{workspaceViews-CkERhK0K.js → workspaceViews-D-RiJ64o.js} +3341 -3011
  54. package/package.json +1 -1
  55. package/dist/DictionaryManagementView-CtIQpqVA.js +0 -1035
  56. package/dist/MenuManagementView-DJhkN2sG.js +0 -837
  57. package/dist/RoleAuthorizationView-jn_WUCeg.js +0 -599
  58. package/dist/SystemUserDetailWorkspaceView-CBvqmWvP.js +0 -17
  59. package/dist/SystemUserManagementView-AEomKvK7.js +0 -887
  60. package/dist/currentUserContext-B1lj1WgF.js +0 -11
  61. package/dist/types/platform-components/scopedResourceTreeModuleContext.d.ts +0 -6
  62. package/dist/types/views/DictionaryManagementView.vue.d.ts +0 -3
  63. package/dist/types/views/MenuManagementView.vue.d.ts +0 -3
  64. package/dist/types/views/SystemUserDetailWorkspaceView.vue.d.ts +0 -7
  65. package/dist/types/views/SystemUserManagementView.vue.d.ts +0 -7
  66. package/dist/types/views/dictionaryManagementState.d.ts +0 -215
  67. package/dist/types/views/menuManagementState.d.ts +0 -180
  68. package/dist/types/views/systemUserDetailWorkspaceSession.d.ts +0 -12
  69. package/dist/types/views/systemUserDetailWorkspaceView.d.ts +0 -5
  70. package/dist/workspaceViewSessions-B5g4M0rT.js +0 -51
@@ -5,6 +5,8 @@ type __VLS_Props = {
5
5
  component: Component;
6
6
  route: RouteLocationNormalizedLoaded;
7
7
  pageDescriptor?: PageDescriptor;
8
+ /** Refreshes this page's inner route component without evicting sibling tabs from KeepAlive. */
9
+ refreshRevision?: number;
8
10
  };
9
11
  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>;
10
12
  declare const _default: typeof __VLS_export;
@@ -12,18 +12,20 @@ type __VLS_Props = {
12
12
  realtimeStatus?: WorkbenchRealtimeStatus;
13
13
  themeAppearance?: 'light' | 'dark';
14
14
  };
15
- declare var __VLS_17: {
15
+ declare var __VLS_18: {
16
16
  pageDescriptor: PageDescriptor | undefined;
17
17
  };
18
18
  type __VLS_Slots = {} & {
19
- default?: (props: typeof __VLS_17) => any;
19
+ default?: (props: typeof __VLS_18) => any;
20
20
  };
21
21
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
22
  navigate: (navigation: AppWorkbenchNavigation) => any;
23
+ refreshPage: (key: string) => any;
23
24
  userCommand: (key: string) => any;
24
25
  "update:startup": (value: WorkbenchStartupState) => any;
25
26
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
26
27
  onNavigate?: ((navigation: AppWorkbenchNavigation) => any) | undefined;
28
+ onRefreshPage?: ((key: string) => any) | undefined;
27
29
  onUserCommand?: ((key: string) => any) | undefined;
28
30
  "onUpdate:startup"?: ((value: WorkbenchStartupState) => any) | undefined;
29
31
  }>, {
@@ -15,7 +15,7 @@ export { activeTabUrlOf, arrangeLockedMenuTabs, removeLockedMenuTabs, restoreWor
15
15
  export { restoreLockedTabPreference, saveLockedTabPreference } from '../app/lockedTabPreference';
16
16
  export { configureModulePageEnhancementContributions, configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, } from '../dynamic-page-runtime/modulePageEnhancements';
17
17
  export { refreshModulePageList } from '../dynamic-page-runtime/modulePageListRefresh';
18
- export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageEnhancement, ModulePageEnhancementTarget, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from '../dynamic-page-runtime/modulePageEnhancements';
18
+ export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageEnhancement, ModulePageEnhancementTarget, ModulePageLockedNavigatorEntry, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from '../dynamic-page-runtime/modulePageEnhancements';
19
19
  export { UiButton, confirmAction, UiDataTable, UiSidePanel, UiTree, UiTreeSelect, UiInput, UiSwitch, UiTextArea, } from '../vue-ui-antdv/index';
20
20
  export { default as PlatformAdminOutlet } from './PlatformAdminOutlet.vue';
21
21
  export { default as AppWorkbenchShell } from './AppWorkbenchShell.vue';
@@ -1,8 +1,9 @@
1
1
  import { type QueryListRecord } from '../platform-components/index';
2
2
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor } from '../web-contracts/index';
3
- import { type ModuleContext } from '../web-core/index';
3
+ import { type HttpClient, type ModuleContext } from '../web-core/index';
4
4
  type __VLS_Props = {
5
5
  sourceContext: ModuleContext<QueryListRecord>;
6
+ crossModuleHttp?: HttpClient;
6
7
  uiDescriptor: ResolvedModuleUiDescriptor;
7
8
  relation: ResolvedDetailRelationDescriptor;
8
9
  parentRecord: QueryListRecord;
@@ -31,6 +32,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
31
32
  density: "default" | "compact";
32
33
  reloadKey: number;
33
34
  validationRequestKey: number;
35
+ crossModuleHttp: HttpClient;
34
36
  addRequestKey: number;
35
37
  removeRequestKey: number;
36
38
  undoRemoveRequestKey: number;
@@ -1,8 +1,9 @@
1
1
  import { type QueryListRecord } from '../platform-components/index';
2
2
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor } from '../web-contracts/index';
3
- import { type ModuleContext } from '../web-core/index';
3
+ import { type HttpClient, type ModuleContext } from '../web-core/index';
4
4
  type __VLS_Props = {
5
5
  sourceContext: ModuleContext<QueryListRecord>;
6
+ crossModuleHttp?: HttpClient;
6
7
  uiDescriptor: ResolvedModuleUiDescriptor;
7
8
  relation: ResolvedDetailRelationDescriptor;
8
9
  parentRecord: QueryListRecord;
@@ -1,8 +1,9 @@
1
1
  import { type QueryListRecord } from '../platform-components/index';
2
2
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor } from '../web-contracts/index';
3
- import type { ModuleContext } from '../web-core/index';
3
+ import type { HttpClient, ModuleContext } from '../web-core/index';
4
4
  type __VLS_Props = {
5
5
  sourceContext: ModuleContext<QueryListRecord>;
6
+ crossModuleHttp?: HttpClient;
6
7
  uiDescriptor: ResolvedModuleUiDescriptor;
7
8
  relations: ResolvedDetailRelationDescriptor[];
8
9
  parentRecord: QueryListRecord;
@@ -21,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
21
22
  reloadKey: number;
22
23
  surface: "detail" | "list-expansion";
23
24
  validationRequestKey: number;
25
+ crossModuleHttp: HttpClient;
24
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
27
  declare const _default: typeof __VLS_export;
26
28
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import { type QueryListRecord } from '../platform-components/index';
2
2
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor, ResolvedPageListRelationExpansionDescriptor } from '../web-contracts/index';
3
- import type { ModuleContext } from '../web-core/index';
3
+ import type { HttpClient, ModuleContext } from '../web-core/index';
4
4
  import type { ModulePageListRowExpansion, ModulePageListRowExpansionContext } from './modulePageEnhancements';
5
5
  type RelationExpansionEntry = {
6
6
  expansion: ResolvedPageListRelationExpansionDescriptor;
@@ -8,6 +8,7 @@ type RelationExpansionEntry = {
8
8
  };
9
9
  type __VLS_Props = {
10
10
  sourceContext: ModuleContext<QueryListRecord>;
11
+ crossModuleHttp?: HttpClient;
11
12
  uiDescriptor: ResolvedModuleUiDescriptor;
12
13
  record: QueryListRecord;
13
14
  relationEntries: readonly RelationExpansionEntry[];
@@ -1,8 +1,9 @@
1
1
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor, ResolvedPageListRelationExpansionDescriptor } from '../web-contracts/index';
2
- import type { ModuleContext } from '../web-core/index';
2
+ import type { HttpClient, ModuleContext } from '../web-core/index';
3
3
  import { type QueryListRecord } from '../platform-components/index';
4
4
  type __VLS_Props = {
5
5
  sourceContext: ModuleContext<QueryListRecord>;
6
+ crossModuleHttp?: HttpClient;
6
7
  uiDescriptor: ResolvedModuleUiDescriptor;
7
8
  record: QueryListRecord;
8
9
  relation: ResolvedDetailRelationDescriptor;
@@ -1,5 +1,5 @@
1
1
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor, ResolvedPageListRelationExpansionDescriptor } from '../web-contracts/index';
2
- import type { ModuleContext } from '../web-core/index';
2
+ import type { HttpClient, ModuleContext } from '../web-core/index';
3
3
  import { type QueryListRecord } from '../platform-components/index';
4
4
  type RelationExpansionEntry = {
5
5
  relation: ResolvedDetailRelationDescriptor;
@@ -7,6 +7,7 @@ type RelationExpansionEntry = {
7
7
  };
8
8
  type __VLS_Props = {
9
9
  sourceContext: ModuleContext<QueryListRecord>;
10
+ crossModuleHttp?: HttpClient;
10
11
  uiDescriptor: ResolvedModuleUiDescriptor;
11
12
  record: QueryListRecord;
12
13
  entries: readonly RelationExpansionEntry[];
@@ -1,9 +1,11 @@
1
1
  import { type QueryListRecord, type RecordFormFieldPickerConfig, type RecordFormFieldValue, type RecordFormFieldDescriptor } from '../platform-components/index';
2
- import type { ModuleContext } from '../web-core/index';
2
+ import type { HttpClient, ModuleContext } from '../web-core/index';
3
3
  import type { ResolvedDetailRelationDescriptor, ResolvedModuleUiDescriptor } from '../web-contracts/index';
4
4
  import type { ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageFormContribution, ModulePageFormFieldPolicy } from './modulePageEnhancements';
5
5
  type __VLS_Props = {
6
6
  context: ModuleContext<QueryListRecord>;
7
+ /** Neutral transport for reference target modules. */
8
+ crossModuleHttp?: HttpClient;
7
9
  mode: 'view' | 'edit' | 'create';
8
10
  record: QueryListRecord;
9
11
  selectedRecord?: QueryListRecord;
@@ -12,16 +12,21 @@ type __VLS_Props = {
12
12
  reloadKey: number;
13
13
  keyword: string;
14
14
  externalQueryValues?: Record<string, unknown>;
15
+ navigatorHostModuleAlias: string;
16
+ /** Whether this navigator's upstream selection scope is available. */
17
+ ready?: boolean;
15
18
  /** The navigator's declared upstream query scope is not settled yet. */
16
19
  createDisabled?: boolean;
17
20
  createDisabledReason?: string;
21
+ /** Human-readable context supplied by an upstream navigator selection. */
22
+ scopeSubtitle?: string;
18
23
  actionsOf?: (record: {
19
24
  id?: string;
20
25
  }) => RecordInlineAction[];
21
26
  };
22
- declare var __VLS_40: {};
27
+ declare var __VLS_45: {};
23
28
  type __VLS_Slots = {} & {
24
- editor?: (props: typeof __VLS_40) => any;
29
+ editor?: (props: typeof __VLS_45) => any;
25
30
  };
26
31
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
27
32
  action: (action: RecordInlineAction, record: QueryListRecord) => any;
@@ -17,10 +17,12 @@ interface Options {
17
17
  /** Owns frontend-only detail extension invalidation and drawer lifecycle. */
18
18
  export declare function useModulePageDetailExtensionRuntime(options: Options): {
19
19
  drawer: import("vue").Ref<ModulePageEnhancementDrawerRuntime | undefined, ModulePageEnhancementDrawerRuntime | undefined>;
20
+ drawerOpen: import("vue").Ref<boolean, boolean>;
20
21
  refreshDetailExtensions: () => void;
21
22
  sectionContext: (record: QueryListRecord) => ModulePageDetailSectionContext;
22
23
  recordViewContext: (record: QueryListRecord) => ModulePageRecordViewContext;
23
24
  openDrawer: (definition: ModulePageDrawer, record?: QueryListRecord) => void;
24
25
  closeDrawer: () => void;
26
+ disposeDrawer: () => void;
25
27
  };
26
28
  export {};
@@ -1,19 +1,29 @@
1
1
  import { type Ref } from 'vue';
2
2
  import { type QueryListRecord, type RecordFormFieldDescriptor } from '../../platform-components/index';
3
- import type { ResolvedModuleUiDescriptor, ResolvedModulePageDescriptor, ResolvedPageContextBindingDescriptor, ResolvedPageNavigatorLevelDescriptor } from '../../web-contracts/index';
4
- import { type ModuleContext } from '../../web-core/index';
3
+ import type { ResolvedModuleUiDescriptor, ResolvedModulePageDescriptor, ResolvedPageContextBindingDescriptor, ResolvedPageNavigatorLevelDescriptor, RouteQueryValue } from '../../web-contracts/index';
4
+ import { type HttpClient, type ModuleContext } from '../../web-core/index';
5
+ import { type NavigatorEntrySelection } from '../navigatorEntrySelection';
5
6
  /** Runtime state that belongs to the page/navigator session rather than to a Vue host. */
6
7
  export interface NavigatorLevelRuntime {
7
8
  descriptor: ResolvedPageNavigatorLevelDescriptor;
8
9
  context: ModuleContext<QueryListRecord>;
9
10
  tree: boolean;
10
11
  }
12
+ export interface NavigatorEntrySelectionChange {
13
+ previous?: NavigatorEntrySelection;
14
+ current?: NavigatorEntrySelection;
15
+ }
16
+ interface NavigatorEntrySelectionResolution {
17
+ identity: string;
18
+ revision: number;
19
+ record?: QueryListRecord;
20
+ }
11
21
  /**
12
22
  * Resolves the standard runtime descriptor once and owns all navigator source
13
23
  * contexts. The host only binds the returned state to visual surfaces; this
14
24
  * keeps list, detail and tree templates on the same navigator session.
15
25
  */
16
- export declare function useNavigatorRuntime(context: ModuleContext<QueryListRecord>): {
26
+ export declare function useNavigatorRuntime(context: ModuleContext<QueryListRecord>, crossModuleHttp?: HttpClient): {
17
27
  formFields: Ref<Map<string, {
18
28
  fieldRef: {
19
29
  relationCode?: string | undefined;
@@ -92,6 +102,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
92
102
  } | undefined;
93
103
  maxDisplayLines?: number | undefined;
94
104
  treeRootTitle?: string | undefined;
105
+ overrideOf?: string | undefined;
95
106
  fieldControl?: {
96
107
  alias: string;
97
108
  rendererType: string;
@@ -129,6 +140,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
129
140
  required: boolean;
130
141
  }[] | undefined;
131
142
  titleField?: string | undefined;
143
+ selectionProjections?: {
144
+ path: string[];
145
+ }[] | undefined;
132
146
  } | undefined;
133
147
  fileReference?: {
134
148
  fieldRef: {
@@ -242,6 +256,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
242
256
  falseTone?: import("../../web-contracts/index").BooleanStatusTone | undefined;
243
257
  } | undefined;
244
258
  treeRootTitle?: string | undefined;
259
+ overrideOf?: string | undefined;
245
260
  option?: {
246
261
  binding: {
247
262
  sourceType: string;
@@ -269,6 +284,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
269
284
  required: boolean;
270
285
  }[] | undefined;
271
286
  titleField?: string | undefined;
287
+ selectionProjections?: {
288
+ path: string[];
289
+ }[] | undefined;
272
290
  } | undefined;
273
291
  referenceSummary?: {
274
292
  sourceField: string;
@@ -378,6 +396,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
378
396
  } | undefined;
379
397
  maxDisplayLines?: number | undefined;
380
398
  treeRootTitle?: string | undefined;
399
+ overrideOf?: string | undefined;
381
400
  fieldControl?: {
382
401
  alias: string;
383
402
  rendererType: string;
@@ -415,6 +434,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
415
434
  required: boolean;
416
435
  }[] | undefined;
417
436
  titleField?: string | undefined;
437
+ selectionProjections?: {
438
+ path: string[];
439
+ }[] | undefined;
418
440
  } | undefined;
419
441
  fileReference?: {
420
442
  fieldRef: {
@@ -528,6 +550,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
528
550
  falseTone?: import("../../web-contracts/index").BooleanStatusTone | undefined;
529
551
  } | undefined;
530
552
  treeRootTitle?: string | undefined;
553
+ overrideOf?: string | undefined;
531
554
  option?: {
532
555
  binding: {
533
556
  sourceType: string;
@@ -555,6 +578,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
555
578
  required: boolean;
556
579
  }[] | undefined;
557
580
  titleField?: string | undefined;
581
+ selectionProjections?: {
582
+ path: string[];
583
+ }[] | undefined;
558
584
  } | undefined;
559
585
  referenceSummary?: {
560
586
  sourceField: string;
@@ -665,6 +691,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
665
691
  } | undefined;
666
692
  maxDisplayLines?: number | undefined;
667
693
  treeRootTitle?: string | undefined;
694
+ overrideOf?: string | undefined;
668
695
  fieldControl?: {
669
696
  alias: string;
670
697
  rendererType: string;
@@ -702,6 +729,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
702
729
  required: boolean;
703
730
  }[] | undefined;
704
731
  titleField?: string | undefined;
732
+ selectionProjections?: {
733
+ path: string[];
734
+ }[] | undefined;
705
735
  } | undefined;
706
736
  fileReference?: {
707
737
  fieldRef: {
@@ -815,6 +845,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
815
845
  falseTone?: import("../../web-contracts/index").BooleanStatusTone | undefined;
816
846
  } | undefined;
817
847
  treeRootTitle?: string | undefined;
848
+ overrideOf?: string | undefined;
818
849
  option?: {
819
850
  binding: {
820
851
  sourceType: string;
@@ -842,6 +873,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
842
873
  required: boolean;
843
874
  }[] | undefined;
844
875
  titleField?: string | undefined;
876
+ selectionProjections?: {
877
+ path: string[];
878
+ }[] | undefined;
845
879
  } | undefined;
846
880
  referenceSummary?: {
847
881
  sourceField: string;
@@ -951,6 +985,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
951
985
  } | undefined;
952
986
  maxDisplayLines?: number | undefined;
953
987
  treeRootTitle?: string | undefined;
988
+ overrideOf?: string | undefined;
954
989
  fieldControl?: {
955
990
  alias: string;
956
991
  rendererType: string;
@@ -988,6 +1023,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
988
1023
  required: boolean;
989
1024
  }[] | undefined;
990
1025
  titleField?: string | undefined;
1026
+ selectionProjections?: {
1027
+ path: string[];
1028
+ }[] | undefined;
991
1029
  } | undefined;
992
1030
  fileReference?: {
993
1031
  fieldRef: {
@@ -1101,6 +1139,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1101
1139
  falseTone?: import("../../web-contracts/index").BooleanStatusTone | undefined;
1102
1140
  } | undefined;
1103
1141
  treeRootTitle?: string | undefined;
1142
+ overrideOf?: string | undefined;
1104
1143
  option?: {
1105
1144
  binding: {
1106
1145
  sourceType: string;
@@ -1128,6 +1167,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1128
1167
  required: boolean;
1129
1168
  }[] | undefined;
1130
1169
  titleField?: string | undefined;
1170
+ selectionProjections?: {
1171
+ path: string[];
1172
+ }[] | undefined;
1131
1173
  } | undefined;
1132
1174
  referenceSummary?: {
1133
1175
  sourceField: string;
@@ -1162,6 +1204,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1162
1204
  }> & Omit<Map<string, RecordFormFieldDescriptor>, keyof Map<any, any>>)>;
1163
1205
  runtimePage: Ref<ResolvedModulePageDescriptor | undefined, ResolvedModulePageDescriptor | undefined>;
1164
1206
  runtimeUiDescriptor: Ref<ResolvedModuleUiDescriptor | undefined, ResolvedModuleUiDescriptor | undefined>;
1207
+ runtimePageResolved: Ref<boolean, boolean>;
1165
1208
  treeModule: Ref<boolean, boolean>;
1166
1209
  navigatorLevels: Ref<{
1167
1210
  descriptor: {
@@ -1170,6 +1213,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1170
1213
  sourceModuleAlias: string;
1171
1214
  title: string;
1172
1215
  searchPlaceholder: string;
1216
+ secondaryField?: string | undefined;
1173
1217
  singleResultPolicy?: "NONE" | "AUTO_SELECT" | "AUTO_SELECT_AND_HIDE" | undefined;
1174
1218
  initialSelectionPolicy?: "NONE" | "FIRST_RECORD" | undefined;
1175
1219
  sourceScope?: "NONE" | "CURRENT_TENANT" | undefined;
@@ -1206,9 +1250,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1206
1250
  action: (actionCode: string, recordId?: string) => import("../../web-core/index").ModuleActionState | undefined;
1207
1251
  runtimeAction: (actionCode: string) => import("../../web-core/index").ModuleRuntimeAction | undefined;
1208
1252
  can: (actionCode: string, recordId?: string) => boolean | undefined;
1209
- recordActions: (recordId: string) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability>;
1210
- recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability[]>) | undefined;
1211
- recordActionsSnapshot: (recordId: string) => import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability | undefined;
1253
+ recordActions: (recordId: string) => Promise<import("../../web-core/index").ModuleRecordActionAvailability>;
1254
+ recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/index").ModuleRecordActionAvailability[]>) | undefined;
1255
+ recordActionsSnapshot: (recordId: string) => import("../../web-core/index").ModuleRecordActionAvailability | undefined;
1212
1256
  invalidateRecordActions?: ((recordIds?: string[]) => void) | undefined;
1213
1257
  };
1214
1258
  abilities: {
@@ -1226,9 +1270,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1226
1270
  action: (actionCode: string, recordId?: string) => import("../../web-core/index").ModuleActionState | undefined;
1227
1271
  runtimeAction: (actionCode: string) => import("../../web-core/index").ModuleRuntimeAction | undefined;
1228
1272
  can: (actionCode: string, recordId?: string) => boolean | undefined;
1229
- recordActions: (recordId: string) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability>;
1230
- recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability[]>) | undefined;
1231
- recordActionsSnapshot: (recordId: string) => import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability | undefined;
1273
+ recordActions: (recordId: string) => Promise<import("../../web-core/index").ModuleRecordActionAvailability>;
1274
+ recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/index").ModuleRecordActionAvailability[]>) | undefined;
1275
+ recordActionsSnapshot: (recordId: string) => import("../../web-core/index").ModuleRecordActionAvailability | undefined;
1232
1276
  invalidateRecordActions?: ((recordIds?: string[]) => void) | undefined;
1233
1277
  };
1234
1278
  tree: boolean;
@@ -1239,6 +1283,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1239
1283
  sourceModuleAlias: string;
1240
1284
  title: string;
1241
1285
  searchPlaceholder: string;
1286
+ secondaryField?: string | undefined;
1242
1287
  singleResultPolicy?: "NONE" | "AUTO_SELECT" | "AUTO_SELECT_AND_HIDE" | undefined;
1243
1288
  initialSelectionPolicy?: "NONE" | "FIRST_RECORD" | undefined;
1244
1289
  sourceScope?: "NONE" | "CURRENT_TENANT" | undefined;
@@ -1275,9 +1320,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1275
1320
  action: (actionCode: string, recordId?: string) => import("../../web-core/index").ModuleActionState | undefined;
1276
1321
  runtimeAction: (actionCode: string) => import("../../web-core/index").ModuleRuntimeAction | undefined;
1277
1322
  can: (actionCode: string, recordId?: string) => boolean | undefined;
1278
- recordActions: (recordId: string) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability>;
1279
- recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability[]>) | undefined;
1280
- recordActionsSnapshot: (recordId: string) => import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability | undefined;
1323
+ recordActions: (recordId: string) => Promise<import("../../web-core/index").ModuleRecordActionAvailability>;
1324
+ recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/index").ModuleRecordActionAvailability[]>) | undefined;
1325
+ recordActionsSnapshot: (recordId: string) => import("../../web-core/index").ModuleRecordActionAvailability | undefined;
1281
1326
  invalidateRecordActions?: ((recordIds?: string[]) => void) | undefined;
1282
1327
  };
1283
1328
  abilities: {
@@ -1295,9 +1340,9 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1295
1340
  action: (actionCode: string, recordId?: string) => import("../../web-core/index").ModuleActionState | undefined;
1296
1341
  runtimeAction: (actionCode: string) => import("../../web-core/index").ModuleRuntimeAction | undefined;
1297
1342
  can: (actionCode: string, recordId?: string) => boolean | undefined;
1298
- recordActions: (recordId: string) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability>;
1299
- recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability[]>) | undefined;
1300
- recordActionsSnapshot: (recordId: string) => import("../../web-core/module/runtimeContext").ModuleRecordActionAvailability | undefined;
1343
+ recordActions: (recordId: string) => Promise<import("../../web-core/index").ModuleRecordActionAvailability>;
1344
+ recordActionsBatch?: ((recordIds: string[]) => Promise<import("../../web-core/index").ModuleRecordActionAvailability[]>) | undefined;
1345
+ recordActionsSnapshot: (recordId: string) => import("../../web-core/index").ModuleRecordActionAvailability | undefined;
1301
1346
  invalidateRecordActions?: ((recordIds?: string[]) => void) | undefined;
1302
1347
  };
1303
1348
  tree: boolean;
@@ -1309,6 +1354,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1309
1354
  targetKey: string;
1310
1355
  targetNavigatorLevelKey?: string | undefined;
1311
1356
  targetPickerFieldKey?: string | undefined;
1357
+ navigatorListQueryMode?: "REQUIRED_SCOPE" | "OPTIONAL_FILTER" | undefined;
1312
1358
  }[], ResolvedPageContextBindingDescriptor[] | {
1313
1359
  source: "SESSION" | "NAVIGATOR";
1314
1360
  sourceKey: string;
@@ -1316,9 +1362,17 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
1316
1362
  targetKey: string;
1317
1363
  targetNavigatorLevelKey?: string | undefined;
1318
1364
  targetPickerFieldKey?: string | undefined;
1365
+ navigatorListQueryMode?: "REQUIRED_SCOPE" | "OPTIONAL_FILTER" | undefined;
1319
1366
  }[]>;
1320
1367
  selectedNavigatorRecords: Ref<Record<string, QueryListRecord | undefined>, Record<string, QueryListRecord | undefined>>;
1321
1368
  navigatorSingleResultKeys: Ref<string[], string[]>;
1322
1369
  navigatorDismissedSelectionKeys: Ref<string[], string[]>;
1370
+ setNavigatorEntrySelection: (params: Record<string, RouteQueryValue> | undefined) => NavigatorEntrySelectionChange | undefined;
1371
+ navigatorEntrySelectionPendingFor: (level: NavigatorLevelRuntime) => boolean;
1372
+ resolveNavigatorEntrySelection: (level: NavigatorLevelRuntime, records: readonly {
1373
+ id?: string;
1374
+ }[], externalQueryValues?: Record<string, unknown>) => Promise<NavigatorEntrySelectionResolution | undefined>;
1375
+ isCurrentNavigatorEntrySelection: (level: NavigatorLevelRuntime, resolution: NavigatorEntrySelectionResolution) => boolean;
1323
1376
  loadRuntimeForm: (isListPage: Ref<boolean>, hasBusinessRecordView: () => boolean, fail: (message: string) => void) => Promise<void>;
1324
1377
  };
1378
+ export {};
@@ -1,6 +1,7 @@
1
1
  import type { ModuleContext } from '../../web-core/index';
2
+ import type { RecordDetailTransitionOptions } from '../recordDetailController';
2
3
  interface DetailController<TRecord> {
3
- beginLoad(record: TRecord, mode: 'edit' | 'view'): void;
4
+ beginLoad(record: TRecord, mode: 'edit' | 'view', options?: RecordDetailTransitionOptions): void;
4
5
  resolveLoad(record: TRecord): void;
5
6
  failLoad(): void;
6
7
  finishLoad(): void;
@@ -16,7 +17,7 @@ export declare function useRecordEditingSession<TRecord extends {
16
17
  id?: unknown;
17
18
  }>(context: ModuleContext<TRecord>, detail: DetailController<TRecord>, onLoaded: () => void): {
18
19
  invalidatePendingRequests: () => void;
19
- openRecord: (record: TRecord, mode: "edit" | "view", skipLoad?: boolean) => Promise<void>;
20
+ openRecord: (record: TRecord, mode: "edit" | "view", options?: RecordDetailTransitionOptions, skipLoad?: boolean) => Promise<void>;
20
21
  openRecycleBinRecord: (record: TRecord) => Promise<void>;
21
22
  };
22
23
  export {};
@@ -5,6 +5,7 @@ export { default as DynamicModuleWorkspaceDetailView } from './DynamicModuleWork
5
5
  export { customerDescriptor } from './mockDescriptor';
6
6
  export { configureModulePageEnhancementContributions, configureModulePageEnhancements, createModulePageEnhancementRegistry, createReadonlyCardRecordSnapshot, modulePageWorkspaceViews, resolveModulePageEnhancement, } from './modulePageEnhancements';
7
7
  export { provideModulePageNavigation, useModulePageNavigation } from './modulePageNavigation';
8
+ export { NAVIGATOR_ENTRY_MODULE_ALIAS_QUERY_KEY, NAVIGATOR_ENTRY_RECORD_ID_QUERY_KEY, } from './navigatorEntrySelection';
8
9
  export { createModulePageListRefreshRegistry, modulePageListRefreshRegistry, refreshModulePageList, } from './modulePageListRefresh';
9
10
  export type { ModulePageListRefreshRegistry } from './modulePageListRefresh';
10
- export type { ModuleListEnhancement, ModulePageListRowExpansion, ModulePageListRowExpansionContext, ModuleDetailEnhancement, ModulePageFormEnhancement, ModulePageFormContribution, ModulePageFormContributionContext, ModulePageFormContributionState, ModulePageFormFieldPolicy, ModulePageFormContributionLocation, ModulePageFormContributionValidity, ModulePageFormSurface, ModuleCardEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageEnhancement, ModulePageEnhancementActivationContext, ModulePageEnhancementRegistry, ModulePageEnhancementTarget, ModulePageCardAssistant, ModulePageCardAssistantContext, ModulePageCardAssistantPlacement, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from './modulePageEnhancements';
11
+ export type { ModuleListEnhancement, ModulePageListRowExpansion, ModulePageListRowExpansionContext, ModuleDetailEnhancement, ModulePageFormEnhancement, ModulePageFormContribution, ModulePageFormContributionContext, ModulePageFormContributionState, ModulePageFormFieldPolicy, ModulePageFormContributionLocation, ModulePageFormContributionValidity, ModulePageFormSurface, ModuleCardEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageEnhancement, ModulePageEnhancementActivationContext, ModulePageEnhancementRegistry, ModulePageEnhancementTarget, ModulePageLockedNavigatorEntry, ModulePageCardAssistant, ModulePageCardAssistantContext, ModulePageCardAssistantPlacement, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from './modulePageEnhancements';
@@ -1,5 +1,5 @@
1
1
  import type { Component } from 'vue';
2
- import type { PageDescriptor, PageLayoutMode, RouteQueryValue } from '../web-contracts/index';
2
+ import type { CurrentUser, PageDescriptor, PageLayoutMode, RouteQueryValue, WebQueryCondition } from '../web-contracts/index';
3
3
  import type { ModuleContext } from '../web-core/index';
4
4
  import type { RecordActionItem, RecordFormFieldState, RecordFormFieldValue, RecordQueryListColumn, QueryListRecord } from '../platform-components/index';
5
5
  import type { DrawerTitleAction } from '../platform-components/index';
@@ -36,12 +36,44 @@ export interface ModulePageEnhancement {
36
36
  * retains that flow's action checks, shell and lifecycle.
37
37
  */
38
38
  recordView?: ModulePageRecordView;
39
+ /** Restricts standard runner actions for one business-owned entry without replacing the runner. */
40
+ standardActions?: ModulePageStandardActionsEnhancement;
41
+ /** Entry-owned adjustments to descriptor-provided navigator presentation and list readiness. */
42
+ navigator?: ModulePageNavigatorEnhancement;
39
43
  workspaceViews?: ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
40
44
  }
45
+ export interface ModulePageStandardActionsEnhancement {
46
+ disabled?: readonly string[];
47
+ }
48
+ export interface ModulePageNavigatorEnhancement {
49
+ /** Hides descriptor navigators when this entry is not navigated by their business scope. */
50
+ hidden?: boolean;
51
+ /** Declares one navigator as an entry-owned, immutable page context. */
52
+ lockedEntry?: ModulePageLockedNavigatorEntry;
53
+ /** Allows the standard list to load without navigator-derived list criteria. */
54
+ bypassListScope?: boolean;
55
+ /**
56
+ * Optional business-owned fallback when no navigator item is selected. The platform still owns
57
+ * navigator rendering and request lifecycle; this hook contributes only typed list conditions.
58
+ */
59
+ emptyListScope?(context: ModulePageEmptyNavigatorScopeContext): readonly WebQueryCondition[] | undefined;
60
+ }
61
+ export interface ModulePageLockedNavigatorEntry {
62
+ /** Descriptor navigator key whose selection is supplied by the page address. */
63
+ navigatorKey: string;
64
+ /** Text shown if the addressed record cannot be resolved or authorized. */
65
+ unavailableDescription: string;
66
+ }
67
+ export interface ModulePageEmptyNavigatorScopeContext {
68
+ currentUser?: CurrentUser;
69
+ selectedNavigatorRecords: Readonly<Record<string, QueryListRecord | undefined>>;
70
+ }
41
71
  export interface ModulePageEnhancementTarget {
42
72
  moduleAlias: string;
43
73
  /** Omit to apply to every list view of the module. */
44
74
  viewCode?: string;
75
+ /** Omit to apply to every visible menu entry of the module. */
76
+ menuId?: string;
45
77
  }
46
78
  export interface ModulePageEnhancementActivationContext {
47
79
  module: ModuleContext<QueryListRecord>;
@@ -331,7 +363,7 @@ export interface ModulePageDetailSectionContext {
331
363
  reload(): void;
332
364
  }
333
365
  export interface ModulePageEnhancementRegistry {
334
- resolve(moduleAlias: string, viewCode?: string): ModulePageEnhancement | undefined;
366
+ resolve(moduleAlias: string, viewCode?: string, menuId?: string): ModulePageEnhancement | undefined;
335
367
  workspaceViews(): readonly ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
336
368
  }
337
369
  export declare function createModulePageEnhancementRegistry(enhancements: readonly ModulePageEnhancement[]): ModulePageEnhancementRegistry;
@@ -350,7 +382,7 @@ export declare function configureModulePageEnhancementContributions(owner: strin
350
382
  * configureModulePageEnhancementContributions(owner, enhancements).
351
383
  */
352
384
  export declare function configureModulePageEnhancements(enhancements: readonly ModulePageEnhancement[]): void;
353
- export declare function resolveModulePageEnhancement(moduleAlias: string, viewCode?: string): ModulePageEnhancement | undefined;
385
+ export declare function resolveModulePageEnhancement(moduleAlias: string, viewCode?: string, menuId?: string): ModulePageEnhancement | undefined;
354
386
  export declare function modulePageWorkspaceViews(): readonly ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
355
387
  /** Creates the only record shape that a card assistant may receive. */
356
388
  export declare function createReadonlyCardRecordSnapshot(record: Record<string, unknown>): Readonly<Record<string, unknown>>;
@@ -0,0 +1,18 @@
1
+ import type { RouteQueryValue } from '../web-contracts/index';
2
+ /**
3
+ * Controlled module-page entries may nominate one navigator source record.
4
+ * These are framework query keys, deliberately separate from a module's
5
+ * business query fields and from the navigator REFERENCE transport.
6
+ */
7
+ export declare const NAVIGATOR_ENTRY_MODULE_ALIAS_QUERY_KEY = "_muyunNavigatorModuleAlias";
8
+ export declare const NAVIGATOR_ENTRY_RECORD_ID_QUERY_KEY = "_muyunNavigatorRecordId";
9
+ export interface NavigatorEntrySelection {
10
+ moduleAlias: string;
11
+ recordId: string;
12
+ identity: string;
13
+ }
14
+ /**
15
+ * Accept only the complete scalar pair. A malformed public address must leave
16
+ * the page in its normal, unselected state rather than guessing a scope.
17
+ */
18
+ export declare function navigatorEntrySelectionOf(params: Record<string, RouteQueryValue> | undefined): NavigatorEntrySelection | undefined;
@@ -2,5 +2,13 @@ import type { ResolvedPageContextBindingDescriptor } from '../web-contracts/inde
2
2
  export type PageContextSourceValues = Partial<Record<ResolvedPageContextBindingDescriptor['source'], Record<string, unknown>>>;
3
3
  /** Returns context fields that must be supplied by the browser for a query target. */
4
4
  export declare function externalPageContextCriteriaKeys(bindings: readonly ResolvedPageContextBindingDescriptor[], target: ResolvedPageContextBindingDescriptor['target'], targetNavigatorLevelKey?: string): string[];
5
+ /** Browser-provided navigator keys that must be selected before a page list may query. */
6
+ export declare function requiredNavigatorListScopeCriteriaKeys(bindings: readonly ResolvedPageContextBindingDescriptor[]): string[];
5
7
  /** Resolves declared context flows without coupling a target to navigator UI state. */
6
8
  export declare function resolvePageContextTargetValues(bindings: readonly ResolvedPageContextBindingDescriptor[], target: ResolvedPageContextBindingDescriptor['target'], sourceValues: PageContextSourceValues, targetNavigatorLevelKey?: string): Record<string, unknown> | undefined;
9
+ /**
10
+ * Query scopes are values, not refresh signals. Preserve the prior object when
11
+ * a render reconstructs the same flat criteria so consumers do not reload just
12
+ * because their parent component rendered for an unrelated state transition.
13
+ */
14
+ export declare function reuseEquivalentQueryValues(previous: Record<string, unknown> | undefined, next: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
@@ -0,0 +1,13 @@
1
+ import type { RecordExplorerItemDescriptor } from '../platform-components/index';
2
+ import type { RecordInlineAction } from '../web-contracts/index';
3
+ export interface NavigatorItemRecord {
4
+ id?: string;
5
+ title?: string;
6
+ name?: string;
7
+ code?: string;
8
+ alias?: string;
9
+ }
10
+ /** Page navigators expose only the actions explicitly declared by the page. */
11
+ export declare function navigatorItemOf(record: NavigatorItemRecord, secondaryField: string | undefined, manageable: boolean, actionsOf: ((record: {
12
+ id?: string;
13
+ }) => RecordInlineAction[]) | undefined): RecordExplorerItemDescriptor;