@ximatai/muyun-web-app 0.26.9 → 0.26.11

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 (99) hide show
  1. package/dist/{MetadataOrchestrationView-CzhAgEdX.js → MetadataOrchestrationView-F_Bmfn9K.js} +188 -188
  2. package/dist/{ModuleActionManagementView-CM2d8jPO.js → ModuleActionManagementView-Db_3Twom.js} +70 -70
  3. package/dist/RoleDetailWorkspaceView-UOm1ejGH.js +1369 -0
  4. package/dist/index.css +1 -1
  5. package/dist/index.js +274 -299
  6. package/dist/{platform-components-CIi6GdC9.js → platform-components-59b4qzUL.js} +2738 -2453
  7. package/dist/types/app/StaticRoutePageHost.vue.d.ts +2 -0
  8. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +4 -2
  9. package/dist/types/consumer/index.d.ts +1 -1
  10. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +3 -1
  11. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +2 -1
  12. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +3 -1
  13. package/dist/types/dynamic-page-runtime/ModulePageListExpansionSurface.vue.d.ts +2 -1
  14. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansion.vue.d.ts +2 -1
  15. package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansions.vue.d.ts +2 -1
  16. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +3 -1
  17. package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +7 -2
  18. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailExtensionRuntime.d.ts +5 -1
  19. package/dist/types/dynamic-page-runtime/composables/useModulePageFormContributionRuntime.d.ts +5 -3
  20. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +95 -41
  21. package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +3 -2
  22. package/dist/types/dynamic-page-runtime/index.d.ts +2 -2
  23. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +103 -3
  24. package/dist/types/dynamic-page-runtime/navigatorEntrySelection.d.ts +18 -0
  25. package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +8 -0
  26. package/dist/types/dynamic-page-runtime/pageNavigatorItemModel.d.ts +13 -0
  27. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +9 -8
  28. package/dist/types/formula/FormulaRuntime.d.ts +3 -0
  29. package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +6 -0
  30. package/dist/types/{views/SystemUserManagementView.vue.d.ts → platform-admin-runtime/role/RoleAccountGrantDrawerSurface.vue.d.ts} +2 -2
  31. package/dist/types/{views/UserDetailRouteView.vue.d.ts → platform-admin-runtime/role/RoleAuthorizationDrawerSurface.vue.d.ts} +2 -3
  32. package/dist/types/{views/SystemUserDetailWorkspaceView.vue.d.ts → platform-admin-runtime/role/RoleEmploymentGrantDrawerSurface.vue.d.ts} +2 -2
  33. package/dist/types/platform-admin-runtime/role/RoleEnumTitleCell.vue.d.ts +8 -0
  34. package/dist/types/{dynamic-page-runtime/DynamicModuleHost.vue.d.ts → platform-admin-runtime/role/RoleGroupMemberFormField.vue.d.ts} +2 -2
  35. package/dist/types/platform-admin-runtime/role/RoleScopeTree.vue.d.ts +7 -0
  36. package/dist/types/platform-admin-runtime/roleModulePageEnhancement.d.ts +7 -0
  37. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +5 -1
  38. package/dist/types/platform-components/DrawerOperationBar.vue.d.ts +4 -2
  39. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +2 -0
  40. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +6 -3
  41. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +4 -2
  42. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +2 -0
  43. package/dist/types/platform-components/RecordFormFields.vue.d.ts +2 -2
  44. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +2 -0
  45. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +1 -1
  46. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +2 -0
  47. package/dist/types/platform-components/RecordPicker.vue.d.ts +3 -1
  48. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +13 -4
  49. package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +2 -0
  50. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +5 -1
  51. package/dist/types/platform-components/index.d.ts +1 -3
  52. package/dist/types/platform-components/recordFormFieldModel.d.ts +16 -2
  53. package/dist/types/platform-components/recordPickerConstraints.d.ts +2 -0
  54. package/dist/types/platform-components/scopedTreeModuleContext.d.ts +2 -2
  55. package/dist/types/platform-components/staticTreeResourceModuleContext.d.ts +3 -3
  56. package/dist/types/platform-workbench/Workbench.vue.d.ts +4 -2
  57. package/dist/types/views/EmployeeEmploymentTable.vue.d.ts +5 -0
  58. package/dist/types/views/RoleAccountGrantDrawer.vue.d.ts +6 -2
  59. package/dist/types/views/RoleAuthorizationView.vue.d.ts +7 -0
  60. package/dist/types/views/RoleEmploymentGrantDrawer.vue.d.ts +5 -1
  61. package/dist/types/views/roleGrantClient.d.ts +8 -5
  62. package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +4 -2
  63. package/dist/types/vue-ui-antdv/components/UiSwitch.vue.d.ts +2 -0
  64. package/dist/types/vue-ui-antdv/components/UiTable.vue.d.ts +1 -0
  65. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +20 -1
  66. package/dist/types/vue-ui-antdv/types.d.ts +6 -0
  67. package/dist/types/web-contracts/index.d.ts +81 -4
  68. package/dist/types/web-core/http.d.ts +6 -0
  69. package/dist/types/web-core/module/index.d.ts +1 -1
  70. package/dist/types/web-core/module/moduleContext.d.ts +2 -1
  71. package/dist/types/web-core/module/staticModuleClient.d.ts +10 -4
  72. package/dist/types/web-core/realtime.d.ts +8 -0
  73. package/dist/workspaceViews-BvV8mpML.js +11149 -0
  74. package/package.json +1 -1
  75. package/dist/DictionaryManagementView-CtIQpqVA.js +0 -1035
  76. package/dist/MenuManagementView-DJhkN2sG.js +0 -837
  77. package/dist/RoleAuthorizationView-jn_WUCeg.js +0 -599
  78. package/dist/RoleDetailWorkspaceView-CzaQ3Dz1.js +0 -26
  79. package/dist/RoleManagementView-nY7qu4GF.js +0 -1951
  80. package/dist/SystemUserDetailWorkspaceView-CBvqmWvP.js +0 -17
  81. package/dist/SystemUserManagementView-AEomKvK7.js +0 -887
  82. package/dist/currentUserContext-B1lj1WgF.js +0 -11
  83. package/dist/types/dynamic-page-runtime/DynamicRecordDetailActions.vue.d.ts +0 -39
  84. package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +0 -5
  85. package/dist/types/platform-components/scopedResourceTreeModuleContext.d.ts +0 -6
  86. package/dist/types/views/DictionaryManagementView.vue.d.ts +0 -3
  87. package/dist/types/views/MenuManagementView.vue.d.ts +0 -3
  88. package/dist/types/views/UserDetailContent.vue.d.ts +0 -32
  89. package/dist/types/views/UserManagementListView.vue.d.ts +0 -3
  90. package/dist/types/views/UserManagementView.vue.d.ts +0 -3
  91. package/dist/types/views/dictionaryManagementState.d.ts +0 -215
  92. package/dist/types/views/menuManagementState.d.ts +0 -180
  93. package/dist/types/views/systemUserDetailWorkspaceSession.d.ts +0 -12
  94. package/dist/types/views/systemUserDetailWorkspaceView.d.ts +0 -5
  95. package/dist/types/views/useUserSessionRows.d.ts +0 -28
  96. package/dist/types/views/userDetailStateModel.d.ts +0 -9
  97. package/dist/types/views/userManagementRouteState.d.ts +0 -11
  98. package/dist/workspaceViewSessions-B5g4M0rT.js +0 -51
  99. package/dist/workspaceViews-CkERhK0K.js +0 -8748
