@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.
Files changed (123) hide show
  1. package/dist/{EmployeeDetailWorkspaceView-rm9ujeiQ.js → EmployeeDetailWorkspaceView-DYJLlkSz.js} +1 -1
  2. package/dist/EmployeeManagementView-taxWUa7g.js +1778 -0
  3. package/dist/{MetadataOrchestrationView-DaPNQML7.js → MetadataOrchestrationView-B-CPudJl.js} +151 -151
  4. package/dist/ModuleActionManagementView-CmVj0e0C.js +597 -0
  5. package/dist/{RoleAuthorizationView-qQvn7M75.js → RoleAuthorizationView-q_6CsBYq.js} +194 -194
  6. package/dist/{RoleDetailWorkspaceView-C-vaKeZM.js → RoleDetailWorkspaceView-DmJlJgAj.js} +1 -1
  7. package/dist/{RoleManagementView-C3nxfub2.js → RoleManagementView-HCa9rH0f.js} +466 -466
  8. package/dist/{SystemUserDetailWorkspaceView-FIbfff00.js → SystemUserDetailWorkspaceView-U6Ij0US1.js} +1 -1
  9. package/dist/SystemUserManagementView-C1CkKivH.js +758 -0
  10. package/dist/{UserDetailWorkspaceView-M--ndn6x.js → UserDetailWorkspaceView-OPYvD6mH.js} +1 -1
  11. package/dist/{UserManagementView-MSXf4fno.js → UserManagementView-gbCL9SnC.js} +226 -226
  12. package/dist/index.css +1 -1
  13. package/dist/index.js +3309 -2288
  14. package/dist/pageRealtime-CzJlr9hs.js +225 -0
  15. package/dist/{platform-components-_3KlZZf5.js → platform-components-DKKWbNrz.js} +4196 -1790
  16. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +33 -0
  17. package/dist/types/app/LoginView.vue.d.ts +4 -1
  18. package/dist/types/app/ThemeSkinPreferencesDialog.vue.d.ts +20 -0
  19. package/dist/types/app/lockedTabPreference.d.ts +6 -0
  20. package/dist/types/app/themeSkinPreference.d.ts +11 -0
  21. package/dist/types/app/workbenchRouteSync.d.ts +13 -0
  22. package/dist/types/app/workbenchStartup.d.ts +14 -1
  23. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +43 -0
  24. package/dist/types/consumer/index.d.ts +24 -1
  25. package/dist/types/consumer/userPreferencePersistence.d.ts +7 -0
  26. package/dist/types/consumer/workbenchNavigation.d.ts +8 -0
  27. package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +8 -1
  28. package/dist/types/dynamic-page-runtime/index.d.ts +5 -0
  29. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +144 -0
  30. package/dist/types/dynamic-page-runtime/modulePageListRefresh.d.ts +12 -0
  31. package/dist/types/dynamic-page-runtime/modulePageNavigation.d.ts +11 -0
  32. package/dist/types/platform-admin-runtime/PlatformAdminOutlet.vue.d.ts +1 -0
  33. package/dist/types/platform-admin-runtime/backendHttp.d.ts +1 -1
  34. package/dist/types/platform-admin-runtime/index.d.ts +3 -0
  35. package/dist/types/platform-admin-runtime/realtime.d.ts +9 -5
  36. package/dist/types/platform-admin-runtime/workspaceViewContract.d.ts +1 -36
  37. package/dist/types/platform-admin-runtime/workspaceViewHost.d.ts +2 -10
  38. package/dist/types/platform-admin-runtime/workspaceViews.d.ts +1 -17
  39. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +2 -2
  40. package/dist/types/platform-components/DateTimeText.vue.d.ts +1 -1
  41. package/dist/types/platform-components/FileSizeText.vue.d.ts +10 -0
  42. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +70 -0
  43. package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +30 -0
  44. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +16 -0
  45. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +1 -1
  46. package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +8 -6
  47. package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +5 -5
  48. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +6 -6
  49. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +29 -0
  50. package/dist/types/platform-components/RecordFormFields.vue.d.ts +8 -0
  51. package/dist/types/platform-components/RecordListExplorer.vue.d.ts +2 -2
  52. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +1 -0
  53. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +33 -0
  54. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +33 -0
  55. package/dist/types/platform-components/RecordPanelState.vue.d.ts +11 -0
  56. package/dist/types/platform-components/RecordPicker.vue.d.ts +1 -1
  57. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +47 -2
  58. package/dist/types/platform-components/RecordStatusTag.vue.d.ts +6 -1
  59. package/dist/types/platform-components/RecordTagList.vue.d.ts +7 -0
  60. package/dist/types/platform-components/SingleImageFileReferenceField.vue.d.ts +23 -0
  61. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +2 -2
  62. package/dist/types/platform-components/fileReferenceTransfer.d.ts +25 -0
  63. package/dist/types/platform-components/fileTransferUpload.d.ts +43 -0
  64. package/dist/types/platform-components/index.d.ts +15 -1
  65. package/dist/types/platform-components/platformErrorFeedback.d.ts +4 -0
  66. package/dist/types/platform-components/platformFileSize.d.ts +10 -0
  67. package/dist/types/platform-components/recordActionBarModel.d.ts +12 -1
  68. package/dist/types/platform-components/recordFormFieldModel.d.ts +24 -3
  69. package/dist/types/platform-components/scopedTreeModuleContext.d.ts +1 -1
  70. package/dist/types/platform-components/staticCrudManagementState.d.ts +1 -1
  71. package/dist/types/platform-workbench/Workbench.vue.d.ts +12 -2
  72. package/dist/types/platform-workbench/WorkbenchBrandControl.vue.d.ts +41 -0
  73. package/dist/types/platform-workbench/WorkbenchMenu.vue.d.ts +39 -1
  74. package/dist/types/platform-workbench/WorkbenchMenuTree.vue.d.ts +2 -0
  75. package/dist/types/platform-workbench/WorkbenchSidebarMenuEntry.vue.d.ts +19 -0
  76. package/dist/types/platform-workbench/WorkspaceViewOutlet.vue.d.ts +7 -0
  77. package/dist/types/platform-workbench/index.d.ts +7 -0
  78. package/dist/types/platform-workbench/menuHoverClickIntent.d.ts +10 -0
  79. package/dist/types/platform-workbench/menuPointerAim.d.ts +11 -0
  80. package/dist/types/platform-workbench/workbenchLayout.d.ts +4 -0
  81. package/dist/types/platform-workbench/workspaceViewContract.d.ts +20 -0
  82. package/dist/types/platform-workbench/workspaceViewHost.d.ts +8 -0
  83. package/dist/types/platform-workbench/workspaceViews.d.ts +21 -0
  84. package/dist/types/views/applicationManagementState.d.ts +1 -1
  85. package/dist/types/views/employeeDetailWorkspaceView.d.ts +1 -1
  86. package/dist/types/views/fieldSpecManagementState.d.ts +1 -1
  87. package/dist/types/views/fieldUiControlManagementState.d.ts +1 -1
  88. package/dist/types/views/metadataOrchestrationWorkspaceView.d.ts +1 -1
  89. package/dist/types/views/moduleActionManagementWorkspaceView.d.ts +1 -1
  90. package/dist/types/views/roleAuthorizationWorkspaceView.d.ts +1 -1
  91. package/dist/types/views/roleDetailWorkspaceView.d.ts +1 -1
  92. package/dist/types/views/systemUserDetailWorkspaceView.d.ts +1 -1
  93. package/dist/types/views/tenantManagementState.d.ts +11 -1
  94. package/dist/types/views/userDetailWorkspaceView.d.ts +1 -1
  95. package/dist/types/vue-ui-antdv/components/UiColorPicker.vue.d.ts +14 -0
  96. package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +1 -1
  97. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  98. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +3 -3
  99. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +1 -1
  100. package/dist/types/vue-ui-antdv/components/UiTabs.vue.d.ts +6 -0
  101. package/dist/types/vue-ui-antdv/components/UiTagList.vue.d.ts +17 -0
  102. package/dist/types/vue-ui-antdv/components/UiThemeProvider.vue.d.ts +21 -0
  103. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +3 -3
  104. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +1 -1
  105. package/dist/types/vue-ui-antdv/index.d.ts +6 -0
  106. package/dist/types/vue-ui-antdv/theme.d.ts +58 -0
  107. package/dist/types/vue-ui-antdv/themeGlobalScope.d.ts +2 -0
  108. package/dist/types/vue-ui-antdv/types.d.ts +4 -9
  109. package/dist/types/web-contracts/index.d.ts +168 -0
  110. package/dist/types/web-core/clients.d.ts +14 -1
  111. package/dist/types/web-core/http.d.ts +12 -1
  112. package/dist/types/web-core/index.d.ts +2 -0
  113. package/dist/types/web-core/mock.d.ts +3 -1
  114. package/dist/types/web-core/module/staticModuleClient.d.ts +1 -0
  115. package/dist/types/web-core/userPreferences.d.ts +24 -0
  116. package/dist/{useUserSessionRows-iAqK_cUy.js → useUserSessionRows-CBHEzRFQ.js} +2 -2
  117. package/dist/workspaceViewSessions-DkB9myrq.js +3252 -0
  118. package/package.json +1 -1
  119. package/dist/EmployeeManagementView-DyYMWQ64.js +0 -1706
  120. package/dist/ModuleActionManagementView-BFoPGqzC.js +0 -597
  121. package/dist/SystemUserManagementView-m6vwJDxI.js +0 -761
  122. package/dist/pageRealtime-4LXXvVW7.js +0 -140
  123. 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<void>;
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-admin-runtime/workspaceViewContract").WorkspaceViewDefinition<UserDetailWorkspaceViewInput>;
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: UiRecordInlineAction) => any;
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: UiRecordInlineAction) => any) | undefined;
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 { UiRecordInlineAction, UiTreeNode } from '../types';
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: UiRecordInlineAction, node: UiTreeNode) => any;
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: UiRecordInlineAction, node: UiTreeNode) => any) | undefined;
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;
@@ -0,0 +1,2 @@
1
+ export declare function installGlobalThemeVariables(providerId: symbol, variables: Record<`--muyun-${string}`, string>): void;
2
+ export declare function removeGlobalThemeVariables(providerId: symbol): void;
@@ -1,4 +1,4 @@
1
- import type { UiIconName } from './components/UiIcon.vue';
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
- export interface UiRecordInlineAction {
40
- key: string;
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
- export declare function createHttpClient(context?: RequestContext): HttpClient;
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
- export declare const mockMenuTree: WebTreeNode<MenuRecord>[];
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>;