@ximatai/muyun-web-app 0.26.4 → 0.26.6

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 (92) hide show
  1. package/dist/{EmployeeDetailWorkspaceView-BySbWjCV.js → EmployeeDetailWorkspaceView-DHZ4arBj.js} +1 -1
  2. package/dist/{EmployeeManagementView-DvmDPxzN.js → EmployeeManagementView-BfGb_ssB.js} +336 -336
  3. package/dist/MetadataOrchestrationView-BLxigKBh.js +655 -0
  4. package/dist/{ModuleActionManagementView-DRtYMXOK.js → ModuleActionManagementView-ByJzNkQs.js} +102 -102
  5. package/dist/{RoleAuthorizationView-CK6Vfdup.js → RoleAuthorizationView-DJSWY3fu.js} +62 -62
  6. package/dist/{RoleDetailWorkspaceView-BPZcZy-r.js → RoleDetailWorkspaceView-Dfdigf04.js} +1 -1
  7. package/dist/{RoleManagementView-B7TzzVOm.js → RoleManagementView-D0e9nLwW.js} +295 -295
  8. package/dist/{SystemUserDetailWorkspaceView-BtEDyU-k.js → SystemUserDetailWorkspaceView-D-UPhCmD.js} +1 -1
  9. package/dist/{SystemUserManagementView-TKqj92zG.js → SystemUserManagementView-DNKRvmDk.js} +198 -198
  10. package/dist/{UserDetailWorkspaceView-B6fGrnQ7.js → UserDetailWorkspaceView-BCSCLNSz.js} +1 -1
  11. package/dist/{UserManagementView-4IJeDSQS.js → UserManagementView-aY2AeeWK.js} +287 -287
  12. package/dist/index.css +1 -1
  13. package/dist/index.js +2384 -2410
  14. package/dist/pageRealtime-Be2xkeKK.js +225 -0
  15. package/dist/{platform-components-CgMBopmF.js → platform-components-DuAohqJO.js} +2732 -1546
  16. package/dist/types/app/workbenchRouteSync.d.ts +13 -0
  17. package/dist/types/consumer/index.d.ts +10 -2
  18. package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +8 -1
  19. package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +12 -0
  20. package/dist/types/dynamic-page-runtime/index.d.ts +5 -0
  21. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +126 -0
  22. package/dist/types/dynamic-page-runtime/modulePageListRefresh.d.ts +12 -0
  23. package/dist/types/dynamic-page-runtime/modulePageNavigation.d.ts +11 -0
  24. package/dist/types/platform-admin-runtime/PlatformAdminOutlet.vue.d.ts +1 -0
  25. package/dist/types/platform-admin-runtime/backendHttp.d.ts +1 -1
  26. package/dist/types/platform-admin-runtime/index.d.ts +3 -0
  27. package/dist/types/platform-admin-runtime/realtime.d.ts +9 -5
  28. package/dist/types/platform-admin-runtime/workspaceViewContract.d.ts +1 -36
  29. package/dist/types/platform-admin-runtime/workspaceViewHost.d.ts +2 -10
  30. package/dist/types/platform-admin-runtime/workspaceViews.d.ts +1 -17
  31. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +2 -2
  32. package/dist/types/platform-components/DateTimeText.vue.d.ts +1 -1
  33. package/dist/types/platform-components/FileSizeText.vue.d.ts +10 -0
  34. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +51 -0
  35. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +16 -0
  36. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +1 -1
  37. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +19 -0
  38. package/dist/types/platform-components/RecordFormFields.vue.d.ts +4 -0
  39. package/dist/types/platform-components/RecordListExplorer.vue.d.ts +2 -2
  40. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +15 -0
  41. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +33 -0
  42. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +33 -0
  43. package/dist/types/platform-components/RecordPanelState.vue.d.ts +11 -0
  44. package/dist/types/platform-components/RecordPicker.vue.d.ts +1 -1
  45. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +47 -2
  46. package/dist/types/platform-components/RecordStatusTag.vue.d.ts +6 -1
  47. package/dist/types/platform-components/RecordTagList.vue.d.ts +7 -0
  48. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +2 -2
  49. package/dist/types/platform-components/fileReferenceTransfer.d.ts +17 -0
  50. package/dist/types/platform-components/fileTransferUpload.d.ts +43 -0
  51. package/dist/types/platform-components/index.d.ts +14 -1
  52. package/dist/types/platform-components/platformErrorFeedback.d.ts +2 -0
  53. package/dist/types/platform-components/platformFileSize.d.ts +10 -0
  54. package/dist/types/platform-components/recordActionBarModel.d.ts +6 -1
  55. package/dist/types/platform-components/recordFormFieldModel.d.ts +21 -3
  56. package/dist/types/platform-workbench/Workbench.vue.d.ts +2 -2
  57. package/dist/types/platform-workbench/WorkbenchBrandControl.vue.d.ts +21 -0
  58. package/dist/types/platform-workbench/WorkbenchMenu.vue.d.ts +15 -1
  59. package/dist/types/platform-workbench/WorkbenchMenuTree.vue.d.ts +2 -0
  60. package/dist/types/platform-workbench/WorkspaceViewOutlet.vue.d.ts +7 -0
  61. package/dist/types/platform-workbench/index.d.ts +7 -0
  62. package/dist/types/platform-workbench/menuPointerAim.d.ts +11 -0
  63. package/dist/types/platform-workbench/workbenchLayout.d.ts +1 -0
  64. package/dist/types/platform-workbench/workspaceViewContract.d.ts +20 -0
  65. package/dist/types/platform-workbench/workspaceViewHost.d.ts +8 -0
  66. package/dist/types/platform-workbench/workspaceViews.d.ts +21 -0
  67. package/dist/types/views/employeeDetailWorkspaceView.d.ts +1 -1
  68. package/dist/types/views/metadataOrchestrationWorkspaceView.d.ts +1 -1
  69. package/dist/types/views/moduleActionManagementWorkspaceView.d.ts +1 -1
  70. package/dist/types/views/roleAuthorizationWorkspaceView.d.ts +1 -1
  71. package/dist/types/views/roleDetailWorkspaceView.d.ts +1 -1
  72. package/dist/types/views/systemUserDetailWorkspaceView.d.ts +1 -1
  73. package/dist/types/views/userDetailWorkspaceView.d.ts +1 -1
  74. package/dist/types/vue-ui-antdv/components/UiColorPicker.vue.d.ts +14 -0
  75. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  76. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +3 -3
  77. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +1 -1
  78. package/dist/types/vue-ui-antdv/components/UiTagList.vue.d.ts +17 -0
  79. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +3 -3
  80. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +1 -1
  81. package/dist/types/vue-ui-antdv/index.d.ts +3 -0
  82. package/dist/types/vue-ui-antdv/types.d.ts +3 -9
  83. package/dist/types/web-contracts/index.d.ts +111 -1
  84. package/dist/types/web-core/clients.d.ts +6 -1
  85. package/dist/types/web-core/http.d.ts +12 -1
  86. package/dist/types/web-core/module/staticModuleClient.d.ts +1 -0
  87. package/dist/{useUserSessionRows-DHsyr2Vy.js → useUserSessionRows-DX9qYU5r.js} +2 -2
  88. package/dist/workspaceViewSessions-C3GP1UGp.js +2639 -0
  89. package/package.json +1 -1
  90. package/dist/MetadataOrchestrationView-2JxJkFEC.js +0 -655
  91. package/dist/pageRealtime-CJriNmzP.js +0 -140
  92. package/dist/workspaceViewSessions-BMbyO9O4.js +0 -1571
