@ximatai/muyun-web-app 0.26.5 → 0.26.7
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.
- package/dist/{EmployeeDetailWorkspaceView-rm9ujeiQ.js → EmployeeDetailWorkspaceView-DYJLlkSz.js} +1 -1
- package/dist/EmployeeManagementView-taxWUa7g.js +1778 -0
- package/dist/{MetadataOrchestrationView-DaPNQML7.js → MetadataOrchestrationView-B-CPudJl.js} +151 -151
- package/dist/ModuleActionManagementView-CmVj0e0C.js +597 -0
- package/dist/{RoleAuthorizationView-qQvn7M75.js → RoleAuthorizationView-q_6CsBYq.js} +194 -194
- package/dist/{RoleDetailWorkspaceView-C-vaKeZM.js → RoleDetailWorkspaceView-DmJlJgAj.js} +1 -1
- package/dist/{RoleManagementView-C3nxfub2.js → RoleManagementView-HCa9rH0f.js} +466 -466
- package/dist/{SystemUserDetailWorkspaceView-FIbfff00.js → SystemUserDetailWorkspaceView-U6Ij0US1.js} +1 -1
- package/dist/SystemUserManagementView-C1CkKivH.js +758 -0
- package/dist/{UserDetailWorkspaceView-M--ndn6x.js → UserDetailWorkspaceView-OPYvD6mH.js} +1 -1
- package/dist/{UserManagementView-MSXf4fno.js → UserManagementView-gbCL9SnC.js} +226 -226
- package/dist/index.css +1 -1
- package/dist/index.js +3309 -2288
- package/dist/pageRealtime-CzJlr9hs.js +225 -0
- package/dist/{platform-components-_3KlZZf5.js → platform-components-DKKWbNrz.js} +4196 -1790
- package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +33 -0
- package/dist/types/app/LoginView.vue.d.ts +4 -1
- package/dist/types/app/ThemeSkinPreferencesDialog.vue.d.ts +20 -0
- package/dist/types/app/lockedTabPreference.d.ts +6 -0
- package/dist/types/app/themeSkinPreference.d.ts +11 -0
- package/dist/types/app/workbenchRouteSync.d.ts +13 -0
- package/dist/types/app/workbenchStartup.d.ts +14 -1
- package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +43 -0
- package/dist/types/consumer/index.d.ts +24 -1
- package/dist/types/consumer/userPreferencePersistence.d.ts +7 -0
- package/dist/types/consumer/workbenchNavigation.d.ts +8 -0
- package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +8 -1
- package/dist/types/dynamic-page-runtime/index.d.ts +5 -0
- package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +144 -0
- package/dist/types/dynamic-page-runtime/modulePageListRefresh.d.ts +12 -0
- package/dist/types/dynamic-page-runtime/modulePageNavigation.d.ts +11 -0
- package/dist/types/platform-admin-runtime/PlatformAdminOutlet.vue.d.ts +1 -0
- package/dist/types/platform-admin-runtime/backendHttp.d.ts +1 -1
- package/dist/types/platform-admin-runtime/index.d.ts +3 -0
- package/dist/types/platform-admin-runtime/realtime.d.ts +9 -5
- package/dist/types/platform-admin-runtime/workspaceViewContract.d.ts +1 -36
- package/dist/types/platform-admin-runtime/workspaceViewHost.d.ts +2 -10
- package/dist/types/platform-admin-runtime/workspaceViews.d.ts +1 -17
- package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +2 -2
- package/dist/types/platform-components/DateTimeText.vue.d.ts +1 -1
- package/dist/types/platform-components/FileSizeText.vue.d.ts +10 -0
- package/dist/types/platform-components/FileTransferUploader.vue.d.ts +70 -0
- package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +30 -0
- package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +16 -0
- package/dist/types/platform-components/RecordDetailFields.vue.d.ts +1 -1
- package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +8 -6
- package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +5 -5
- package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +6 -6
- package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +29 -0
- package/dist/types/platform-components/RecordFormFields.vue.d.ts +8 -0
- package/dist/types/platform-components/RecordListExplorer.vue.d.ts +2 -2
- package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +1 -0
- package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +33 -0
- package/dist/types/platform-components/RecordPanelButton.vue.d.ts +33 -0
- package/dist/types/platform-components/RecordPanelState.vue.d.ts +11 -0
- package/dist/types/platform-components/RecordPicker.vue.d.ts +1 -1
- package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +47 -2
- package/dist/types/platform-components/RecordStatusTag.vue.d.ts +6 -1
- package/dist/types/platform-components/RecordTagList.vue.d.ts +7 -0
- package/dist/types/platform-components/SingleImageFileReferenceField.vue.d.ts +23 -0
- package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +2 -2
- package/dist/types/platform-components/fileReferenceTransfer.d.ts +25 -0
- package/dist/types/platform-components/fileTransferUpload.d.ts +43 -0
- package/dist/types/platform-components/index.d.ts +15 -1
- package/dist/types/platform-components/platformErrorFeedback.d.ts +4 -0
- package/dist/types/platform-components/platformFileSize.d.ts +10 -0
- package/dist/types/platform-components/recordActionBarModel.d.ts +12 -1
- package/dist/types/platform-components/recordFormFieldModel.d.ts +24 -3
- package/dist/types/platform-components/scopedTreeModuleContext.d.ts +1 -1
- package/dist/types/platform-components/staticCrudManagementState.d.ts +1 -1
- package/dist/types/platform-workbench/Workbench.vue.d.ts +12 -2
- package/dist/types/platform-workbench/WorkbenchBrandControl.vue.d.ts +41 -0
- package/dist/types/platform-workbench/WorkbenchMenu.vue.d.ts +39 -1
- package/dist/types/platform-workbench/WorkbenchMenuTree.vue.d.ts +2 -0
- package/dist/types/platform-workbench/WorkbenchSidebarMenuEntry.vue.d.ts +19 -0
- package/dist/types/platform-workbench/WorkspaceViewOutlet.vue.d.ts +7 -0
- package/dist/types/platform-workbench/index.d.ts +7 -0
- package/dist/types/platform-workbench/menuHoverClickIntent.d.ts +10 -0
- package/dist/types/platform-workbench/menuPointerAim.d.ts +11 -0
- package/dist/types/platform-workbench/workbenchLayout.d.ts +4 -0
- package/dist/types/platform-workbench/workspaceViewContract.d.ts +20 -0
- package/dist/types/platform-workbench/workspaceViewHost.d.ts +8 -0
- package/dist/types/platform-workbench/workspaceViews.d.ts +21 -0
- package/dist/types/views/applicationManagementState.d.ts +1 -1
- package/dist/types/views/employeeDetailWorkspaceView.d.ts +1 -1
- package/dist/types/views/fieldSpecManagementState.d.ts +1 -1
- package/dist/types/views/fieldUiControlManagementState.d.ts +1 -1
- package/dist/types/views/metadataOrchestrationWorkspaceView.d.ts +1 -1
- package/dist/types/views/moduleActionManagementWorkspaceView.d.ts +1 -1
- package/dist/types/views/roleAuthorizationWorkspaceView.d.ts +1 -1
- package/dist/types/views/roleDetailWorkspaceView.d.ts +1 -1
- package/dist/types/views/systemUserDetailWorkspaceView.d.ts +1 -1
- package/dist/types/views/tenantManagementState.d.ts +11 -1
- package/dist/types/views/userDetailWorkspaceView.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiColorPicker.vue.d.ts +14 -0
- package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +3 -3
- package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiTabs.vue.d.ts +6 -0
- package/dist/types/vue-ui-antdv/components/UiTagList.vue.d.ts +17 -0
- package/dist/types/vue-ui-antdv/components/UiThemeProvider.vue.d.ts +21 -0
- package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +3 -3
- package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/index.d.ts +6 -0
- package/dist/types/vue-ui-antdv/theme.d.ts +58 -0
- package/dist/types/vue-ui-antdv/themeGlobalScope.d.ts +2 -0
- package/dist/types/vue-ui-antdv/types.d.ts +4 -9
- package/dist/types/web-contracts/index.d.ts +168 -0
- package/dist/types/web-core/clients.d.ts +14 -1
- package/dist/types/web-core/http.d.ts +12 -1
- package/dist/types/web-core/index.d.ts +2 -0
- package/dist/types/web-core/mock.d.ts +3 -1
- package/dist/types/web-core/module/staticModuleClient.d.ts +1 -0
- package/dist/types/web-core/userPreferences.d.ts +24 -0
- package/dist/{useUserSessionRows-iAqK_cUy.js → useUserSessionRows-CBHEzRFQ.js} +2 -2
- package/dist/workspaceViewSessions-DkB9myrq.js +3252 -0
- package/package.json +1 -1
- package/dist/EmployeeManagementView-DyYMWQ64.js +0 -1706
- package/dist/ModuleActionManagementView-BFoPGqzC.js +0 -597
- package/dist/SystemUserManagementView-m6vwJDxI.js +0 -761
- package/dist/pageRealtime-4LXXvVW7.js +0 -140
- package/dist/workspaceViewSessions-DW0wbyQ_.js +0 -1448
|
@@ -13,6 +13,11 @@ export declare function createTenantManagementState(tenantContext: ModuleContext
|
|
|
13
13
|
selected: import("vue").Ref<Tenant | undefined, Tenant | undefined>;
|
|
14
14
|
draft: import("vue").Ref<{
|
|
15
15
|
alias?: string | undefined;
|
|
16
|
+
lightLogoAssetId?: string | undefined;
|
|
17
|
+
darkLogoAssetId?: string | undefined;
|
|
18
|
+
workbenchBrandMode?: "logoOnly" | "logoWithTitle" | undefined;
|
|
19
|
+
workbenchTitle?: string | undefined;
|
|
20
|
+
workbenchSubtitle?: string | undefined;
|
|
16
21
|
enabled?: boolean | undefined;
|
|
17
22
|
sortOrder?: number | undefined;
|
|
18
23
|
title?: string | undefined;
|
|
@@ -27,6 +32,11 @@ export declare function createTenantManagementState(tenantContext: ModuleContext
|
|
|
27
32
|
updatedAt?: string | undefined;
|
|
28
33
|
}, Tenant | {
|
|
29
34
|
alias?: string | undefined;
|
|
35
|
+
lightLogoAssetId?: string | undefined;
|
|
36
|
+
darkLogoAssetId?: string | undefined;
|
|
37
|
+
workbenchBrandMode?: "logoOnly" | "logoWithTitle" | undefined;
|
|
38
|
+
workbenchTitle?: string | undefined;
|
|
39
|
+
workbenchSubtitle?: string | undefined;
|
|
30
40
|
enabled?: boolean | undefined;
|
|
31
41
|
sortOrder?: number | undefined;
|
|
32
42
|
title?: string | undefined;
|
|
@@ -57,7 +67,7 @@ export declare function createTenantManagementState(tenantContext: ModuleContext
|
|
|
57
67
|
startCreate: () => void;
|
|
58
68
|
startEdit: () => void;
|
|
59
69
|
cancelEdit: () => void;
|
|
60
|
-
save: () => Promise<
|
|
70
|
+
save: () => Promise<boolean>;
|
|
61
71
|
toggleEnabled: () => Promise<void>;
|
|
62
72
|
removeSelected: () => Promise<void>;
|
|
63
73
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export interface UserDetailWorkspaceViewInput {
|
|
2
2
|
recordId: string;
|
|
3
3
|
}
|
|
4
|
-
export declare const userDetailWorkspaceView: import("../platform-
|
|
4
|
+
export declare const userDetailWorkspaceView: import("../platform-workbench/workspaceViewContract.ts").WorkspaceViewDefinition<UserDetailWorkspaceViewInput>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
value?: string;
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
"update:value": (value: string) => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
"onUpdate:value"?: ((value: string) => any) | undefined;
|
|
9
|
+
}>, {
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
value: string;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
@@ -47,8 +47,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
47
47
|
}>, {
|
|
48
48
|
loading: boolean;
|
|
49
49
|
size: "small" | "middle" | "large";
|
|
50
|
-
rowKey: string | ((record: UiDataTableRecord) => string);
|
|
51
50
|
pagination: false | UiDataTablePagination;
|
|
51
|
+
rowKey: string | ((record: UiDataTableRecord) => string);
|
|
52
52
|
selection: UiDataTableSelection;
|
|
53
53
|
selectedRowKey: string;
|
|
54
54
|
expandedRowKeys: string[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type UiIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'lock' | 'notification' | 'plus' | 'power' | 'reload' | 'save' | 'search' | 'settings';
|
|
1
|
+
export type UiIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'left' | 'lock' | 'menu-collapse' | 'menu-expand' | 'notification' | 'plus' | 'pin' | 'power' | 'reload' | 'right' | 'save' | 'search' | 'skin' | 'settings';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
name: UiIconName;
|
|
4
4
|
};
|
|
@@ -10,16 +10,16 @@ type __VLS_Props = {
|
|
|
10
10
|
};
|
|
11
11
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
12
|
click: () => any;
|
|
13
|
-
action: (action:
|
|
13
|
+
action: (action: import("../../web-contracts/index.ts").RecordInlineAction) => any;
|
|
14
14
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
15
15
|
onClick?: (() => any) | undefined;
|
|
16
|
-
onAction?: ((action:
|
|
16
|
+
onAction?: ((action: import("../../web-contracts/index.ts").RecordInlineAction) => any) | undefined;
|
|
17
17
|
}>, {
|
|
18
18
|
secondary: string;
|
|
19
19
|
actions: UiRecordInlineAction[];
|
|
20
|
+
selected: boolean;
|
|
20
21
|
tag: string;
|
|
21
22
|
muted: boolean;
|
|
22
|
-
selected: boolean;
|
|
23
23
|
clickable: boolean;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
25
|
declare const _default: typeof __VLS_export;
|
|
@@ -20,9 +20,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
20
20
|
disabled: boolean;
|
|
21
21
|
loading: boolean;
|
|
22
22
|
value: OptionValue | OptionValueList | null;
|
|
23
|
-
mode: "multiple";
|
|
24
23
|
placeholder: string;
|
|
25
24
|
allowClear: boolean;
|
|
25
|
+
mode: "multiple";
|
|
26
26
|
showSearch: boolean;
|
|
27
27
|
filterOption: boolean;
|
|
28
28
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -6,9 +6,15 @@ type __VLS_Props = {
|
|
|
6
6
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
7
|
close: (key: string) => any;
|
|
8
8
|
"update:activeKey": (key: string) => any;
|
|
9
|
+
closeTabs: (keys: string[]) => any;
|
|
10
|
+
togglePin: (key: string) => any;
|
|
11
|
+
reorder: (keys: string[]) => any;
|
|
9
12
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
13
|
onClose?: ((key: string) => any) | undefined;
|
|
11
14
|
"onUpdate:activeKey"?: ((key: string) => any) | undefined;
|
|
15
|
+
onCloseTabs?: ((keys: string[]) => any) | undefined;
|
|
16
|
+
onTogglePin?: ((key: string) => any) | undefined;
|
|
17
|
+
onReorder?: ((keys: string[]) => any) | undefined;
|
|
12
18
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
19
|
declare const _default: typeof __VLS_export;
|
|
14
20
|
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface UiTagListItem {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
items?: UiTagListItem[];
|
|
8
|
+
maxVisible?: number;
|
|
9
|
+
emptyText?: string;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
12
|
+
items: UiTagListItem[];
|
|
13
|
+
maxVisible: number;
|
|
14
|
+
emptyText: string;
|
|
15
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type UiTheme } from '../theme';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
theme?: UiTheme;
|
|
4
|
+
scope?: 'local' | 'global';
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_7: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_7) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
scope: "local" | "global";
|
|
12
|
+
theme: UiTheme;
|
|
13
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
18
|
+
new (): {
|
|
19
|
+
$slots: S;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { UiTreeNode } from '../types';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
nodes: UiTreeNode[];
|
|
4
4
|
selectedKey?: string;
|
|
@@ -6,11 +6,11 @@ type __VLS_Props = {
|
|
|
6
6
|
};
|
|
7
7
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
8
|
select: (node: UiTreeNode) => any;
|
|
9
|
-
action: (action:
|
|
9
|
+
action: (action: import("../../web-contracts/index.ts").RecordInlineAction, node: UiTreeNode) => any;
|
|
10
10
|
"update:expandedKeys": (keys: string[]) => any;
|
|
11
11
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
12
12
|
onSelect?: ((node: UiTreeNode) => any) | undefined;
|
|
13
|
-
onAction?: ((action:
|
|
13
|
+
onAction?: ((action: import("../../web-contracts/index.ts").RecordInlineAction, node: UiTreeNode) => any) | undefined;
|
|
14
14
|
"onUpdate:expandedKeys"?: ((keys: string[]) => any) | undefined;
|
|
15
15
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
16
|
declare const _default: typeof __VLS_export;
|
|
@@ -22,9 +22,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
22
22
|
disabled: boolean;
|
|
23
23
|
loading: boolean;
|
|
24
24
|
value: OptionValue | OptionValueList | null;
|
|
25
|
-
mode: "multiple";
|
|
26
25
|
placeholder: string;
|
|
27
26
|
allowClear: boolean;
|
|
27
|
+
mode: "multiple";
|
|
28
28
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
29
|
declare const _default: typeof __VLS_export;
|
|
30
30
|
export default _default;
|
|
@@ -2,7 +2,9 @@ export { default as ActionBar } from './components/ActionBar.vue';
|
|
|
2
2
|
export { default as UiActionButton } from './components/UiActionButton.vue';
|
|
3
3
|
export { default as UiButton } from './components/UiButton.vue';
|
|
4
4
|
export { default as UiBadge } from './components/UiBadge.vue';
|
|
5
|
+
export { default as UiTagList } from './components/UiTagList.vue';
|
|
5
6
|
export { default as UiCheckbox } from './components/UiCheckbox.vue';
|
|
7
|
+
export { default as UiColorPicker } from './components/UiColorPicker.vue';
|
|
6
8
|
export { default as UiForm } from './components/UiForm.vue';
|
|
7
9
|
export { default as UiInput } from './components/UiInput.vue';
|
|
8
10
|
export { default as UiSearchInput } from './components/UiSearchInput.vue';
|
|
@@ -10,6 +12,7 @@ export { default as UiTextArea } from './components/UiTextArea.vue';
|
|
|
10
12
|
export { default as UiSelect } from './components/UiSelect.vue';
|
|
11
13
|
export { default as UiTreeSelect } from './components/UiTreeSelect.vue';
|
|
12
14
|
export { default as UiTooltip } from './components/UiTooltip.vue';
|
|
15
|
+
export { default as UiThemeProvider } from './components/UiThemeProvider.vue';
|
|
13
16
|
export { default as UiSwitch } from './components/UiSwitch.vue';
|
|
14
17
|
export { default as UiMenu } from './components/UiMenu.vue';
|
|
15
18
|
export { default as UiTabs } from './components/UiTabs.vue';
|
|
@@ -32,5 +35,8 @@ export { showErrorMessage, showFeedback, showInfoMessage, showSuccessMessage, sh
|
|
|
32
35
|
export type { UiFeedbackOptions, UiFeedbackTone } from './feedback';
|
|
33
36
|
export { resolveFieldComponent } from './registry';
|
|
34
37
|
export type { UiIconName } from './components/UiIcon.vue';
|
|
38
|
+
export type { UiTagListItem } from './components/UiTagList.vue';
|
|
35
39
|
export type { UiSidePanelScope } from './components/sidePanelHost';
|
|
40
|
+
export { antDesignThemeOf, cssVariablesOf, defaultUiTheme, defaultUiThemeSkinId, uiThemeSkinById, uiThemeSkins, } from './theme';
|
|
41
|
+
export type { UiSupportTheme, UiTheme, UiThemeSkin, UiThemeSkinId, UiThemeTone } from './theme';
|
|
36
42
|
export type { UiConfirmOptions, UiDataTableColumn, UiDataTableKey, UiDataTablePagination, UiDataTableRecord, UiDataTableSelection, UiDropdownItem, UiMenuItem, UiRecordInlineAction, UiTabItem, UiTreeNode, UiTreeNodeAction, } from './types';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ThemeConfig } from 'ant-design-vue/es/config-provider/context';
|
|
2
|
+
export interface UiThemeTone {
|
|
3
|
+
base: string;
|
|
4
|
+
onBase: string;
|
|
5
|
+
hover: string;
|
|
6
|
+
active: string;
|
|
7
|
+
soft: string;
|
|
8
|
+
softText: string;
|
|
9
|
+
border: string;
|
|
10
|
+
focus: string;
|
|
11
|
+
disabled: string;
|
|
12
|
+
disabledText: string;
|
|
13
|
+
}
|
|
14
|
+
export interface UiSupportTheme {
|
|
15
|
+
page: string;
|
|
16
|
+
canvas: string;
|
|
17
|
+
surface: string;
|
|
18
|
+
elevated: string;
|
|
19
|
+
hover: string;
|
|
20
|
+
border: string;
|
|
21
|
+
borderSubtle: string;
|
|
22
|
+
text: string;
|
|
23
|
+
textBody: string;
|
|
24
|
+
textMuted: string;
|
|
25
|
+
icon: string;
|
|
26
|
+
disabled: string;
|
|
27
|
+
disabledText: string;
|
|
28
|
+
}
|
|
29
|
+
/** Visual treatment for the global theme-skin entry point. */
|
|
30
|
+
export interface UiSkinPickerTheme {
|
|
31
|
+
borderGradient: string;
|
|
32
|
+
glow: string;
|
|
33
|
+
focusRing: string;
|
|
34
|
+
}
|
|
35
|
+
export interface UiTheme {
|
|
36
|
+
appearance: 'light' | 'dark';
|
|
37
|
+
theme: UiThemeTone;
|
|
38
|
+
brandAccent: UiThemeTone;
|
|
39
|
+
support: UiSupportTheme;
|
|
40
|
+
skinPicker: UiSkinPickerTheme;
|
|
41
|
+
positive: UiThemeTone;
|
|
42
|
+
warning: UiThemeTone;
|
|
43
|
+
danger: UiThemeTone;
|
|
44
|
+
info: UiThemeTone;
|
|
45
|
+
}
|
|
46
|
+
export interface UiThemeSkin {
|
|
47
|
+
id: UiThemeSkinId;
|
|
48
|
+
title: string;
|
|
49
|
+
description: string;
|
|
50
|
+
theme: UiTheme;
|
|
51
|
+
}
|
|
52
|
+
export type UiThemeSkinId = 'light-blue' | 'light-amber' | 'dark-navy' | 'dark-graphite';
|
|
53
|
+
export declare const defaultUiTheme: UiTheme;
|
|
54
|
+
export declare const uiThemeSkins: readonly UiThemeSkin[];
|
|
55
|
+
export declare const defaultUiThemeSkinId: UiThemeSkinId;
|
|
56
|
+
export declare function uiThemeSkinById(value: unknown): UiThemeSkin;
|
|
57
|
+
export declare function cssVariablesOf(theme: UiTheme): Record<`--muyun-${string}`, string>;
|
|
58
|
+
export declare function antDesignThemeOf(theme: UiTheme): ThemeConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RecordInlineAction } from '../web-contracts/index';
|
|
2
2
|
export type UiDataTableKey = string | number;
|
|
3
3
|
export type UiDataTableRecord = Record<string, unknown>;
|
|
4
4
|
export interface UiDataTableColumn {
|
|
@@ -29,6 +29,7 @@ export interface UiTabItem {
|
|
|
29
29
|
key: string;
|
|
30
30
|
title: string;
|
|
31
31
|
closable?: boolean;
|
|
32
|
+
pinned?: boolean;
|
|
32
33
|
}
|
|
33
34
|
export interface UiDropdownItem {
|
|
34
35
|
key: string;
|
|
@@ -36,14 +37,8 @@ export interface UiDropdownItem {
|
|
|
36
37
|
disabled?: boolean;
|
|
37
38
|
danger?: boolean;
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
title: string;
|
|
42
|
-
iconName?: UiIconName;
|
|
43
|
-
showLabel?: boolean;
|
|
44
|
-
disabled?: boolean;
|
|
45
|
-
danger?: boolean;
|
|
46
|
-
}
|
|
40
|
+
/** @deprecated Use the adapter-neutral RecordInlineAction contract. */
|
|
41
|
+
export type UiRecordInlineAction = RecordInlineAction;
|
|
47
42
|
export type UiTreeNodeAction = UiRecordInlineAction;
|
|
48
43
|
export interface UiTreeNode {
|
|
49
44
|
key: string;
|
|
@@ -80,6 +80,21 @@ export interface WebTreeNode<T> {
|
|
|
80
80
|
record: T;
|
|
81
81
|
children: WebTreeNode<T>[];
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* A semantic inline action rendered beside a record in an explorer or tree.
|
|
85
|
+
*
|
|
86
|
+
* The icon names are platform presentation tokens. Individual UI adapters map
|
|
87
|
+
* them to their own icon implementations.
|
|
88
|
+
*/
|
|
89
|
+
export interface RecordInlineAction {
|
|
90
|
+
key: string;
|
|
91
|
+
title: string;
|
|
92
|
+
iconName?: RecordInlineActionIconName;
|
|
93
|
+
showLabel?: boolean;
|
|
94
|
+
disabled?: boolean;
|
|
95
|
+
danger?: boolean;
|
|
96
|
+
}
|
|
97
|
+
export type RecordInlineActionIconName = 'app' | 'check' | 'close' | 'delete' | 'down' | 'edit' | 'export' | 'filter' | 'help' | 'lock' | 'notification' | 'plus' | 'power' | 'reload' | 'save' | 'search' | 'settings';
|
|
83
98
|
export interface CurrentUser {
|
|
84
99
|
userId: string;
|
|
85
100
|
username?: string;
|
|
@@ -89,8 +104,50 @@ export interface CurrentUser {
|
|
|
89
104
|
passwordChangeRequired?: boolean;
|
|
90
105
|
timeZone?: string;
|
|
91
106
|
}
|
|
107
|
+
export interface CurrentUserProfilePosition {
|
|
108
|
+
id?: string;
|
|
109
|
+
title?: string;
|
|
110
|
+
primary?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface CurrentUserEmployeeProfile {
|
|
113
|
+
id?: string;
|
|
114
|
+
employeeNo?: string;
|
|
115
|
+
title?: string;
|
|
116
|
+
avatarAssetId?: string;
|
|
117
|
+
mobile?: string;
|
|
118
|
+
email?: string;
|
|
119
|
+
organizationId?: string;
|
|
120
|
+
organizationTitle?: string;
|
|
121
|
+
departmentId?: string;
|
|
122
|
+
departmentTitle?: string;
|
|
123
|
+
contactEditable?: boolean;
|
|
124
|
+
positions?: CurrentUserProfilePosition[];
|
|
125
|
+
}
|
|
126
|
+
export interface CurrentUserProfile {
|
|
127
|
+
username?: string;
|
|
128
|
+
timeZone?: string;
|
|
129
|
+
employee?: CurrentUserEmployeeProfile;
|
|
130
|
+
}
|
|
131
|
+
export interface UpdateCurrentUserProfileRequest {
|
|
132
|
+
mobile?: string;
|
|
133
|
+
email?: string;
|
|
134
|
+
avatarAssetId?: string;
|
|
135
|
+
}
|
|
92
136
|
export interface SessionContext {
|
|
93
137
|
currentUser: CurrentUser;
|
|
138
|
+
tenantBranding?: TenantBranding;
|
|
139
|
+
}
|
|
140
|
+
export interface TenantBranding {
|
|
141
|
+
lightLogo?: string;
|
|
142
|
+
darkLogo?: string;
|
|
143
|
+
mode?: 'logoOnly' | 'logoWithTitle';
|
|
144
|
+
title?: string;
|
|
145
|
+
subtitle?: string;
|
|
146
|
+
}
|
|
147
|
+
/** Public branding facts for a tenant locked by the unauthenticated login URL. */
|
|
148
|
+
export interface TenantLoginContext {
|
|
149
|
+
tenantId: string;
|
|
150
|
+
branding?: TenantBranding;
|
|
94
151
|
}
|
|
95
152
|
export interface LoginRequest {
|
|
96
153
|
tenantId?: string;
|
|
@@ -113,6 +170,33 @@ export interface ChangeOwnPasswordRequest {
|
|
|
113
170
|
}
|
|
114
171
|
export type MenuPageMode = 'LIST' | 'FORM' | 'DETAIL';
|
|
115
172
|
export type MenuOpenMode = 'tab' | 'window';
|
|
173
|
+
/** Server-resolved facts for one menu-driven module page entry. */
|
|
174
|
+
export interface PageBootstrapEntry {
|
|
175
|
+
menuId?: string;
|
|
176
|
+
moduleAlias: string;
|
|
177
|
+
pageMode: MenuPageMode;
|
|
178
|
+
defaultUiConfigId?: string;
|
|
179
|
+
defaultQueryTemplateId?: string;
|
|
180
|
+
entryParamsJson?: string;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The narrow frontend projection of `/platform.menu/{menuId}/entry`.
|
|
184
|
+
*
|
|
185
|
+
* The module descriptor remains owned by the module runtime context until the
|
|
186
|
+
* standard runner consumes descriptor fields directly. This projection keeps
|
|
187
|
+
* the menu entry and resolved page configuration available without creating a
|
|
188
|
+
* second frontend descriptor model.
|
|
189
|
+
*/
|
|
190
|
+
export interface PageBootstrap {
|
|
191
|
+
entry: PageBootstrapEntry;
|
|
192
|
+
clientType: 'WEB' | 'APP';
|
|
193
|
+
mainEntityAlias: string;
|
|
194
|
+
resolvedConfig: {
|
|
195
|
+
uiFields: unknown[];
|
|
196
|
+
queryItems: unknown[];
|
|
197
|
+
};
|
|
198
|
+
openApiPath: string;
|
|
199
|
+
}
|
|
116
200
|
export interface MenuRecord extends StandardEnabledTreeEntity {
|
|
117
201
|
id: string;
|
|
118
202
|
title: string;
|
|
@@ -300,6 +384,16 @@ export type ModuleViewKind = 'LIST' | 'FORM' | 'DETAIL';
|
|
|
300
384
|
export type ModuleUiClientType = 'WEB';
|
|
301
385
|
export interface UiRule<T> {
|
|
302
386
|
constant?: T;
|
|
387
|
+
formula?: UiFormula;
|
|
388
|
+
disabledHint?: string;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* A platform-owned portable Boolean predicate evaluated against the current record draft.
|
|
392
|
+
* The current grammar supports `PRESENT({fieldName})`, `!()` negation, and `&&` conjunction of PRESENT terms.
|
|
393
|
+
* It is deliberately smaller than the server FormulaEngine because this contract must run in every Web client.
|
|
394
|
+
*/
|
|
395
|
+
export interface UiFormula {
|
|
396
|
+
expression: string;
|
|
303
397
|
}
|
|
304
398
|
export interface ViewFieldRef {
|
|
305
399
|
relationCode?: string;
|
|
@@ -313,10 +407,31 @@ export interface ViewFieldDefinition {
|
|
|
313
407
|
required?: UiRule<boolean>;
|
|
314
408
|
readOnly?: UiRule<boolean>;
|
|
315
409
|
uiType?: string;
|
|
410
|
+
valuePresentation?: FieldValuePresentation;
|
|
316
411
|
width?: string;
|
|
412
|
+
columnSpan?: number;
|
|
317
413
|
align?: 'left' | 'center' | 'right' | string;
|
|
318
414
|
fixed?: boolean;
|
|
415
|
+
booleanStatus?: BooleanStatusPresentation;
|
|
416
|
+
/** Maximum visible lines for text cells in standard list views. Omitted uses the platform default of one line. */
|
|
417
|
+
maxDisplayLines?: number;
|
|
319
418
|
}
|
|
419
|
+
/** Semantic group that owns a contiguous set of standard-form fields. */
|
|
420
|
+
export interface FormGroupDescriptor {
|
|
421
|
+
groupCode: string;
|
|
422
|
+
title: string;
|
|
423
|
+
subtitle?: string;
|
|
424
|
+
fields: ViewFieldRef[];
|
|
425
|
+
}
|
|
426
|
+
export interface BooleanStatusPresentation {
|
|
427
|
+
trueLabel: string;
|
|
428
|
+
falseLabel: string;
|
|
429
|
+
trueTone?: BooleanStatusTone;
|
|
430
|
+
falseTone?: BooleanStatusTone;
|
|
431
|
+
}
|
|
432
|
+
export type BooleanStatusTone = 'SUCCESS' | 'NEUTRAL' | 'WARNING' | 'DANGER';
|
|
433
|
+
export type FieldValuePresentation = 'FILE_SIZE';
|
|
434
|
+
export type ViewFieldValueType = 'STRING' | 'TEXT' | 'INTEGER' | 'LONG' | 'BOOLEAN' | 'TIMESTAMP' | 'ZONED_TIMESTAMP' | 'DATE' | 'DECIMAL' | 'JSON';
|
|
320
435
|
export interface ResolvedViewFieldDescriptor {
|
|
321
436
|
fieldRef: ViewFieldRef;
|
|
322
437
|
label?: string;
|
|
@@ -324,10 +439,31 @@ export interface ResolvedViewFieldDescriptor {
|
|
|
324
439
|
required?: UiRule<boolean>;
|
|
325
440
|
readOnly?: UiRule<boolean>;
|
|
326
441
|
uiType?: string;
|
|
442
|
+
valueType?: ViewFieldValueType;
|
|
443
|
+
valuePresentation?: FieldValuePresentation;
|
|
327
444
|
width?: string;
|
|
445
|
+
columnSpan?: number;
|
|
328
446
|
align?: 'left' | 'center' | 'right' | string;
|
|
329
447
|
fixed?: boolean;
|
|
448
|
+
booleanStatus?: BooleanStatusPresentation;
|
|
330
449
|
option?: ResolvedOptionFieldDescriptor;
|
|
450
|
+
reference?: ResolvedReferenceFieldDescriptor;
|
|
451
|
+
referenceSummary?: ResolvedReferenceSummaryFieldDescriptor;
|
|
452
|
+
/** Maximum visible lines for text cells. Omitted uses the platform default of one line. */
|
|
453
|
+
maxDisplayLines?: number;
|
|
454
|
+
}
|
|
455
|
+
/** Structured summary facts resolved from a reference projection. Every item also contains `id`. */
|
|
456
|
+
export interface ResolvedReferenceSummaryFieldDescriptor {
|
|
457
|
+
sourceField: string;
|
|
458
|
+
targetModuleAlias: string;
|
|
459
|
+
cardinality: 'ONE' | 'MANY';
|
|
460
|
+
fields: string[];
|
|
461
|
+
}
|
|
462
|
+
export interface ResolvedReferenceFieldDescriptor {
|
|
463
|
+
targetModuleAlias: string;
|
|
464
|
+
cardinality: 'ONE' | 'MANY';
|
|
465
|
+
/** Read-side title projection for this scalar reference, when supplied by the server. */
|
|
466
|
+
titleField?: string;
|
|
331
467
|
}
|
|
332
468
|
export interface OptionBindingDescriptor {
|
|
333
469
|
sourceType: string;
|
|
@@ -351,6 +487,7 @@ export interface ViewDefinition {
|
|
|
351
487
|
clientType?: ModuleUiClientType;
|
|
352
488
|
title?: string;
|
|
353
489
|
fields: ViewFieldDefinition[];
|
|
490
|
+
formGroups?: FormGroupDescriptor[];
|
|
354
491
|
}
|
|
355
492
|
export interface ResolvedViewDescriptor {
|
|
356
493
|
viewCode: string;
|
|
@@ -358,6 +495,10 @@ export interface ResolvedViewDescriptor {
|
|
|
358
495
|
clientType?: ModuleUiClientType;
|
|
359
496
|
title?: string;
|
|
360
497
|
fields: ResolvedViewFieldDescriptor[];
|
|
498
|
+
/** Dynamic-page provenance used to select the view configured by a menu entry. */
|
|
499
|
+
sourceUiConfigId?: string;
|
|
500
|
+
scopedListWorkspace?: ResolvedScopedListWorkspaceDescriptor;
|
|
501
|
+
formGroups?: FormGroupDescriptor[];
|
|
361
502
|
}
|
|
362
503
|
export interface ResolvedUiActionConfirmationDescriptor {
|
|
363
504
|
mode: 'typedText';
|
|
@@ -367,6 +508,27 @@ export interface ResolvedUiActionDescriptor {
|
|
|
367
508
|
actionCode: string;
|
|
368
509
|
confirmation?: ResolvedUiActionConfirmationDescriptor;
|
|
369
510
|
}
|
|
511
|
+
export interface ResolvedScopedListWorkspaceDescriptor {
|
|
512
|
+
scopeModuleAlias: string;
|
|
513
|
+
scopeField: string;
|
|
514
|
+
queryCriteriaKey: string;
|
|
515
|
+
scopeTitle: string;
|
|
516
|
+
scopeSearchPlaceholder: string;
|
|
517
|
+
/** Scope list items only show a secondary label when the descriptor explicitly enables it. */
|
|
518
|
+
showScopeItemSubtitle: boolean;
|
|
519
|
+
createPolicy: 'REQUIRE_SCOPE' | 'ALLOW_UNSCOPED';
|
|
520
|
+
manageScopeTree?: boolean;
|
|
521
|
+
}
|
|
522
|
+
/** Source-neutral runtime fact for one persisted MuYunFileServer field. */
|
|
523
|
+
export interface ResolvedFileReferenceFieldDescriptor {
|
|
524
|
+
fieldRef: ViewFieldRef;
|
|
525
|
+
allowedMediaTypes: string[];
|
|
526
|
+
maxFileSizeBytes?: number;
|
|
527
|
+
maxFiles: number;
|
|
528
|
+
storagePolicy: 'MUYUN_FILE_SERVER' | 'DATABASE_INLINE';
|
|
529
|
+
uploadAvailable: boolean;
|
|
530
|
+
readAvailable: boolean;
|
|
531
|
+
}
|
|
370
532
|
export interface ModuleUiDefinition {
|
|
371
533
|
moduleAlias: string;
|
|
372
534
|
views: ViewDefinition[];
|
|
@@ -379,6 +541,7 @@ export interface ResolvedModuleUiDescriptor {
|
|
|
379
541
|
views: ResolvedViewDescriptor[];
|
|
380
542
|
actions?: ResolvedUiActionDescriptor[];
|
|
381
543
|
recordLabelField?: string;
|
|
544
|
+
fileReferences?: ResolvedFileReferenceFieldDescriptor[];
|
|
382
545
|
}
|
|
383
546
|
export interface StandardEntity {
|
|
384
547
|
id?: string;
|
|
@@ -706,6 +869,11 @@ export interface ModuleMetadataRelation extends StandardSortableEntity {
|
|
|
706
869
|
}
|
|
707
870
|
export interface Tenant extends StandardEnabledSortableEntity {
|
|
708
871
|
alias?: string;
|
|
872
|
+
lightLogoAssetId?: string;
|
|
873
|
+
darkLogoAssetId?: string;
|
|
874
|
+
workbenchBrandMode?: 'logoOnly' | 'logoWithTitle';
|
|
875
|
+
workbenchTitle?: string;
|
|
876
|
+
workbenchSubtitle?: string;
|
|
709
877
|
}
|
|
710
878
|
export interface FieldSpec extends StandardEnabledSortableEntity {
|
|
711
879
|
alias?: string;
|
|
@@ -1,18 +1,31 @@
|
|
|
1
|
-
import type { ChangeOwnPasswordRequest, CurrentUser, LoginRequest, LoginResult, MenuMineResponse } from '../web-contracts/index';
|
|
1
|
+
import type { ChangeOwnPasswordRequest, CurrentUserProfile, CurrentUser, LoginRequest, LoginResult, UpdateCurrentUserProfileRequest, MenuMineResponse, PageBootstrap, TenantBranding, TenantLoginContext } from '../web-contracts/index';
|
|
2
2
|
import type { HttpClient } from './http';
|
|
3
3
|
export interface SessionClient {
|
|
4
4
|
current(): Promise<CurrentUser>;
|
|
5
|
+
tenantBranding?(): Promise<TenantBranding>;
|
|
5
6
|
}
|
|
6
7
|
export interface MenuClient {
|
|
7
8
|
mine(): Promise<MenuMineResponse>;
|
|
8
9
|
}
|
|
10
|
+
/** Reads the permission-scoped page entry selected by a concrete menu node. */
|
|
11
|
+
export interface PageBootstrapClient {
|
|
12
|
+
byMenu(menuId: string): Promise<PageBootstrap>;
|
|
13
|
+
}
|
|
9
14
|
export interface AuthClient {
|
|
10
15
|
login(request: LoginRequest): Promise<LoginResult>;
|
|
11
16
|
changeOwnPassword(request: ChangeOwnPasswordRequest, token: string): Promise<void>;
|
|
17
|
+
currentProfile(token: string): Promise<CurrentUserProfile>;
|
|
18
|
+
updateCurrentProfile(request: UpdateCurrentUserProfileRequest, token: string): Promise<CurrentUserProfile>;
|
|
12
19
|
logout(token?: string): Promise<void>;
|
|
13
20
|
}
|
|
21
|
+
/** Resolves the public context used by a tenant-locked login entry. */
|
|
22
|
+
export interface LoginContextClient {
|
|
23
|
+
loginContext(tenantId: string): Promise<TenantLoginContext>;
|
|
24
|
+
}
|
|
14
25
|
export declare function createSessionClient(http: HttpClient): SessionClient;
|
|
26
|
+
export declare function createLoginContextClient(http: HttpClient): LoginContextClient;
|
|
15
27
|
export declare function createMenuClient(http: HttpClient): MenuClient;
|
|
28
|
+
export declare function createPageBootstrapClient(http: HttpClient): PageBootstrapClient;
|
|
16
29
|
/**
|
|
17
30
|
* The backend serializes Java enum values as upper-case identifiers while the
|
|
18
31
|
* web contract deliberately uses lower-case literals. Normalize once at the
|
|
@@ -18,4 +18,15 @@ export interface HttpRequestOptions {
|
|
|
18
18
|
export interface HttpClient {
|
|
19
19
|
request<T>(options: HttpRequestOptions): Promise<T>;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Optional capability implemented by HTTP clients that can open a response body
|
|
23
|
+
* as a stream. Keeping it separate preserves compatibility with application
|
|
24
|
+
* supplied clients that only implement ordinary JSON requests.
|
|
25
|
+
*/
|
|
26
|
+
export interface HttpStreamClient {
|
|
27
|
+
/** Opens an authenticated response stream without exposing transport credentials to consumers. */
|
|
28
|
+
stream(options: HttpRequestOptions): Promise<ReadableStream<Uint8Array>>;
|
|
29
|
+
}
|
|
30
|
+
export type StreamingHttpClient = HttpClient & HttpStreamClient;
|
|
31
|
+
export declare function isHttpStreamClient(client: HttpClient): client is StreamingHttpClient;
|
|
32
|
+
export declare function createHttpClient(context?: RequestContext): StreamingHttpClient;
|
|
@@ -5,4 +5,6 @@ export * from './actionResult';
|
|
|
5
5
|
export * from './dataChanges';
|
|
6
6
|
export * from './realtime';
|
|
7
7
|
export * from './clients';
|
|
8
|
+
export { userPreferences } from './userPreferences';
|
|
9
|
+
export type { UserPreferenceOptions, UserPreferenceStore } from './userPreferences';
|
|
8
10
|
export * from './module/index';
|
|
@@ -3,4 +3,6 @@ import type { MenuClient, SessionClient } from './index';
|
|
|
3
3
|
export declare function createMockSessionClient(currentUser?: CurrentUser): SessionClient;
|
|
4
4
|
export declare function createMockMenuClient(records?: WebTreeNode<MenuRecord>[]): MenuClient;
|
|
5
5
|
export declare const mockCurrentUser: CurrentUser;
|
|
6
|
-
|
|
6
|
+
type MockMenuNode = WebTreeNode<MenuRecord>;
|
|
7
|
+
export declare const mockMenuTree: MockMenuNode[];
|
|
8
|
+
export {};
|
|
@@ -9,6 +9,7 @@ export interface RecordActionRequest {
|
|
|
9
9
|
}
|
|
10
10
|
export interface QuerySchemaRequestOptions {
|
|
11
11
|
uiConfigId?: string;
|
|
12
|
+
queryTemplateId?: string;
|
|
12
13
|
}
|
|
13
14
|
export interface StaticModuleCrudClient<TRecord> {
|
|
14
15
|
querySchema(options?: QuerySchemaRequestOptions): Promise<QuerySchema>;
|