@ximatai/muyun-web-app 0.26.6 → 0.26.8
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-DHZ4arBj.js → EmployeeDetailWorkspaceView-DswEDSxH.js} +1 -1
- package/dist/EmployeeManagementView-C9STtw08.js +1777 -0
- package/dist/{MetadataOrchestrationView-BLxigKBh.js → MetadataOrchestrationView-DKYVGMzy.js} +195 -195
- package/dist/{ModuleActionManagementView-ByJzNkQs.js → ModuleActionManagementView-DiVzuPdu.js} +122 -122
- package/dist/RoleAuthorizationView-C0s4Bog7.js +592 -0
- package/dist/{RoleDetailWorkspaceView-Dfdigf04.js → RoleDetailWorkspaceView-dqHxKVfd.js} +1 -1
- package/dist/{RoleManagementView-D0e9nLwW.js → RoleManagementView-D43pUCxi.js} +542 -543
- package/dist/{SystemUserDetailWorkspaceView-D-UPhCmD.js → SystemUserDetailWorkspaceView-CQ9WeLrR.js} +1 -1
- package/dist/SystemUserManagementView-D75_ylYk.js +758 -0
- package/dist/{UserDetailWorkspaceView-BCSCLNSz.js → UserDetailWorkspaceView-BCST01d2.js} +1 -1
- package/dist/{UserManagementView-aY2AeeWK.js → UserManagementView-CcdvDo_y.js} +211 -212
- package/dist/index.css +1 -1
- package/dist/index.js +4293 -5694
- package/dist/{pageRealtime-Be2xkeKK.js → pageRealtime-EAiGWKEo.js} +87 -85
- package/dist/{platform-components-DuAohqJO.js → platform-components-CFU_zR7-.js} +3828 -2331
- 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/workbenchStartup.d.ts +18 -1
- package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +43 -0
- package/dist/types/consumer/index.d.ts +17 -2
- package/dist/types/consumer/userPreferencePersistence.d.ts +7 -0
- package/dist/types/consumer/workbenchNavigation.d.ts +8 -0
- package/dist/types/dynamic-page-runtime/DynamicModuleWorkspaceDetailView.vue.d.ts +10 -0
- package/dist/types/dynamic-page-runtime/DynamicRecordDetailActions.vue.d.ts +38 -0
- package/dist/types/dynamic-page-runtime/NavigatorManagementEditor.vue.d.ts +25 -0
- package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +43 -0
- package/dist/types/dynamic-page-runtime/detailSurfacePreference.d.ts +10 -0
- package/dist/types/dynamic-page-runtime/index.d.ts +2 -1
- package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +57 -1
- package/dist/types/dynamic-page-runtime/modulePageNavigation.d.ts +1 -1
- package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +6 -0
- package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +27 -0
- package/dist/types/platform-admin-runtime/index.d.ts +1 -1
- package/dist/types/platform-admin-runtime/platformAdminRoutes.d.ts +5 -0
- package/dist/types/platform-admin-runtime/realtime.d.ts +2 -1
- package/dist/types/platform-components/BusinessNotificationPanel.vue.d.ts +12 -0
- package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +6 -0
- package/dist/types/platform-components/FileTransferUploader.vue.d.ts +20 -1
- package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +32 -0
- package/dist/types/platform-components/ManagementWorkspace.vue.d.ts +8 -2
- package/dist/types/platform-components/RecordActionBar.vue.d.ts +1 -1
- package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +4 -1
- package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +11 -7
- package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +7 -5
- package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +6 -6
- package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +10 -0
- package/dist/types/platform-components/RecordFormFields.vue.d.ts +5 -1
- package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +4 -1
- package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +1 -1
- package/dist/types/platform-components/RecordPanelButton.vue.d.ts +2 -0
- package/dist/types/platform-components/RecordPicker.vue.d.ts +1 -1
- package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +9 -2
- package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +3 -0
- package/dist/types/platform-components/SingleImageFileReferenceField.vue.d.ts +23 -0
- package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +13 -7
- package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +3 -0
- package/dist/types/platform-components/fileReferenceTransfer.d.ts +8 -0
- package/dist/types/platform-components/index.d.ts +5 -2
- package/dist/types/platform-components/managementWorkspaceLayout.d.ts +14 -0
- package/dist/types/platform-components/platformErrorFeedback.d.ts +2 -0
- package/dist/types/platform-components/recordActionBarModel.d.ts +6 -0
- package/dist/types/platform-components/recordFormFieldModel.d.ts +6 -3
- package/dist/types/platform-components/recycleBinState.d.ts +2 -0
- package/dist/types/platform-components/scopedTreeModuleContext.d.ts +12 -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 +22 -2
- package/dist/types/platform-workbench/WorkbenchMenu.vue.d.ts +24 -0
- package/dist/types/platform-workbench/WorkbenchSidebarMenuEntry.vue.d.ts +19 -0
- package/dist/types/platform-workbench/index.d.ts +1 -0
- package/dist/types/platform-workbench/menuHoverClickIntent.d.ts +10 -0
- package/dist/types/platform-workbench/menuNavigation.d.ts +3 -0
- package/dist/types/platform-workbench/menuPointerAim.d.ts +1 -1
- package/dist/types/platform-workbench/modulePageWorkspaceViews.d.ts +7 -0
- package/dist/types/platform-workbench/workbenchLayout.d.ts +39 -0
- package/dist/types/platform-workbench/workbenchNavigation.d.ts +2 -0
- package/dist/types/platform-workbench/workspaceViewHost.d.ts +2 -0
- package/dist/types/views/fieldUiControlManagementState.d.ts +1 -1
- package/dist/types/views/tenantManagementState.d.ts +11 -1
- package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +2 -2
- package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiModal.vue.d.ts +1 -1
- 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/UiThemeProvider.vue.d.ts +21 -0
- package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +7 -1
- package/dist/types/vue-ui-antdv/index.d.ts +4 -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 +1 -0
- package/dist/types/web-contracts/index.d.ts +168 -17
- package/dist/types/web-core/businessNotifications.d.ts +3 -0
- package/dist/types/web-core/clients.d.ts +9 -1
- package/dist/types/web-core/index.d.ts +3 -0
- package/dist/types/web-core/mock.d.ts +3 -1
- package/dist/types/web-core/module/moduleContext.d.ts +1 -0
- package/dist/types/web-core/module/runtimeContext.d.ts +3 -1
- package/dist/types/web-core/module/staticModuleClient.d.ts +8 -1
- package/dist/types/web-core/realtime.d.ts +5 -1
- package/dist/types/web-core/userPreferences.d.ts +24 -0
- package/dist/{useUserSessionRows-DX9qYU5r.js → useUserSessionRows-DCpUZCzN.js} +2 -2
- package/dist/workspaceViewSessions-Dj1LjdG1.js +4984 -0
- package/package.json +1 -1
- package/dist/EmployeeManagementView-BfGb_ssB.js +0 -1706
- package/dist/RoleAuthorizationView-DJSWY3fu.js +0 -592
- package/dist/SystemUserManagementView-DNKRvmDk.js +0 -761
- package/dist/currentUserContext-B1lj1WgF.js +0 -11
- package/dist/types/views/ApplicationManagementView.vue.d.ts +0 -3
- package/dist/types/views/DepartmentManagementView.vue.d.ts +0 -3
- package/dist/types/views/FieldSpecManagementView.vue.d.ts +0 -3
- package/dist/types/views/OrganizationManagementView.vue.d.ts +0 -3
- package/dist/types/views/applicationManagementState.d.ts +0 -64
- package/dist/types/views/departmentManagementState.d.ts +0 -137
- package/dist/types/views/fieldSpecManagementState.d.ts +0 -80
- package/dist/types/views/organizationManagementState.d.ts +0 -64
- package/dist/workspaceViewSessions-C3GP1UGp.js +0 -2639
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ModuleContext } from '../web-core/index';
|
|
2
|
+
import type { CurrentUserProfile } from '../web-contracts/index';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
open?: boolean;
|
|
5
|
+
profile?: CurrentUserProfile;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
saving?: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
avatarContext: ModuleContext<unknown>;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
close: () => any;
|
|
13
|
+
submit: (value: {
|
|
14
|
+
mobile: string;
|
|
15
|
+
email: string;
|
|
16
|
+
avatarAssetId?: string;
|
|
17
|
+
}) => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
19
|
+
onClose?: (() => any) | undefined;
|
|
20
|
+
onSubmit?: ((value: {
|
|
21
|
+
mobile: string;
|
|
22
|
+
email: string;
|
|
23
|
+
avatarAssetId?: string;
|
|
24
|
+
}) => any) | undefined;
|
|
25
|
+
}>, {
|
|
26
|
+
loading: boolean;
|
|
27
|
+
open: boolean;
|
|
28
|
+
error: string;
|
|
29
|
+
profile: CurrentUserProfile;
|
|
30
|
+
saving: boolean;
|
|
31
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
32
|
+
declare const _default: typeof __VLS_export;
|
|
33
|
+
export default _default;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { AuthClient } from '../web-core/index';
|
|
1
|
+
import type { AuthClient, LoginContextClient } from '../web-core/index';
|
|
2
2
|
import type { LoginResult } from '../web-contracts/index';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
authClient: AuthClient;
|
|
5
|
+
loginContextClient?: LoginContextClient;
|
|
5
6
|
loading?: boolean;
|
|
6
7
|
error?: string;
|
|
8
|
+
/** Used only when the form is first created; URL-locked tenants always take precedence. */
|
|
9
|
+
initialUsername?: string;
|
|
7
10
|
};
|
|
8
11
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
12
|
authenticated: (result: LoginResult) => any;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type UiThemeSkin, type UiThemeSkinId } from '../vue-ui-antdv/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
skins: readonly UiThemeSkin[];
|
|
5
|
+
activeSkinId: UiThemeSkinId;
|
|
6
|
+
saving?: boolean;
|
|
7
|
+
error?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
close: () => any;
|
|
11
|
+
select: (skinId: UiThemeSkinId) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onClose?: (() => any) | undefined;
|
|
14
|
+
onSelect?: ((skinId: UiThemeSkinId) => any) | undefined;
|
|
15
|
+
}>, {
|
|
16
|
+
error: string;
|
|
17
|
+
saving: boolean;
|
|
18
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MenuTab } from '../web-contracts/index';
|
|
2
|
+
import type { UserPreferenceStore } from '../web-core/index';
|
|
3
|
+
export declare const lockedTabPreferenceKey = "workbench.locked-tabs";
|
|
4
|
+
export declare function restoreLockedTabPreference(store: UserPreferenceStore): Promise<MenuTab[]>;
|
|
5
|
+
export declare function saveLockedTabPreference(store: UserPreferenceStore, tabs: MenuTab[]): Promise<void>;
|
|
6
|
+
export declare function normalizeLockedTabs(value: unknown): MenuTab[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type UiThemeSkinId } from '../vue-ui-antdv/index';
|
|
2
|
+
import type { UserPreferenceStore } from '../web-core/index';
|
|
3
|
+
export declare const themeSkinPreferenceKey = "workbench.theme-skin";
|
|
4
|
+
export declare function restoreThemeSkinPreference(store: UserPreferenceStore, fallback: UiThemeSkinId): Promise<UiThemeSkinId>;
|
|
5
|
+
export declare function saveThemeSkinPreference(store: UserPreferenceStore, skinId: UiThemeSkinId, previousSkinId: UiThemeSkinId): Promise<{
|
|
6
|
+
skinId: UiThemeSkinId;
|
|
7
|
+
error?: undefined;
|
|
8
|
+
} | {
|
|
9
|
+
skinId: UiThemeSkinId;
|
|
10
|
+
error: string;
|
|
11
|
+
}>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MenuClient, SessionClient } from '../web-core/index';
|
|
2
|
-
import type { MenuNavigationTarget, MenuRecord, MenuTab, PageDescriptor, WorkbenchStartupState } from '../web-contracts/index';
|
|
2
|
+
import type { MenuNavigationTarget, MenuRecord, MenuTab, MenuTreeNode, PageDescriptor, WorkbenchStartupState } from '../web-contracts/index';
|
|
3
3
|
import { type PageDescriptorResolveOptions } from '../platform-workbench/index';
|
|
4
4
|
export interface WorkbenchStartupClients {
|
|
5
5
|
sessionClient: SessionClient;
|
|
@@ -22,3 +22,20 @@ export declare function closeMenuTab(tabs: MenuTab[], activeTabKey: string | und
|
|
|
22
22
|
tabs: MenuTab[];
|
|
23
23
|
activeTabKey: string | undefined;
|
|
24
24
|
};
|
|
25
|
+
/** Closes the selected closable tabs and chooses the nearest remaining tab when the active one closes. */
|
|
26
|
+
export declare function closeMenuTabs(tabs: MenuTab[], activeTabKey: string | undefined, closedTabKeys: string[]): {
|
|
27
|
+
tabs: MenuTab[];
|
|
28
|
+
activeTabKey: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
/** Keeps account-pinned tabs at the left while ordinary tab order remains a browser-session concern. */
|
|
31
|
+
export declare function arrangeLockedMenuTabs(tabs: MenuTab[], lockedTabs: MenuTab[], includeMissingLockedTabs?: boolean): MenuTab[];
|
|
32
|
+
/**
|
|
33
|
+
* Restores account-locked tabs from two authority-checked sources only:
|
|
34
|
+
* currently visible tab menus and registered, URL-restorable workspace views.
|
|
35
|
+
* Arbitrary stored routes are deliberately not revived.
|
|
36
|
+
*/
|
|
37
|
+
export declare function restoreLockedWorkbenchTabs(lockedTabs: MenuTab[], menus: MenuTreeNode[], options?: PageDescriptorResolveOptions): MenuTab[];
|
|
38
|
+
export declare function updateLockedMenuTabs(lockedTabs: MenuTab[], tab: MenuTab): MenuTab[];
|
|
39
|
+
export declare function removeLockedMenuTabs(lockedTabs: MenuTab[], keys: string[]): MenuTab[];
|
|
40
|
+
/** Reorders the open tabs for the current browser session without affecting URL restoration. */
|
|
41
|
+
export declare function reorderMenuTabs(tabs: MenuTab[], keys: string[], lockedTabKeys?: string[]): MenuTab[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { PageDescriptor, WorkbenchStartupState } from '../web-contracts';
|
|
2
|
+
import { type PageDescriptorResolveOptions } from '../platform-workbench/menuNavigation';
|
|
3
|
+
import type { WorkbenchRealtimeStatus } from '../platform-workbench/realtimeStatus';
|
|
4
|
+
import type { AppWorkbenchNavigation } from './workbenchNavigation';
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
startup: WorkbenchStartupState;
|
|
7
|
+
/** The consumer router's current full path, including search and hash. */
|
|
8
|
+
location: string;
|
|
9
|
+
resolveOptions?: PageDescriptorResolveOptions;
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
error?: string;
|
|
12
|
+
realtimeStatus?: WorkbenchRealtimeStatus;
|
|
13
|
+
themeAppearance?: 'light' | 'dark';
|
|
14
|
+
};
|
|
15
|
+
declare var __VLS_17: {
|
|
16
|
+
pageDescriptor: PageDescriptor | undefined;
|
|
17
|
+
};
|
|
18
|
+
type __VLS_Slots = {} & {
|
|
19
|
+
default?: (props: typeof __VLS_17) => any;
|
|
20
|
+
};
|
|
21
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
navigate: (navigation: AppWorkbenchNavigation) => any;
|
|
23
|
+
userCommand: (key: string) => any;
|
|
24
|
+
"update:startup": (value: WorkbenchStartupState) => any;
|
|
25
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
26
|
+
onNavigate?: ((navigation: AppWorkbenchNavigation) => any) | undefined;
|
|
27
|
+
onUserCommand?: ((key: string) => any) | undefined;
|
|
28
|
+
"onUpdate:startup"?: ((value: WorkbenchStartupState) => any) | undefined;
|
|
29
|
+
}>, {
|
|
30
|
+
loading: boolean;
|
|
31
|
+
error: string;
|
|
32
|
+
realtimeStatus: WorkbenchRealtimeStatus;
|
|
33
|
+
themeAppearance: "light" | "dark";
|
|
34
|
+
resolveOptions: PageDescriptorResolveOptions;
|
|
35
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
40
|
+
new (): {
|
|
41
|
+
$slots: S;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -5,19 +5,34 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Consumers must import `@ximatai/muyun-web-app/style.css` explicitly.
|
|
7
7
|
*/
|
|
8
|
+
import '../vue-ui-antdv/styles.css';
|
|
8
9
|
import '../styles.css';
|
|
9
10
|
export * from '../web-contracts/index';
|
|
10
11
|
export * from '../web-core/index';
|
|
11
12
|
export * from '../platform-workbench/index';
|
|
12
13
|
export * from '../platform-admin-runtime/index';
|
|
14
|
+
export { activeTabUrlOf, arrangeLockedMenuTabs, removeLockedMenuTabs, restoreWorkbenchStartupStateFromUrl, restoreLockedWorkbenchTabs, updateLockedMenuTabs, } from '../app/workbenchStartup';
|
|
15
|
+
export { restoreLockedTabPreference, saveLockedTabPreference } from '../app/lockedTabPreference';
|
|
13
16
|
export { configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, } from '../dynamic-page-runtime/modulePageEnhancements';
|
|
14
17
|
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';
|
|
18
|
+
export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageEnhancement, ModulePageEnhancementTarget, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from '../dynamic-page-runtime/modulePageEnhancements';
|
|
19
|
+
export { UiButton, confirmAction, UiDataTable, UiInput, UiSidePanel, UiSwitch, UiTextArea, UiTree, UiTreeSelect, } from '../vue-ui-antdv/index';
|
|
17
20
|
export { default as PlatformAdminOutlet } from './PlatformAdminOutlet.vue';
|
|
21
|
+
export { default as AppWorkbenchShell } from './AppWorkbenchShell.vue';
|
|
22
|
+
export { default as LoginView } from '../app/LoginView.vue';
|
|
23
|
+
export type { AppWorkbenchNavigation } from './workbenchNavigation';
|
|
24
|
+
export { configureUserPreferencePersistence } from './userPreferencePersistence';
|
|
25
|
+
export { default as ChangeOwnPasswordDialog } from '../app/ChangeOwnPasswordDialog.vue';
|
|
26
|
+
export { default as ThemeSkinPreferencesDialog } from '../app/ThemeSkinPreferencesDialog.vue';
|
|
27
|
+
export { restoreThemeSkinPreference, saveThemeSkinPreference, themeSkinPreferenceKey, } from '../app/themeSkinPreference';
|
|
28
|
+
export { defaultUiThemeSkinId, UiThemeProvider, uiThemeSkinById, uiThemeSkins } from '../vue-ui-antdv/index';
|
|
29
|
+
export type { UiThemeSkin, UiThemeSkinId } from '../vue-ui-antdv/index';
|
|
18
30
|
export { default as DateTimeText } from '../platform-components/DateTimeText.vue';
|
|
19
31
|
export { default as FileSizeText } from '../platform-components/FileSizeText.vue';
|
|
32
|
+
export { default as DynamicModuleWorkspaceDetailView } from '../dynamic-page-runtime/DynamicModuleWorkspaceDetailView.vue';
|
|
20
33
|
export { default as FileTransferUploader } from '../platform-components/FileTransferUploader.vue';
|
|
34
|
+
export { default as SingleImageFileReferenceField } from '../platform-components/SingleImageFileReferenceField.vue';
|
|
35
|
+
export { uploadedFileId } from '../platform-components/fileReferenceTransfer';
|
|
21
36
|
export { presentPlatformError, presentPlatformInfo, presentPlatformMessage, presentPlatformSuccess, } from '../platform-components/platformErrorFeedback';
|
|
22
37
|
export { createBrowserFileTransferUpload, unwrapResponsePayload, } from '../platform-components/fileTransferUpload';
|
|
23
38
|
export type { FileTransferUploadAccess, FileTransferUploadReceipt, FileTransferUploadTask, } from '../platform-components/fileTransferUpload';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HttpClient } from '../web-core/http';
|
|
2
|
+
/**
|
|
3
|
+
* Connects the consumer App's authenticated HTTP factory to the platform's
|
|
4
|
+
* account-scoped preference endpoints. Consumers retain ownership of their
|
|
5
|
+
* authentication lifecycle without depending on web-core's internal bridge.
|
|
6
|
+
*/
|
|
7
|
+
export declare function configureUserPreferencePersistence(httpFactory: () => HttpClient): void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
recordId: string;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
"close-workspace": () => any;
|
|
6
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
7
|
+
"onClose-workspace"?: (() => any) | undefined;
|
|
8
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type RecordActionItem, type QueryListRecord } from '../platform-components/index';
|
|
2
|
+
import type { ModuleContext } from '../web-core/index';
|
|
3
|
+
import type { ModulePageRecordActionContribution } from './modulePageEnhancements';
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
context: ModuleContext<QueryListRecord>;
|
|
6
|
+
record?: QueryListRecord;
|
|
7
|
+
mode: 'create' | 'edit' | 'view';
|
|
8
|
+
saving?: boolean;
|
|
9
|
+
detailLoading?: boolean;
|
|
10
|
+
detailLoadFailed?: boolean;
|
|
11
|
+
recycleBinActive?: boolean;
|
|
12
|
+
actions?: ModulePageRecordActionContribution[];
|
|
13
|
+
/** Custom record views retain their own operation model. */
|
|
14
|
+
showStandardViewActions?: boolean;
|
|
15
|
+
};
|
|
16
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
delete: () => any;
|
|
18
|
+
edit: () => any;
|
|
19
|
+
save: () => any;
|
|
20
|
+
cancel: () => any;
|
|
21
|
+
detailAction: (action: RecordActionItem) => any;
|
|
22
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
23
|
+
onDelete?: (() => any) | undefined;
|
|
24
|
+
onEdit?: (() => any) | undefined;
|
|
25
|
+
onSave?: (() => any) | undefined;
|
|
26
|
+
onCancel?: (() => any) | undefined;
|
|
27
|
+
onDetailAction?: ((action: RecordActionItem) => any) | undefined;
|
|
28
|
+
}>, {
|
|
29
|
+
actions: ModulePageRecordActionContribution[];
|
|
30
|
+
record: QueryListRecord;
|
|
31
|
+
saving: boolean;
|
|
32
|
+
detailLoading: boolean;
|
|
33
|
+
detailLoadFailed: boolean;
|
|
34
|
+
recycleBinActive: boolean;
|
|
35
|
+
showStandardViewActions: boolean;
|
|
36
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type RecordFormFieldPickerConfig, type RecordFormFieldValue, type RecordFormRecord } from '../platform-components/index';
|
|
2
|
+
import type { ModuleContext } from '../web-core/index';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
open: boolean;
|
|
5
|
+
title: string;
|
|
6
|
+
saving: boolean;
|
|
7
|
+
loading: boolean;
|
|
8
|
+
loadFailed: boolean;
|
|
9
|
+
draft?: RecordFormRecord;
|
|
10
|
+
fields: ReturnType<typeof import('../platform-components/index').resolveRecordFormFields>;
|
|
11
|
+
formSessionKey: number;
|
|
12
|
+
context: ModuleContext<unknown>;
|
|
13
|
+
pickerConfigs: Record<string, RecordFormFieldPickerConfig>;
|
|
14
|
+
};
|
|
15
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
+
close: () => any;
|
|
17
|
+
save: () => any;
|
|
18
|
+
updateField: (fieldName: string, value: RecordFormFieldValue) => any;
|
|
19
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
20
|
+
onClose?: (() => any) | undefined;
|
|
21
|
+
onSave?: (() => any) | undefined;
|
|
22
|
+
onUpdateField?: ((fieldName: string, value: RecordFormFieldValue) => any) | undefined;
|
|
23
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
|
+
declare const _default: typeof __VLS_export;
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type QueryListRecord } from '../platform-components/index';
|
|
2
|
+
import type { RecordInlineAction, ResolvedPageNavigatorLevelDescriptor } from '../web-contracts/index';
|
|
3
|
+
import type { ModuleContext } from '../web-core/index';
|
|
4
|
+
type NavigatorLevelRuntime = {
|
|
5
|
+
descriptor: ResolvedPageNavigatorLevelDescriptor;
|
|
6
|
+
context: ModuleContext<QueryListRecord>;
|
|
7
|
+
tree: boolean;
|
|
8
|
+
};
|
|
9
|
+
type __VLS_Props = {
|
|
10
|
+
level: NavigatorLevelRuntime;
|
|
11
|
+
selectedId?: string;
|
|
12
|
+
reloadKey: number;
|
|
13
|
+
keyword: string;
|
|
14
|
+
externalQueryValues?: Record<string, unknown>;
|
|
15
|
+
actionsOf?: () => RecordInlineAction[];
|
|
16
|
+
};
|
|
17
|
+
declare var __VLS_38: {};
|
|
18
|
+
type __VLS_Slots = {} & {
|
|
19
|
+
editor?: (props: typeof __VLS_38) => any;
|
|
20
|
+
};
|
|
21
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
select: (record: QueryListRecord) => any;
|
|
23
|
+
action: (action: RecordInlineAction, record: QueryListRecord) => any;
|
|
24
|
+
create: () => any;
|
|
25
|
+
refresh: () => any;
|
|
26
|
+
loaded: (records: QueryListRecord[]) => any;
|
|
27
|
+
"update:keyword": (value: string) => any;
|
|
28
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
29
|
+
onSelect?: ((record: QueryListRecord) => any) | undefined;
|
|
30
|
+
onAction?: ((action: RecordInlineAction, record: QueryListRecord) => any) | undefined;
|
|
31
|
+
onCreate?: (() => any) | undefined;
|
|
32
|
+
onRefresh?: (() => any) | undefined;
|
|
33
|
+
onLoaded?: ((records: QueryListRecord[]) => any) | undefined;
|
|
34
|
+
"onUpdate:keyword"?: ((value: string) => any) | undefined;
|
|
35
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
40
|
+
new (): {
|
|
41
|
+
$slots: S;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UserPreferenceStore } from '../web-core/index';
|
|
2
|
+
export type DetailSurfacePreference = 'drawer' | 'pinned';
|
|
3
|
+
export declare function detailSurfacePreferenceKey(moduleAlias: string): string;
|
|
4
|
+
export declare function normalizeDetailSurfacePreference(value: unknown): DetailSurfacePreference | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Restores an account-scoped choice while retaining the device-local value as
|
|
7
|
+
* a resilient fallback when the preference service is temporarily unavailable.
|
|
8
|
+
*/
|
|
9
|
+
export declare function restoreDetailSurfacePreference(store: UserPreferenceStore, moduleAlias: string): Promise<DetailSurfacePreference | undefined>;
|
|
10
|
+
export declare function saveDetailSurfacePreference(store: UserPreferenceStore, moduleAlias: string, preference: DetailSurfacePreference): Promise<void>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { default as DynamicModuleHost } from './DynamicModuleHost.vue';
|
|
2
2
|
export { default as DynamicModulePage } from './DynamicModulePage.vue';
|
|
3
|
+
export { default as DynamicModuleWorkspaceDetailView } from './DynamicModuleWorkspaceDetailView.vue';
|
|
3
4
|
export { customerDescriptor } from './mockDescriptor';
|
|
4
5
|
export { configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, resolveModulePageEnhancement, } from './modulePageEnhancements';
|
|
5
6
|
export { provideModulePageNavigation, useModulePageNavigation } from './modulePageNavigation';
|
|
6
7
|
export { createModulePageListRefreshRegistry, modulePageListRefreshRegistry, refreshModulePageList, } from './modulePageListRefresh';
|
|
7
8
|
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';
|
|
9
|
+
export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageEnhancement, ModulePageEnhancementRegistry, ModulePageEnhancementTarget, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from './modulePageEnhancements';
|
|
@@ -14,6 +14,14 @@ export interface ModulePageEnhancement {
|
|
|
14
14
|
target: ModulePageEnhancementTarget;
|
|
15
15
|
list?: ModuleListEnhancement;
|
|
16
16
|
detail?: ModuleDetailEnhancement;
|
|
17
|
+
/**
|
|
18
|
+
* The presentation selected when a user invokes the standard record-view intent.
|
|
19
|
+
*
|
|
20
|
+
* Both the platform "查看" action and a list double-click enter the same record
|
|
21
|
+
* view flow. Applications may replace only the drawer body, while the runtime
|
|
22
|
+
* retains that flow's action checks, shell and lifecycle.
|
|
23
|
+
*/
|
|
24
|
+
recordView?: ModulePageRecordView;
|
|
17
25
|
workspaceViews?: ModulePageWorkspaceView[];
|
|
18
26
|
}
|
|
19
27
|
export interface ModulePageEnhancementTarget {
|
|
@@ -36,14 +44,36 @@ export interface ModuleDetailEnhancement {
|
|
|
36
44
|
actions?: ModulePageRecordActionContribution[];
|
|
37
45
|
sections?: ModulePageDetailSection[];
|
|
38
46
|
}
|
|
47
|
+
/** Application-owned presentation of the platform's standard record-view intent. */
|
|
48
|
+
export interface ModulePageRecordView {
|
|
49
|
+
/**
|
|
50
|
+
* Replaces the descriptor-generated detail body while retaining the platform
|
|
51
|
+
* view drawer, its list entry points, and its lifecycle.
|
|
52
|
+
*
|
|
53
|
+
* A custom drawer body is intentionally read-only from the platform's point
|
|
54
|
+
* of view: generic edit and enable/disable controls are withheld so that the
|
|
55
|
+
* business module owns every operation it exposes in the view.
|
|
56
|
+
*/
|
|
57
|
+
drawer: ModulePageDetailDrawer;
|
|
58
|
+
/**
|
|
59
|
+
* Optional record-level business grant required in addition to the standard
|
|
60
|
+
* view entry point. This protects business drawer data without turning its
|
|
61
|
+
* custom endpoints into a second "查看" UI action.
|
|
62
|
+
*/
|
|
63
|
+
authorizationActionCode?: string;
|
|
64
|
+
}
|
|
39
65
|
export interface ModulePageActionContribution extends RecordActionItem {
|
|
40
66
|
key: string;
|
|
67
|
+
/** Authorizes this toolbar action against the selected scoped-list record instead of the page module. */
|
|
68
|
+
authorization?: 'scope-record';
|
|
69
|
+
/** Derives the action state from the current scoped-list selection when the page has one. */
|
|
70
|
+
state?(context: ModulePageActionStateContext): Partial<Pick<RecordActionItem, 'visible' | 'disabled' | 'disabledReason'>> | undefined;
|
|
41
71
|
run(context: ModulePageActionContext): void | Promise<void>;
|
|
42
72
|
}
|
|
43
73
|
export interface ModulePageRecordActionContribution extends RecordActionItem {
|
|
44
74
|
key: string;
|
|
45
75
|
/** Resolves record-specific visibility or enabled state without letting business code own the table shell. */
|
|
46
|
-
state?(record: QueryListRecord): Pick<RecordActionItem, 'visible' | 'disabled'
|
|
76
|
+
state?(record: QueryListRecord): Partial<Pick<RecordActionItem, 'visible' | 'disabled'>> | undefined;
|
|
47
77
|
run(context: ModulePageRecordActionContext): void | Promise<void>;
|
|
48
78
|
}
|
|
49
79
|
export interface ModulePageBatchActionContribution extends RecordActionItem {
|
|
@@ -55,6 +85,18 @@ export interface ModulePageDetailSection {
|
|
|
55
85
|
title: string;
|
|
56
86
|
component: Component;
|
|
57
87
|
}
|
|
88
|
+
/** Business content rendered inside the platform-owned standard view drawer. */
|
|
89
|
+
export interface ModulePageDetailDrawer {
|
|
90
|
+
/** The component receives only the documented ModulePageDrawerContext prop. */
|
|
91
|
+
component: Component;
|
|
92
|
+
/** Keeps the platform drawer shell while allowing dense business views more room. */
|
|
93
|
+
width?: number | string;
|
|
94
|
+
/**
|
|
95
|
+
* Defaults to true. Set false when the business detail body has its own
|
|
96
|
+
* governed read endpoint and only needs the selected list record as context.
|
|
97
|
+
*/
|
|
98
|
+
loadRecord?: boolean;
|
|
99
|
+
}
|
|
58
100
|
export interface ModulePageColumnContribution extends RecordQueryListColumn {
|
|
59
101
|
key: string;
|
|
60
102
|
/** Insert adjacent to a descriptor column. Omit to append after descriptor columns. */
|
|
@@ -88,6 +130,8 @@ export interface ModulePageWorkspaceView<TInput extends ModulePageWorkspaceViewI
|
|
|
88
130
|
export interface ModulePageDrawerContext {
|
|
89
131
|
module: ModuleContext<QueryListRecord>;
|
|
90
132
|
record?: QueryListRecord;
|
|
133
|
+
/** The currently selected scope record for a scoped list workspace, if applicable. */
|
|
134
|
+
scope?: ModulePageScopeContext;
|
|
91
135
|
/** Reloads only the current list query and preserves its query and editor state. */
|
|
92
136
|
refreshList(): void;
|
|
93
137
|
close(): void;
|
|
@@ -95,12 +139,24 @@ export interface ModulePageDrawerContext {
|
|
|
95
139
|
}
|
|
96
140
|
export interface ModulePageActionContext {
|
|
97
141
|
module: ModuleContext<QueryListRecord>;
|
|
142
|
+
/** The currently selected scope record for a scoped list workspace, if applicable. */
|
|
143
|
+
scope?: ModulePageScopeContext;
|
|
98
144
|
/** Reloads only the current list query and preserves its query and editor state. */
|
|
99
145
|
refreshList(): void;
|
|
100
146
|
openDrawer(drawer: ModulePageDrawer): void;
|
|
101
147
|
openWorkspaceTab<TInput extends ModulePageWorkspaceViewInput>(view: ModulePageWorkspaceView<TInput>, input: TInput): void;
|
|
102
148
|
reload(): void;
|
|
103
149
|
}
|
|
150
|
+
/** Read-only scope state supplied by a descriptor-owned scoped list workspace. */
|
|
151
|
+
export interface ModulePageScopeContext {
|
|
152
|
+
moduleAlias: string;
|
|
153
|
+
record?: QueryListRecord;
|
|
154
|
+
}
|
|
155
|
+
/** Small state-only context used while resolving a toolbar action's visibility or enabled state. */
|
|
156
|
+
export interface ModulePageActionStateContext {
|
|
157
|
+
module: ModuleContext<QueryListRecord>;
|
|
158
|
+
scope?: ModulePageScopeContext;
|
|
159
|
+
}
|
|
104
160
|
export interface ModulePageRecordActionContext extends ModulePageActionContext {
|
|
105
161
|
record: QueryListRecord;
|
|
106
162
|
}
|
|
@@ -5,7 +5,7 @@ export interface ModulePageNavigation {
|
|
|
5
5
|
openPage(descriptor: PageDescriptor): {
|
|
6
6
|
created: boolean;
|
|
7
7
|
};
|
|
8
|
-
openWorkspaceTab<TInput extends ModulePageWorkspaceViewInput>(view: ModulePageWorkspaceView<TInput>, input: TInput): void;
|
|
8
|
+
openWorkspaceTab<TInput extends ModulePageWorkspaceViewInput>(view: ModulePageWorkspaceView<TInput>, input: TInput, title?: string): void;
|
|
9
9
|
}
|
|
10
10
|
export declare function provideModulePageNavigation(navigation: ModulePageNavigation | undefined): void;
|
|
11
11
|
export declare function useModulePageNavigation(): ModulePageNavigation | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ResolvedPageContextBindingDescriptor } from '../web-contracts/index';
|
|
2
|
+
export type PageContextSourceValues = Partial<Record<ResolvedPageContextBindingDescriptor['source'], Record<string, unknown>>>;
|
|
3
|
+
/** Returns context fields that must be supplied by the browser for a query target. */
|
|
4
|
+
export declare function externalPageContextCriteriaKeys(bindings: ResolvedPageContextBindingDescriptor[], target: ResolvedPageContextBindingDescriptor['target']): string[];
|
|
5
|
+
/** Resolves declared context flows without coupling a target to navigator UI state. */
|
|
6
|
+
export declare function resolvePageContextTargetValues(bindings: ResolvedPageContextBindingDescriptor[], target: ResolvedPageContextBindingDescriptor['target'], sourceValues: PageContextSourceValues, targetNavigatorLevelKey?: string): Record<string, unknown> | undefined;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type RecordDetailMode = 'create' | 'edit' | 'view';
|
|
2
|
+
/**
|
|
3
|
+
* State transitions shared by descriptor-driven record detail surfaces.
|
|
4
|
+
* Containers own their layout; this controller owns only one record's
|
|
5
|
+
* lifecycle and deliberately contains no drawer, tab or list concerns.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useRecordDetailController<TRecord extends Record<string, unknown>>(): {
|
|
8
|
+
record: import("vue").Ref<TRecord | undefined, TRecord | undefined>;
|
|
9
|
+
draft: import("vue").Ref<TRecord | undefined, TRecord | undefined>;
|
|
10
|
+
mode: import("vue").Ref<RecordDetailMode, RecordDetailMode>;
|
|
11
|
+
open: import("vue").Ref<boolean, boolean>;
|
|
12
|
+
loading: import("vue").Ref<boolean, boolean>;
|
|
13
|
+
loadFailed: import("vue").Ref<boolean, boolean>;
|
|
14
|
+
saving: import("vue").Ref<boolean, boolean>;
|
|
15
|
+
togglingEnabled: import("vue").Ref<boolean, boolean>;
|
|
16
|
+
formSessionKey: import("vue").Ref<number, number>;
|
|
17
|
+
beginLoad: (next: TRecord, nextMode: Extract<RecordDetailMode, "edit" | "view">) => void;
|
|
18
|
+
resolveLoad: (next: TRecord) => void;
|
|
19
|
+
failLoad: () => void;
|
|
20
|
+
finishLoad: () => void;
|
|
21
|
+
beginCreate: (initial: TRecord) => void;
|
|
22
|
+
beginEdit: () => boolean;
|
|
23
|
+
cancelEdit: () => void;
|
|
24
|
+
applySaved: (next: TRecord) => void;
|
|
25
|
+
clearDeleted: () => void;
|
|
26
|
+
close: () => void;
|
|
27
|
+
};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* directory: an App supplies its startup state, navigation and HTTP factory.
|
|
7
7
|
*/
|
|
8
8
|
export { default as PlatformAdminRouteOutlet } from './PlatformAdminOutlet.vue';
|
|
9
|
-
export { isPlatformAdminRoutePage, platformAdminModuleRoutes, platformAdminRouteLayouts, platformAdminRoutePrefixes, platformAdminRoutes, resolvePlatformAdminRoute, } from './platformAdminRoutes';
|
|
9
|
+
export { isPlatformAdminRoutePage, platformAdminDynamicModuleRoutes, platformAdminModuleRoutes, platformAdminRouteLayouts, platformAdminRoutePrefixes, platformAdminRoutes, resolvePlatformAdminRoute, } from './platformAdminRoutes';
|
|
10
10
|
export type { PlatformAdminRoute } from './platformAdminRoutes';
|
|
11
11
|
export { provideCurrentUserContext, useCurrentUserContext } from './currentUserContext';
|
|
12
12
|
export { createBackendHttpClient } from './backendHttp';
|
|
@@ -11,6 +11,11 @@ export interface PlatformAdminRoute {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const platformAdminRoutes: PlatformAdminRoute[];
|
|
13
13
|
export declare const platformAdminRoutePrefixes: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Retains readable legacy menu URLs while delegating their content to the standard module runner.
|
|
16
|
+
* These are deliberately separate from `platformAdminRoutes`: no business-owned Vue page exists.
|
|
17
|
+
*/
|
|
18
|
+
export declare const platformAdminDynamicModuleRoutes: Record<string, string>;
|
|
14
19
|
export declare const platformAdminModuleRoutes: {
|
|
15
20
|
[k: string]: string;
|
|
16
21
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RealtimeConnectionState } from '../web-core/index';
|
|
2
|
-
import type { WebBusinessRealtimeEvent, WebCommittedChangeSet, WebUserNotification } from '../web-contracts/index';
|
|
2
|
+
import type { WebBusinessRealtimeEvent, WebBusinessNotification, WebCommittedChangeSet, WebUserNotification } from '../web-contracts/index';
|
|
3
3
|
export declare const appDataChangeDispatcher: import("../web-core/index").DataChangeDispatcher;
|
|
4
4
|
export interface AppRealtimeOptions {
|
|
5
5
|
/** Backend origin supplied by the consuming App at runtime. */
|
|
@@ -8,6 +8,7 @@ export interface AppRealtimeOptions {
|
|
|
8
8
|
token?: string;
|
|
9
9
|
onUnauthorized?: () => void;
|
|
10
10
|
onUserNotification?: (notification: WebUserNotification) => void;
|
|
11
|
+
onBusinessNotification?: (notification: WebBusinessNotification) => void;
|
|
11
12
|
onStateChange?: (state: RealtimeConnectionState) => void;
|
|
12
13
|
}
|
|
13
14
|
export interface AppRealtimeConnection {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WebBusinessNotification, WebBusinessNotificationAction } from '../web-contracts/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
notifications: WebBusinessNotification[];
|
|
4
|
+
executeAction: (notification: WebBusinessNotification, action: WebBusinessNotificationAction) => void | Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
|
+
dismiss: (notificationId: string) => any;
|
|
8
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
|
+
onDismiss?: ((notificationId: string) => any) | undefined;
|
|
10
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
@@ -7,6 +7,11 @@ type __VLS_Props = {
|
|
|
7
7
|
context: ModuleContext<CrudRecordListBase>;
|
|
8
8
|
selectedId?: string;
|
|
9
9
|
reloadKey?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Descriptor-owned criteria from an upstream navigator selection.
|
|
12
|
+
* They are forwarded as standard query values rather than filtered in the browser.
|
|
13
|
+
*/
|
|
14
|
+
externalQueryValues?: Record<string, unknown>;
|
|
10
15
|
keyword?: string;
|
|
11
16
|
emptyDescription?: string;
|
|
12
17
|
loadingTip?: string;
|
|
@@ -44,6 +49,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
44
49
|
tagOf: (record: CrudRecordListBase) => string | undefined;
|
|
45
50
|
mutedOf: (record: CrudRecordListBase) => boolean;
|
|
46
51
|
reloadKey: number;
|
|
52
|
+
externalQueryValues: Record<string, unknown>;
|
|
47
53
|
loadingTip: string;
|
|
48
54
|
fallbackTitle: string;
|
|
49
55
|
subtitleOf: (record: CrudRecordListBase) => string | undefined;
|