@@ -0,0 +1,33 @@
1
+ import { type UiIconName } from '../vue-ui-antdv/index';
2
+ type __VLS_Props = {
3
+ type?: 'default' | 'primary' | 'dashed' | 'link' | 'text';
4
+ disabled?: boolean;
5
+ loading?: boolean;
6
+ danger?: boolean;
7
+ title?: string;
8
+ iconName?: UiIconName;
9
+ };
10
+ declare var __VLS_10: {};
11
+ type __VLS_Slots = {} & {
12
+ default?: (props: typeof __VLS_10) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ click: (event: MouseEvent) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onClick?: ((event: MouseEvent) => any) | undefined;
18
+ }>, {
19
+ type: "default" | "primary" | "dashed" | "link" | "text";
20
+ title: string;
21
+ danger: boolean;
22
+ disabled: boolean;
23
+ loading: boolean;
24
+ iconName: UiIconName;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
27
+ declare const _default: typeof __VLS_export;
28
+ export default _default;
29
+ type __VLS_WithSlots<T, S> = T & {
30
+ new (): {
31
+ $slots: S;
32
+ };
33
+ };
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ loading?: boolean;
3
+ description: string;
4
+ loadingTip?: string;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
+ loading: boolean;
8
+ loadingTip: string;
9
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -22,9 +22,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
22
22
  }>, {
23
23
  disabled: boolean;
24
24
  value: string;
25
- mode: "list" | "tree";
26
25
  placeholder: string;
27
26
  allowClear: boolean;
27
+ mode: "list" | "tree";
28
28
  filterOption: (record: RecordPickerRecord, keyword: string) => boolean;
29
29
  titleOf: (record: RecordPickerRecord) => string;
30
30
  reloadKey: number;
@@ -1,3 +1,5 @@
1
+ import { type Component } from 'vue';
2
+ import type { ResolvedViewFieldDescriptor } from '../web-contracts/index';
1
3
  import { type ModuleContext } from '../web-core/index';
2
4
  import { type RecordActionItem, type ResolvedRecordActionItem } from './recordActionBarModel';
3
5
  export type QueryListRecord = Record<string, unknown> & {
@@ -8,23 +10,41 @@ export type RecordQueryListMode = 'normal' | 'recycleBin';
8
10
  export interface RecordQueryListColumn {
9
11
  key: string;
10
12
  title: string;
11
- type?: 'text' | 'enabledStatus' | 'datetime';
13
+ type?: 'text' | 'enabledStatus' | 'booleanStatus' | 'tagList' | 'datetime' | 'fileSize' | 'colorPicker';
14
+ booleanStatus?: ResolvedViewFieldDescriptor['booleanStatus'];
12
15
  width?: string;
13
16
  align?: 'left' | 'center' | 'right';
14
17
  titleField?: string;
18
+ /** Maximum visible lines for text cells. Defaults to one line. */
19
+ maxDisplayLines?: number;
15
20
  render?: (record: QueryListRecord) => string;
16
21
  }
22
+ export interface RecordQueryListCellComponent {
23
+ key: string;
24
+ component: Component;
25
+ }
17
26
  type __VLS_Props = {
18
27
  context: ModuleContext<QueryListRecord>;
19
28
  title: string;
20
29
  columns?: RecordQueryListColumn[];
30
+ /** Columns appended to, or anchored around, the descriptor-owned list fields. */
31
+ additionalColumns?: Array<RecordQueryListColumn & {
32
+ before?: string;
33
+ after?: string;
34
+ }>;
35
+ /** Vue cell components are deliberately constrained to cells; they do not own the table shell. */
36
+ cellComponents?: RecordQueryListCellComponent[];
21
37
  actions?: RecordActionItem[];
38
+ extraActions?: RecordActionItem[];
39
+ batchActions?: RecordActionItem[];
22
40
  standardCrudActions?: boolean;
23
41
  standardCrudRowActions?: boolean;
24
42
  rowActionsOf?: (record: QueryListRecord) => RecordActionItem[];
25
43
  extraRowActionsOf?: (record: QueryListRecord) => RecordActionItem[];
26
44
  rowActionStateOf?: (record: QueryListRecord, action: RecordActionItem) => Partial<RecordActionItem> | undefined;
27
45
  rowActionsTitle?: string;
46
+ /** Width of the fixed right-side action column. Defaults to the platform compact width. */
47
+ actionColumnWidth?: string | number;
28
48
  cellRenderers?: Record<string, (record: QueryListRecord) => string>;
29
49
  rowKey?: string;
30
50
  selectedKey?: string;
@@ -36,19 +56,33 @@ type __VLS_Props = {
36
56
  queryTemplateId?: string;
37
57
  ready?: boolean;
38
58
  externalQueryValues?: Record<string, unknown>;
59
+ /** Descriptor-owned external criteria that must be exposed by the query schema. */
60
+ requiredExternalCriteriaKeys?: string[];
39
61
  quickSearchPlaceholder?: string;
40
62
  emptyDescription?: string;
41
63
  waitingDescription?: string;
42
64
  mode?: RecordQueryListMode;
43
65
  };
44
66
  type __VLS_Slots = {
67
+ toolbarActions?: (props: {
68
+ refresh: () => void;
69
+ }) => unknown;
70
+ cell?: (props: {
71
+ column: RecordQueryListColumn;
72
+ record: QueryListRecord;
73
+ }) => unknown;
74
+ rowActions?: (props: {
75
+ record: QueryListRecord;
76
+ }) => unknown;
45
77
  expandedRow?: (props: {
46
78
  record: QueryListRecord;
47
79
  rowKey: string;
48
80
  }) => unknown;
49
81
  };
50
82
  declare function refresh(): void;
83
+ declare function clearSelection(): void;
51
84
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
85
+ clearSelection: typeof clearSelection;
52
86
  refresh: typeof refresh;
53
87
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
54
88
  select: (record: QueryListRecord) => any;
@@ -57,6 +91,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
57
91
  rowExpand: (record: QueryListRecord, expanded: boolean) => any;
58
92
  loaded: (records: QueryListRecord[]) => any;
59
93
  restored: () => any;
94
+ batchAction: (action: RecordActionItem, records: QueryListRecord[], event: MouseEvent, clearSelection: () => void) => any;
60
95
  rowAction: (action: ResolvedRecordActionItem, record: QueryListRecord, event?: MouseEvent | undefined) => any;
61
96
  modeChange: (mode: RecordQueryListMode) => any;
62
97
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
@@ -66,6 +101,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
66
101
  onRowExpand?: ((record: QueryListRecord, expanded: boolean) => any) | undefined;
67
102
  onLoaded?: ((records: QueryListRecord[]) => any) | undefined;
68
103
  onRestored?: (() => any) | undefined;
104
+ onBatchAction?: ((action: RecordActionItem, records: QueryListRecord[], event: MouseEvent, clearSelection: () => void) => any) | undefined;
69
105
  onRowAction?: ((action: ResolvedRecordActionItem, record: QueryListRecord, event?: MouseEvent | undefined) => any) | undefined;
70
106
  onModeChange?: ((mode: RecordQueryListMode) => any) | undefined;
71
107
  }>, {
@@ -75,12 +111,21 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
75
111
  columns: RecordQueryListColumn[];
76
112
  rowKey: string;
77
113
  expandedRowKeys: string[];
114
+ actionColumnWidth: string | number;
78
115
  emptyDescription: string;
79
116
  pageSize: number;
80
117
  uiConfigId: string;
81
118
  queryTemplateId: string;
82
119
  reloadKey: number;
120
+ ready: boolean;
83
121
  refreshTitle: string;
122
+ additionalColumns: Array<RecordQueryListColumn & {
123
+ before?: string;
124
+ after?: string;
125
+ }>;
126
+ cellComponents: RecordQueryListCellComponent[];
127
+ extraActions: RecordActionItem[];
128
+ batchActions: RecordActionItem[];
84
129
  standardCrudActions: boolean;
85
130
  standardCrudRowActions: boolean;
86
131
  rowActionsOf: (record: QueryListRecord) => RecordActionItem[];
@@ -88,8 +133,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
88
133
  rowActionStateOf: (record: QueryListRecord, action: RecordActionItem) => Partial<RecordActionItem> | undefined;
89
134
  rowActionsTitle: string;
90
135
  cellRenderers: Record<string, (record: QueryListRecord) => string>;
91
- ready: boolean;
92
136
  externalQueryValues: Record<string, unknown>;
137
+ requiredExternalCriteriaKeys: string[];
93
138
  quickSearchPlaceholder: string;
94
139
  waitingDescription: string;
95
140
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,5 +1,10 @@
1
1
  type __VLS_Props = {
2
- enabled?: boolean;
2
+ enabled?: boolean | null;
3
+ enabledLabel?: string;
4
+ disabledLabel?: string;
5
+ unknownLabel?: string;
6
+ enabledTone?: 'SUCCESS' | 'NEUTRAL' | 'WARNING' | 'DANGER';
7
+ disabledTone?: 'SUCCESS' | 'NEUTRAL' | 'WARNING' | 'DANGER';
3
8
  };
4
9
  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>;
5
10
  declare const _default: typeof __VLS_export;
@@ -0,0 +1,7 @@
1
+ type __VLS_Props = {
2
+ items: unknown;
3
+ maxVisible?: number;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -29,11 +29,11 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
29
29
  toggleSearch: typeof toggleSearch;
30
30
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
31
31
  select: (record: TreeRecordBase) => any;
32
- action: (action: UiRecordInlineAction, record: TreeRecordBase) => any;
32
+ action: (action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any;
33
33
  loaded: (records: TreeRecordBase[]) => any;
34
34
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
35
35
  onSelect?: ((record: TreeRecordBase) => any) | undefined;
36
- onAction?: ((action: UiRecordInlineAction, record: TreeRecordBase) => any) | undefined;
36
+ onAction?: ((action: import("../web-contracts/index").RecordInlineAction, record: TreeRecordBase) => any) | undefined;
37
37
  onLoaded?: ((records: TreeRecordBase[]) => any) | undefined;
38
38
  }>, {
39
39
  filterOption: (record: TreeRecordBase, normalizedKeyword: string) => boolean;
@@ -0,0 +1,17 @@
1
+ import type { HttpClient } from '../web-core/index';
2
+ import type { ResolvedFileReferenceFieldDescriptor } from '../web-contracts/index';
3
+ import type { FileTransferUploadAccess } from './fileTransferUpload';
4
+ /** Issues the module-owned short-lived upload ticket for a declared file-reference field. */
5
+ export declare function issueFileReferenceUploadAccess(http: HttpClient, moduleAlias: string, definition: ResolvedFileReferenceFieldDescriptor, draft: Record<string, unknown>, file: File, intent: FileReferenceUploadIntent): Promise<FileTransferUploadAccess>;
6
+ /** A policy-visible upload fact, derived from the field cardinality and its current binding. */
7
+ export type FileReferenceUploadIntent = 'CREATE' | 'APPEND' | 'REPLACE';
8
+ export declare function fileReferenceUploadIntent(value: unknown, definition: ResolvedFileReferenceFieldDescriptor): FileReferenceUploadIntent;
9
+ /** Returns the physical file that a successful single-file replacement makes eligible for deletion. */
10
+ export declare function replacedFileReferenceId(value: unknown, fileId: string, definition: ResolvedFileReferenceFieldDescriptor): string | undefined;
11
+ /** Extracts the one uploaded file identifier from MuYunFileServer's conventional upload payload. */
12
+ export declare function uploadedFileId(payload: unknown): string;
13
+ /** Applies one successful upload to the draft value without inventing a deletion protocol. */
14
+ export declare function appendUploadedFileReference(value: unknown, fileId: string, definition: ResolvedFileReferenceFieldDescriptor): string | string[];
15
+ export declare function acceptedMediaTypes(definition: ResolvedFileReferenceFieldDescriptor): string | undefined;
16
+ /** Normalizes persisted draft values so callers can account for already bound files. */
17
+ export declare function fileReferenceIds(value: unknown): string[];
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The platform owns the browser-to-storage transfer mechanics, while an
3
+ * application owns the authorization request. A caller may additionally run a
4
+ * business confirmation step, while standard file-reference fields only bind
5
+ * the returned fileId during their later record save.
6
+ * MuYunFileServer owns the multipart transport; this module deliberately has
7
+ * no knowledge of a particular business record type.
8
+ */
9
+ export interface FileTransferUploadAccess {
10
+ /** A short-lived MuYunFileServer multipart upload URL supplied by the business API. */
11
+ uploadUrl: string;
12
+ formFieldName?: string;
13
+ }
14
+ export interface FileTransferUploadReceipt {
15
+ file: File;
16
+ /** Storage service response after unwrapping the conventional { data } envelope. */
17
+ payload: unknown;
18
+ response: unknown;
19
+ }
20
+ export interface FileTransferUploadTask {
21
+ promise: Promise<FileTransferUploadReceipt>;
22
+ cancel: () => void;
23
+ }
24
+ /** Browser-visible phases shared by upload controls. */
25
+ export type FileTransferUploadState = 'requesting' | 'uploading' | 'confirming' | 'completed';
26
+ export interface FileTransferUploadLifecycleCallbacks {
27
+ stateChanged: (state: FileTransferUploadState) => void;
28
+ progressChanged?: (percent: number) => void;
29
+ taskCreated?: (task: FileTransferUploadTask) => void;
30
+ taskFinished?: () => void;
31
+ }
32
+ /**
33
+ * Runs the common browser upload lifecycle without knowing the business record being edited.
34
+ *
35
+ * State is reported through callbacks so the consuming control can update its own reactive item. When supplied,
36
+ * business confirmation completes before the completed transition; otherwise the raw storage payload is returned.
37
+ */
38
+ export declare function performBrowserFileTransferUpload(file: File, requestUploadAccess: (file: File) => Promise<FileTransferUploadAccess>, confirmUpload: ((receipt: FileTransferUploadReceipt) => Promise<unknown>) | undefined, callbacks: FileTransferUploadLifecycleCallbacks): Promise<{
39
+ receipt: FileTransferUploadReceipt;
40
+ result: unknown;
41
+ }>;
42
+ export declare function createBrowserFileTransferUpload(file: File, access: FileTransferUploadAccess, onProgress?: (percent: number) => void): FileTransferUploadTask;
43
+ export declare function unwrapResponsePayload(response: unknown): unknown;
@@ -4,6 +4,10 @@ export { confirmAction } from '../vue-ui-antdv/index';
4
4
  export { default as CrudRecordListExplorer } from './CrudRecordListExplorer.vue';
5
5
  export { default as DrawerOperationBar } from './DrawerOperationBar.vue';
6
6
  export { default as DateTimeText } from './DateTimeText.vue';
7
+ export { default as FileSizeText } from './FileSizeText.vue';
8
+ export { default as FileTransferUploader } from './FileTransferUploader.vue';
9
+ export { createBrowserFileTransferUpload, unwrapResponsePayload } from './fileTransferUpload';
10
+ export type { FileTransferUploadAccess, FileTransferUploadReceipt, FileTransferUploadTask, } from './fileTransferUpload';
7
11
  export { default as EnabledSelect } from './EnabledSelect.vue';
8
12
  export { default as ModuleActionButton } from './ModuleActionButton.vue';
9
13
  export { default as ManagementWorkspace } from './ManagementWorkspace.vue';
@@ -14,23 +18,29 @@ export { default as RecordDetailDrawer } from './RecordDetailDrawer.vue';
14
18
  export type { DrawerPromotion } from './drawerPromotion';
15
19
  export { default as RecordExternalChangeNotice } from './RecordExternalChangeNotice.vue';
16
20
  export { default as RecordDetailFields } from './RecordDetailFields.vue';
21
+ export { default as RecordDetailExtensionSection } from './RecordDetailExtensionSection.vue';
17
22
  export { default as RecordDetailPanel } from './RecordDetailPanel.vue';
23
+ export { default as RecordPanelButton } from './RecordPanelButton.vue';
24
+ export { default as RecordPanelState } from './RecordPanelState.vue';
18
25
  export { default as RecordExpandedSubtable } from './RecordExpandedSubtable.vue';
19
26
  export { default as UserSessionExpandedSubtable } from './UserSessionExpandedSubtable.vue';
20
27
  export { userSessionBrowserTitle, userSessionPresenceDescription, userSessionPresenceTitle, userSessionTerminalTitle, } from './userSessionPresentation';
21
28
  export { default as RecordExplorerPanel } from './RecordExplorerPanel.vue';
22
29
  export type { RecordExplorerItemDescriptor } from './recordExplorerItemModel';
23
30
  export { default as RecordFormFields } from './RecordFormFields.vue';
31
+ export { default as RecordFileReferenceTransfer } from './RecordFileReferenceTransfer.vue';
24
32
  export { default as RecordListExplorer } from './RecordListExplorer.vue';
25
33
  export { default as RecordMetaSection } from './RecordMetaSection.vue';
26
34
  export { default as RecordModeDrawer } from './RecordModeDrawer.vue';
27
35
  export { default as RecordPicker } from './RecordPicker.vue';
36
+ export { default as RecordMultiPicker } from './RecordMultiPicker.vue';
28
37
  export { default as RecordQueryListPanel } from './RecordQueryListPanel.vue';
29
38
  export { default as RecycleBinModeButton } from './RecycleBinModeButton.vue';
30
39
  export { useRecycleBinExplorerMode, type RecycleBinExplorerMode, type RecycleBinExplorerModeOptions, } from './useRecycleBinExplorerMode';
31
40
  export { default as RecordStatusSwitch } from './RecordStatusSwitch.vue';
32
41
  export { default as RecordTreeSelector } from './RecordTreeSelector.vue';
33
42
  export { default as RecordStatusTag } from './RecordStatusTag.vue';
43
+ export { default as RecordTagList } from './RecordTagList.vue';
34
44
  export { useRecycleBinState } from './recycleBinState';
35
45
  export type { RecycleBinStateOptions } from './recycleBinState';
36
46
  export { createSoftDeletedConflictErrorHandler, extractSoftDeletedConflict, useSoftDeletedConflictHandler, } from './softDeletedConflictHandler';
@@ -45,14 +55,17 @@ export type { RecordPickerMode } from './recordPickerModel';
45
55
  export type { RecordActionItem, ResolvedRecordActionItem } from './recordActionBarModel';
46
56
  export type { RecordDetailDisplayResolver, RecordDetailDisplayValue } from './recordDetailFieldModel';
47
57
  export type { RecordListExplorerRecord } from './RecordListExplorer.vue';
48
- export type { QueryListRecord, RecordQueryListColumn, RecordQueryListMode } from './RecordQueryListPanel.vue';
58
+ export type { QueryListRecord, RecordQueryListCellComponent, RecordQueryListColumn, RecordQueryListMode, } from './RecordQueryListPanel.vue';
49
59
  export type { RecordFormFieldDescriptor, RecordFormFieldFallback, RecordFormFieldPickerConfig, RecordFormFieldState, RecordFormFieldValue, RecordFormRecord, } from './recordFormFieldModel';
50
60
  export type { CrudRecordListBase } from './crudRecordListModel';
51
61
  export { defaultCrudRecordListMatches, defaultCrudRecordListSubtitle, defaultCrudRecordListTitle, } from './crudRecordListModel';
52
62
  export { resolveRecordActions } from './recordActionBarModel';
53
63
  export { normalizeRecordDraft } from './recordDraftNormalizer';
64
+ export { acceptedMediaTypes, appendUploadedFileReference, fileReferenceIds, issueFileReferenceUploadAccess, uploadedFileId, } from './fileReferenceTransfer';
54
65
  export { resolveRecordDetailDisplayValue } from './recordDetailFieldModel';
55
66
  export { formatPlatformDateTime, resolveBrowserTimeZone } from './platformDateTime';
67
+ export { formatPlatformFileSize } from './platformFileSize';
68
+ export type { PlatformFileSizeDisplay, PlatformFileSizeOptions } from './platformFileSize';
56
69
  export { providePlatformTimeZoneContext, usePlatformTimeZoneContext } from './platformTimeZoneContext';
57
70
  export type { PlatformDateTimeDisplay, PlatformDateTimeOptions, PlatformDateTimePrecision, } from './platformDateTime';
58
71
  export { childResourceDefaultFormViewCode, resolveRecordFormFieldNames, resolveRecordFormFieldState, resolveRecordFormFields, } from './recordFormFieldModel';
@@ -7,6 +7,8 @@ export interface PlatformErrorFeedbackContext {
7
7
  export declare function presentPlatformError(cause: unknown, context?: PlatformErrorFeedbackContext): AppError;
8
8
  export declare function presentPlatformMessage(message: string, context?: PlatformErrorFeedbackContext): void;
9
9
  export declare function presentPlatformSuccess(message: string, context?: PlatformErrorFeedbackContext): void;
10
+ /** Presents a non-blocking progress update without treating it as an action result. */
11
+ export declare function presentPlatformInfo(message: string): void;
10
12
  export type PlatformActionErrorHandler<TContext> = {
11
13
  code?: string;
12
14
  marker?: string;
@@ -0,0 +1,10 @@
1
+ export interface PlatformFileSizeDisplay {
2
+ text: string;
3
+ title: string;
4
+ valid: boolean;
5
+ }
6
+ export interface PlatformFileSizeOptions {
7
+ emptyText?: string;
8
+ locale?: string;
9
+ }
10
+ export declare function formatPlatformFileSize(value: number | string | bigint | null | undefined, options?: PlatformFileSizeOptions): PlatformFileSizeDisplay;
@@ -23,5 +23,10 @@ export interface ResolvedRecordActionItem extends RecordActionItem {
23
23
  disabled: boolean;
24
24
  loading: boolean;
25
25
  }
26
- export declare function resolveRecordActions(context: Pick<ModuleContext<unknown>, 'action'>, actions: RecordActionItem[], defaultLoading?: boolean, recordId?: string): ResolvedRecordActionItem[];
26
+ type RecordActionContext = Pick<ModuleContext<unknown>, 'action'> & {
27
+ runtime?: Pick<ModuleContext<unknown>['runtime'], 'snapshot'>;
28
+ recordActionsSnapshot?: ModuleContext<unknown>['recordActionsSnapshot'];
29
+ };
30
+ export declare function resolveRecordActions(context: RecordActionContext, actions: RecordActionItem[], defaultLoading?: boolean, recordId?: string): ResolvedRecordActionItem[];
27
31
  export declare function mergeRecordActions(baseActions: RecordActionItem[], extraActions: RecordActionItem[]): RecordActionItem[];
32
+ export {};
@@ -1,12 +1,16 @@
1
- import type { Option, OptionValueList, ResolvedOptionFieldDescriptor, ResolvedModuleUiDescriptor, ResolvedViewFieldDescriptor, ViewFieldDefinition } from '../web-contracts/index';
1
+ import type { Option, OptionValueList, ResolvedReferenceFieldDescriptor, BooleanStatusPresentation, ResolvedOptionFieldDescriptor, ResolvedFileReferenceFieldDescriptor, ResolvedModuleUiDescriptor, ResolvedViewFieldDescriptor, FieldValuePresentation, UiFormula, ViewFieldDefinition } from '../web-contracts/index';
2
2
  import type { ModuleContext } from '../web-core/index';
3
3
  import type { PickerConstraint, RecordPickerRecord } from './recordPickerConstraints';
4
4
  export type RecordFormFieldDescriptor = (ViewFieldDefinition | ResolvedViewFieldDescriptor) & {
5
5
  option?: ResolvedOptionFieldDescriptor;
6
+ reference?: ResolvedReferenceFieldDescriptor;
7
+ fileReference?: ResolvedFileReferenceFieldDescriptor;
6
8
  };
7
9
  export type RecordFormRecord = Record<string, unknown>;
8
- export type RecordFormFieldValue = string | number | boolean | OptionValueList | undefined;
9
- export type RecordFormFieldControlType = 'input' | 'select' | 'enabledStatus' | 'recordPicker';
10
+ export type RecordFormFieldValue = string | number | boolean | OptionValueList | string[] | undefined;
11
+ /** A business boolean does not inherit the lifecycle field's implicit enabled default. */
12
+ export type RecordBooleanStatusValue = boolean | undefined;
13
+ export type RecordFormFieldControlType = 'input' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'fileTransfer';
10
14
  export interface RecordFormFieldFallback {
11
15
  label: string;
12
16
  required?: boolean;
@@ -14,6 +18,7 @@ export interface RecordFormFieldFallback {
14
18
  visible?: boolean;
15
19
  controlType?: RecordFormFieldControlType;
16
20
  placeholder?: string;
21
+ disabledHint?: string;
17
22
  options?: Option[];
18
23
  optionSelectionMode?: 'SINGLE' | 'MULTIPLE';
19
24
  }
@@ -35,10 +40,16 @@ export interface RecordFormFieldState {
35
40
  readOnly: boolean;
36
41
  visible: boolean;
37
42
  controlType: RecordFormFieldControlType;
43
+ columnSpan: number;
38
44
  hasOption: boolean;
39
45
  optionSelectionMode?: 'SINGLE' | 'MULTIPLE';
40
46
  optionTitleField?: string;
47
+ referenceTitleField?: string;
48
+ fileReference?: ResolvedFileReferenceFieldDescriptor;
41
49
  pickerConfig?: RecordFormFieldPickerConfig;
50
+ booleanStatus?: BooleanStatusPresentation;
51
+ valuePresentation?: FieldValuePresentation;
52
+ disabledHint?: string;
42
53
  placeholder?: string;
43
54
  options?: Option[];
44
55
  }
@@ -54,4 +65,11 @@ export declare function resolveRecordFormFieldState(fieldName: string, options?:
54
65
  fallback?: Record<string, RecordFormFieldFallback>;
55
66
  pickerConfigs?: Record<string, RecordFormFieldPickerConfig>;
56
67
  placeholderOf?: (fieldName: string, field: RecordFormFieldState) => string | undefined;
68
+ record?: RecordFormRecord;
57
69
  }): RecordFormFieldState;
70
+ export declare function evaluateUiFormula(formula: UiFormula, record: RecordFormRecord): boolean;
71
+ /**
72
+ * Preserves an absent business value as unknown instead of treating it as true.
73
+ * `enabledStatus` deliberately retains its separate lifecycle default semantics.
74
+ */
75
+ export declare function resolveRecordBooleanStatusValue(value: unknown): RecordBooleanStatusValue;
@@ -7,13 +7,13 @@ type __VLS_Props = {
7
7
  activeTabKey?: string;
8
8
  realtimeStatus?: WorkbenchRealtimeStatus;
9
9
  };
10
- declare var __VLS_66: {
10
+ declare var __VLS_92: {
11
11
  activeTab: MenuTab;
12
12
  target: MenuNavigationTarget | undefined;
13
13
  pageDescriptor: PageDescriptor | undefined;
14
14
  };
15
15
  type __VLS_Slots = {} & {
16
- default?: (props: typeof __VLS_66) => any;
16
+ default?: (props: typeof __VLS_92) => any;
17
17
  };
18
18
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
19
  selectMenu: (menu: MenuRecord, target: MenuNavigationTarget) => any;
@@ -0,0 +1,21 @@
1
+ type __VLS_Props = {
2
+ presentation: 'compact' | 'expanded';
3
+ compactOpen?: boolean;
4
+ tenantLabel?: string;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ openCompactMenu: (source: "click" | "focus" | "pointer") => any;
8
+ scheduleCompactMenuClose: () => any;
9
+ closeCompactMenu: () => any;
10
+ changePresentation: (presentation: "compact" | "expanded") => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onOpenCompactMenu?: ((source: "click" | "focus" | "pointer") => any) | undefined;
13
+ onScheduleCompactMenuClose?: (() => any) | undefined;
14
+ onCloseCompactMenu?: (() => any) | undefined;
15
+ onChangePresentation?: ((presentation: "compact" | "expanded") => any) | undefined;
16
+ }>, {
17
+ compactOpen: boolean;
18
+ tenantLabel: string;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
@@ -6,18 +6,32 @@ type __VLS_Props = {
6
6
  tenantLabel?: string;
7
7
  searchPlaceholder?: string;
8
8
  realtimeStatus?: WorkbenchRealtimeStatus;
9
+ presentation?: 'compact' | 'expanded';
10
+ compactOpen?: boolean;
11
+ compactTop?: number;
9
12
  };
10
13
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ changePresentation: (presentation: "compact" | "expanded") => any;
11
15
  selectMenu: (menu: MenuRecord, target: MenuNavigationTarget) => any;
12
16
  invalidMenu: (menu: MenuRecord) => any;
17
+ compactMenuEnter: () => any;
18
+ compactMenuLeave: () => any;
19
+ compactMenuClose: () => any;
13
20
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onChangePresentation?: ((presentation: "compact" | "expanded") => any) | undefined;
14
22
  onSelectMenu?: ((menu: MenuRecord, target: MenuNavigationTarget) => any) | undefined;
15
23
  onInvalidMenu?: ((menu: MenuRecord) => any) | undefined;
24
+ onCompactMenuEnter?: (() => any) | undefined;
25
+ onCompactMenuLeave?: (() => any) | undefined;
26
+ onCompactMenuClose?: (() => any) | undefined;
16
27
  }>, {
17
- selectedMenuId: string;
28
+ presentation: "compact" | "expanded";
29
+ compactOpen: boolean;
18
30
  tenantLabel: string;
31
+ selectedMenuId: string;
19
32
  searchPlaceholder: string;
20
33
  realtimeStatus: WorkbenchRealtimeStatus;
34
+ compactTop: number;
21
35
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
36
  declare const _default: typeof __VLS_export;
23
37
  export default _default;
@@ -3,6 +3,8 @@ import type { WorkbenchMenuNode } from './menuTreeModel';
3
3
  type __VLS_Props = {
4
4
  node: WorkbenchMenuNode;
5
5
  level?: number;
6
+ selectedMenuId?: string;
7
+ selectedPathIds?: string[];
6
8
  };
7
9
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
10
  selectMenu: (menu: MenuRecord, target: MenuNavigationTarget) => any;
@@ -0,0 +1,7 @@
1
+ import type { BusinessRoutePageDescriptor } from '../web-contracts/index';
2
+ type __VLS_Props = {
3
+ descriptor: BusinessRoutePageDescriptor;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -1,8 +1,15 @@
1
1
  export { default as Workbench } from './Workbench.vue';
2
2
  export { default as WorkbenchMenu } from './WorkbenchMenu.vue';
3
3
  export { default as WorkbenchOutlet } from './WorkbenchOutlet.vue';
4
+ export { default as WorkspaceViewOutlet } from './WorkspaceViewOutlet.vue';
4
5
  export { provideWorkbenchNavigation, useWorkbenchNavigation } from './workbenchNavigation';
5
6
  export type { WorkbenchNavigation, WorkbenchPageOpenResult } from './workbenchNavigation';
7
+ export { configureWorkspaceViewContributions, createWorkspaceViewDescriptor, createWorkspaceViewRegistry, dismissWorkspaceViewDescriptor, resolveWorkspaceView, } from './workspaceViews';
8
+ export { provideWorkspaceViewHost, useWorkspaceViewHost } from './workspaceViewHost';
9
+ export { defineWorkspaceView } from './workspaceViewContract';
10
+ export type { ResolvedWorkspaceView, WorkspaceViewRegistry } from './workspaceViews';
11
+ export type { WorkspaceViewDefinition, WorkspaceViewInput, WorkspaceViewPresentation, WorkspaceDrawerProfile, } from './workspaceViewContract';
12
+ export type { WorkspaceViewHost } from './workspaceViewHost';
6
13
  export { createMenuTab, findFirstNavigationMenu, getMenuNavigationTarget, isTabMenuTarget, isWindowMenuTarget, pageDescriptorFromUrl, pageDescriptorToUrl, resolvePageDescriptor, tabKeyOf, tryPageDescriptorFromUrl, } from './menuNavigation';
7
14
  export type { PageDescriptorResolveOptions, PageDescriptorUrlParseOptions } from './menuNavigation';
8
15
  export { buildWorkbenchMegaMenuModel, createWorkbenchMenuNodes, filterWorkbenchMenuNodes, findWorkbenchMenuNodeById, findWorkbenchMenuPath, firstDeepRootIdOf, } from './menuTreeModel';
@@ -0,0 +1,11 @@
1
+ export interface MenuPointerPosition {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export interface MenuPanelEdge {
6
+ left: number;
7
+ top: number;
8
+ bottom: number;
9
+ }
10
+ /** Keeps an active root menu open while the pointer crosses towards its panel. */
11
+ export declare function isPointerHeadingToMenuPanel(pointer: MenuPointerPosition, origin: MenuPointerPosition, panel: MenuPanelEdge): boolean;
@@ -0,0 +1 @@
1
+ export declare function compactMenuTopOf(topbarBottom: number, workbenchTop: number): number;
@@ -0,0 +1,20 @@
1
+ import type { Component } from 'vue';
2
+ import type { PageLayoutMode, RouteQueryValue } from '../web-contracts/index';
3
+ export type WorkspaceViewInput = object;
4
+ export type WorkspaceViewPresentation = 'drawer' | 'tab';
5
+ export type WorkspaceDrawerProfile = 'detail' | 'wide-work';
6
+ /** Stable, URL-restorable declaration shared by all workbench view hosts. */
7
+ export interface WorkspaceViewDefinition<TInput extends WorkspaceViewInput> {
8
+ type: string;
9
+ route: string;
10
+ moduleAlias: string;
11
+ component: Component;
12
+ layout?: PageLayoutMode;
13
+ drawerProfile?: WorkspaceDrawerProfile;
14
+ routeTitle?: string;
15
+ titleOf(input: TInput): string;
16
+ parentRouteQueryOf?(input: TInput): Record<string, RouteQueryValue>;
17
+ parse(query: Record<string, RouteQueryValue>): TInput | undefined;
18
+ presentations: readonly WorkspaceViewPresentation[];
19
+ }
20
+ export declare function defineWorkspaceView<TInput extends WorkspaceViewInput>(definition: WorkspaceViewDefinition<TInput>): WorkspaceViewDefinition<TInput>;
@@ -0,0 +1,8 @@
1
+ import type { WorkspaceViewPresentation } from './workspaceViewContract';
2
+ export interface WorkspaceViewHost {
3
+ presentation: WorkspaceViewPresentation;
4
+ setTitle(title: string): void;
5
+ dismiss(): void;
6
+ }
7
+ export declare function provideWorkspaceViewHost(host: WorkspaceViewHost): void;
8
+ export declare function useWorkspaceViewHost(): WorkspaceViewHost | undefined;
@@ -0,0 +1,21 @@
1
+ import type { BusinessRoutePageDescriptor } from '../web-contracts/index';
2
+ import type { WorkspaceViewDefinition, WorkspaceViewInput, WorkspaceViewPresentation } from './workspaceViewContract';
3
+ export { defineWorkspaceView, type WorkspaceDrawerProfile, type WorkspaceViewDefinition, type WorkspaceViewInput, type WorkspaceViewPresentation, } from './workspaceViewContract';
4
+ export interface ResolvedWorkspaceView {
5
+ view: WorkspaceViewDefinition<WorkspaceViewInput>;
6
+ input: WorkspaceViewInput;
7
+ presentation: WorkspaceViewPresentation;
8
+ }
9
+ export interface WorkspaceViewRegistry {
10
+ definitions: readonly WorkspaceViewDefinition<WorkspaceViewInput>[];
11
+ resolve(descriptor: BusinessRoutePageDescriptor): ResolvedWorkspaceView | undefined;
12
+ }
13
+ /**
14
+ * Replaces one application contribution set. Owners keep their registrations
15
+ * isolated while every workbench host resolves one shared global view catalog.
16
+ */
17
+ export declare function configureWorkspaceViewContributions(owner: string, definitions: readonly WorkspaceViewDefinition<WorkspaceViewInput>[]): void;
18
+ export declare function createWorkspaceViewRegistry(definitions: readonly WorkspaceViewDefinition<WorkspaceViewInput>[]): WorkspaceViewRegistry;
19
+ export declare function createWorkspaceViewDescriptor<TInput extends WorkspaceViewInput>(view: WorkspaceViewDefinition<TInput>, input: TInput, presentation?: WorkspaceViewPresentation, title?: string): BusinessRoutePageDescriptor;
20
+ export declare function dismissWorkspaceViewDescriptor(descriptor: BusinessRoutePageDescriptor, view: WorkspaceViewDefinition<WorkspaceViewInput>): BusinessRoutePageDescriptor;
21
+ export declare function resolveWorkspaceView(descriptor: BusinessRoutePageDescriptor): ResolvedWorkspaceView | undefined;
@@ -1,4 +1,4 @@
1
1
  export interface EmployeeDetailWorkspaceViewInput {
2
2
  recordId: string;
3
3
  }
4
- export declare const employeeDetailWorkspaceView: import("../platform-admin-runtime/workspaceViewContract").WorkspaceViewDefinition<EmployeeDetailWorkspaceViewInput>;
4
+ export declare const employeeDetailWorkspaceView: import("../platform-workbench/workspaceViewContract.ts").WorkspaceViewDefinition<EmployeeDetailWorkspaceViewInput>;