@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,13 @@
1
+ import type { WorkbenchStartupState } from '../web-contracts/index';
2
+ export type WorkbenchRouteWriteMode = 'push' | 'replace';
3
+ export interface WorkbenchRouteWrite {
4
+ url: string;
5
+ mode: WorkbenchRouteWriteMode;
6
+ }
7
+ /**
8
+ * Keeps browser history decisions at the workbench boundary: user navigation is
9
+ * navigable history, while state normalization only replaces the current entry.
10
+ */
11
+ export declare function workbenchRouteWriteFor(state: WorkbenchStartupState, currentUrl: string, mode: WorkbenchRouteWriteMode): WorkbenchRouteWrite | undefined;
12
+ /** A route written from the workbench already has matching in-memory tab state. */
13
+ export declare function shouldRestoreWorkbenchFromRoute(url: string, pendingWorkbenchNavigation: string | undefined, isSpecialRoute: boolean): boolean;
@@ -8,8 +8,16 @@
8
8
  import '../styles.css';
9
9
  export * from '../web-contracts/index';
10
10
  export * from '../web-core/index';
11
- export * from '../platform-components/index';
12
- export * from '../dynamic-page-runtime/index';
13
11
  export * from '../platform-workbench/index';
14
12
  export * from '../platform-admin-runtime/index';
13
+ export { configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, } from '../dynamic-page-runtime/modulePageEnhancements';
14
+ export { refreshModulePageList } from '../dynamic-page-runtime/modulePageListRefresh';
15
+ export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageEnhancement, ModulePageEnhancementTarget, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from '../dynamic-page-runtime/modulePageEnhancements';
16
+ export { UiButton, confirmAction, UiDataTable, UiInput, UiSidePanel, UiSwitch, UiTextArea, UiTree, } from '../vue-ui-antdv/index';
15
17
  export { default as PlatformAdminOutlet } from './PlatformAdminOutlet.vue';
