@ximatai/muyun-web-app 0.26.8 → 0.26.9
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/DictionaryManagementView-CtIQpqVA.js +1035 -0
- package/dist/MenuManagementView-DJhkN2sG.js +837 -0
- package/dist/{MetadataOrchestrationView-DKYVGMzy.js → MetadataOrchestrationView-CzhAgEdX.js} +211 -205
- package/dist/{ModuleActionManagementView-DiVzuPdu.js → ModuleActionManagementView-CM2d8jPO.js} +72 -72
- package/dist/{RoleAuthorizationView-C0s4Bog7.js → RoleAuthorizationView-jn_WUCeg.js} +228 -221
- package/dist/{RoleDetailWorkspaceView-dqHxKVfd.js → RoleDetailWorkspaceView-CzaQ3Dz1.js} +1 -1
- package/dist/RoleManagementView-nY7qu4GF.js +1951 -0
- package/dist/{SystemUserDetailWorkspaceView-CQ9WeLrR.js → SystemUserDetailWorkspaceView-CBvqmWvP.js} +1 -1
- package/dist/SystemUserManagementView-AEomKvK7.js +887 -0
- package/dist/currentUserContext-B1lj1WgF.js +11 -0
- package/dist/index.css +1 -1
- package/dist/index.js +531 -4402
- package/dist/{platform-components-CFU_zR7-.js → platform-components-CIi6GdC9.js} +4832 -3453
- package/dist/types/App.vue.d.ts +1 -0
- package/dist/types/app/StaticRoutePageHost.vue.d.ts +11 -0
- package/dist/types/app/loginTenant.d.ts +1 -1
- package/dist/types/app/menuRouteCompiler.d.ts +45 -0
- package/dist/types/app/menuRouteRuntime.d.ts +24 -0
- package/dist/types/app/pageRouteContext.d.ts +24 -0
- package/dist/types/app/routeDiagnosticsStore.d.ts +10 -0
- package/dist/types/app/router.d.ts +15 -0
- package/dist/types/app/staticRouteDefinitions.d.ts +25 -0
- package/dist/types/app/workbenchRouteSync.d.ts +1 -1
- package/dist/types/app/workbenchStartup.d.ts +3 -3
- package/dist/types/consumer/index.d.ts +5 -3
- package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +3 -10
- package/dist/types/dynamic-page-runtime/DynamicRecordDetailActions.vue.d.ts +4 -3
- package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +40 -0
- package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +14 -0
- package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +26 -0
- package/dist/types/dynamic-page-runtime/ModulePageFormContributionRenderer.vue.d.ts +12 -0
- package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +14 -0
- package/dist/types/dynamic-page-runtime/ModulePageListExpansionSurface.vue.d.ts +19 -0
- package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansion.vue.d.ts +13 -0
- package/dist/types/dynamic-page-runtime/ModulePageListRelationExpansions.vue.d.ts +16 -0
- package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +42 -0
- package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +41 -0
- package/dist/types/dynamic-page-runtime/NavigatorManagementEditor.vue.d.ts +20 -1
- package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +12 -5
- package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +31 -0
- package/dist/types/dynamic-page-runtime/composables/useManagedDetailRelationRuntime.d.ts +30 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +13 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageBootstrap.d.ts +17 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +48 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageDetailExtensionRuntime.d.ts +26 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageFormContributionRuntime.d.ts +22 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageListSession.d.ts +41 -0
- package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1324 -0
- package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +22 -0
- package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +5 -12
- package/dist/types/dynamic-page-runtime/formComputeCoordinator.d.ts +18 -0
- package/dist/types/dynamic-page-runtime/index.d.ts +3 -2
- package/dist/types/dynamic-page-runtime/listPageSizePreference.d.ts +10 -0
- package/dist/types/dynamic-page-runtime/moduleDetailStateModel.d.ts +12 -0
- package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +181 -7
- package/dist/types/dynamic-page-runtime/navigatorVisibility.d.ts +6 -0
- package/dist/types/dynamic-page-runtime/pageContextRuntime.d.ts +2 -2
- package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +9 -1
- package/dist/types/dynamic-page-runtime/relationFormComputeCoordinator.d.ts +9 -0
- package/dist/types/formula/FormulaRuntime.d.ts +29 -0
- package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +1 -0
- package/dist/types/{views/UserDetailWorkspaceView.vue.d.ts → platform-admin-runtime/employee/EmployeeAccountDrawer.vue.d.ts} +2 -2
- package/dist/types/platform-admin-runtime/employeeModulePageEnhancement.d.ts +3 -0
- package/dist/types/platform-admin-runtime/index.d.ts +1 -1
- package/dist/types/platform-admin-runtime/moduleOpenApi.d.ts +2 -0
- package/dist/types/platform-admin-runtime/passwordPolicyPageEnhancement.d.ts +6 -0
- package/dist/types/platform-admin-runtime/platformAdminRoutes.d.ts +1 -6
- package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +9 -0
- package/dist/types/platform-admin-runtime/tenant/TenantApplicationConfigurationDrawer.vue.d.ts +7 -0
- package/dist/types/platform-admin-runtime/tenant/TenantApplicationsDetailSection.vue.d.ts +7 -0
- package/dist/types/platform-admin-runtime/tenantModulePageEnhancement.d.ts +7 -0
- package/dist/types/platform-admin-runtime/user/UserOnlineStatusCell.vue.d.ts +8 -0
- package/dist/types/platform-admin-runtime/user/UserPasswordDrawer.vue.d.ts +7 -0
- package/dist/types/platform-admin-runtime/user/UserSessionListExpansion.vue.d.ts +7 -0
- package/dist/types/platform-admin-runtime/user/useUserSessionRows.d.ts +23 -0
- package/dist/types/platform-admin-runtime/user/userOnlineStatusStore.d.ts +11 -0
- package/dist/types/platform-admin-runtime/userModulePageEnhancement.d.ts +7 -0
- package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +4 -2
- package/dist/types/platform-components/DetailRelationListPanel.vue.d.ts +13 -0
- package/dist/types/{views/EmployeeDetailWorkspaceView.vue.d.ts → platform-components/DrawerTitleActions.vue.d.ts} +2 -1
- package/dist/types/platform-components/FileTransferUploader.vue.d.ts +7 -0
- package/dist/types/platform-components/ModuleActionButton.vue.d.ts +5 -2
- package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +17 -0
- package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +3 -0
- package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +8 -3
- package/dist/types/platform-components/RecordDetailFields.vue.d.ts +5 -0
- package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +11 -3
- package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +14 -6
- package/dist/types/platform-components/RecordExpandedSubtable.vue.d.ts +3 -0
- package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +4 -0
- package/dist/types/platform-components/RecordFormFields.vue.d.ts +29 -1
- package/dist/types/platform-components/RecordImageFileReferencePreview.vue.d.ts +11 -0
- package/dist/types/platform-components/RecordListExpansionSurface.vue.d.ts +13 -0
- package/dist/types/platform-components/RecordListExplorer.vue.d.ts +4 -2
- package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +2 -1
- package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +12 -2
- package/dist/types/platform-components/RecordPicker.vue.d.ts +10 -2
- package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +33 -5
- package/dist/types/{views/EmployeeEmploymentDrawer.vue.d.ts → platform-components/RecordRelationTabs.vue.d.ts} +7 -7
- package/dist/types/platform-components/RecordSelectionCheckbox.vue.d.ts +13 -0
- package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +12 -4
- package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +4 -2
- package/dist/types/platform-components/UserSessionExpandedSubtable.vue.d.ts +2 -0
- package/dist/types/platform-components/drawerTitleActions.d.ts +11 -0
- package/dist/types/platform-components/index.d.ts +11 -3
- package/dist/types/platform-components/optionFieldOptionCache.d.ts +3 -0
- package/dist/types/platform-components/recordDetailFieldModel.d.ts +2 -0
- package/dist/types/platform-components/recordFormFieldModel.d.ts +67 -4
- package/dist/types/platform-components/recordPickerConstraints.d.ts +2 -0
- package/dist/types/platform-components/recordPickerModel.d.ts +6 -2
- package/dist/types/platform-workbench/Workbench.vue.d.ts +2 -2
- package/dist/types/platform-workbench/index.d.ts +3 -2
- package/dist/types/platform-workbench/legacyPageHostTypeCompatibility.d.ts +6 -0
- package/dist/types/platform-workbench/menuNavigation.d.ts +24 -2
- package/dist/types/platform-workbench/pageCacheKey.d.ts +2 -0
- package/dist/types/platform-workbench/pageHostRegistry.d.ts +1 -1
- package/dist/types/platform-workbench/workbenchNavigation.d.ts +14 -1
- package/dist/types/views/PasswordPolicyPreview.vue.d.ts +7 -0
- package/dist/types/views/RoleAccountGrantDrawer.vue.d.ts +1 -0
- package/dist/types/views/RoleAuthorizationView.vue.d.ts +2 -0
- package/dist/types/views/RoleEmploymentGrantDrawer.vue.d.ts +1 -0
- package/dist/types/views/{EmployeeManagementView.vue.d.ts → UserDetailRouteView.vue.d.ts} +3 -2
- package/dist/types/views/UserManagementListView.vue.d.ts +3 -0
- package/dist/types/views/UserManagementView.vue.d.ts +1 -6
- package/dist/types/views/WorkspaceRouteView.vue.d.ts +3 -0
- package/dist/types/views/menuManagementState.d.ts +2 -0
- package/dist/types/views/userDetailStateModel.d.ts +1 -3
- package/dist/types/views/userManagementRouteState.d.ts +11 -0
- package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +3 -0
- package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiInput.vue.d.ts +2 -1
- package/dist/types/vue-ui-antdv/components/UiRadioGroup.vue.d.ts +18 -0
- package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +2 -2
- package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +4 -2
- package/dist/types/vue-ui-antdv/index.d.ts +4 -2
- package/dist/types/web-contracts/index.d.ts +303 -12
- package/dist/types/web-core/businessNotifications.d.ts +3 -2
- package/dist/types/web-core/index.d.ts +1 -0
- package/dist/types/web-core/module/abilities.d.ts +7 -7
- package/dist/types/web-core/module/moduleContext.d.ts +5 -3
- package/dist/types/web-core/module/runtimeContext.d.ts +2 -0
- package/dist/types/web-core/module/staticModuleClient.d.ts +36 -10
- package/dist/types/web-core/referenceResolveClient.d.ts +11 -0
- package/dist/workspaceViewSessions-B5g4M0rT.js +51 -0
- package/dist/workspaceViews-CkERhK0K.js +8748 -0
- package/package.json +1 -1
- package/dist/EmployeeDetailWorkspaceView-DswEDSxH.js +0 -14
- package/dist/EmployeeManagementView-C9STtw08.js +0 -1777
- package/dist/RoleManagementView-D43pUCxi.js +0 -1926
- package/dist/SystemUserManagementView-D75_ylYk.js +0 -758
- package/dist/UserDetailWorkspaceView-BCST01d2.js +0 -17
- package/dist/UserManagementView-CcdvDo_y.js +0 -964
- package/dist/pageRealtime-EAiGWKEo.js +0 -227
- package/dist/types/views/EmployeeDetailContent.vue.d.ts +0 -64
- package/dist/types/views/employeeDetailStateModel.d.ts +0 -39
- package/dist/types/views/employeeDetailWorkspaceSession.d.ts +0 -16
- package/dist/types/views/employeeDetailWorkspaceView.d.ts +0 -4
- package/dist/types/views/fieldUiControlManagementState.d.ts +0 -76
- package/dist/types/views/moduleManagementState.d.ts +0 -76
- package/dist/types/views/positionManagementState.d.ts +0 -218
- package/dist/types/views/tenantManagementState.d.ts +0 -74
- package/dist/types/views/useEmployeeEmploymentRows.d.ts +0 -20
- package/dist/types/views/userDetailWorkspaceSession.d.ts +0 -14
- package/dist/types/views/userDetailWorkspaceView.d.ts +0 -4
- package/dist/useUserSessionRows-DCpUZCzN.js +0 -128
- package/dist/workspaceViewSessions-Dj1LjdG1.js +0 -4984
- /package/dist/types/views/{FieldUiControlManagementView.vue.d.ts → DynamicModuleRouteView.vue.d.ts} +0 -0
- /package/dist/types/views/{ModuleManagementView.vue.d.ts → ExternalRouteView.vue.d.ts} +0 -0
- /package/dist/types/views/{PasswordManagementView.vue.d.ts → ModuleOpenApiRouteView.vue.d.ts} +0 -0
- /package/dist/types/views/{PositionManagementView.vue.d.ts → OpenApiCatalogRouteView.vue.d.ts} +0 -0
- /package/dist/types/views/{TenantManagementView.vue.d.ts → RouteDiagnosticsView.vue.d.ts} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ModuleContext } from '../../web-core/index';
|
|
2
|
+
interface DetailController<TRecord> {
|
|
3
|
+
beginLoad(record: TRecord, mode: 'edit' | 'view'): void;
|
|
4
|
+
resolveLoad(record: TRecord): void;
|
|
5
|
+
failLoad(): void;
|
|
6
|
+
finishLoad(): void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Serializes record-detail requests for one module-page session.
|
|
10
|
+
*
|
|
11
|
+
* Loading a second record (or closing the detail) invalidates all earlier
|
|
12
|
+
* completions. This is deliberately independent of the visual host so list,
|
|
13
|
+
* card and drawer surfaces cannot accidentally diverge on request races.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useRecordEditingSession<TRecord extends {
|
|
16
|
+
id?: unknown;
|
|
17
|
+
}>(context: ModuleContext<TRecord>, detail: DetailController<TRecord>, onLoaded: () => void): {
|
|
18
|
+
invalidatePendingRequests: () => void;
|
|
19
|
+
openRecord: (record: TRecord, mode: "edit" | "view", skipLoad?: boolean) => Promise<void>;
|
|
20
|
+
openRecycleBinRecord: (record: TRecord) => Promise<void>;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
hasRecord: boolean;
|
|
7
|
-
saving: boolean;
|
|
8
|
-
loading: boolean;
|
|
9
|
-
loadFailed: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function shouldCommitDynamicModuleDetailRequest(state: DynamicModuleDetailRequestState): boolean;
|
|
12
|
-
export declare function canMutateDynamicModuleDetail(state: DynamicModuleDetailMutationState): boolean;
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Standard module pages use `moduleDetailStateModel`. Remove after
|
|
3
|
+
* extensions built before the rename have migrated their state-model imports.
|
|
4
|
+
*/
|
|
5
|
+
export { canMutateModuleDetail as canMutateDynamicModuleDetail, shouldCommitModuleDetailRequest as shouldCommitDynamicModuleDetailRequest, type ModuleDetailMutationState as DynamicModuleDetailMutationState, type ModuleDetailRequestState as DynamicModuleDetailRequestState, } from './moduleDetailStateModel';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FormulaRuntime, type FormulaRecord } from '../formula/FormulaRuntime';
|
|
2
|
+
import type { ResolvedFormComputeRuleDescriptor } from '../web-contracts/index';
|
|
3
|
+
/**
|
|
4
|
+
* Applies server-issued main-form calculation rules to a draft after one or
|
|
5
|
+
* more user-originated field changes.
|
|
6
|
+
*
|
|
7
|
+
* The coordinator owns propagation, rather than the field component or the
|
|
8
|
+
* FormulaRuntime: fields remain plain inputs and FormulaRuntime remains a
|
|
9
|
+
* pure evaluator. A rule runs at most once in a pass, which makes malformed
|
|
10
|
+
* cyclic descriptor graphs fail closed instead of repeatedly overwriting a
|
|
11
|
+
* user's draft.
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormComputeCoordinator {
|
|
14
|
+
private readonly runtime;
|
|
15
|
+
private readonly rules;
|
|
16
|
+
constructor(rules: readonly ResolvedFormComputeRuleDescriptor[] | undefined, runtime?: FormulaRuntime);
|
|
17
|
+
applyAfterChange<TDraft extends FormulaRecord>(draft: TDraft, changedFields: readonly string[]): TDraft;
|
|
18
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
export { default as ModulePageHost } from './ModulePageHost.vue';
|
|
1
2
|
export { default as DynamicModuleHost } from './DynamicModuleHost.vue';
|
|
2
3
|
export { default as DynamicModulePage } from './DynamicModulePage.vue';
|
|
3
4
|
export { default as DynamicModuleWorkspaceDetailView } from './DynamicModuleWorkspaceDetailView.vue';
|
|
4
5
|
export { customerDescriptor } from './mockDescriptor';
|
|
5
|
-
export { configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, resolveModulePageEnhancement, } from './modulePageEnhancements';
|
|
6
|
+
export { configureModulePageEnhancementContributions, configureModulePageEnhancements, createModulePageEnhancementRegistry, createReadonlyCardRecordSnapshot, modulePageWorkspaceViews, resolveModulePageEnhancement, } from './modulePageEnhancements';
|
|
6
7
|
export { provideModulePageNavigation, useModulePageNavigation } from './modulePageNavigation';
|
|
7
8
|
export { createModulePageListRefreshRegistry, modulePageListRefreshRegistry, refreshModulePageList, } from './modulePageListRefresh';
|
|
8
9
|
export type { ModulePageListRefreshRegistry } from './modulePageListRefresh';
|
|
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';
|
|
10
|
+
export type { ModuleListEnhancement, ModulePageListRowExpansion, ModulePageListRowExpansionContext, ModuleDetailEnhancement, ModulePageFormEnhancement, ModulePageFormContribution, ModulePageFormContributionContext, ModulePageFormContributionState, ModulePageFormFieldPolicy, ModulePageFormContributionLocation, ModulePageFormContributionValidity, ModulePageFormSurface, ModuleCardEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageEnhancement, ModulePageEnhancementActivationContext, ModulePageEnhancementRegistry, ModulePageEnhancementTarget, ModulePageCardAssistant, ModulePageCardAssistantContext, ModulePageCardAssistantPlacement, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from './modulePageEnhancements';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UserPreferenceStore } from '../web-core/index';
|
|
2
|
+
export declare function listPageSizePreferenceKey(moduleAlias: string): string;
|
|
3
|
+
export declare function normalizeListPageSize(value: unknown, fallback?: number): number;
|
|
4
|
+
/**
|
|
5
|
+
* A module-list preference is presentation-only. It deliberately remains
|
|
6
|
+
* separate from the menu UI config and query template, which continue to own
|
|
7
|
+
* authorized page shape and server-side criteria.
|
|
8
|
+
*/
|
|
9
|
+
export declare function restoreListPageSize(store: UserPreferenceStore, moduleAlias: string, fallback?: number): Promise<number>;
|
|
10
|
+
export declare function saveListPageSize(store: UserPreferenceStore, moduleAlias: string, pageSize: number): Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ModuleDetailRequestState {
|
|
2
|
+
activeRequestSequence: number;
|
|
3
|
+
requestSequence: number;
|
|
4
|
+
}
|
|
5
|
+
export interface ModuleDetailMutationState {
|
|
6
|
+
hasRecord: boolean;
|
|
7
|
+
saving: boolean;
|
|
8
|
+
loading: boolean;
|
|
9
|
+
loadFailed: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function shouldCommitModuleDetailRequest(state: ModuleDetailRequestState): boolean;
|
|
12
|
+
export declare function canMutateModuleDetail(state: ModuleDetailMutationState): boolean;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Component } from 'vue';
|
|
2
|
-
import type { PageLayoutMode, RouteQueryValue } from '../web-contracts/index';
|
|
2
|
+
import type { PageDescriptor, PageLayoutMode, RouteQueryValue } from '../web-contracts/index';
|
|
3
3
|
import type { ModuleContext } from '../web-core/index';
|
|
4
|
-
import type { RecordActionItem, RecordQueryListColumn, QueryListRecord } from '../platform-components/index';
|
|
4
|
+
import type { RecordActionItem, RecordFormFieldState, RecordFormFieldValue, RecordQueryListColumn, QueryListRecord } from '../platform-components/index';
|
|
5
|
+
import type { DrawerTitleAction } from '../platform-components/index';
|
|
5
6
|
/**
|
|
6
7
|
* Frontend-owned, constrained composition for a descriptor-driven module page.
|
|
7
8
|
*
|
|
@@ -12,8 +13,21 @@ import type { RecordActionItem, RecordQueryListColumn, QueryListRecord } from '.
|
|
|
12
13
|
export interface ModulePageEnhancement {
|
|
13
14
|
id: string;
|
|
14
15
|
target: ModulePageEnhancementTarget;
|
|
16
|
+
/**
|
|
17
|
+
* Optional frontend-owned activation hook for a descriptor page. It may load
|
|
18
|
+
* auxiliary, already-authorized platform facts used by the enhancement, but
|
|
19
|
+
* never receives a backend component name or executable descriptor payload.
|
|
20
|
+
*/
|
|
21
|
+
activate?(context: ModulePageEnhancementActivationContext): void | (() => void);
|
|
15
22
|
list?: ModuleListEnhancement;
|
|
16
23
|
detail?: ModuleDetailEnhancement;
|
|
24
|
+
/**
|
|
25
|
+
* Frontend-owned editor content mounted at a typed standard-form boundary.
|
|
26
|
+
* The backend descriptor never selects a component or supplies executable UI.
|
|
27
|
+
*/
|
|
28
|
+
form?: ModulePageFormEnhancement;
|
|
29
|
+
/** Frontend-owned assistant persistently mounted in the standard record card. */
|
|
30
|
+
card?: ModuleCardEnhancement;
|
|
17
31
|
/**
|
|
18
32
|
* The presentation selected when a user invokes the standard record-view intent.
|
|
19
33
|
*
|
|
@@ -22,28 +36,143 @@ export interface ModulePageEnhancement {
|
|
|
22
36
|
* retains that flow's action checks, shell and lifecycle.
|
|
23
37
|
*/
|
|
24
38
|
recordView?: ModulePageRecordView;
|
|
25
|
-
workspaceViews?: ModulePageWorkspaceView[];
|
|
39
|
+
workspaceViews?: ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
|
|
26
40
|
}
|
|
27
41
|
export interface ModulePageEnhancementTarget {
|
|
28
42
|
moduleAlias: string;
|
|
29
43
|
/** Omit to apply to every list view of the module. */
|
|
30
44
|
viewCode?: string;
|
|
31
45
|
}
|
|
46
|
+
export interface ModulePageEnhancementActivationContext {
|
|
47
|
+
module: ModuleContext<QueryListRecord>;
|
|
48
|
+
}
|
|
32
49
|
export interface ModuleListEnhancement {
|
|
33
50
|
actions?: ModulePageActionContribution[];
|
|
34
51
|
columns?: ModulePageColumnContribution[];
|
|
35
52
|
/** Replaces the visual renderer of a descriptor-owned column without adding a duplicate column. */
|
|
36
53
|
cellComponents?: ModulePageCellComponentContribution[];
|
|
54
|
+
/**
|
|
55
|
+
* Application-owned content for the platform list's expanded-row boundary.
|
|
56
|
+
*
|
|
57
|
+
* This is deliberately separate from descriptor relation expansions: use it
|
|
58
|
+
* for authorized business projections that are not a standard child relation.
|
|
59
|
+
* The runtime owns expansion state and table rendering; the application owns
|
|
60
|
+
* only the trusted Vue component and its auxiliary reads/actions.
|
|
61
|
+
*/
|
|
62
|
+
rowExpansion?: ModulePageListRowExpansion;
|
|
37
63
|
/** Width of the list's fixed operation column; defaults to the platform compact width. */
|
|
38
64
|
actionColumnWidth?: string | number;
|
|
39
65
|
rowActions?: ModulePageRecordActionContribution[];
|
|
40
66
|
batchActions?: ModulePageBatchActionContribution[];
|
|
41
67
|
}
|
|
68
|
+
export interface ModulePageListRowExpansion {
|
|
69
|
+
key: string;
|
|
70
|
+
component: Component;
|
|
71
|
+
}
|
|
72
|
+
export interface ModulePageListRowExpansionContext {
|
|
73
|
+
module: ModuleContext<QueryListRecord>;
|
|
74
|
+
/** Detached snapshot of the record being expanded. */
|
|
75
|
+
record: Readonly<QueryListRecord>;
|
|
76
|
+
expanded: boolean;
|
|
77
|
+
/** Reloads the standard list without giving the extension ownership of its query state. */
|
|
78
|
+
refreshList(): void;
|
|
79
|
+
}
|
|
42
80
|
/** Actions appended to the standard record-detail operation area in view mode. */
|
|
43
81
|
export interface ModuleDetailEnhancement {
|
|
44
82
|
actions?: ModulePageRecordActionContribution[];
|
|
45
83
|
sections?: ModulePageDetailSection[];
|
|
46
84
|
}
|
|
85
|
+
/** A controlled addition to the descriptor-owned standard form, not a replacement editor. */
|
|
86
|
+
export interface ModulePageFormEnhancement {
|
|
87
|
+
contributions: ModulePageFormContribution[];
|
|
88
|
+
fieldPolicies?: ModulePageFormFieldPolicy[];
|
|
89
|
+
}
|
|
90
|
+
/** The platform-owned record-card form surface, regardless of its outer page shell. */
|
|
91
|
+
export type ModulePageFormSurface = 'record-card';
|
|
92
|
+
/**
|
|
93
|
+
* A contribution can target an entire semantic form section or the immediate
|
|
94
|
+
* boundary before/after one descriptor-owned field. The host owns all other
|
|
95
|
+
* rendering, codecs, permissions, requests and save lifecycle.
|
|
96
|
+
*/
|
|
97
|
+
export interface ModulePageFormContribution {
|
|
98
|
+
key: string;
|
|
99
|
+
component: Component;
|
|
100
|
+
location: ModulePageFormContributionLocation;
|
|
101
|
+
}
|
|
102
|
+
export type ModulePageFormContributionLocation = {
|
|
103
|
+
surface: ModulePageFormSurface;
|
|
104
|
+
section: 'before-fields' | 'after-fields';
|
|
105
|
+
} | {
|
|
106
|
+
surface: ModulePageFormSurface;
|
|
107
|
+
fieldName: string;
|
|
108
|
+
placement: 'before' | 'after';
|
|
109
|
+
};
|
|
110
|
+
/** The only form state exposed to application-owned editor contributions. */
|
|
111
|
+
export interface ModulePageFormContributionContext {
|
|
112
|
+
mode: 'create' | 'edit' | 'view';
|
|
113
|
+
/** A detached, deeply frozen draft snapshot. */
|
|
114
|
+
draft: Readonly<Record<string, unknown>>;
|
|
115
|
+
/** Descriptor-resolved field states; never a mutable draft or HTTP client. */
|
|
116
|
+
fields: readonly Readonly<RecordFormFieldState>[];
|
|
117
|
+
/** The field at a field-boundary location, otherwise undefined. */
|
|
118
|
+
field?: Readonly<RecordFormFieldState>;
|
|
119
|
+
setField(fieldName: string, value: RecordFormFieldValue): void;
|
|
120
|
+
formSessionKey: number;
|
|
121
|
+
/** Reports only this contribution's validation fact to the standard save boundary. */
|
|
122
|
+
reportValidity(validity: ModulePageFormContributionValidity): void;
|
|
123
|
+
}
|
|
124
|
+
export interface ModulePageFormContributionValidity {
|
|
125
|
+
valid: boolean;
|
|
126
|
+
errors?: Record<string, string>;
|
|
127
|
+
}
|
|
128
|
+
/** Read-only facts consumable by a descriptor-field presentation policy. */
|
|
129
|
+
export interface ModulePageFormContributionState {
|
|
130
|
+
mode: 'create' | 'edit' | 'view';
|
|
131
|
+
draft: Readonly<Record<string, unknown>>;
|
|
132
|
+
fields: readonly Readonly<RecordFormFieldState>[];
|
|
133
|
+
formSessionKey: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* A typed visual policy around one descriptor-owned field. The platform keeps
|
|
137
|
+
* transport, file upload and field codecs inside the standard renderer.
|
|
138
|
+
*/
|
|
139
|
+
export interface ModulePageFormFieldPolicy {
|
|
140
|
+
fieldName: string;
|
|
141
|
+
visible?(state: ModulePageFormContributionState): boolean;
|
|
142
|
+
imageUploadHint?(state: ModulePageFormContributionState): string | undefined;
|
|
143
|
+
imageUploadAdvisory?(state: ModulePageFormContributionState): ((file: File) => string | undefined | Promise<string | undefined>) | undefined;
|
|
144
|
+
}
|
|
145
|
+
/** Frontend-owned auxiliary UI adjacent to the descriptor-owned record card. */
|
|
146
|
+
export interface ModuleCardEnhancement {
|
|
147
|
+
assistant: ModulePageCardAssistant;
|
|
148
|
+
}
|
|
149
|
+
export interface ModulePageCardAssistant {
|
|
150
|
+
/** A source component; backend descriptors never select or name it. */
|
|
151
|
+
component: Component;
|
|
152
|
+
/** Explicitly anchors the component to the standard record-card boundary. */
|
|
153
|
+
placement: ModulePageCardAssistantPlacement;
|
|
154
|
+
}
|
|
155
|
+
export interface ModulePageCardAssistantPlacement {
|
|
156
|
+
/** `inside` shares the record-card content scrollbar; `outside` remains a sibling surface. */
|
|
157
|
+
boundary: 'inside' | 'outside';
|
|
158
|
+
/** Position relative to that boundary; never inserted between descriptor-owned fields. */
|
|
159
|
+
position: 'top' | 'bottom';
|
|
160
|
+
}
|
|
161
|
+
export interface ModulePageCardAssistantContext {
|
|
162
|
+
module: ModuleContext<QueryListRecord>;
|
|
163
|
+
mode: 'view' | 'create' | 'edit';
|
|
164
|
+
/** Detached and deeply frozen current record or form draft. It may be absent before selection. */
|
|
165
|
+
record?: Readonly<Record<string, unknown>>;
|
|
166
|
+
/**
|
|
167
|
+
* Detached snapshot of records already loaded by the standard explorer.
|
|
168
|
+
* This never triggers an auxiliary request and may be bounded by the explorer.
|
|
169
|
+
*/
|
|
170
|
+
loadedRecords: readonly Readonly<Record<string, unknown>>[];
|
|
171
|
+
formSessionKey: number;
|
|
172
|
+
saving: boolean;
|
|
173
|
+
loading: boolean;
|
|
174
|
+
loadFailed: boolean;
|
|
175
|
+
}
|
|
47
176
|
/** Application-owned presentation of the platform's standard record-view intent. */
|
|
48
177
|
export interface ModulePageRecordView {
|
|
49
178
|
/**
|
|
@@ -87,7 +216,7 @@ export interface ModulePageDetailSection {
|
|
|
87
216
|
}
|
|
88
217
|
/** Business content rendered inside the platform-owned standard view drawer. */
|
|
89
218
|
export interface ModulePageDetailDrawer {
|
|
90
|
-
/** The component receives only the documented
|
|
219
|
+
/** The component receives only the documented read-only ModulePageRecordViewContext prop. */
|
|
91
220
|
component: Component;
|
|
92
221
|
/** Keeps the platform drawer shell while allowing dense business views more room. */
|
|
93
222
|
width?: number | string;
|
|
@@ -115,7 +244,10 @@ export interface ModulePageDrawer {
|
|
|
115
244
|
/** The component receives only the documented ModulePageDrawerContext prop. */
|
|
116
245
|
component: Component;
|
|
117
246
|
}
|
|
118
|
-
|
|
247
|
+
/** A business-owned action rendered by the platform in a semantic drawer region. */
|
|
248
|
+
export type ModulePageDrawerAction = DrawerTitleAction;
|
|
249
|
+
/** Matches the Workbench input boundary; `parse` remains responsible for route-value validation. */
|
|
250
|
+
export type ModulePageWorkspaceViewInput = object;
|
|
119
251
|
/** A business-owned view with stable, serializable identity. */
|
|
120
252
|
export interface ModulePageWorkspaceView<TInput extends ModulePageWorkspaceViewInput = ModulePageWorkspaceViewInput> {
|
|
121
253
|
type: string;
|
|
@@ -134,6 +266,29 @@ export interface ModulePageDrawerContext {
|
|
|
134
266
|
scope?: ModulePageScopeContext;
|
|
135
267
|
/** Reloads only the current list query and preserves its query and editor state. */
|
|
136
268
|
refreshList(): void;
|
|
269
|
+
/** Invalidates frontend-owned detail sections for the current record. */
|
|
270
|
+
refreshDetailExtensions(): void;
|
|
271
|
+
/** Blocks the drawer shell's close affordances while a contributed operation is in flight. */
|
|
272
|
+
setCloseBlocked(blocked: boolean): void;
|
|
273
|
+
close(): void;
|
|
274
|
+
reload(): void;
|
|
275
|
+
/** Replaces contextual actions beside the drawer title; actions are cleared with the drawer. */
|
|
276
|
+
setTitleActions(actions: ModulePageDrawerAction[]): void;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Context for a custom body inside the platform-owned record-view shell.
|
|
280
|
+
*
|
|
281
|
+
* A record-view body does not own the drawer chrome. In particular it cannot
|
|
282
|
+
* replace title actions or block the shell from closing; those facilities are
|
|
283
|
+
* reserved for an action-opened ModulePageDrawer, whose operation lifecycle is
|
|
284
|
+
* explicitly governed by the platform drawer runtime.
|
|
285
|
+
*/
|
|
286
|
+
export interface ModulePageRecordViewContext {
|
|
287
|
+
module: ModuleContext<QueryListRecord>;
|
|
288
|
+
record: QueryListRecord;
|
|
289
|
+
scope?: ModulePageScopeContext;
|
|
290
|
+
refreshList(): void;
|
|
291
|
+
refreshDetailExtensions(): void;
|
|
137
292
|
close(): void;
|
|
138
293
|
reload(): void;
|
|
139
294
|
}
|
|
@@ -145,6 +300,8 @@ export interface ModulePageActionContext {
|
|
|
145
300
|
refreshList(): void;
|
|
146
301
|
openDrawer(drawer: ModulePageDrawer): void;
|
|
147
302
|
openWorkspaceTab<TInput extends ModulePageWorkspaceViewInput>(view: ModulePageWorkspaceView<TInput>, input: TInput): void;
|
|
303
|
+
/** Opens an existing, platform-owned page descriptor through the Workbench. */
|
|
304
|
+
openPage(descriptor: PageDescriptor): void;
|
|
148
305
|
reload(): void;
|
|
149
306
|
}
|
|
150
307
|
/** Read-only scope state supplied by a descriptor-owned scoped list workspace. */
|
|
@@ -169,14 +326,31 @@ export interface ModulePageDetailSectionContext {
|
|
|
169
326
|
record: QueryListRecord;
|
|
170
327
|
/** Reloads only the current list query and preserves its query and editor state. */
|
|
171
328
|
refreshList(): void;
|
|
329
|
+
/** Monotonic invalidation fact for frontend-owned detail data. */
|
|
330
|
+
refreshKey: number;
|
|
172
331
|
reload(): void;
|
|
173
332
|
}
|
|
174
333
|
export interface ModulePageEnhancementRegistry {
|
|
175
334
|
resolve(moduleAlias: string, viewCode?: string): ModulePageEnhancement | undefined;
|
|
176
|
-
workspaceViews(): readonly ModulePageWorkspaceView[];
|
|
335
|
+
workspaceViews(): readonly ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
|
|
177
336
|
}
|
|
178
337
|
export declare function createModulePageEnhancementRegistry(enhancements: readonly ModulePageEnhancement[]): ModulePageEnhancementRegistry;
|
|
179
|
-
/**
|
|
338
|
+
/**
|
|
339
|
+
* Replaces one owner's contribution set while retaining every other owner.
|
|
340
|
+
*
|
|
341
|
+
* This is the composition API for first-party defaults and consuming
|
|
342
|
+
* applications. Multiple owners may contribute to the same module target;
|
|
343
|
+
* their independent regions are merged and conflicting regions fail fast.
|
|
344
|
+
*/
|
|
345
|
+
export declare function configureModulePageEnhancementContributions(owner: string, enhancements: readonly ModulePageEnhancement[]): void;
|
|
346
|
+
/**
|
|
347
|
+
* Legacy application composition API. It replaces only the legacy
|
|
348
|
+
* application's contribution set; first-party and named-owner defaults remain
|
|
349
|
+
* registered. New composition roots should use
|
|
350
|
+
* configureModulePageEnhancementContributions(owner, enhancements).
|
|
351
|
+
*/
|
|
180
352
|
export declare function configureModulePageEnhancements(enhancements: readonly ModulePageEnhancement[]): void;
|
|
181
353
|
export declare function resolveModulePageEnhancement(moduleAlias: string, viewCode?: string): ModulePageEnhancement | undefined;
|
|
182
354
|
export declare function modulePageWorkspaceViews(): readonly ModulePageWorkspaceView<ModulePageWorkspaceViewInput>[];
|
|
355
|
+
/** Creates the only record shape that a card assistant may receive. */
|
|
356
|
+
export declare function createReadonlyCardRecordSnapshot(record: Record<string, unknown>): Readonly<Record<string, unknown>>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ResolvedPageNavigatorLevelDescriptor } from '../web-contracts/index';
|
|
2
|
+
/**
|
|
3
|
+
* A tenant user's sole tenant is a fixed request scope, while a system user has no session
|
|
4
|
+
* tenant and may choose from the tenant records allowed by the source REFERENCE action.
|
|
5
|
+
*/
|
|
6
|
+
export declare function shouldHideSingleResultNavigator(level: ResolvedPageNavigatorLevelDescriptor, singleResult: boolean, sessionTenantId: string | undefined): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ResolvedPageContextBindingDescriptor } from '../web-contracts/index';
|
|
2
2
|
export type PageContextSourceValues = Partial<Record<ResolvedPageContextBindingDescriptor['source'], Record<string, unknown>>>;
|
|
3
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[];
|
|
4
|
+
export declare function externalPageContextCriteriaKeys(bindings: readonly ResolvedPageContextBindingDescriptor[], target: ResolvedPageContextBindingDescriptor['target'], targetNavigatorLevelKey?: string): string[];
|
|
5
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;
|
|
6
|
+
export declare function resolvePageContextTargetValues(bindings: readonly ResolvedPageContextBindingDescriptor[], target: ResolvedPageContextBindingDescriptor['target'], sourceValues: PageContextSourceValues, targetNavigatorLevelKey?: string): Record<string, unknown> | undefined;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export type RecordDetailMode = 'create' | 'edit' | 'view';
|
|
2
|
+
export interface RecordDetailCreateOptions<TRecord> {
|
|
3
|
+
/**
|
|
4
|
+
* The already selected detail to reinstate if the user abandons this new
|
|
5
|
+
* draft. It is deliberately held outside `record`: while creating, the
|
|
6
|
+
* detail surface must not accidentally expose actions for the prior record.
|
|
7
|
+
*/
|
|
8
|
+
restoreRecord?: TRecord;
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
11
|
* State transitions shared by descriptor-driven record detail surfaces.
|
|
4
12
|
* Containers own their layout; this controller owns only one record's
|
|
@@ -18,7 +26,7 @@ export declare function useRecordDetailController<TRecord extends Record<string,
|
|
|
18
26
|
resolveLoad: (next: TRecord) => void;
|
|
19
27
|
failLoad: () => void;
|
|
20
28
|
finishLoad: () => void;
|
|
21
|
-
beginCreate: (initial: TRecord) => void;
|
|
29
|
+
beginCreate: (initial: TRecord, options?: RecordDetailCreateOptions<TRecord>) => void;
|
|
22
30
|
beginEdit: () => boolean;
|
|
23
31
|
cancelEdit: () => void;
|
|
24
32
|
applySaved: (next: TRecord) => void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FormulaRuntime, type FormulaRecord } from '../formula/FormulaRuntime';
|
|
2
|
+
import type { ResolvedDetailRelationFormComputeRuleDescriptor } from '../web-contracts/index';
|
|
3
|
+
/** Propagates server-compiled calculations after a user changes one embedded child row. */
|
|
4
|
+
export declare class RelationFormComputeCoordinator {
|
|
5
|
+
private readonly rules;
|
|
6
|
+
private readonly runtime;
|
|
7
|
+
constructor(rules: readonly ResolvedDetailRelationFormComputeRuleDescriptor[] | undefined, runtime?: FormulaRuntime);
|
|
8
|
+
applyAfterChange<TRow extends FormulaRecord>(rows: readonly TRow[], changedRowKey: string, keyOf: (row: TRow) => string, changedField: string): TRow[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { FormulaProgram, ViewFieldValueType } from '../web-contracts/index';
|
|
2
|
+
export type FormulaRecord = Record<string, unknown>;
|
|
3
|
+
export type FormulaComputePatch = Readonly<Record<string, FormulaValue>>;
|
|
4
|
+
export interface FormulaComputeResult {
|
|
5
|
+
readonly patch: FormulaComputePatch;
|
|
6
|
+
readonly changedFields: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Browser-local executor for server-issued FormulaProgram values.
|
|
10
|
+
*
|
|
11
|
+
* It deliberately accepts no source expression. Unknown program versions, profiles and node shapes fail closed.
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormulaRuntime {
|
|
14
|
+
evaluateWebUi(program: FormulaProgram | undefined, record: FormulaRecord): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Evaluates one server-issued FORM_COMPUTE assignment against a draft without mutating it.
|
|
17
|
+
* Applying the returned patch, ordering rules, and user-value ownership remain form-runtime concerns.
|
|
18
|
+
*/
|
|
19
|
+
evaluateFormCompute(program: FormulaProgram | undefined, draft: FormulaRecord, targetValueType?: ViewFieldValueType): FormulaComputeResult;
|
|
20
|
+
/** Evaluates a row-to-row assignment in the changed row's scope without mutating any drafts. */
|
|
21
|
+
evaluateRelationFormCompute(program: FormulaProgram | undefined, draft: FormulaRecord, targetField: string, targetValueType?: ViewFieldValueType): FormulaComputeResult;
|
|
22
|
+
private evaluateNode;
|
|
23
|
+
private toBoolean;
|
|
24
|
+
private evaluateComputeNode;
|
|
25
|
+
}
|
|
26
|
+
type FormulaValue = string | number | boolean | null | undefined;
|
|
27
|
+
/** Mirrors FormulaEngine.equalsLoose for the primitive values admitted by the WEB_UI profile. */
|
|
28
|
+
export declare function equalsFormulaLoose(left: unknown, right: unknown): boolean;
|
|
29
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { ModulePageDrawerContext } from '../../dynamic-page-runtime/index';
|
|
1
2
|
type __VLS_Props = {
|
|
2
|
-
|
|
3
|
-
title?: string;
|
|
3
|
+
context: ModulePageDrawerContext;
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
6
|
declare const _default: typeof __VLS_export;
|
|
@@ -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,
|
|
9
|
+
export { isPlatformAdminRoutePage, 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';
|
|
@@ -14,6 +14,8 @@ export interface ModuleOpenApiDocument {
|
|
|
14
14
|
export declare function moduleAliasFromOpenApiPath(pathname: string): string | undefined;
|
|
15
15
|
/** Creates the workbench page contract for one module's authenticated API document. */
|
|
16
16
|
export declare function createModuleOpenApiPageDescriptor(moduleAlias: string, moduleTitle?: string): PageDescriptor;
|
|
17
|
+
/** Creates the authenticated OpenAPI directory as an ordinary workbench page. */
|
|
18
|
+
export declare function createOpenApiCatalogPageDescriptor(): PageDescriptor;
|
|
17
19
|
/** Recognizes the app-owned OpenAPI tab without teaching the shared route resolver about this feature. */
|
|
18
20
|
export declare function isModuleOpenApiPage(descriptor?: PageDescriptor): boolean;
|
|
19
21
|
export declare function isOpenApiCatalogPath(pathname: string): boolean;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ModulePageEnhancement } from '../dynamic-page-runtime/index';
|
|
2
|
+
/**
|
|
3
|
+
* IAM-owned card assistance for the standard password-policy module page.
|
|
4
|
+
* The component is selected by frontend source composition; no backend DSL can inject executable UI.
|
|
5
|
+
*/
|
|
6
|
+
export declare const passwordPolicyPageEnhancement: ModulePageEnhancement;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Component } from 'vue';
|
|
2
2
|
import type { BusinessRoutePageDescriptor, PageDescriptor, PageLayoutMode } from '../web-contracts/index';
|
|
3
3
|
export interface PlatformAdminRoute {
|
|
4
4
|
route: string;
|
|
@@ -11,11 +11,6 @@ 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>;
|
|
19
14
|
export declare const platformAdminModuleRoutes: {
|
|
20
15
|
[k: string]: string;
|
|
21
16
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ModulePageEnhancement } from '../dynamic-page-runtime/index';
|
|
2
|
+
/**
|
|
3
|
+
* Frontend composition for the platform-module descriptor page.
|
|
4
|
+
*
|
|
5
|
+
* These actions deliberately reuse ordinary workspace/page descriptors. The
|
|
6
|
+
* backend UI descriptor only describes the module record; it never chooses a
|
|
7
|
+
* Vue component or arbitrary client-side behavior.
|
|
8
|
+
*/
|
|
9
|
+
export declare const platformModulePageEnhancement: ModulePageEnhancement;
|
package/dist/types/platform-admin-runtime/tenant/TenantApplicationConfigurationDrawer.vue.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModulePageDrawerContext } from '../../dynamic-page-runtime/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
context: ModulePageDrawerContext;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModulePageDetailSectionContext } from '../../dynamic-page-runtime/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
context: ModulePageDetailSectionContext;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModulePageEnhancement } from '../dynamic-page-runtime/index';
|
|
2
|
+
/**
|
|
3
|
+
* IAM-specific presentation around the descriptor-owned tenant CRUD surface.
|
|
4
|
+
* Standard records remain owned by ModulePageHost; this contribution only
|
|
5
|
+
* renders the tenant application's authorized child-resource capability.
|
|
6
|
+
*/
|
|
7
|
+
export declare const tenantModulePageEnhancement: ModulePageEnhancement;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QueryListRecord, RecordQueryListColumn } from '../../platform-components/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
record: QueryListRecord;
|
|
4
|
+
column?: RecordQueryListColumn;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModulePageDrawerContext } from '../../dynamic-page-runtime/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
context: ModulePageDrawerContext;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModulePageListRowExpansionContext } from '../../dynamic-page-runtime/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
context: ModulePageListRowExpansionContext;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { QueryListRecord } from '../../platform-components/index';
|
|
2
|
+
import type { UserSessionView, WebBusinessRealtimeEvent } from '../../web-contracts/index';
|
|
3
|
+
import type { ModuleContext } from '../../web-core/index';
|
|
4
|
+
export interface UserSessionState {
|
|
5
|
+
records: UserSessionView[];
|
|
6
|
+
loading: boolean;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
interface UserSessionRowsOptions {
|
|
10
|
+
context: ModuleContext<QueryListRecord>;
|
|
11
|
+
source: string;
|
|
12
|
+
}
|
|
13
|
+
/** IAM session state used by the standard list's business-owned row expansion. */
|
|
14
|
+
export declare function useUserSessionRows(options: UserSessionRowsOptions): {
|
|
15
|
+
handleUserRowExpand: (record: {
|
|
16
|
+
id?: string;
|
|
17
|
+
}, expanded: boolean) => void;
|
|
18
|
+
handleUserSessionBusinessEvent: (event: WebBusinessRealtimeEvent) => void;
|
|
19
|
+
loadUserSessions: (userId: string | undefined) => void;
|
|
20
|
+
reset: () => void;
|
|
21
|
+
userSessionState: (userId: string | undefined) => UserSessionState;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { UserSessionStatusView } from '../../web-contracts/index';
|
|
2
|
+
/**
|
|
3
|
+
* IAM-owned batch status cache for the standard user list. It deliberately
|
|
4
|
+
* remains outside the generic module runner: "online" is a user-session fact,
|
|
5
|
+
* not a platform record field.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useUserOnlineStatusStore(): {
|
|
8
|
+
observe: (userId: string | undefined) => void;
|
|
9
|
+
statusOf: (userId: string | undefined) => UserSessionStatusView | undefined;
|
|
10
|
+
refresh: (userId: string | undefined) => void;
|
|
11
|
+
};
|