@ximatai/muyun-web-app 0.26.12 → 0.26.14
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/BusinessActivityLogView-BUg5WTm-.js +16 -0
- package/dist/BusinessLogListDrawer-BOTE_7aT.js +825 -0
- package/dist/LoginAuditLogView-DBNtvmIy.js +16 -0
- package/dist/{ModuleActionManagementView-BHEooZ5L.js → ModuleActionManagementView-Bq1VO51Y.js} +207 -206
- package/dist/{ModuleGovernanceView-DB3TWlMy.js → ModuleGovernanceView-B8u4_erd.js} +4036 -3213
- package/dist/RequestErrorLogView-BrtH3ptj.js +16 -0
- package/dist/RoleDetailWorkspaceView-6LW3tLA1.js +1397 -0
- package/dist/RuntimeLogView-s3X5CdHB.js +297 -0
- package/dist/index.css +1 -1
- package/dist/index.js +499 -469
- package/dist/{moduleGovernanceWorkspaceView-C5pqJOEJ.js → moduleGovernanceWorkspaceView-BRgJbUjJ.js} +2 -2
- package/dist/platform-components-Dt859Hbr.js +18627 -0
- package/dist/platform-workbench-DfqFnlm-.js +14701 -0
- package/dist/sse-mGbuCAax.js +187 -0
- package/dist/types/consumer/index.d.ts +7 -0
- package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +2418 -0
- package/dist/types/dynamic-page-runtime/ModulePageBusinessState.vue.d.ts +11 -0
- package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +20 -4
- package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +4643 -0
- package/dist/types/dynamic-page-runtime/ModulePageHostSession.vue.d.ts +43 -0
- package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +2 -2
- package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +3 -0
- package/dist/types/dynamic-page-runtime/ModuleReferenceRecordDetailBrowser.vue.d.ts +42 -0
- package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +2 -2
- package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +2 -2
- package/dist/types/dynamic-page-runtime/TenantScopeExplorer.vue.d.ts +21 -0
- package/dist/types/dynamic-page-runtime/assistantRecordEditorPolicy.d.ts +6 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +1 -1
- package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +5 -0
- package/dist/types/dynamic-page-runtime/composables/useModulePageListSession.d.ts +1 -0
- package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1 -0
- package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +2 -0
- package/dist/types/dynamic-page-runtime/formActionResult.d.ts +2 -0
- package/dist/types/dynamic-page-runtime/index.d.ts +3 -0
- package/dist/types/dynamic-page-runtime/inputValidationActionStatus.d.ts +20 -0
- package/dist/types/dynamic-page-runtime/modulePageAssistantScope.d.ts +8 -0
- package/dist/types/dynamic-page-runtime/modulePageAssistantSurface.d.ts +6 -0
- package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +7 -3
- package/dist/types/dynamic-page-runtime/modulePageUnsavedState.d.ts +10 -0
- package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +1 -0
- package/dist/types/dynamic-page-runtime/recordMutationPayload.d.ts +3 -2
- package/dist/types/dynamic-page-runtime/referenceRecordProjection.d.ts +6 -0
- package/dist/types/dynamic-page-runtime/sessionViewBindings.d.ts +3 -0
- package/dist/types/dynamic-page-runtime/sourceReferencePickerConfig.d.ts +26 -0
- package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +1833 -0
- package/dist/types/dynamic-page-runtime/useTenantScopeController.d.ts +19 -0
- package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +5 -0
- package/dist/types/platform-admin-runtime/role/roleScopeSelectionClient.d.ts +52 -0
- package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +13 -2
- package/dist/types/platform-components/DictionaryOptionDialog.vue.d.ts +37 -0
- package/dist/types/platform-components/DictionaryOptionDialogChoiceList.vue.d.ts +21 -0
- package/dist/types/platform-components/DictionaryPicker.vue.d.ts +47 -0
- package/dist/types/platform-components/DictionaryRadioGroup.vue.d.ts +20 -0
- package/dist/types/platform-components/EmployeePicker.vue.d.ts +40 -0
- package/dist/types/platform-components/FileTransferUploader.vue.d.ts +1 -1
- package/dist/types/platform-components/ObjectPickerInput.vue.d.ts +34 -0
- package/dist/types/platform-components/QueryCriteriaComposer.vue.d.ts +29 -0
- package/dist/types/platform-components/QueryCriteriaGroupEditor.vue.d.ts +36 -0
- package/dist/types/platform-components/QueryValueEditor.vue.d.ts +33 -0
- package/dist/types/platform-components/ReadonlyReferenceValue.vue.d.ts +11 -0
- package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +4 -2
- package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +8 -3
- package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +7 -3
- package/dist/types/platform-components/RecordDetailFields.vue.d.ts +4 -6
- package/dist/types/platform-components/RecordFormFields.vue.d.ts +6 -6
- package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +11 -3
- package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +2 -2
- package/dist/types/platform-components/RecordPicker.vue.d.ts +2 -2
- package/dist/types/platform-components/RecordQueryListCell.vue.d.ts +1 -1
- package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +26 -4
- package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +20 -0
- package/dist/types/platform-components/ReferencePicker.vue.d.ts +47 -0
- package/dist/types/platform-components/ReferenceRecordDetailBrowser.vue.d.ts +55 -0
- package/dist/types/platform-components/ScopedTreePicker.vue.d.ts +31 -0
- package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +5 -2
- package/dist/types/platform-components/UserPicker.vue.d.ts +47 -0
- package/dist/types/platform-components/dictionaryOptionDialogModel.d.ts +23 -0
- package/dist/types/platform-components/employeePickerModel.d.ts +19 -0
- package/dist/types/platform-components/identityPickerModel.d.ts +18 -0
- package/dist/types/platform-components/index.d.ts +32 -2
- package/dist/types/platform-components/optionFieldOptionCache.d.ts +1 -1
- package/dist/types/platform-components/queryCriteriaDraft.d.ts +24 -0
- package/dist/types/platform-components/queryReferencePickerProvider.d.ts +19 -0
- package/dist/types/platform-components/querySettlementController.d.ts +5 -0
- package/dist/types/platform-components/readonlyReferenceDisplay.d.ts +19 -0
- package/dist/types/platform-components/recordEditorSessionState.d.ts +11 -4
- package/dist/types/platform-components/recordFormFieldModel.d.ts +28 -2
- package/dist/types/platform-components/recordQueryListColumnModel.d.ts +10 -1
- package/dist/types/platform-components/recordQueryListQueryController.d.ts +36 -0
- package/dist/types/platform-components/recordTreeQueryController.d.ts +18 -0
- package/dist/types/platform-components/referencePickerModel.d.ts +105 -0
- package/dist/types/platform-components/referencePickerReadError.d.ts +24 -0
- package/dist/types/platform-components/referenceRecordDetailBrowser.d.ts +48 -0
- package/dist/types/platform-components/scopedTreePickerModel.d.ts +46 -0
- package/dist/types/platform-components/sourceReferencePickerProvider.d.ts +26 -0
- package/dist/types/platform-components/staticCrudManagementState.d.ts +7 -6
- package/dist/types/platform-components/userPickerModel.d.ts +45 -0
- package/dist/types/platform-components/userReferencePicker.d.ts +17 -0
- package/dist/types/platform-workbench/AssistantMarkdownContent.vue.d.ts +6 -0
- package/dist/types/platform-workbench/AssistantSelectionCard.vue.d.ts +15 -0
- package/dist/types/platform-workbench/Workbench.vue.d.ts +7 -2
- package/dist/types/platform-workbench/WorkbenchAssistantPanel.vue.d.ts +12 -0
- package/dist/types/platform-workbench/assistantMarkdown.d.ts +1 -0
- package/dist/types/platform-workbench/index.d.ts +1 -0
- package/dist/types/platform-workbench/useWorkspaceViewUnsavedState.d.ts +1 -1
- package/dist/types/platform-workbench/workbenchAssistantCapabilities.d.ts +3 -0
- package/dist/types/platform-workbench/workspaceViewHost.d.ts +1 -1
- package/dist/types/platform-workbench/workspaceViewUnsavedState.d.ts +3 -1
- package/dist/types/views/BusinessActivityLogView.vue.d.ts +3 -0
- package/dist/types/views/BusinessLogListDrawer.vue.d.ts +9 -0
- package/dist/types/views/BusinessLogRetentionControl.vue.d.ts +7 -0
- package/dist/types/views/LoginAuditLogView.vue.d.ts +3 -0
- package/dist/types/views/RequestErrorLogView.vue.d.ts +3 -0
- package/dist/types/views/RuntimeLogView.vue.d.ts +3 -0
- package/dist/types/views/businessLogClient.d.ts +88 -0
- package/dist/types/views/businessLogRetentionClient.d.ts +25 -0
- package/dist/types/views/dictionaryRadioEligibility.d.ts +18 -0
- package/dist/types/views/dictionaryRadioFactRequestEpoch.d.ts +10 -0
- package/dist/types/views/metadataGovernanceAssistantSurface.d.ts +122 -0
- package/dist/types/views/metadataModelChangeSetClient.d.ts +36 -0
- package/dist/types/views/metadataModelEditSession.d.ts +10 -1
- package/dist/types/views/metadataNaming.d.ts +4 -0
- package/dist/types/views/pageCompositionDraftState.d.ts +29 -0
- package/dist/types/views/roleDetailWorkspaceSession.d.ts +1 -0
- package/dist/types/views/roleGrantClient.d.ts +0 -1
- package/dist/types/views/runtimeLogClient.d.ts +12 -0
- package/dist/types/views/runtimeLogSse.d.ts +3 -0
- package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +15 -0
- package/dist/types/vue-ui-antdv/components/UiSearchInput.vue.d.ts +16 -2
- package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +23 -1
- package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +9 -2
- package/dist/types/vue-ui-antdv/components/UiTextArea.vue.d.ts +2 -0
- package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +23 -1
- package/dist/types/vue-ui-antdv/drawerDismissal.d.ts +18 -0
- package/dist/types/vue-ui-antdv/drawerWidth.d.ts +22 -0
- package/dist/types/vue-ui-antdv/index.d.ts +4 -0
- package/dist/types/web-contracts/assistant.d.ts +59 -0
- package/dist/types/web-contracts/index.d.ts +67 -6
- package/dist/types/web-core/assistantRuntime.d.ts +77 -0
- package/dist/types/web-core/assistantSurface.d.ts +92 -0
- package/dist/types/web-core/assistantTurnClient.d.ts +8 -0
- package/dist/types/web-core/http.d.ts +2 -0
- package/dist/types/web-core/index.d.ts +4 -0
- package/dist/types/web-core/module/moduleContext.d.ts +15 -2
- package/dist/types/web-core/module/runtimeContext.d.ts +3 -2
- package/dist/types/web-core/module/staticModuleClient.d.ts +5 -1
- package/dist/types/web-core/sse.d.ts +9 -0
- package/dist/{workspaceViews-DI_1vYX9.js → workspaceViews-DijY4n32.js} +1190 -1085
- package/package.json +1 -1
- package/dist/RoleDetailWorkspaceView-D6X7pAj5.js +0 -1379
- package/dist/platform-workbench-DJj42YQP.js +0 -22911
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { IdentityPickerCandidate, IdentityPickerResolver } from './identityPickerModel';
|
|
2
|
+
/** A user selection always persists an IAM user account ID, never an employee ID. */
|
|
3
|
+
export type UserAccountId = string;
|
|
4
|
+
/** An authorized user-account projection returned by the selection provider. */
|
|
5
|
+
export interface UserPickerCandidate extends IdentityPickerCandidate<UserAccountId> {
|
|
6
|
+
/** Account snapshot or current account, as defined by the source. */
|
|
7
|
+
account?: string;
|
|
8
|
+
employeeName?: string;
|
|
9
|
+
organizationId?: string;
|
|
10
|
+
organizationName?: string;
|
|
11
|
+
departmentId?: string;
|
|
12
|
+
departmentName?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface UserPickerNavigationScope {
|
|
15
|
+
tenantId?: string;
|
|
16
|
+
organizationId?: string;
|
|
17
|
+
departmentId?: string;
|
|
18
|
+
}
|
|
19
|
+
/** A source-provided progressive browse axis. IDs remain source-owned and are never inferred by the picker. */
|
|
20
|
+
export interface UserPickerNavigationItem {
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
tenantId?: string;
|
|
24
|
+
/** Parent organization for a department item, when the source has that hierarchy. */
|
|
25
|
+
organizationId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface UserPickerNavigation {
|
|
28
|
+
showTenantNavigation: boolean;
|
|
29
|
+
tenants: UserPickerNavigationItem[];
|
|
30
|
+
organizations: UserPickerNavigationItem[];
|
|
31
|
+
departments: UserPickerNavigationItem[];
|
|
32
|
+
}
|
|
33
|
+
export interface UserPickerPage {
|
|
34
|
+
records: UserPickerCandidate[];
|
|
35
|
+
total: number;
|
|
36
|
+
navigation?: UserPickerNavigation;
|
|
37
|
+
}
|
|
38
|
+
export interface UserPickerPageRequest {
|
|
39
|
+
keyword: string;
|
|
40
|
+
pageNum: number;
|
|
41
|
+
pageSize: number;
|
|
42
|
+
scope?: UserPickerNavigationScope;
|
|
43
|
+
}
|
|
44
|
+
export type UserPickerPageSearch = (request: UserPickerPageRequest) => Promise<UserPickerPage>;
|
|
45
|
+
export type UserPickerResolver = IdentityPickerResolver<UserAccountId>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReferencePickerCandidate, ReferencePickerColumn, ReferencePickerProvider, ReferencePickerSourceIdentity } from './referencePickerModel';
|
|
2
|
+
import type { UserPickerCandidate, UserPickerPageSearch, UserPickerResolver } from './userPickerModel';
|
|
3
|
+
/** Identity-specific presentation stays here; the common picker only consumes projections. */
|
|
4
|
+
export declare const userReferencePickerColumns: readonly ReferencePickerColumn[];
|
|
5
|
+
export interface UserReferencePickerConfig {
|
|
6
|
+
sourceIdentity: ReferencePickerSourceIdentity;
|
|
7
|
+
searchPage: UserPickerPageSearch;
|
|
8
|
+
resolveUsers: UserPickerResolver;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Maps the authorized IAM delivery into the source-neutral picker contract.
|
|
12
|
+
* It does not infer any tenant/organization/department relationship: old
|
|
13
|
+
* source-owned IDs are simply returned to the same source as typed axes.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createUserReferencePickerProvider(config: UserReferencePickerConfig): ReferencePickerProvider;
|
|
16
|
+
export declare function toReferenceCandidate(candidate: UserPickerCandidate): ReferencePickerCandidate;
|
|
17
|
+
export declare function toUserPickerCandidate(candidate: ReferencePickerCandidate): UserPickerCandidate;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
content: string;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
declare const _default: typeof __VLS_export;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AssistantSelectionInteraction, AssistantSelectionOption } from '../web-contracts/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
selection: AssistantSelectionInteraction;
|
|
4
|
+
state: 'open' | 'submitting' | 'answered' | 'superseded';
|
|
5
|
+
selectedOptionId?: string;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
|
+
select: (option: AssistantSelectionOption) => any;
|
|
9
|
+
abandon: () => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onSelect?: ((option: AssistantSelectionOption) => any) | undefined;
|
|
12
|
+
onAbandon?: (() => any) | undefined;
|
|
13
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MenuNavigationTarget, MenuRecord, MenuTab, PageDescriptor, WorkbenchStartupState } from '../web-contracts/index';
|
|
2
|
+
import { type AssistantTurnRequester } from '../web-core/index';
|
|
2
3
|
import type { WorkbenchRealtimeStatus } from './realtimeStatus';
|
|
3
4
|
type __VLS_Props = {
|
|
4
5
|
startup?: WorkbenchStartupState;
|
|
@@ -8,14 +9,16 @@ type __VLS_Props = {
|
|
|
8
9
|
lockedTabKeys?: string[];
|
|
9
10
|
realtimeStatus?: WorkbenchRealtimeStatus;
|
|
10
11
|
themeAppearance?: 'light' | 'dark';
|
|
12
|
+
assistantRequestTurn?: AssistantTurnRequester;
|
|
13
|
+
assistantWaitForPageReady?: () => Promise<string>;
|
|
11
14
|
};
|
|
12
|
-
declare var
|
|
15
|
+
declare var __VLS_90: {
|
|
13
16
|
activeTab: MenuTab;
|
|
14
17
|
target: MenuNavigationTarget | undefined;
|
|
15
18
|
pageDescriptor: PageDescriptor | undefined;
|
|
16
19
|
};
|
|
17
20
|
type __VLS_Slots = {} & {
|
|
18
|
-
default?: (props: typeof
|
|
21
|
+
default?: (props: typeof __VLS_90) => any;
|
|
19
22
|
};
|
|
20
23
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
21
24
|
closeTabs: (keys: string[]) => any;
|
|
@@ -47,6 +50,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
47
50
|
activeTabKey: string;
|
|
48
51
|
lockedTabKeys: string[];
|
|
49
52
|
themeAppearance: "light" | "dark";
|
|
53
|
+
assistantRequestTurn: AssistantTurnRequester;
|
|
54
|
+
assistantWaitForPageReady: () => Promise<string>;
|
|
50
55
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
51
56
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
52
57
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type AssistantSurfaceRegistry } from '../web-core/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
registry: AssistantSurfaceRegistry;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
|
+
close: () => any;
|
|
8
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
|
+
onClose?: (() => any) | undefined;
|
|
10
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function renderAssistantMarkdown(content: string): string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as Workbench } from './Workbench.vue';
|
|
2
|
+
export { default as WorkbenchAssistantPanel } from './WorkbenchAssistantPanel.vue';
|
|
2
3
|
export { default as WorkbenchMenu } from './WorkbenchMenu.vue';
|
|
3
4
|
export { default as WorkbenchOutlet } from './WorkbenchOutlet.vue';
|
|
4
5
|
export { default as WorkspaceViewOutlet } from './WorkspaceViewOutlet.vue';
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Lets a workspace panel declare unsaved local state without exposing or
|
|
3
3
|
* duplicating its draft in the workbench shell.
|
|
4
4
|
*/
|
|
5
|
-
export declare function useWorkspaceViewUnsavedState(source: string, isDirty: () => boolean): void;
|
|
5
|
+
export declare function useWorkspaceViewUnsavedState(source: string, isDirty: () => boolean, isBusy?: () => boolean): void;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { MenuRecord, MenuTreeNode } from '../web-contracts/index';
|
|
2
|
+
import type { AssistantCapability, AssistantInvocationToken } from '../web-core/index';
|
|
3
|
+
export declare function createWorkbenchAssistantCapabilities(menus: () => MenuTreeNode[], openMenu: (menu: MenuRecord) => boolean, settleNavigation?: (signal?: AbortSignal) => Promise<void | AssistantInvocationToken>): AssistantCapability[];
|
|
@@ -6,7 +6,7 @@ export interface WorkspaceViewHost {
|
|
|
6
6
|
/** Replaces URL-restorable state without creating another workbench tab. */
|
|
7
7
|
replaceQuery(query: Record<string, RouteQueryValue | undefined>): void;
|
|
8
8
|
/** Registers a local draft signal used only when the owning workbench tab closes. */
|
|
9
|
-
registerUnsavedState(source: string, isDirty: () => boolean): () => void;
|
|
9
|
+
registerUnsavedState(source: string, isDirty: () => boolean, isBusy?: () => boolean): () => void;
|
|
10
10
|
dismiss(): void;
|
|
11
11
|
/** Closes the current independent workbench view. */
|
|
12
12
|
close(): void;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export declare function registerWorkspaceViewUnsavedState(pageKey: string, source: string, isDirty: () => boolean): () => void;
|
|
1
|
+
export declare function registerWorkspaceViewUnsavedState(pageKey: string, source: string, isDirty: () => boolean, isBusy?: () => boolean): () => void;
|
|
2
2
|
export declare function workspaceViewUnsavedStateSources(pageKey: string): string[];
|
|
3
|
+
/** Sources with an in-flight mutation cannot be destroyed until their work completes. */
|
|
4
|
+
export declare function workspaceViewBusyStateSources(pageKey: string): string[];
|
|
3
5
|
export declare function clearWorkspaceViewUnsavedState(pageKey: string): void;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type BusinessLogSurface } from './businessLogClient';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
surface: BusinessLogSurface;
|
|
4
|
+
moduleAlias: string;
|
|
5
|
+
title: string;
|
|
6
|
+
};
|
|
7
|
+
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>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type BusinessLogEventType } from './businessLogRetentionClient';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
eventTypes: BusinessLogEventType[];
|
|
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,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { HttpClient } from '../web-core/index';
|
|
2
|
+
import type { WebQueryRequest } from '../web-contracts/index';
|
|
3
|
+
export type BusinessLogSurface = 'activity' | 'request-error' | 'login';
|
|
4
|
+
export interface BusinessLogOperatorIdentity {
|
|
5
|
+
employeeName?: string;
|
|
6
|
+
username?: string;
|
|
7
|
+
organizationId?: string;
|
|
8
|
+
organizationName?: string;
|
|
9
|
+
departmentId?: string;
|
|
10
|
+
departmentName?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface BusinessLogEventView {
|
|
13
|
+
eventId: string;
|
|
14
|
+
eventType: string;
|
|
15
|
+
occurredAt?: string;
|
|
16
|
+
capturedAt?: string;
|
|
17
|
+
traceId?: string;
|
|
18
|
+
tenantId?: string;
|
|
19
|
+
operatorId?: string;
|
|
20
|
+
operatorOrganizationId?: string;
|
|
21
|
+
operatorIdentity?: BusinessLogOperatorIdentity;
|
|
22
|
+
moduleAlias?: string;
|
|
23
|
+
actionCode?: string;
|
|
24
|
+
entityAlias?: string;
|
|
25
|
+
recordId?: string;
|
|
26
|
+
mutationSource?: string;
|
|
27
|
+
outcome?: string;
|
|
28
|
+
/** The authentication account, independent from the event's authenticated operator identity. */
|
|
29
|
+
loginAccount?: string;
|
|
30
|
+
summary?: string;
|
|
31
|
+
details?: Record<string, unknown>;
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
export interface BusinessLogStatisticItem {
|
|
35
|
+
key: string;
|
|
36
|
+
title: string;
|
|
37
|
+
count: number;
|
|
38
|
+
[key: string]: unknown;
|
|
39
|
+
}
|
|
40
|
+
export interface BusinessLogStatistics {
|
|
41
|
+
items: BusinessLogStatisticItem[];
|
|
42
|
+
complete?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface BusinessLogOperatorCandidate {
|
|
45
|
+
id: string;
|
|
46
|
+
title: string;
|
|
47
|
+
account?: string;
|
|
48
|
+
employeeName?: string;
|
|
49
|
+
organizationId?: string;
|
|
50
|
+
organizationName?: string;
|
|
51
|
+
departmentId?: string;
|
|
52
|
+
departmentName?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface BusinessLogOperatorNavigationItem {
|
|
55
|
+
id: string;
|
|
56
|
+
title: string;
|
|
57
|
+
tenantId?: string;
|
|
58
|
+
organizationId?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface BusinessLogOperatorNavigation {
|
|
61
|
+
showTenantNavigation: boolean;
|
|
62
|
+
tenants: BusinessLogOperatorNavigationItem[];
|
|
63
|
+
organizations: BusinessLogOperatorNavigationItem[];
|
|
64
|
+
departments: BusinessLogOperatorNavigationItem[];
|
|
65
|
+
}
|
|
66
|
+
export interface BusinessLogOperatorCandidateQuery {
|
|
67
|
+
keyword?: string;
|
|
68
|
+
pageNum?: number;
|
|
69
|
+
pageSize?: number;
|
|
70
|
+
selectedIds?: string[];
|
|
71
|
+
tenantId?: string;
|
|
72
|
+
organizationId?: string;
|
|
73
|
+
departmentId?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface BusinessLogOperatorCandidatePage {
|
|
76
|
+
records: BusinessLogOperatorCandidate[];
|
|
77
|
+
selectedRecords: BusinessLogOperatorCandidate[];
|
|
78
|
+
total: number;
|
|
79
|
+
navigation?: BusinessLogOperatorNavigation;
|
|
80
|
+
}
|
|
81
|
+
export interface BusinessLogClient {
|
|
82
|
+
detail(eventId: string): Promise<BusinessLogEventView>;
|
|
83
|
+
operatorCandidates(input: BusinessLogOperatorCandidateQuery): Promise<BusinessLogOperatorCandidatePage>;
|
|
84
|
+
actionStatistics?(request: WebQueryRequest): Promise<BusinessLogStatistics>;
|
|
85
|
+
pageAccessStatistics?(request: WebQueryRequest): Promise<BusinessLogStatistics>;
|
|
86
|
+
diagnostic?(eventId: string): Promise<Record<string, unknown>>;
|
|
87
|
+
}
|
|
88
|
+
export declare function createBusinessLogClient(http: HttpClient, surface: BusinessLogSurface): BusinessLogClient;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HttpClient } from '../web-core/index';
|
|
2
|
+
export type BusinessLogEventType = 'LOGIN' | 'ACTION' | 'REQUEST_ERROR' | 'PAGE_ACCESS';
|
|
3
|
+
export interface BusinessLogRetentionPolicy {
|
|
4
|
+
eventType: BusinessLogEventType;
|
|
5
|
+
automaticCleanupEnabled: boolean;
|
|
6
|
+
retentionDays: number;
|
|
7
|
+
version: number;
|
|
8
|
+
updatedAt?: string;
|
|
9
|
+
updatedBy?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface BusinessLogRetentionRunResult {
|
|
12
|
+
eventType: BusinessLogEventType;
|
|
13
|
+
retentionDays: number;
|
|
14
|
+
result: {
|
|
15
|
+
occurredBefore: string;
|
|
16
|
+
deletedCount: number;
|
|
17
|
+
executedBatches: number;
|
|
18
|
+
status: 'COMPLETE' | 'BATCH_LIMIT_REACHED' | 'ALREADY_RUNNING';
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare function createBusinessLogRetentionClient(http: HttpClient): {
|
|
22
|
+
policies(): Promise<BusinessLogRetentionPolicy[]>;
|
|
23
|
+
update(policy: BusinessLogRetentionPolicy): Promise<BusinessLogRetentionPolicy>;
|
|
24
|
+
purge(eventType: BusinessLogEventType, retentionDays: number): Promise<BusinessLogRetentionRunResult>;
|
|
25
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Facts loaded from the dictionary candidate endpoint for radio presentation preflight. */
|
|
2
|
+
export interface DictionaryRadioCandidateFacts {
|
|
3
|
+
enabledCandidateCount: number;
|
|
4
|
+
hasHierarchy: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface DictionaryRadioEligibilityInput {
|
|
7
|
+
optionSourceType?: string;
|
|
8
|
+
optionSelectionMode?: 'SINGLE' | 'MULTIPLE';
|
|
9
|
+
facts?: DictionaryRadioCandidateFacts;
|
|
10
|
+
loadError?: string;
|
|
11
|
+
maxOptions: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Radio is a presentation choice over a single, flat and small dictionary. Keep this decision
|
|
15
|
+
* independent from the composer view so selected-field hints, preview guards and publish guards
|
|
16
|
+
* all enforce the same rule.
|
|
17
|
+
*/
|
|
18
|
+
export declare function dictionaryRadioEligibilityIssue(input: DictionaryRadioEligibilityInput): string | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guards asynchronous candidate reads while a kept-alive composer reloads its metadata directory.
|
|
3
|
+
* A field name is stable across a dictionary rebind, so the directory generation—not the name—is
|
|
4
|
+
* the authority for whether an in-flight response may still update radio eligibility.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createDictionaryRadioFactRequestEpoch(): {
|
|
7
|
+
invalidate(): void;
|
|
8
|
+
capture(): number;
|
|
9
|
+
isCurrent(capturedGeneration: number): boolean;
|
|
10
|
+
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type AssistantCapability, type AssistantSurface, type AssistantTurnRequester } from '../web-core/index';
|
|
2
|
+
import type { MetadataModelChangeSetProposal } from './metadataModelEditSession';
|
|
3
|
+
import type { MetadataChangeSetPreview } from './metadataModelChangeSetClient';
|
|
4
|
+
export interface MetadataGovernanceAssistantModelSummary {
|
|
5
|
+
moduleAlias: string;
|
|
6
|
+
moduleTitle?: string;
|
|
7
|
+
relationCount: number;
|
|
8
|
+
selectedRelation?: {
|
|
9
|
+
relationId: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
fieldCount: number;
|
|
12
|
+
fields: Array<{
|
|
13
|
+
fieldName: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
fieldSpecAlias?: string;
|
|
16
|
+
propertyKind: string;
|
|
17
|
+
governance: string;
|
|
18
|
+
}>;
|
|
19
|
+
truncated: boolean;
|
|
20
|
+
};
|
|
21
|
+
draft: {
|
|
22
|
+
active: boolean;
|
|
23
|
+
dirty: boolean;
|
|
24
|
+
editorOpen: boolean;
|
|
25
|
+
};
|
|
26
|
+
fieldSpecs: Array<{
|
|
27
|
+
alias: string;
|
|
28
|
+
title?: string;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export interface AddMetadataFieldDraftInput {
|
|
32
|
+
title: string;
|
|
33
|
+
fieldName?: string;
|
|
34
|
+
fieldSpecAlias: string;
|
|
35
|
+
required?: boolean;
|
|
36
|
+
unique?: boolean;
|
|
37
|
+
indexed?: boolean;
|
|
38
|
+
sortable?: boolean;
|
|
39
|
+
titleField?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface UpdateMetadataFieldDraftInput {
|
|
42
|
+
fieldName: string;
|
|
43
|
+
title?: string;
|
|
44
|
+
fieldSpecAlias?: string;
|
|
45
|
+
required?: boolean;
|
|
46
|
+
unique?: boolean;
|
|
47
|
+
indexed?: boolean;
|
|
48
|
+
sortable?: boolean;
|
|
49
|
+
titleField?: boolean;
|
|
50
|
+
enabled?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export type MetadataPropertyFieldKind = 'MODULE_REFERENCE' | 'DICTIONARY';
|
|
53
|
+
export interface FindMetadataFieldTargetsInput {
|
|
54
|
+
kind: MetadataPropertyFieldKind;
|
|
55
|
+
keyword?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface AddMetadataPropertyFieldDraftInput {
|
|
58
|
+
kind: MetadataPropertyFieldKind;
|
|
59
|
+
title: string;
|
|
60
|
+
fieldName?: string;
|
|
61
|
+
target: string;
|
|
62
|
+
selectionMode?: 'SINGLE' | 'MULTIPLE';
|
|
63
|
+
required?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface PreparedMetadataPropertyFieldDraft {
|
|
66
|
+
relationId: string;
|
|
67
|
+
kind: MetadataPropertyFieldKind;
|
|
68
|
+
title: string;
|
|
69
|
+
fieldName: string;
|
|
70
|
+
columnName: string;
|
|
71
|
+
fieldSpecAlias: string;
|
|
72
|
+
required: boolean;
|
|
73
|
+
reference?: {
|
|
74
|
+
targetModuleAlias: string;
|
|
75
|
+
targetMetadataId?: string;
|
|
76
|
+
targetKeyField: string;
|
|
77
|
+
targetLabelField: string;
|
|
78
|
+
};
|
|
79
|
+
dictionary?: {
|
|
80
|
+
applicationAlias: string;
|
|
81
|
+
categoryAlias: string;
|
|
82
|
+
selectionMode: 'SINGLE' | 'MULTIPLE';
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export interface MetadataGovernanceAssistantAdapter {
|
|
86
|
+
summary(): MetadataGovernanceAssistantModelSummary;
|
|
87
|
+
proposal(): MetadataModelChangeSetProposal | undefined;
|
|
88
|
+
preview(proposal: MetadataModelChangeSetProposal, signal: AbortSignal): Promise<MetadataChangeSetPreview>;
|
|
89
|
+
fieldSpecAliases(): string[];
|
|
90
|
+
editableBasicFieldNames(): string[];
|
|
91
|
+
addFieldDraft?(input: AddMetadataFieldDraftInput): {
|
|
92
|
+
relationId: string;
|
|
93
|
+
fieldName: string;
|
|
94
|
+
columnName: string;
|
|
95
|
+
title: string;
|
|
96
|
+
fieldSpecAlias: string;
|
|
97
|
+
};
|
|
98
|
+
updateFieldDraft?(input: UpdateMetadataFieldDraftInput): {
|
|
99
|
+
relationId: string;
|
|
100
|
+
fieldName: string;
|
|
101
|
+
title?: string;
|
|
102
|
+
fieldSpecAlias?: string;
|
|
103
|
+
};
|
|
104
|
+
findFieldTargets?(input: FindMetadataFieldTargetsInput, signal: AbortSignal): Promise<{
|
|
105
|
+
targets: Array<{
|
|
106
|
+
target: string;
|
|
107
|
+
title?: string;
|
|
108
|
+
}>;
|
|
109
|
+
truncated: boolean;
|
|
110
|
+
}>;
|
|
111
|
+
preparePropertyFieldDraft?(input: AddMetadataPropertyFieldDraftInput, signal: AbortSignal): Promise<PreparedMetadataPropertyFieldDraft>;
|
|
112
|
+
commitPropertyFieldDraft?(prepared: PreparedMetadataPropertyFieldDraft): {
|
|
113
|
+
relationId: string;
|
|
114
|
+
kind: MetadataPropertyFieldKind;
|
|
115
|
+
fieldName: string;
|
|
116
|
+
columnName: string;
|
|
117
|
+
title: string;
|
|
118
|
+
fieldSpecAlias: string;
|
|
119
|
+
target: string;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export declare function createMetadataGovernanceAssistantSurface(adapter: MetadataGovernanceAssistantAdapter, requestTurn: AssistantTurnRequester, contributedCapabilities?: () => AssistantCapability[]): AssistantSurface;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { HttpClient } from '../web-core/index';
|
|
2
|
+
import type { MetadataModelChangeSetProposal } from './metadataModelEditSession';
|
|
3
|
+
export type MetadataChangeSetIssue = {
|
|
4
|
+
severity: 'WARNING' | 'ERROR' | string;
|
|
5
|
+
code: string;
|
|
6
|
+
subject: string;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
export type MetadataChangeSetPreview = {
|
|
10
|
+
proposalFingerprint: string;
|
|
11
|
+
fieldImpacts: Array<{
|
|
12
|
+
operation: string;
|
|
13
|
+
fieldName: string;
|
|
14
|
+
columnName: string;
|
|
15
|
+
platformManaged: boolean;
|
|
16
|
+
description: string;
|
|
17
|
+
}>;
|
|
18
|
+
schemaImpacts: Array<{
|
|
19
|
+
operation: string;
|
|
20
|
+
schemaName: string;
|
|
21
|
+
tableName: string;
|
|
22
|
+
columnName: string;
|
|
23
|
+
description: string;
|
|
24
|
+
}>;
|
|
25
|
+
orderImpacts: Array<{
|
|
26
|
+
operation: string;
|
|
27
|
+
relationId?: string;
|
|
28
|
+
parentMetadataId?: string;
|
|
29
|
+
orderedIds: string[];
|
|
30
|
+
description: string;
|
|
31
|
+
}>;
|
|
32
|
+
warnings: MetadataChangeSetIssue[];
|
|
33
|
+
errors: MetadataChangeSetIssue[];
|
|
34
|
+
};
|
|
35
|
+
export declare function previewMetadataModelChangeSet(http: HttpClient, moduleAlias: string, proposal: MetadataModelChangeSetProposal, signal?: AbortSignal): Promise<MetadataChangeSetPreview>;
|
|
36
|
+
export declare function applyMetadataModelChangeSet(http: HttpClient, moduleAlias: string, proposal: MetadataModelChangeSetProposal, proposalFingerprint: string): Promise<unknown>;
|
|
@@ -9,7 +9,16 @@ export interface MetadataFieldChangeSetDraft {
|
|
|
9
9
|
/** JSON-facing command contract; projection mappings remain an ordered string array. */
|
|
10
10
|
property?: MetadataFieldPropertyChangeSetPayload;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The editor uses stable upper-case cardinality labels, while the public HTTP contract for
|
|
14
|
+
* CodeTitleEnum writes their lower-case codes. Keep that translation at the change-set boundary
|
|
15
|
+
* rather than leaking transport values into the editor and form renderer.
|
|
16
|
+
*/
|
|
17
|
+
export type MetadataFieldPropertyChangeSetPayload = Omit<MetadataFieldPropertyDraft, 'dictionaryConfig'> & {
|
|
18
|
+
dictionaryConfig?: Omit<NonNullable<MetadataFieldPropertyDraft['dictionaryConfig']>, 'selectionMode'> & {
|
|
19
|
+
selectionMode?: 'single' | 'multiple';
|
|
20
|
+
};
|
|
21
|
+
};
|
|
13
22
|
export declare function toFieldPropertyChangeSetPayload(property: MetadataFieldPropertyDraft): MetadataFieldPropertyChangeSetPayload;
|
|
14
23
|
export interface MetadataRelationChangeSetProposal {
|
|
15
24
|
expectedMetadataVersion: number;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { MetadataFieldPropertyKind } from './metadataOrchestrationState';
|
|
2
|
+
export declare const PLATFORM_FIELD_NAME_PATTERN = "^[a-z][A-Za-z0-9]{0,62}$";
|
|
3
|
+
export declare const DYNAMIC_RECORD_RESERVED_FIELD_NAMES: Set<string>;
|
|
4
|
+
export declare function isPlatformFieldName(value: string): boolean;
|
|
5
|
+
export declare function isDynamicRecordReservedFieldName(value: string): boolean;
|
|
2
6
|
export declare function physicalNameOf(fieldName?: string): string;
|
|
3
7
|
export declare function generatedFieldName(title?: string): string;
|
|
4
8
|
/** Default names for newly created business fields; runtime semantics remain metadata-driven. */
|