18
+ export { default as DateTimeText } from '../platform-components/DateTimeText.vue';
19
+ export { default as FileSizeText } from '../platform-components/FileSizeText.vue';
20
+ export { default as FileTransferUploader } from '../platform-components/FileTransferUploader.vue';
21
+ export { presentPlatformError, presentPlatformInfo, presentPlatformMessage, presentPlatformSuccess, } from '../platform-components/platformErrorFeedback';
22
+ export { createBrowserFileTransferUpload, unwrapResponsePayload, } from '../platform-components/fileTransferUpload';
23
+ export type { FileTransferUploadAccess, FileTransferUploadReceipt, FileTransferUploadTask, } from '../platform-components/fileTransferUpload';
@@ -2,6 +2,13 @@ import type { DynamicModulePageDescriptor } from '../web-contracts/index';
2
2
  type __VLS_Props = {
3
3
  descriptor: DynamicModulePageDescriptor;
4
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>;
5
+ /**
6
+ * Public, state-preserving list refresh for business-owned triggers.
7
+ * RecordQueryListPanel observes reloadKey and only re-runs loadRecords().
8
+ */
9
+ declare function refreshList(): void;
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
11
+ refreshList: typeof refreshList;
12
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
13
  declare const _default: typeof __VLS_export;
7
14
  export default _default;
@@ -0,0 +1,12 @@
1
+ export interface DynamicModuleDetailRequestState {
2
+ activeRequestSequence: number;
3
+ requestSequence: number;
4
+ }
5
+ export interface DynamicModuleDetailMutationState {
6
+ hasRecord: boolean;
7
+ saving: boolean;
8
+ loading: boolean;
9
+ loadFailed: boolean;
10
+ }
11
+ export declare function shouldCommitDynamicModuleDetailRequest(state: DynamicModuleDetailRequestState): boolean;
12
+ export declare function canMutateDynamicModuleDetail(state: DynamicModuleDetailMutationState): boolean;
@@ -1,3 +1,8 @@
1
1
  export { default as DynamicModuleHost } from './DynamicModuleHost.vue';
2
2
  export { default as DynamicModulePage } from './DynamicModulePage.vue';
3
3
  export { customerDescriptor } from './mockDescriptor';
4
+ export { configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, resolveModulePageEnhancement, } from './modulePageEnhancements';
5
+ export { provideModulePageNavigation, useModulePageNavigation } from './modulePageNavigation';
6
+ export { createModulePageListRefreshRegistry, modulePageListRefreshRegistry, refreshModulePageList, } from './modulePageListRefresh';
7
+ export type { ModulePageListRefreshRegistry } from './modulePageListRefresh';
8
+ export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageEnhancement, ModulePageEnhancementRegistry, ModulePageEnhancementTarget, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from './modulePageEnhancements';
@@ -0,0 +1,126 @@
1
+ import type { Component } from 'vue';
2
+ import type { PageLayoutMode, RouteQueryValue } from '../web-contracts/index';
3
+ import type { ModuleContext } from '../web-core/index';
4
+ import type { RecordActionItem, RecordQueryListColumn, QueryListRecord } from '../platform-components/index';
5
+ /**
6
+ * Frontend-owned, constrained composition for a descriptor-driven module page.
7
+ *
8
+ * This deliberately lives in application source instead of the backend UI DSL:
9
+ * the descriptor remains the source of data and platform facts, while a business
10
+ * application may contribute small Vue capabilities at named platform regions.
11
+ */
12
+ export interface ModulePageEnhancement {
13
+ id: string;
14
+ target: ModulePageEnhancementTarget;
15
+ list?: ModuleListEnhancement;
16
+ detail?: ModuleDetailEnhancement;
17
+ workspaceViews?: ModulePageWorkspaceView[];
18
+ }
19
+ export interface ModulePageEnhancementTarget {
20
+ moduleAlias: string;
21
+ /** Omit to apply to every list view of the module. */
22
+ viewCode?: string;
23
+ }
24
+ export interface ModuleListEnhancement {
25
+ actions?: ModulePageActionContribution[];
26
+ columns?: ModulePageColumnContribution[];
27
+ /** Replaces the visual renderer of a descriptor-owned column without adding a duplicate column. */
28
+ cellComponents?: ModulePageCellComponentContribution[];
29
+ /** Width of the list's fixed operation column; defaults to the platform compact width. */
30
+ actionColumnWidth?: string | number;
31
+ rowActions?: ModulePageRecordActionContribution[];
32
+ batchActions?: ModulePageBatchActionContribution[];
33
+ }
34
+ /** Actions appended to the standard record-detail operation area in view mode. */
35
+ export interface ModuleDetailEnhancement {
36
+ actions?: ModulePageRecordActionContribution[];
37
+ sections?: ModulePageDetailSection[];
38
+ }
39
+ export interface ModulePageActionContribution extends RecordActionItem {
40
+ key: string;
41
+ run(context: ModulePageActionContext): void | Promise<void>;
42
+ }
43
+ export interface ModulePageRecordActionContribution extends RecordActionItem {
44
+ key: string;
45
+ /** Resolves record-specific visibility or enabled state without letting business code own the table shell. */
46
+ state?(record: QueryListRecord): Pick<RecordActionItem, 'visible' | 'disabled'> | undefined;
47
+ run(context: ModulePageRecordActionContext): void | Promise<void>;
48
+ }
49
+ export interface ModulePageBatchActionContribution extends RecordActionItem {
50
+ key: string;
51
+ run(context: ModulePageBatchActionContext): void | Promise<void>;
52
+ }
53
+ export interface ModulePageDetailSection {
54
+ key: string;
55
+ title: string;
56
+ component: Component;
57
+ }
58
+ export interface ModulePageColumnContribution extends RecordQueryListColumn {
59
+ key: string;
60
+ /** Insert adjacent to a descriptor column. Omit to append after descriptor columns. */
61
+ before?: string;
62
+ after?: string;
63
+ /** A normal Vue component, constrained to one table cell by the platform table shell. */
64
+ cell: Component;
65
+ }
66
+ export interface ModulePageCellComponentContribution {
67
+ key: string;
68
+ cell: Component;
69
+ }
70
+ export interface ModulePageDrawer {
71
+ title: string;
72
+ width?: number | string;
73
+ /** The component receives only the documented ModulePageDrawerContext prop. */
74
+ component: Component;
75
+ }
76
+ export type ModulePageWorkspaceViewInput = Record<string, RouteQueryValue>;
77
+ /** A business-owned view with stable, serializable identity. */
78
+ export interface ModulePageWorkspaceView<TInput extends ModulePageWorkspaceViewInput = ModulePageWorkspaceViewInput> {
79
+ type: string;
80
+ moduleAlias: string;
81
+ /** Optional business route used for restoration; platform generates a stable workspace route by default. */
82
+ route?: string;
83
+ component: Component;
84
+ titleOf(input: TInput): string;
85
+ parse(query: Record<string, RouteQueryValue>): TInput | undefined;
86
+ layout?: PageLayoutMode;
87
+ }
88
+ export interface ModulePageDrawerContext {
89
+ module: ModuleContext<QueryListRecord>;
90
+ record?: QueryListRecord;
91
+ /** Reloads only the current list query and preserves its query and editor state. */
92
+ refreshList(): void;
93
+ close(): void;
94
+ reload(): void;
95
+ }
96
+ export interface ModulePageActionContext {
97
+ module: ModuleContext<QueryListRecord>;
98
+ /** Reloads only the current list query and preserves its query and editor state. */
99
+ refreshList(): void;
100
+ openDrawer(drawer: ModulePageDrawer): void;
101
+ openWorkspaceTab<TInput extends ModulePageWorkspaceViewInput>(view: ModulePageWorkspaceView<TInput>, input: TInput): void;
102
+ reload(): void;
103
+ }
104
+ export interface ModulePageRecordActionContext extends ModulePageActionContext {
105
+ record: QueryListRecord;
106
+ }
107
+ export interface ModulePageBatchActionContext extends ModulePageActionContext {
108
+ records: QueryListRecord[];
109
+ clearSelection(): void;
110
+ }
111
+ export interface ModulePageDetailSectionContext {
112
+ module: ModuleContext<QueryListRecord>;
113
+ record: QueryListRecord;
114
+ /** Reloads only the current list query and preserves its query and editor state. */
115
+ refreshList(): void;
116
+ reload(): void;
117
+ }
118
+ export interface ModulePageEnhancementRegistry {
119
+ resolve(moduleAlias: string, viewCode?: string): ModulePageEnhancement | undefined;
120
+ workspaceViews(): readonly ModulePageWorkspaceView[];
121
+ }
122
+ export declare function createModulePageEnhancementRegistry(enhancements: readonly ModulePageEnhancement[]): ModulePageEnhancementRegistry;
123
+ /** Configure once from the consuming application's composition root. */
124
+ export declare function configureModulePageEnhancements(enhancements: readonly ModulePageEnhancement[]): void;
125
+ export declare function resolveModulePageEnhancement(moduleAlias: string, viewCode?: string): ModulePageEnhancement | undefined;
126
+ export declare function modulePageWorkspaceViews(): readonly ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Application-local registry for business-owned refresh triggers.
3
+ * It deliberately knows nothing about realtime transports or business events.
4
+ */
5
+ export interface ModulePageListRefreshRegistry {
6
+ register(moduleAlias: string, refresh: () => void): () => void;
7
+ refresh(moduleAlias: string): boolean;
8
+ }
9
+ export declare function createModulePageListRefreshRegistry(): ModulePageListRefreshRegistry;
10
+ /** Shared application facade for business-owned triggers. */
11
+ export declare const modulePageListRefreshRegistry: ModulePageListRefreshRegistry;
12
+ export declare function refreshModulePageList(moduleAlias: string): boolean;
@@ -0,0 +1,11 @@
1
+ import type { PageDescriptor } from '../web-contracts/index';
2
+ import type { ModulePageWorkspaceView, ModulePageWorkspaceViewInput } from './modulePageEnhancements';
3
+ /** Workbench bridge owned by the host, so module runtime does not depend on a concrete Workbench implementation. */
4
+ export interface ModulePageNavigation {
5
+ openPage(descriptor: PageDescriptor): {
6
+ created: boolean;
7
+ };
8
+ openWorkspaceTab<TInput extends ModulePageWorkspaceViewInput>(view: ModulePageWorkspaceView<TInput>, input: TInput): void;
9
+ }
10
+ export declare function provideModulePageNavigation(navigation: ModulePageNavigation | undefined): void;
11
+ export declare function useModulePageNavigation(): ModulePageNavigation | undefined;
@@ -1,4 +1,5 @@
1
1
  import type { BusinessRoutePageDescriptor } from '../web-contracts/index';
2
+ import './workspaceViews';
2
3
  type __VLS_Props = {
3
4
  descriptor: BusinessRoutePageDescriptor;
4
5
  };
@@ -1,3 +1,3 @@
1
1
  export declare function createBackendHttpClient(options?: {
2
2
  withAuth?: boolean;
3
- }): import("../web-core/index").HttpClient;
3
+ }): import("../web-core/index").StreamingHttpClient;
@@ -10,3 +10,6 @@ export { isPlatformAdminRoutePage, platformAdminModuleRoutes, platformAdminRoute
10
10
  export type { PlatformAdminRoute } from './platformAdminRoutes';
11
11
  export { provideCurrentUserContext, useCurrentUserContext } from './currentUserContext';
12
12
  export { createBackendHttpClient } from './backendHttp';
13
+ export { connectAppRealtime, disconnectAppRealtime, subscribeAppBusinessEvents, subscribeAppDataChanges, subscribeAppModuleDataChanges, } from './realtime';
14
+ export type { AppRealtimeConnection, AppRealtimeOptions } from './realtime';
15
+ export { clearAuthToken, effectiveAuthToken, saveAuthSessionId, saveAuthToken, storedAuthSessionId, storedAuthToken, } from './authSession';
@@ -1,16 +1,20 @@
1
- import { type RealtimeClient, type RealtimeConnectionState } from '../web-core/index';
1
+ import { type RealtimeConnectionState } from '../web-core/index';
2
2
  import type { WebBusinessRealtimeEvent, WebCommittedChangeSet, WebUserNotification } from '../web-contracts/index';
3
3
  export declare const appDataChangeDispatcher: import("../web-core/index").DataChangeDispatcher;
4
4
  export interface AppRealtimeOptions {
5
+ /** Backend origin supplied by the consuming App at runtime. */
6
+ baseUrl?: string;
7
+ /** Current authentication token supplied by the consuming App at runtime. */
8
+ token?: string;
5
9
  onUnauthorized?: () => void;
6
10
  onUserNotification?: (notification: WebUserNotification) => void;
7
11
  onStateChange?: (state: RealtimeConnectionState) => void;
8
12
  }
9
- export declare function createAppRealtimeClient(options?: AppRealtimeOptions): RealtimeClient;
10
- export declare function connectAppRealtime(options?: AppRealtimeOptions): {
11
- realtime: RealtimeClient;
13
+ export interface AppRealtimeConnection {
12
14
  disconnect(): Promise<void>;
13
- };
15
+ }
16
+ export declare function connectAppRealtime(options?: AppRealtimeOptions): AppRealtimeConnection;
17
+ export declare function disconnectAppRealtime(): Promise<void>;
14
18
  export declare function subscribeAppModuleDataChanges(moduleAlias: string): {
15
19
  unsubscribe(): void;
16
20
  };
@@ -1,36 +1 @@
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
- /**
6
- * Semantic drawer capacities owned by the workbench, rather than by a
7
- * particular business page. A work view declares the amount of workspace it
8
- * needs; the host decides the actual pixel value and narrow-screen fallback.
9
- */
10
- export type WorkspaceDrawerProfile = 'detail' | 'wide-work';
11
- /** Stable declaration shared by all workbench view hosts. */
12
- export interface WorkspaceViewDefinition<TInput extends WorkspaceViewInput> {
13
- type: string;
14
- route: string;
15
- moduleAlias: string;
16
- component: Component;
17
- /** Vertical layout contract used when the work view is opened in a tab. */
18
- layout?: PageLayoutMode;
19
- /** Drawer capacity used when this view is opened as a drawer. */
20
- drawerProfile?: WorkspaceDrawerProfile;
21
- /** Title restored when a URL-addressable drawer returns to its ordinary route. */
22
- routeTitle?: string;
23
- titleOf(input: TInput): string;
24
- /**
25
- * Route context that remains after a drawer is closed.
26
- *
27
- * A work view may need parent-page context (for example a role ownership
28
- * scope) both to identify the view and to return the user to the same
29
- * ordinary route. This keeps that context distinct from the transient
30
- * work-view presentation and record identity.
31
- */
32
- parentRouteQueryOf?(input: TInput): Record<string, RouteQueryValue>;
33
- parse(query: Record<string, RouteQueryValue>): TInput | undefined;
34
- presentations: readonly WorkspaceViewPresentation[];
35
- }
36
- export declare function defineWorkspaceView<TInput extends WorkspaceViewInput>(definition: WorkspaceViewDefinition<TInput>): WorkspaceViewDefinition<TInput>;
1
+ export { defineWorkspaceView, type WorkspaceDrawerProfile, type WorkspaceViewDefinition, type WorkspaceViewInput, type WorkspaceViewPresentation, } from '../platform-workbench/index';
@@ -1,10 +1,2 @@
1
- import type { WorkspaceViewPresentation } from './workspaceViewContract';
2
- /** Runtime host facts shared with a view without exposing workbench navigation to business code. */
3
- export interface WorkspaceViewHost {
4
- presentation: WorkspaceViewPresentation;
5
- /** Updates the host tab label without leaking workbench navigation into business views. */
6
- setTitle(title: string): void;
7
- dismiss(): void;
8
- }
9
- export declare function provideWorkspaceViewHost(host: WorkspaceViewHost): void;
10
- export declare function useWorkspaceViewHost(): WorkspaceViewHost | undefined;
1
+ export { provideWorkspaceViewHost, useWorkspaceViewHost } from '../platform-workbench/index';
2
+ export type { WorkspaceViewHost } from '../platform-workbench/index';
@@ -1,18 +1,2 @@
1
- import type { BusinessRoutePageDescriptor } from '../web-contracts/index';
2
- import type { WorkspaceViewDefinition, WorkspaceViewInput, WorkspaceViewPresentation } from './workspaceViewContract';
1
+ export { createWorkspaceViewDescriptor, createWorkspaceViewRegistry, dismissWorkspaceViewDescriptor, resolveWorkspaceView, type ResolvedWorkspaceView, type WorkspaceViewRegistry, } from '../platform-workbench/index';
3
2
  export { defineWorkspaceView, 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
- export declare function createWorkspaceViewRegistry(definitions: readonly WorkspaceViewDefinition<WorkspaceViewInput>[]): WorkspaceViewRegistry;
14
- export declare const workspaceViewRegistry: WorkspaceViewRegistry;
15
- export declare function createWorkspaceViewDescriptor<TInput extends WorkspaceViewInput>(view: WorkspaceViewDefinition<TInput>, input: TInput, presentation?: WorkspaceViewPresentation, title?: string): BusinessRoutePageDescriptor;
16
- /** Returns the ordinary route descriptor after a URL-restored drawer is dismissed. */
17
- export declare function dismissWorkspaceViewDescriptor(descriptor: BusinessRoutePageDescriptor, view: WorkspaceViewDefinition<WorkspaceViewInput>): BusinessRoutePageDescriptor;
18
- export declare function resolveWorkspaceView(descriptor: BusinessRoutePageDescriptor): ResolvedWorkspaceView | undefined;
@@ -22,13 +22,13 @@ type __VLS_Props = {
22
22
  };
23
23
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
24
  select: (record: CrudRecordListBase) => any;
25
- action: (action: UiRecordInlineAction, record: CrudRecordListBase) => any;
25
+ action: (action: import("../web-contracts/index.ts").RecordInlineAction, record: CrudRecordListBase) => any;
26
26
  loaded: (records: CrudRecordListBase[]) => any;
27
27
  restored: () => any;
28
28
  recycleBinSummary: (total: number | undefined) => any;
29
29
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
30
30
  onSelect?: ((record: CrudRecordListBase) => any) | undefined;
31
- onAction?: ((action: UiRecordInlineAction, record: CrudRecordListBase) => any) | undefined;
31
+ onAction?: ((action: import("../web-contracts/index.ts").RecordInlineAction, record: CrudRecordListBase) => any) | undefined;
32
32
  onLoaded?: ((records: CrudRecordListBase[]) => any) | undefined;
33
33
  onRestored?: (() => any) | undefined;
34
34
  onRecycleBinSummary?: ((total: number | undefined) => any) | undefined;
@@ -6,8 +6,8 @@ type __VLS_Props = {
6
6
  timeZone?: string;
7
7
  };
8
8
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
- value: string | number | Date | null;
10
9
  emptyText: string;
10
+ value: string | number | Date | null;
11
11
  precision: PlatformDateTimePrecision;
12
12
  timeZone: string;
13
13
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,10 @@
1
+ type __VLS_Props = {
2
+ value?: number | string | bigint | null;
3
+ emptyText?: string;
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<{}>, {
6
+ emptyText: string;
7
+ value: number | string | bigint | null;
8
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -0,0 +1,51 @@
1
+ import { type FileTransferUploadAccess, type FileTransferUploadReceipt } from './fileTransferUpload';
2
+ type __VLS_Props = {
3
+ /** Business API callback: authorize this exact file and return a short-lived upload target. */
4
+ requestUploadAccess: (file: File) => Promise<FileTransferUploadAccess>;
5
+ /** Optional business callback after upload. Standard file-reference fields leave this undefined. */
6
+ confirmUpload?: (receipt: FileTransferUploadReceipt) => Promise<unknown>;
7
+ accept?: string;
8
+ allowedMediaTypes?: string[];
9
+ maxFileSizeBytes?: number;
10
+ multiple?: boolean;
11
+ disabled?: boolean;
12
+ maxFiles?: number;
13
+ /** Files already bound by the surrounding record and therefore occupying this field's capacity. */
14
+ existingFileCount?: number;
15
+ autoUpload?: boolean;
16
+ uploadText?: string;
17
+ disabledHint?: string;
18
+ completionHint?: string;
19
+ /** Completed items may be retained when the surrounding form owns deletion semantics. */
20
+ allowCompletedRemoval?: boolean;
21
+ /** Browser-owned uploaded files removed from an unsaved enclosing form. */
22
+ releasedCompletedFileIds?: readonly string[];
23
+ completedFileId?: (receipt: FileTransferUploadReceipt) => string | undefined;
24
+ };
25
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
26
+ failed: (file: File, error: unknown) => any;
27
+ completed: (receipt: FileTransferUploadReceipt, result: unknown) => any;
28
+ changed: (files: readonly File[]) => any;
29
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
30
+ onFailed?: ((file: File, error: unknown) => any) | undefined;
31
+ onCompleted?: ((receipt: FileTransferUploadReceipt, result: unknown) => any) | undefined;
32
+ onChanged?: ((files: readonly File[]) => any) | undefined;
33
+ }>, {
34
+ disabled: boolean;
35
+ multiple: boolean;
36
+ confirmUpload: (receipt: FileTransferUploadReceipt) => Promise<unknown>;
37
+ accept: string;
38
+ allowedMediaTypes: string[];
39
+ maxFileSizeBytes: number;
40
+ maxFiles: number;
41
+ existingFileCount: number;
42
+ autoUpload: boolean;
43
+ uploadText: string;
44
+ disabledHint: string;
45
+ completionHint: string;
46
+ allowCompletedRemoval: boolean;
47
+ releasedCompletedFileIds: readonly string[];
48
+ completedFileId: (receipt: FileTransferUploadReceipt) => string | undefined;
49
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
50
+ declare const _default: typeof __VLS_export;
51
+ export default _default;
@@ -0,0 +1,16 @@
1
+ type __VLS_Props = {
2
+ title: string;
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: 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>;
9
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
12
+ type __VLS_WithSlots<T, S> = T & {
13
+ new (): {
14
+ $slots: S;
15
+ };
16
+ };
@@ -11,9 +11,9 @@ type __VLS_Props = {
11
11
  emptyText?: string;
12
12
  };
13
13
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ emptyText: string;
14
15
  fieldNames: string[];
15
16
  fields: Map<string, RecordFormFieldDescriptor>;
16
- emptyText: string;
17
17
  excludeFieldNames: string[];
18
18
  fallback: Record<string, RecordFormFieldFallback>;
19
19
  pickerConfigs: Record<string, RecordFormFieldPickerConfig>;
@@ -0,0 +1,19 @@
1
+ import type { ModuleContext } from '../web-core/index';
2
+ import type { ResolvedFileReferenceFieldDescriptor } from '../web-contracts/index';
3
+ type __VLS_Props = {
4
+ value: unknown;
5
+ /** The surrounding draft is business-owned input to its upload-ticket policy. */
6
+ record: Record<string, unknown>;
7
+ context: ModuleContext<unknown>;
8
+ definition: ResolvedFileReferenceFieldDescriptor;
9
+ formSessionKey?: string | number;
10
+ disabled?: boolean;
11
+ disabledHint?: string;
12
+ };
13
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ "update:value": (value: string | string[] | undefined) => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
16
+ "onUpdate:value"?: ((value: string | string[] | undefined) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -8,6 +8,8 @@ type __VLS_Props = {
8
8
  fallback?: Record<string, RecordFormFieldFallback>;
9
9
  pickerConfigs?: Record<string, RecordFormFieldPickerConfig>;
10
10
  optionContext?: ModuleContext<unknown>;
11
+ fileTransferContext?: ModuleContext<unknown>;
12
+ formSessionKey?: string | number;
11
13
  disabled?: boolean;
12
14
  disabledOf?: (fieldName: string, field: RecordFormFieldState) => boolean;
13
15
  placeholderOf?: (fieldName: string, field: RecordFormFieldState) => string | undefined;
@@ -23,7 +25,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
23
25
  excludeFieldNames: string[];
24
26
  fallback: Record<string, RecordFormFieldFallback>;
25
27
  pickerConfigs: Record<string, RecordFormFieldPickerConfig>;
28
+ formSessionKey: string | number;
26
29
  optionContext: ModuleContext<unknown>;
30
+ fileTransferContext: ModuleContext<unknown>;
27
31
  disabledOf: (fieldName: string, field: RecordFormFieldState) => boolean;
28
32
  placeholderOf: (fieldName: string, field: RecordFormFieldState) => string | undefined;
29
33
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -22,10 +22,10 @@ type __VLS_Props = {
22
22
  };
23
23
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
24
  select: (record: RecordListExplorerRecord) => any;
25
- action: (action: UiRecordInlineAction, record: RecordListExplorerRecord) => any;
25
+ action: (action: import("../web-contracts").RecordInlineAction, record: RecordListExplorerRecord) => any;
26
26
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
27
27
  onSelect?: ((record: RecordListExplorerRecord) => any) | undefined;
28
- onAction?: ((action: UiRecordInlineAction, record: RecordListExplorerRecord) => any) | undefined;
28
+ onAction?: ((action: import("../web-contracts").RecordInlineAction, record: RecordListExplorerRecord) => any) | undefined;
29
29
  }>, {
30
30
  filterOption: (record: RecordListExplorerRecord, normalizedKeyword: string) => boolean;
31
31
  emptyDescription: string;
@@ -19,6 +19,11 @@ type __VLS_Props = {
19
19
  errorMessage?: string;
20
20
  retryTitle?: string;
21
21
  externallyChanged?: boolean;
22
+ editAvailable?: boolean;
23
+ saveAvailable?: boolean;
24
+ saving?: boolean;
25
+ editTitle?: string;
26
+ saveTitle?: string;
22
27
  externalChangeTitle?: string;
23
28
  externalChangeMessage?: string;
24
29
  externalChangeReloadTitle?: string;
@@ -31,16 +36,21 @@ type __VLS_Slots = {
31
36
  externalChangeNotice(): unknown;
32
37
  view(): unknown;
33
38
  form(): unknown;
39
+ viewOperation(): unknown;
34
40
  default(): unknown;
35
41
  operation(): unknown;
36
42
  };
37
43
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
38
44
  close: () => any;
45
+ edit: () => any;
46
+ save: () => any;
39
47
  retry: () => any;
40
48
  reloadExternalChange: () => any;
41
49
  dismissExternalChange: () => any;
42
50
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
43
51
  onClose?: (() => any) | undefined;
52
+ onEdit?: (() => any) | undefined;
53
+ onSave?: (() => any) | undefined;
44
54
  onRetry?: (() => any) | undefined;
45
55
  onReloadExternalChange?: (() => any) | undefined;
46
56
  onDismissExternalChange?: (() => any) | undefined;
@@ -59,6 +69,11 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
59
69
  errorMessage: string;
60
70
  retryTitle: string;
61
71
  externallyChanged: boolean;
72
+ editAvailable: boolean;
73
+ saveAvailable: boolean;
74
+ saving: boolean;
75
+ editTitle: string;
76
+ saveTitle: string;
62
77
  externalChangeTitle: string;
63
78
  externalChangeMessage: string;
64
79
  externalChangeReloadTitle: string;
@@ -0,0 +1,33 @@
1
+ import { type ModuleContext } from '../web-core/index';
2
+ import type { PickerConstraint, RecordPickerRecord } from './recordPickerConstraints';
3
+ type __VLS_Props = {
4
+ context: ModuleContext<RecordPickerRecord>;
5
+ value?: string[];
6
+ reloadKey?: number;
7
+ mode?: 'list' | 'tree';
8
+ placeholder?: string;
9
+ disabled?: boolean;
10
+ allowClear?: boolean;
11
+ constraints?: PickerConstraint<RecordPickerRecord>[];
12
+ titleOf?: (record: RecordPickerRecord) => string;
13
+ descriptionOf?: (record: RecordPickerRecord) => string | undefined;
14
+ filterOption?: (record: RecordPickerRecord, keyword: string) => boolean;
15
+ };
16
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ "update:value": (value: string[]) => any;
18
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ "onUpdate:value"?: ((value: string[]) => any) | undefined;
20
+ }>, {
21
+ disabled: boolean;
22
+ value: string[];
23
+ placeholder: string;
24
+ allowClear: boolean;
25
+ mode: "list" | "tree";
26
+ filterOption: (record: RecordPickerRecord, keyword: string) => boolean;
27
+ titleOf: (record: RecordPickerRecord) => string;
28
+ reloadKey: number;
29
+ constraints: PickerConstraint<RecordPickerRecord>[];
30
+ descriptionOf: (record: RecordPickerRecord) => string | undefined;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;