@@ -4,6 +4,7 @@ type __VLS_Props = {
4
4
  /** Explains why this otherwise visible status control is unavailable. */
5
5
  disabledReason?: string;
6
6
  loading?: boolean;
7
+ size?: 'default' | 'small';
7
8
  showLabel?: boolean;
8
9
  };
9
10
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -12,6 +13,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
12
13
  onChange?: ((enabled: boolean) => any) | undefined;
13
14
  }>, {
14
15
  enabled: boolean;
16
+ size: "default" | "small";
15
17
  disabled: boolean;
16
18
  loading: boolean;
17
19
  disabledReason: string;
@@ -9,6 +9,8 @@ type __VLS_Props = {
9
9
  reloadKey?: number;
10
10
  /** Descriptor-owned criteria from upstream navigator levels. */
11
11
  externalQueryValues?: Record<string, unknown>;
12
+ navigatorHostModuleAlias?: string;
13
+ navigatorTargetLevelKey?: string;
12
14
  keyword?: string;
13
15
  searchMode?: TreeRecordSearchMode;
14
16
  searchTrigger?: 'inline' | 'external';
@@ -41,7 +43,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
41
43
  onLoaded?: ((records: TreeRecordBase[]) => any) | undefined;
42
44
  }>, {
43
45
  filterOption: (record: TreeRecordBase, normalizedKeyword: string) => boolean;
46
+ reloadKey: number;
44
47
  emptyDescription: string;
48
+ navigatorHostModuleAlias: string;
49
+ navigatorTargetLevelKey: string;
45
50
  searchPlaceholder: string;
46
51
  selectedId: string;
47
52
  keyword: string;
@@ -50,7 +55,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
50
55
  actionsOf: (record: TreeRecordBase) => UiRecordInlineAction[];
51
56
  tagOf: (record: TreeRecordBase) => string | undefined;
52
57
  mutedOf: (record: TreeRecordBase) => boolean;
53
- reloadKey: number;
54
58
  externalQueryValues: Record<string, unknown>;
55
59
  loadingTip: string;
56
60
  fallbackTitle: string;
@@ -70,7 +70,7 @@ export type { QueryListRecord, RecordQueryListCellComponent, RecordQueryListColu
70
70
  export type { RecordFormFieldDescriptor, RecordFormFieldFallback, RecordFormFieldPickerConfig, RecordFormFieldState, RecordFieldRenderer, RecordFormFieldValue, RecordFormRecord, } from './recordFormFieldModel';
71
71
  export type { CrudRecordListBase } from './crudRecordListModel';
72
72
  export { defaultCrudRecordListMatches, defaultCrudRecordListSubtitle, defaultCrudRecordListTitle, } from './crudRecordListModel';
73
- export { resolveRecordActions } from './recordActionBarModel';
73
+ export { mergeRecordActions, resolveRecordActions } from './recordActionBarModel';
74
74
  export { normalizeRecordDraft } from './recordDraftNormalizer';
75
75
  export { acceptedMediaTypes, appendUploadedFileReference, fileReferenceIds, issueFileReferenceUploadAccess, uploadedFileId, } from './fileReferenceTransfer';
76
76
  export { resolveRecordDetailDisplayValue } from './recordDetailFieldModel';
@@ -82,7 +82,6 @@ export type { PlatformDateTimeDisplay, PlatformDateTimeOptions, PlatformDateTime
82
82
  export { applyReferenceDependencyClears, childResourceDefaultFormViewCode, resolveRecordDetailFields, resolveRecordFormFieldNames, resolveRecordBooleanStatusValue, resolveRecordFormFieldState, resolveRecordFormFields, evaluateUiFormula, recordFieldRendererRegistry, } from './recordFormFieldModel';
83
83
  export { createQueryScopedTreeModuleContext, createScopedTreeClient, createScopedTreeModuleContext, } from './scopedTreeModuleContext';
84
84
  export { createEmptyStaticTreeClient, createStaticTreeResourceModuleContext, } from './staticTreeResourceModuleContext';
85
- export { createScopedResourceTreeModuleContext } from './scopedResourceTreeModuleContext';
86
85
  export { presentPlatformError, presentPlatformMessage, presentPlatformSuccess, } from './platformErrorFeedback';
87
86
  export { handlePlatformActionSuccess, presentPlatformActionSuccess } from './platformActionResultFeedback';
88
87
  export { createPlatformActionResultReactionHandlers, mergePlatformActionResultReactionHandlers, platformActionResultReactions, platformActionResultReactionTypes, resolvePlatformActionResult, resolvePlatformActionResultMessage, withPlatformActionResultReactions, } from './platformActionResultReactions';
@@ -98,4 +97,3 @@ export type { StaticCrudCardMode, StaticCrudConfirmAction, StaticCrudManagementO
98
97
  export type { TreeRecordBase } from './treeRecordModel';
99
98
  export type { ScopedTreeModuleContextOptions } from './scopedTreeModuleContext';
100
99
  export type { StaticTreeResourceModuleContextOptions } from './staticTreeResourceModuleContext';
101
- export type { ScopedResourceTreeModuleContextOptions } from './scopedResourceTreeModuleContext';
@@ -14,6 +14,11 @@ export type RecordFormFieldDescriptor = (ViewFieldDefinition | ResolvedViewField
14
14
  valueType?: ViewFieldValueType;
15
15
  };
16
16
  export type RecordFormRecord = Record<string, unknown>;
17
+ /**
18
+ * Ephemeral, descriptor-authorized values from selected ONE references. These are deliberately
19
+ * separate from the draft because they describe the selected target, not fields owned by it.
20
+ */
21
+ export type RecordFormSelectionContext = Record<string, unknown>;
17
22
  /**
18
23
  * Applies the platform-owned consequence of changing a reference dependency.
19
24
  * The owner of a draft record calls this after accepting a field edit, so the
@@ -94,6 +99,8 @@ export interface RecordFormFieldState {
94
99
  pickerConfig?: RecordFormFieldPickerConfig;
95
100
  booleanStatus?: BooleanStatusPresentation;
96
101
  valuePresentation?: FieldValuePresentation;
102
+ /** Source field used while this nullable field is inheriting instead of overriding. */
103
+ overrideOf?: string;
97
104
  disabledHint?: string;
98
105
  placeholder?: string;
99
106
  options?: Option[];
@@ -111,7 +118,7 @@ export declare function resolveRecordFormFields(uiDescriptor: ResolvedModuleUiDe
111
118
  * navigator-provided scope), while avoiding editor-only controls in the standard detail grid.
112
119
  * Pages without an explicit display retain the existing editor-as-display fallback.
113
120
  */
114
- export declare function resolveRecordDetailFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined): Map<string, RecordFormFieldDescriptor>;
121
+ export declare function resolveRecordDetailFields(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string): Map<string, RecordFormFieldDescriptor>;
115
122
  export declare function resolveRecordFormGroups(uiDescriptor: ResolvedModuleUiDescriptor | undefined, resource?: string, editorSurface?: string): FormGroupDescriptor[];
116
123
  export declare function childResourceDefaultFormViewCode(resource: string): string;
117
124
  export declare function resolveRecordFormFieldState(fieldName: string, options?: {
@@ -120,8 +127,15 @@ export declare function resolveRecordFormFieldState(fieldName: string, options?:
120
127
  pickerConfigs?: Record<string, RecordFormFieldPickerConfig>;
121
128
  placeholderOf?: (fieldName: string, field: RecordFormFieldState) => string | undefined;
122
129
  record?: RecordFormRecord;
130
+ selectionContext?: RecordFormSelectionContext;
123
131
  }): RecordFormFieldState;
124
- export declare function evaluateUiFormula(formula: UiFormula, record: RecordFormRecord): boolean;
132
+ export declare function evaluateUiFormula(formula: UiFormula, record: RecordFormRecord, selectionContext?: RecordFormSelectionContext): boolean;
133
+ /**
134
+ * Produces the only reference-derived values that WEB_UI formulas may observe. The descriptor
135
+ * owns both the source field and relative target paths; browser code never infers a path from a
136
+ * candidate object. The first delivery supports ONE references only.
137
+ */
138
+ export declare function resolveReferenceSelectionContext(sourceField: string, reference: ResolvedReferenceFieldDescriptor | undefined, record: RecordPickerRecord | undefined): RecordFormSelectionContext;
125
139
  /**
126
140
  * Preserves an absent business value as unknown instead of treating it as true.
127
141
  * `enabledStatus` deliberately retains its separate lifecycle default semantics.
@@ -6,6 +6,8 @@ export interface RecordPickerRecord {
6
6
  enabled?: boolean;
7
7
  /** Server-authorized values applied after choosing this candidate. */
8
8
  affectPatch?: Record<string, unknown>;
9
+ /** Server-authorized target projections used only by the owning form's transient UI context. */
10
+ projections?: Record<string, unknown>;
9
11
  }
10
12
  export interface PickerConstraintContext<TRecord extends RecordPickerRecord> {
11
13
  records: TRecord[];
@@ -1,5 +1,5 @@
1
1
  import type { RouteQueryValue } from '../web-contracts/index';
2
- import type { ModuleContext, StaticModuleTreeClient } from '../web-core/index';
2
+ import type { ModuleContext, ModuleTreeClient } from '../web-core/index';
3
3
  export interface ScopedTreeModuleContextOptions {
4
4
  scopeFieldName: string;
5
5
  scopeValue: string | undefined | (() => string | undefined);
@@ -18,4 +18,4 @@ export interface QueryScopedTreeModuleContextOptions {
18
18
  }
19
19
  export declare function createQueryScopedTreeModuleContext<TRecord>(context: ModuleContext<TRecord>, options: QueryScopedTreeModuleContextOptions): ModuleContext<TRecord>;
20
20
  export declare function createScopedTreeModuleContext<TRecord>(context: ModuleContext<TRecord>, options: ScopedTreeModuleContextOptions): ModuleContext<TRecord>;
21
- export declare function createScopedTreeClient<TRecord>(context: ModuleContext<TRecord>, options: ScopedTreeModuleContextOptions): StaticModuleTreeClient<TRecord>;
21
+ export declare function createScopedTreeClient<TRecord>(context: ModuleContext<TRecord>, options: ScopedTreeModuleContextOptions): ModuleTreeClient<TRecord>;
@@ -1,7 +1,7 @@
1
- import type { ModuleContext, StaticModuleTreeClient } from '../web-core/index';
1
+ import type { ModuleContext, ModuleTreeClient } from '../web-core/index';
2
2
  export interface StaticTreeResourceModuleContextOptions<TRecord> {
3
- client?: StaticModuleTreeClient<TRecord>;
3
+ client?: ModuleTreeClient<TRecord>;
4
4
  emptyQueryScopeName?: string;
5
5
  }
6
6
  export declare function createStaticTreeResourceModuleContext<TRecord, TContextRecord = unknown>(context: ModuleContext<TContextRecord>, options?: StaticTreeResourceModuleContextOptions<TRecord>): ModuleContext<TRecord>;
7
- export declare function createEmptyStaticTreeClient<TRecord>(scopeName?: string): StaticModuleTreeClient<TRecord>;
7
+ export declare function createEmptyStaticTreeClient<TRecord>(scopeName?: string): ModuleTreeClient<TRecord>;
@@ -9,13 +9,13 @@ type __VLS_Props = {
9
9
  realtimeStatus?: WorkbenchRealtimeStatus;
10
10
  themeAppearance?: 'light' | 'dark';
11
11
  };
12
- declare var __VLS_80: {
12
+ declare var __VLS_82: {
13
13
  activeTab: MenuTab;
14
14
  target: MenuNavigationTarget | undefined;
15
15
  pageDescriptor: PageDescriptor | undefined;
16
16
  };
17
17
  type __VLS_Slots = {} & {
18
- default?: (props: typeof __VLS_80) => any;
18
+ default?: (props: typeof __VLS_82) => any;
19
19
  };
20
20
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
21
  closeTabs: (keys: string[]) => any;
@@ -25,6 +25,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
25
25
  closeTab: (key: string) => any;
26
26
  toggleTabLock: (key: string) => any;
27
27
  reorderTabs: (keys: string[]) => any;
28
+ refreshPage: (key: string) => any;
28
29
  "update:activeTabKey": (key: string) => any;
29
30
  userCommand: (key: string) => any;
30
31
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
@@ -35,6 +36,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
35
36
  onCloseTab?: ((key: string) => any) | undefined;
36
37
  onToggleTabLock?: ((key: string) => any) | undefined;
37
38
  onReorderTabs?: ((keys: string[]) => any) | undefined;
39
+ onRefreshPage?: ((key: string) => any) | undefined;
38
40
  "onUpdate:activeTabKey"?: ((key: string) => any) | undefined;
39
41
  onUserCommand?: ((key: string) => any) | undefined;
40
42
  }>, {
@@ -1,9 +1,12 @@
1
+ import type { UiDataTablePagination } from '../vue-ui-antdv/index';
1
2
  import type { EmploymentSelectorItem } from '../web-contracts/index';
2
3
  type __VLS_Props = {
3
4
  rows: EmploymentSelectorItem[];
4
5
  selectedIds?: Set<string>;
5
6
  selectable?: boolean;
6
7
  disabled?: boolean;
8
+ pagination?: false | UiDataTablePagination;
9
+ fillHeight?: boolean;
7
10
  };
8
11
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
12
  "update:selectedIds": (value: Set<string>) => any;
@@ -11,7 +14,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
11
14
  "onUpdate:selectedIds"?: ((value: Set<string>) => any) | undefined;
12
15
  }>, {
13
16
  disabled: boolean;
17
+ pagination: false | UiDataTablePagination;
14
18
  selectable: boolean;
19
+ fillHeight: boolean;
15
20
  selectedIds: Set<string>;
16
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
22
  declare const _default: typeof __VLS_export;
@@ -1,8 +1,12 @@
1
1
  import type { Role } from '../web-contracts/index';
2
- import type { ModuleContext } from '../web-core/index';
2
+ import { type ModuleContext } from '../web-core/index';
3
+ import type { ModulePageDrawerContext } from '../dynamic-page-runtime/index';
3
4
  type __VLS_Props = {
4
5
  open: boolean;
5
- container: HTMLElement | null;
6
+ container?: HTMLElement | null;
7
+ /** Uses the owning platform drawer and renders only this operation's content. */
8
+ embedded?: boolean;
9
+ drawerContext?: ModulePageDrawerContext;
6
10
  context: ModuleContext<Role>;
7
11
  role?: Role;
8
12
  };
@@ -1,9 +1,16 @@
1
+ import type { Role } from '../web-contracts/index';
2
+ import { type ModuleContext } from '../web-core/index';
3
+ import type { ModulePageDrawerContext } from '../dynamic-page-runtime/index';
1
4
  type __VLS_Props = {
2
5
  roleId?: string;
6
+ /** Reuses a host-governed module context when this view is mounted as an extension surface. */
7
+ moduleContext?: ModuleContext<Role>;
3
8
  /** Parent page root required when this view is displayed inside a drawer. */
4
9
  container?: HTMLElement | null;
5
10
  /** A parent management tab owns the initial wide drawer before promotion. */
6
11
  drawer?: boolean;
12
+ /** The action drawer owns the outer title and fixed operation region. */
13
+ drawerContext?: ModulePageDrawerContext;
7
14
  };
8
15
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
16
  close: () => any;
@@ -1,8 +1,12 @@
1
1
  import type { Role } from '../web-contracts/index';
2
2
  import type { ModuleContext } from '../web-core/index';
3
+ import type { ModulePageDrawerContext } from '../dynamic-page-runtime/index';
3
4
  type __VLS_Props = {
4
5
  open: boolean;
5
- container: HTMLElement | null;
6
+ container?: HTMLElement | null;
7
+ /** Uses the owning platform drawer and renders only this operation's content. */
8
+ embedded?: boolean;
9
+ drawerContext?: ModulePageDrawerContext;
6
10
  context: ModuleContext<Role>;
7
11
  role?: Role;
8
12
  };
@@ -1,9 +1,9 @@
1
- import type { AccountRoleGrant, DataScopePolicy, EmploymentRoleGrant, EmploymentSelectorItem, ManagementScopeType, RoleAuthorizationModule, RoleDataGrantActionMatrix, RoleDataScopePolicyCatalog, RolePermissionMatrix, UserSelectorItem, WebActionResultEnvelope, WebListResponse, WebPageResponse } from '../web-contracts/index';
1
+ import type { AccountRoleGrant, DataScopePolicy, EmploymentRoleGrant, EmploymentSelectorItem, RoleAuthorizationModule, RoleDataGrantActionMatrix, RoleDataScopePolicyCatalog, RolePermissionMatrix, UserSelectorItem, WebActionResultEnvelope, WebListResponse, WebPageResponse } from '../web-contracts/index';
2
2
  import type { HttpClient } from '../web-core/index';
3
3
  export interface AccountRoleGrantRequest {
4
4
  userId: string;
5
- managementScopeType?: ManagementScopeType;
6
- managementScopeId?: string;
5
+ /** Required only when granting a platform-shared account role. */
6
+ targetTenantId?: string;
7
7
  }
8
8
  export interface UserSelectorRequest {
9
9
  roleId?: string;
@@ -40,10 +40,13 @@ export interface DataGrantActionRequest {
40
40
  enabled: boolean;
41
41
  }
42
42
  export declare function createRoleGrantClient(http: HttpClient): {
43
- accountRoleGrants(roleId: string): Promise<AccountRoleGrant[]>;
43
+ accountRoleGrants(roleId: string, targetTenantId?: string): Promise<AccountRoleGrant[]>;
44
44
  grantAccountRole(roleId: string, request: AccountRoleGrantRequest): Promise<string | WebActionResultEnvelope<string>>;
45
- deleteAccountRoleGrant(roleId: string, grantId: string): Promise<number | WebActionResultEnvelope<number>>;
45
+ deleteAccountRoleGrant(roleId: string, grantId: string, targetTenantId?: string): Promise<number | WebActionResultEnvelope<number>>;
46
46
  userSelector(request: UserSelectorRequest): Promise<WebPageResponse<UserSelectorItem>>;
47
+ accountRoleCandidates(roleId: string, request: Omit<UserSelectorRequest, "roleId"> & {
48
+ targetTenantId?: string;
49
+ }): Promise<WebPageResponse<UserSelectorItem>>;
47
50
  employmentRoleGrants(roleId: string): Promise<EmploymentRoleGrant[]>;
48
51
  grantEmploymentRole(roleId: string, employeePositionId: string): Promise<string | WebActionResultEnvelope<string>>;
49
52
  deleteEmploymentRoleGrant(roleId: string, grantId: string): Promise<number | WebActionResultEnvelope<number>>;
@@ -5,14 +5,16 @@ type __VLS_Props = {
5
5
  closeOnOutside?: boolean;
6
6
  scope?: UiSidePanelScope;
7
7
  };
8
- declare var __VLS_10: {};
8
+ declare var __VLS_11: {};
9
9
  type __VLS_Slots = {} & {
10
- default?: (props: typeof __VLS_10) => any;
10
+ default?: (props: typeof __VLS_11) => any;
11
11
  };
12
12
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
13
  close: () => any;
14
+ afterClose: () => any;
14
15
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
16
  onClose?: (() => any) | undefined;
17
+ onAfterClose?: (() => any) | undefined;
16
18
  }>, {
17
19
  scope: UiSidePanelScope;
18
20
  width: number | string;
@@ -2,6 +2,7 @@ type __VLS_Props = {
2
2
  checked?: boolean;
3
3
  disabled?: boolean;
4
4
  loading?: boolean;
5
+ size?: 'default' | 'small';
5
6
  checkedText?: string;
6
7
  uncheckedText?: string;
7
8
  };
@@ -12,6 +13,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
12
13
  "onUpdate:checked"?: ((checked: boolean) => any) | undefined;
13
14
  onChange?: ((checked: boolean) => any) | undefined;
14
15
  }>, {
16
+ size: "default" | "small";
15
17
  disabled: boolean;
16
18
  loading: boolean;
17
19
  checked: boolean;
@@ -7,6 +7,7 @@ type __VLS_Props = {
7
7
  pagination?: false | UiDataTablePagination;
8
8
  selection?: UiDataTableSelection;
9
9
  size?: 'small' | 'middle' | 'large';
10
+ fillHeight?: boolean;
10
11
  };
11
12
  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>;
12
13
  declare const _default: typeof __VLS_export;
@@ -3,17 +3,36 @@ type __VLS_Props = {
3
3
  nodes: UiTreeNode[];
4
4
  selectedKey?: string;
5
5
  expandedKeys?: string[];
6
+ /** Resolves children only when a non-leaf node is expanded. */
7
+ loadChildren?: (node: UiTreeNode) => Promise<void>;
8
+ /** Re-fetches a node's children after it was explicitly collapsed. */
9
+ reloadOnReexpand?: boolean;
10
+ /** Set false only when an empty lazy branch should remain visibly expanded. */
11
+ collapseEmptyLazyBranch?: boolean;
12
+ /** Keeps the built-in lazy-loading indicator visible long enough to be perceived. */
13
+ minLoadingDurationMs?: number;
14
+ /** Replaces the current lazy snapshot, including Ant Tree's loaded-node bookkeeping. */
15
+ reloadKey?: number;
6
16
  };
7
17
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
18
  action: (action: import("../../web-contracts/index.ts").RecordInlineAction, node: UiTreeNode) => any;
9
19
  select: (node: UiTreeNode) => any;
10
20
  deselect: () => any;
21
+ "unload-children": (node: UiTreeNode) => any;
11
22
  "update:expandedKeys": (keys: string[]) => any;
12
23
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
24
  onAction?: ((action: import("../../web-contracts/index.ts").RecordInlineAction, node: UiTreeNode) => any) | undefined;
14
25
  onSelect?: ((node: UiTreeNode) => any) | undefined;
15
26
  onDeselect?: (() => any) | undefined;
27
+ "onUnload-children"?: ((node: UiTreeNode) => any) | undefined;
16
28
  "onUpdate:expandedKeys"?: ((keys: string[]) => any) | undefined;
17
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ }>, {
30
+ selectedKey: string;
31
+ expandedKeys: string[];
32
+ loadChildren: (node: UiTreeNode) => Promise<void>;
33
+ collapseEmptyLazyBranch: boolean;
34
+ minLoadingDurationMs: number;
35
+ reloadKey: number;
36
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
37
  declare const _default: typeof __VLS_export;
19
38
  export default _default;
@@ -11,7 +11,11 @@ export interface UiDataTableColumn {
11
11
  }
12
12
  export interface UiDataTablePagination {
13
13
  pageSize: number;
14
+ current?: number;
15
+ total?: number;
14
16
  showSizeChanger?: boolean;
17
+ showQuickJumper?: boolean;
18
+ onChange?: (page: number, pageSize: number) => void;
15
19
  }
16
20
  export interface UiDataTableSelection {
17
21
  selectedRowKeys: UiDataTableKey[];
@@ -43,6 +47,8 @@ export type UiTreeNodeAction = UiRecordInlineAction;
43
47
  export interface UiTreeNode {
44
48
  key: string;
45
49
  title: string;
50
+ /** False keeps the node expandable before its children are loaded. */
51
+ isLeaf?: boolean;
46
52
  disabled?: boolean;
47
53
  secondary?: string;
48
54
  tag?: string;
@@ -19,6 +19,12 @@ export interface WebPageResponse<T> {
19
19
  pages: number;
20
20
  totalKnown: boolean;
21
21
  navigation?: unknown;
22
+ summaries?: WebListQuerySummaryItem[];
23
+ }
24
+ /** Value of one footer summary for the complete result set of the current list query. */
25
+ export interface WebListQuerySummaryItem {
26
+ key: string;
27
+ value: unknown;
22
28
  }
23
29
  export declare const webDataChangeTypes: {
24
30
  readonly recordCreated: "record-created";
@@ -409,7 +415,7 @@ export type MenuScopeType = 'system' | 'tenant' | 'organization';
409
415
  export interface MenuScheme extends StandardEnabledSortableEntity {
410
416
  alias?: string;
411
417
  scopeType?: MenuScopeType;
412
- scopeId?: string;
418
+ organizationId?: string;
413
419
  }
414
420
  export interface ModuleMenuTarget {
415
421
  menuId: string;
@@ -550,6 +556,9 @@ export interface WebQueryRequest {
550
556
  quickSearch?: string;
551
557
  quickSearchFields?: string[];
552
558
  externalQueryValues?: Record<string, unknown>;
559
+ /** Host page and target level for a navigator REFERENCE query. */
560
+ navigatorHostModuleAlias?: string;
561
+ navigatorTargetLevelKey?: string;
553
562
  }
554
563
  /** Shared field-reference delivery contract for static and metadata-backed modules. */
555
564
  export type WebReferenceResolveMode = 'QUERY' | 'TREE' | 'TRANSLATE';
@@ -574,6 +583,14 @@ export interface WebReferenceResolveRequest {
574
583
  uiConfigId?: string;
575
584
  queryTemplateId?: string;
576
585
  externalQueryValues?: Record<string, unknown>;
586
+ /**
587
+ * Host page that owns this navigator reference request. Reference transports
588
+ * use it only to resolve the declared NAVIGATOR_QUERY bindings; ordinary
589
+ * module queries deliberately ignore it.
590
+ */
591
+ navigatorHostModuleAlias?: string;
592
+ /** Navigator level in the host page whose source is being queried. */
593
+ navigatorTargetLevelKey?: string;
577
594
  }
578
595
  export interface WebReferenceResolveItem {
579
596
  id: string;
@@ -648,7 +665,7 @@ export interface UiFormula {
648
665
  /** Versioned program compiled by FormulaEngine. The browser executes it locally and never parses expression. */
649
666
  export interface FormulaProgram {
650
667
  schemaVersion: number;
651
- profile: 'WEB_UI' | 'FORM_COMPUTE';
668
+ profile: 'WEB_UI' | 'PAGE_TEXT' | 'FORM_COMPUTE';
652
669
  root: FormulaNode;
653
670
  referencedFields: string[];
654
671
  }
@@ -682,6 +699,8 @@ export interface ViewFieldDefinition {
682
699
  maxDisplayLines?: number;
683
700
  /** User-facing title for the standard tree root sentinel in a detail field. */
684
701
  treeRootTitle?: string;
702
+ /** Nullable field inherits this source field until an explicit override is selected. */
703
+ overrideOf?: string;
685
704
  }
686
705
  /** Semantic group that owns a contiguous set of standard-form fields. */
687
706
  export interface FormGroupDescriptor {
@@ -731,6 +750,8 @@ export interface ResolvedViewFieldDescriptor {
731
750
  fixed?: boolean;
732
751
  booleanStatus?: BooleanStatusPresentation;
733
752
  treeRootTitle?: string;
753
+ /** Nullable field inherits this source field until an explicit override is selected. */
754
+ overrideOf?: string;
734
755
  option?: ResolvedOptionFieldDescriptor;
735
756
  reference?: ResolvedReferenceFieldDescriptor;
736
757
  referenceSummary?: ResolvedReferenceSummaryFieldDescriptor;
@@ -756,6 +777,19 @@ export interface ResolvedReferenceFieldDescriptor {
756
777
  candidateDependencies?: ReferenceCandidateDependency[];
757
778
  /** Read-side title projection for this scalar reference, when supplied by the server. */
758
779
  titleField?: string;
780
+ /**
781
+ * Explicitly authorized target-field paths available after choosing this ONE reference.
782
+ * Paths are relative to this reference field; the form runtime prefixes them with the
783
+ * descriptor-owned source field name before exposing them to WEB_UI formulas.
784
+ */
785
+ selectionProjections?: ResolvedReferenceSelectionProjectionDescriptor[];
786
+ }
787
+ /**
788
+ * A declared projection below a record-picker target. Every non-terminal segment is a declared
789
+ * ONE reference; the terminal segment is the selected value delivered by the server.
790
+ */
791
+ export interface ResolvedReferenceSelectionProjectionDescriptor {
792
+ path: string[];
759
793
  }
760
794
  export interface ReferenceCandidateDependency {
761
795
  sourceField: string;
@@ -813,11 +847,12 @@ export type ModulePageTemplate = 'FLAT_MANAGEMENT' | 'LIST_DETAIL_CARD' | 'TREE_
813
847
  export interface ResolvedPageExplorerDescriptor {
814
848
  title: string;
815
849
  searchPlaceholder: string;
850
+ /** Optional record field rendered as the compact navigator secondary identity. */
851
+ secondaryField?: string;
816
852
  emptyDescription: string;
817
853
  recordLabel: string;
818
854
  fallbackTitle: string;
819
855
  titleField: string;
820
- secondaryField?: string;
821
856
  mutedWhenDisabled: boolean;
822
857
  }
823
858
  export interface ResolvedPageNavigatorDescriptor {
@@ -830,6 +865,8 @@ export interface ResolvedPageNavigatorLevelDescriptor {
830
865
  sourceModuleAlias: string;
831
866
  title: string;
832
867
  searchPlaceholder: string;
868
+ /** Optional record field rendered as the compact navigator secondary identity. */
869
+ secondaryField?: string;
833
870
  /** Presentation policy applied after the source has authoritatively loaded. */
834
871
  singleResultPolicy?: 'NONE' | 'AUTO_SELECT' | 'AUTO_SELECT_AND_HIDE';
835
872
  /** Explicit initial selection policy; omitted means the navigator starts unselected. */
@@ -843,13 +880,18 @@ export interface ResolvedPageNavigatorLevelDescriptor {
843
880
  management?: ResolvedPageNavigatorManagementDescriptor;
844
881
  }
845
882
  export interface ResolvedPageContextBindingDescriptor {
846
- source: 'SESSION' | 'NAVIGATOR';
883
+ source: 'SESSION' | 'NAVIGATOR' | 'RESOLVED_SELECTION';
847
884
  sourceKey: string;
848
885
  target: 'LIST_QUERY' | 'NAVIGATOR_QUERY' | 'FORM_DEFAULT' | 'PICKER_QUERY' | 'MUTATION_CONSTRAINT';
849
886
  targetKey: string;
850
887
  targetNavigatorLevelKey?: string;
851
888
  /** Field name of the record picker which receives this query context. */
852
889
  targetPickerFieldKey?: string;
890
+ /**
891
+ * Only applies to NAVIGATOR -> LIST_QUERY. Omitted descriptors remain required for backwards
892
+ * compatibility with previously published page definitions.
893
+ */
894
+ navigatorListQueryMode?: 'REQUIRED_SCOPE' | 'OPTIONAL_FILTER';
853
895
  }
854
896
  export interface ResolvedPageNavigatorManagementDescriptor {
855
897
  /** Optional named source-module form; the default editor is used when omitted. */
@@ -858,8 +900,30 @@ export interface ResolvedPageNavigatorManagementDescriptor {
858
900
  export interface ResolvedPageListDescriptor {
859
901
  searchPlaceholder: string;
860
902
  fields: ResolvedViewDescriptor;
903
+ /** Main-content header copy; PAGE_TEXT programs run only against the host display context. */
904
+ title?: ResolvedPageTextDescriptor;
905
+ subtitle?: ResolvedPageTextDescriptor;
861
906
  /** Read-only placements of declared aggregate relations beneath an expanded list row. */
862
907
  relationExpansions?: ResolvedPageListRelationExpansionDescriptor[];
908
+ persistentQueryControls?: ResolvedPageListPersistentQueryControlDescriptor[];
909
+ querySummaries?: ResolvedPageListQuerySummaryDescriptor[];
910
+ }
911
+ export interface ResolvedPageTextDescriptor {
912
+ text?: string;
913
+ program?: FormulaProgram;
914
+ }
915
+ export interface ResolvedPageListQuerySummaryDescriptor {
916
+ key: string;
917
+ title: string;
918
+ source: 'MATCHED_COUNT' | 'CONTRIBUTOR';
919
+ contributorKey?: string;
920
+ }
921
+ /** A persistent boolean query control rendered after search and before advanced filtering. */
922
+ export interface ResolvedPageListPersistentQueryControlDescriptor {
923
+ externalCriteriaKey: string;
924
+ title: string;
925
+ uiType: 'SWITCH';
926
+ defaultValue: boolean;
863
927
  }
864
928
  export interface ResolvedPageListRelationExpansionDescriptor {
865
929
  relationCode: string;
@@ -884,9 +948,22 @@ export interface ResolvedModulePageDescriptor {
884
948
  explorer?: ResolvedPageExplorerDescriptor;
885
949
  navigator?: ResolvedPageNavigatorDescriptor;
886
950
  list?: ResolvedPageListDescriptor;
951
+ /** Declared action-contribution tree rendered as the main TREE_MANAGEMENT resource. */
952
+ treeResource?: ResolvedPageTreeResourceDescriptor;
887
953
  detail: ResolvedPageDetailDescriptor;
888
954
  traits: ('STANDARD_CRUD' | 'ENABLED_STATUS' | 'RECYCLE_BIN' | 'RESPONSIVE_DETAIL_SURFACE')[];
889
955
  }
956
+ export interface ResolvedPageTreeResourceDescriptor {
957
+ resource: string;
958
+ scopeNavigatorKey: string;
959
+ scopeField: string;
960
+ /** Optional exact-value condition on the selected navigator record. */
961
+ scopeRecordField?: string;
962
+ scopeRecordEquals?: string;
963
+ title: string;
964
+ emptyDescription: string;
965
+ createTitle: string;
966
+ }
890
967
  export interface ResolvedUiActionConfirmationDescriptor {
891
968
  mode: 'typedText';
892
969
  requiredField: string;
@@ -18,6 +18,12 @@ export interface HttpRequestOptions {
18
18
  export interface HttpClient {
19
19
  request<T>(options: HttpRequestOptions): Promise<T>;
20
20
  }
21
+ /**
22
+ * Narrows an existing client to one trusted request context without teaching
23
+ * module clients about a particular page, menu, or business domain.
24
+ */
25
+ export declare function withHttpHeaders(client: StreamingHttpClient, headers: Record<string, string | undefined> | (() => Record<string, string | undefined>), appliesTo?: (request: HttpRequestOptions) => boolean): StreamingHttpClient;
26
+ export declare function withHttpHeaders(client: HttpClient, headers: Record<string, string | undefined> | (() => Record<string, string | undefined>), appliesTo?: (request: HttpRequestOptions) => boolean): HttpClient;
21
27
  /**
22
28
  * Optional capability implemented by HTTP clients that can open a response body
23
29
  * as a stream. Keeping it separate preserves compatibility with application
@@ -1,6 +1,6 @@
1
1
  export * from './abilityCodes';
2
2
  export * from './recycleBin';
3
3
  export * from './staticModuleClient';
4
- export type { ModuleActionState, ModuleRuntimeAction, ModuleRuntimeContext, ModuleRuntimeContextState, } from './runtimeContext';
4
+ export type { ModuleActionState, ModuleRecordActionAvailability, ModuleRuntimeAction, ModuleRuntimeContext, ModuleRuntimeContextState, } from './runtimeContext';
5
5
  export type { ModuleAbilityClients, ModuleAbilities } from './abilities';
6
6
  export * from './moduleContext';
@@ -1,7 +1,7 @@
1
1
  import type { HttpClient } from '../http';
2
2
  import { type ModuleAbilities } from './abilities';
3
3
  import { type ModuleActionState, type ModuleRecordActionAvailability, type ModuleRuntimeAction, type ModuleRuntimeContextState } from './runtimeContext';
4
- import { type ModuleCrudClient, type ModuleTreeClient } from './staticModuleClient';
4
+ import { type NavigatorReferenceRequestContext, type ModuleCrudClient, type ModuleTreeClient } from './staticModuleClient';
5
5
  export interface ModuleContext<TRecord> {
6
6
  moduleAlias: string;
7
7
  http: HttpClient;
@@ -26,6 +26,7 @@ export interface ModuleContextConfig {
26
26
  export interface ModuleContextOptions extends ModuleContextConfig {
27
27
  moduleAlias: string;
28
28
  runtimeAccess?: 'MENU' | 'REFERENCE';
29
+ navigatorReference?: NavigatorReferenceRequestContext;
29
30
  }
30
31
  export declare function configureModuleContext(config: ModuleContextConfig): void;
31
32
  export declare function provideModuleContextConfig(config: ModuleContextConfig): void;