@ximatai/muyun-web-app 0.26.12 → 0.26.13
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-UC4rH4Fn.js +16 -0
- package/dist/BusinessLogListDrawer-BtaXVJKz.js +564 -0
- package/dist/LoginAuditLogView-Cjrp8MKX.js +16 -0
- package/dist/{ModuleActionManagementView-BHEooZ5L.js → ModuleActionManagementView-Dkb35QXc.js} +139 -138
- package/dist/{ModuleGovernanceView-DB3TWlMy.js → ModuleGovernanceView-Dx43QvGf.js} +2878 -2748
- package/dist/RequestErrorLogView-WnGvMWiF.js +16 -0
- package/dist/RoleDetailWorkspaceView-DPDb_QOn.js +1397 -0
- package/dist/RuntimeLogView-BRl4ZDkU.js +330 -0
- package/dist/http-B0TC0pJB.js +157 -0
- package/dist/index.css +1 -1
- package/dist/index.js +505 -475
- package/dist/{moduleGovernanceWorkspaceView-C5pqJOEJ.js → moduleGovernanceWorkspaceView-4V_UW-Bt.js} +2 -2
- package/dist/platform-components-1cvOeHmo.js +17854 -0
- package/dist/platform-workbench-Cu14Xd9d.js +10299 -0
- package/dist/types/consumer/index.d.ts +7 -0
- package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +2208 -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 +4431 -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/RecordFormSurface.vue.d.ts +2 -2
- package/dist/types/dynamic-page-runtime/TenantScopeExplorer.vue.d.ts +21 -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/useNavigatorRuntime.d.ts +1 -0
- package/dist/types/dynamic-page-runtime/formActionResult.d.ts +2 -0
- package/dist/types/dynamic-page-runtime/index.d.ts +2 -0
- package/dist/types/dynamic-page-runtime/inputValidationActionStatus.d.ts +20 -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 +1728 -0
- package/dist/types/dynamic-page-runtime/useTenantScopeController.d.ts +18 -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 +5 -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 +3 -5
- package/dist/types/platform-components/RecordFormFields.vue.d.ts +5 -5
- 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/RecordQueryListPanel.vue.d.ts +18 -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/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 +28 -1
- 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/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 +3 -1
- package/dist/types/platform-components/referencePickerModel.d.ts +103 -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/useWorkspaceViewUnsavedState.d.ts +1 -1
- 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/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 +85 -0
- package/dist/types/views/dictionaryRadioEligibility.d.ts +18 -0
- package/dist/types/views/dictionaryRadioFactRequestEpoch.d.ts +10 -0
- package/dist/types/views/metadataModelEditSession.d.ts +10 -1
- 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 +13 -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/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/index.d.ts +66 -6
- package/dist/types/web-core/http.d.ts +2 -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/{workspaceViews-DI_1vYX9.js → workspaceViews-CCg6V0pr.js} +1245 -1140
- package/package.json +1 -1
- package/dist/RoleDetailWorkspaceView-D6X7pAj5.js +0 -1379
- package/dist/platform-workbench-DJj42YQP.js +0 -22911
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { StandardModulePageDescriptor } from '../web-contracts/index';
|
|
2
|
+
import { type QueryListRecord } from '../platform-components/index';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
descriptor: StandardModulePageDescriptor;
|
|
5
|
+
requireConfiguredPage?: boolean;
|
|
6
|
+
recordOnly?: {
|
|
7
|
+
recordId: string;
|
|
8
|
+
renderMode?: 'inline' | 'portal';
|
|
9
|
+
scope?: 'tab' | 'viewport';
|
|
10
|
+
};
|
|
11
|
+
/** Rebuilds only the frozen business session; the tenant controller stays mounted. */
|
|
12
|
+
reloadKey?: number;
|
|
13
|
+
};
|
|
14
|
+
declare function startBusinessSession(): void;
|
|
15
|
+
declare function refreshList(): void;
|
|
16
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
17
|
+
refreshList: typeof refreshList;
|
|
18
|
+
retry: typeof startBusinessSession;
|
|
19
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
20
|
+
"interaction-state-change": (state: {
|
|
21
|
+
editing: boolean;
|
|
22
|
+
busy: boolean;
|
|
23
|
+
dirty?: boolean;
|
|
24
|
+
}) => any;
|
|
25
|
+
"record-only-change": (mutation: {
|
|
26
|
+
type: "saved" | "deleted" | "unavailable";
|
|
27
|
+
record?: QueryListRecord;
|
|
28
|
+
}) => any;
|
|
29
|
+
"record-only-close": () => any;
|
|
30
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
31
|
+
"onInteraction-state-change"?: ((state: {
|
|
32
|
+
editing: boolean;
|
|
33
|
+
busy: boolean;
|
|
34
|
+
dirty?: boolean;
|
|
35
|
+
}) => any) | undefined;
|
|
36
|
+
"onRecord-only-change"?: ((mutation: {
|
|
37
|
+
type: "saved" | "deleted" | "unavailable";
|
|
38
|
+
record?: QueryListRecord;
|
|
39
|
+
}) => any) | undefined;
|
|
40
|
+
"onRecord-only-close"?: (() => any) | undefined;
|
|
41
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
42
|
+
declare const _default: typeof __VLS_export;
|
|
43
|
+
export default _default;
|
|
@@ -26,17 +26,17 @@ type __VLS_Props = {
|
|
|
26
26
|
formFieldPolicies?: readonly ModulePageFormFieldPolicy[];
|
|
27
27
|
};
|
|
28
28
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
|
-
"update:field": (fieldName: string, value: RecordFormFieldValue) => any;
|
|
30
29
|
"validity-change": (validity: {
|
|
31
30
|
valid: boolean;
|
|
32
31
|
}) => any;
|
|
32
|
+
"update:field": (fieldName: string, value: RecordFormFieldValue) => any;
|
|
33
33
|
"children-change": (relationField: string, records: QueryListRecord[]) => any;
|
|
34
34
|
"relations-validity-change": (valid: boolean) => any;
|
|
35
35
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
36
|
-
"onUpdate:field"?: ((fieldName: string, value: RecordFormFieldValue) => any) | undefined;
|
|
37
36
|
"onValidity-change"?: ((validity: {
|
|
38
37
|
valid: boolean;
|
|
39
38
|
}) => any) | undefined;
|
|
39
|
+
"onUpdate:field"?: ((fieldName: string, value: RecordFormFieldValue) => any) | undefined;
|
|
40
40
|
"onChildren-change"?: ((relationField: string, records: QueryListRecord[]) => any) | undefined;
|
|
41
41
|
"onRelations-validity-change"?: ((valid: boolean) => any) | undefined;
|
|
42
42
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -6,6 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
record?: QueryListRecord;
|
|
7
7
|
mode: 'create' | 'edit' | 'view';
|
|
8
8
|
saving?: boolean;
|
|
9
|
+
/** The action currently owning the shared detail-operation session. */
|
|
10
|
+
activeActionKey?: string;
|
|
9
11
|
detailLoading?: boolean;
|
|
10
12
|
detailLoadFailed?: boolean;
|
|
11
13
|
recycleBinActive?: boolean;
|
|
@@ -43,6 +45,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
43
45
|
record: QueryListRecord;
|
|
44
46
|
actions: ModulePageRecordActionContribution[];
|
|
45
47
|
saving: boolean;
|
|
48
|
+
activeActionKey: string;
|
|
46
49
|
detailLoading: boolean;
|
|
47
50
|
detailLoadFailed: boolean;
|
|
48
51
|
recycleBinActive: boolean;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type HttpClient } from '../web-core/index';
|
|
2
|
+
import { type ReferenceRecordDetailBrowserState, type ReferenceRecordDetailMutation } from '../platform-components/index';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
http?: HttpClient;
|
|
5
|
+
browser?: ReferenceRecordDetailBrowserState;
|
|
6
|
+
inlineAnchor?: boolean;
|
|
7
|
+
renderMode?: 'inline' | 'portal';
|
|
8
|
+
scope?: 'tab' | 'viewport';
|
|
9
|
+
};
|
|
10
|
+
declare var __VLS_10: {};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
default?: (props: typeof __VLS_10) => any;
|
|
13
|
+
};
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"record-change": (mutation: ReferenceRecordDetailMutation) => any;
|
|
16
|
+
"interaction-state-change": (state: {
|
|
17
|
+
editing: boolean;
|
|
18
|
+
busy: boolean;
|
|
19
|
+
dirty?: boolean;
|
|
20
|
+
}) => any;
|
|
21
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
+
"onRecord-change"?: ((mutation: ReferenceRecordDetailMutation) => any) | undefined;
|
|
23
|
+
"onInteraction-state-change"?: ((state: {
|
|
24
|
+
editing: boolean;
|
|
25
|
+
busy: boolean;
|
|
26
|
+
dirty?: boolean;
|
|
27
|
+
}) => any) | undefined;
|
|
28
|
+
}>, {
|
|
29
|
+
scope: "tab" | "viewport";
|
|
30
|
+
http: HttpClient;
|
|
31
|
+
renderMode: "inline" | "portal";
|
|
32
|
+
browser: ReferenceRecordDetailBrowserState;
|
|
33
|
+
inlineAnchor: boolean;
|
|
34
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
35
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
36
|
+
declare const _default: typeof __VLS_export;
|
|
37
|
+
export default _default;
|
|
38
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
39
|
+
new (): {
|
|
40
|
+
$slots: S;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
@@ -17,15 +17,15 @@ type __VLS_Props = {
|
|
|
17
17
|
fieldPolicies?: readonly ModulePageFormFieldPolicy[];
|
|
18
18
|
};
|
|
19
19
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
20
|
-
"update:field": (fieldName: string, value: RecordFormFieldValue) => any;
|
|
21
20
|
"validity-change": (validity: {
|
|
22
21
|
valid: boolean;
|
|
23
22
|
}) => any;
|
|
23
|
+
"update:field": (fieldName: string, value: RecordFormFieldValue) => any;
|
|
24
24
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
25
|
-
"onUpdate:field"?: ((fieldName: string, value: RecordFormFieldValue) => any) | undefined;
|
|
26
25
|
"onValidity-change"?: ((validity: {
|
|
27
26
|
valid: boolean;
|
|
28
27
|
}) => any) | undefined;
|
|
28
|
+
"onUpdate:field"?: ((fieldName: string, value: RecordFormFieldValue) => any) | undefined;
|
|
29
29
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
30
30
|
declare const _default: typeof __VLS_export;
|
|
31
31
|
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type QueryListRecord } from '../platform-components/index';
|
|
2
|
+
import type { ModuleContext } from '../web-core/index';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
context: ModuleContext<QueryListRecord>;
|
|
5
|
+
selectedId?: string;
|
|
6
|
+
reloadKey: number;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
select: (record: QueryListRecord) => any;
|
|
11
|
+
refresh: () => any;
|
|
12
|
+
loaded: (records: QueryListRecord[], initialFullResult: boolean, total?: number | undefined) => any;
|
|
13
|
+
deselect: () => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
15
|
+
onSelect?: ((record: QueryListRecord) => any) | undefined;
|
|
16
|
+
onRefresh?: (() => any) | undefined;
|
|
17
|
+
onLoaded?: ((records: QueryListRecord[], initialFullResult: boolean, total?: number | undefined) => any) | undefined;
|
|
18
|
+
onDeselect?: (() => any) | undefined;
|
|
19
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
@@ -9,5 +9,5 @@ export declare function useModulePageActions(): {
|
|
|
9
9
|
runEnhancementAction: <TContext>(contribution: {
|
|
10
10
|
key: string;
|
|
11
11
|
run(context: TContext): void | Promise<void>;
|
|
12
|
-
}, actionContext: TContext) => Promise<
|
|
12
|
+
}, actionContext: TContext) => Promise<boolean>;
|
|
13
13
|
};
|
|
@@ -17,6 +17,9 @@ export interface ModulePageDetailActionRuntimeOptions {
|
|
|
17
17
|
localEditValid?: Ref<boolean>;
|
|
18
18
|
presentSuccess(result: unknown, fallbackMessage: string, source: string): Promise<unknown> | unknown;
|
|
19
19
|
presentError(cause: unknown, source: string): void;
|
|
20
|
+
/** Reports a failed post-mutation detail read without treating the mutation itself as failed. */
|
|
21
|
+
reportRefreshFailure?(cause: unknown, source: string): void;
|
|
22
|
+
recordChanged?(record: QueryListRecord): void;
|
|
20
23
|
}
|
|
21
24
|
/**
|
|
22
25
|
* Runs server-issued detail action contracts and their typed local-edit forms.
|
|
@@ -39,10 +42,12 @@ export declare function useModulePageDetailActionRuntime(options: ModulePageDeta
|
|
|
39
42
|
localEditForm: NonNullable<PageBootstrapActionBlock["localEditForm"]>;
|
|
40
43
|
}) | undefined>;
|
|
41
44
|
localEditDraft: Ref<RecordFormRecord | undefined, RecordFormRecord | undefined>;
|
|
45
|
+
localEditDirty: import("vue").ComputedRef<boolean>;
|
|
42
46
|
localEditFields: import("vue").ComputedRef<Map<string, RecordFormFieldDescriptor>>;
|
|
43
47
|
handleConfiguredAction: (action: {
|
|
44
48
|
key?: string;
|
|
45
49
|
}) => boolean;
|
|
50
|
+
dismissLocalEdit: () => void;
|
|
46
51
|
submitLocalEdit: () => Promise<void>;
|
|
47
52
|
};
|
|
48
53
|
export {};
|
|
@@ -1427,6 +1427,7 @@ export declare function useNavigatorRuntime(context: ModuleContext<QueryListReco
|
|
|
1427
1427
|
id?: string;
|
|
1428
1428
|
}[], externalQueryValues?: Record<string, unknown>) => Promise<NavigatorEntrySelectionResolution | undefined>;
|
|
1429
1429
|
isCurrentNavigatorEntrySelection: (level: NavigatorLevelRuntime, resolution: NavigatorEntrySelectionResolution) => boolean;
|
|
1430
|
+
loadRuntimeDescriptor: () => Promise<void>;
|
|
1430
1431
|
loadRuntimeForm: (isListPage: Ref<boolean>, hasBusinessRecordView: () => boolean, fail: (message: string) => void) => Promise<void>;
|
|
1431
1432
|
};
|
|
1432
1433
|
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Distinguishes optional draft diagnostics from actions that declare the patch protocol. */
|
|
2
|
+
export declare function hasFormActionRecordPatch(response: unknown): boolean;
|
|
1
3
|
/** Only an explicit form result may update an unsaved draft. Ordinary action data is not a patch. */
|
|
2
4
|
export declare function formActionResult(response: unknown): {
|
|
3
5
|
recordPatch: Record<string, unknown>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { default as ModulePageHost } from './ModulePageHost.vue';
|
|
2
2
|
export { default as DynamicModulePage } from './DynamicModulePage.vue';
|
|
3
3
|
export { default as DynamicModuleWorkspaceDetailView } from './DynamicModuleWorkspaceDetailView.vue';
|
|
4
|
+
export { default as ModuleReferenceRecordDetailBrowser } from './ModuleReferenceRecordDetailBrowser.vue';
|
|
4
5
|
export { customerDescriptor } from './mockDescriptor';
|
|
5
6
|
export { configureModulePageEnhancementContributions, configureModulePageEnhancements, createModulePageEnhancementRegistry, createReadonlyCardRecordSnapshot, modulePageWorkspaceViews, resolveModulePageEnhancement, } from './modulePageEnhancements';
|
|
6
7
|
export { provideModulePageNavigation, useModulePageNavigation } from './modulePageNavigation';
|
|
8
|
+
export { provideModulePageUnsavedStateHost, useModulePageUnsavedState, type ModulePageUnsavedStateHost, } from './modulePageUnsavedState';
|
|
7
9
|
export { NAVIGATOR_ENTRY_MODULE_ALIAS_QUERY_KEY, NAVIGATOR_ENTRY_RECORD_ID_QUERY_KEY, } from './navigatorEntrySelection';
|
|
8
10
|
export { createModulePageListRefreshRegistry, modulePageListRefreshRegistry, refreshModulePageList, } from './modulePageListRefresh';
|
|
9
11
|
export type { ModulePageListRefreshRegistry } from './modulePageListRefresh';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type InputValidationTarget = {
|
|
2
|
+
kind: 'draft';
|
|
3
|
+
fingerprint: string;
|
|
4
|
+
} | {
|
|
5
|
+
kind: 'record';
|
|
6
|
+
recordId: string;
|
|
7
|
+
fingerprint: string;
|
|
8
|
+
};
|
|
9
|
+
export interface InputValidationAttempt {
|
|
10
|
+
actionKey: string;
|
|
11
|
+
target: InputValidationTarget;
|
|
12
|
+
}
|
|
13
|
+
/** Tracks successful validation against the exact input snapshot that was tested. */
|
|
14
|
+
export declare function useInputValidationActionStatus(): {
|
|
15
|
+
begin: (actionKey: string, target: InputValidationTarget) => InputValidationAttempt;
|
|
16
|
+
succeed: (attempt: InputValidationAttempt, currentFingerprint?: string) => void;
|
|
17
|
+
isDraftValidated: (actionKey: string, fingerprint: string | undefined) => boolean;
|
|
18
|
+
isRecordValidated: (actionKey: string, recordId: string | undefined, fingerprint: string | undefined) => boolean;
|
|
19
|
+
invalidateRecord: (recordId: string) => void;
|
|
20
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Component } from 'vue';
|
|
2
2
|
import type { CurrentUser, PageDescriptor, PageLayoutMode, RouteQueryValue, WebPageResponse, WebQueryCondition, WebQueryRequest } from '../web-contracts/index';
|
|
3
3
|
import type { ModuleContext } from '../web-core/index';
|
|
4
|
-
import type { RecordActionItem, RecordFormFieldState, RecordFormFieldValue, RecordQueryListColumn, QueryListRecord } from '../platform-components/index';
|
|
4
|
+
import type { DrawerWidth, RecordActionItem, RecordFormFieldState, RecordFormFieldValue, RecordQueryListColumn, QueryListRecord } from '../platform-components/index';
|
|
5
5
|
import type { DrawerTitleAction } from '../platform-components/index';
|
|
6
6
|
/**
|
|
7
7
|
* Frontend-owned, constrained composition for a descriptor-driven module page.
|
|
@@ -309,6 +309,10 @@ export interface ModulePageBatchActionContribution extends RecordActionItem {
|
|
|
309
309
|
export interface ModulePageDetailSection {
|
|
310
310
|
key: string;
|
|
311
311
|
title: string;
|
|
312
|
+
/** Optional heading copy owned by the business section but rendered by the platform shell. */
|
|
313
|
+
subtitle?: string;
|
|
314
|
+
/** Reactive subtitle content; receives the same read-only context as the section body. */
|
|
315
|
+
subtitleComponent?: Component;
|
|
312
316
|
component: Component;
|
|
313
317
|
}
|
|
314
318
|
/** Business content rendered inside the platform-owned standard view drawer. */
|
|
@@ -316,7 +320,7 @@ export interface ModulePageDetailDrawer {
|
|
|
316
320
|
/** The component receives only the documented read-only ModulePageRecordViewContext prop. */
|
|
317
321
|
component: Component;
|
|
318
322
|
/** Keeps the platform drawer shell while allowing dense business views more room. */
|
|
319
|
-
width?:
|
|
323
|
+
width?: DrawerWidth;
|
|
320
324
|
/**
|
|
321
325
|
* Defaults to true. Set false when the business detail body has its own
|
|
322
326
|
* governed read endpoint and only needs the selected list record as context.
|
|
@@ -337,7 +341,7 @@ export interface ModulePageCellComponentContribution {
|
|
|
337
341
|
}
|
|
338
342
|
export interface ModulePageDrawer {
|
|
339
343
|
title: string;
|
|
340
|
-
width?:
|
|
344
|
+
width?: DrawerWidth;
|
|
341
345
|
/** The component receives only the documented ModulePageDrawerContext prop. */
|
|
342
346
|
component: Component;
|
|
343
347
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional host bridge for a dynamic page rendered as an independent workspace
|
|
3
|
+
* view. The dynamic runtime only reports its local draft fact; the workbench
|
|
4
|
+
* owns registration, confirmation and tab destruction.
|
|
5
|
+
*/
|
|
6
|
+
export interface ModulePageUnsavedStateHost {
|
|
7
|
+
registerUnsavedState(source: string, isDirty: () => boolean, isBusy?: () => boolean): () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function provideModulePageUnsavedStateHost(host: ModulePageUnsavedStateHost | undefined): void;
|
|
10
|
+
export declare function useModulePageUnsavedState(source: string, isDirty: () => boolean, isBusy?: () => boolean): void;
|
|
@@ -23,6 +23,7 @@ export declare function useRecordDetailController<TRecord extends Record<string,
|
|
|
23
23
|
saving: import("vue").Ref<boolean, boolean>;
|
|
24
24
|
togglingEnabled: import("vue").Ref<boolean, boolean>;
|
|
25
25
|
formSessionKey: import("vue").Ref<number, number>;
|
|
26
|
+
isDirty: import("vue").ComputedRef<boolean>;
|
|
26
27
|
beginLoad: (next: TRecord, nextMode: Extract<RecordDetailMode, "edit" | "view">, options?: RecordDetailTransitionOptions) => void;
|
|
27
28
|
resolveLoad: (next: TRecord) => void;
|
|
28
29
|
failLoad: () => void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { RecordFormRecord } from '../platform-components/index';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import type { ResolvedViewFieldDescriptor } from '../web-contracts/index';
|
|
3
|
+
/** Read projections never become business writes, including explicitly named flat outputs. */
|
|
4
|
+
export declare function recordMutationPayload(record: RecordFormRecord, fields?: Iterable<Pick<ResolvedViewFieldDescriptor, 'fieldRef' | 'reference' | 'referenceSummary'>>): RecordFormRecord;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RecordFormFieldDescriptor, RecordFormRecord, ReferenceRecordDetailMutation } from '../platform-components/index';
|
|
2
|
+
/**
|
|
3
|
+
* Applies published ONE-reference display projections after the referenced
|
|
4
|
+
* record is saved, without changing the source record's reference value.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyReferenceRecordProjection(draft: RecordFormRecord, fields: ReadonlyMap<string, RecordFormFieldDescriptor>, mutation: ReferenceRecordDetailMutation): RecordFormRecord;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type WritableComputedRef } from 'vue';
|
|
2
|
+
/** Keep the renderer instance while replacing the disposed business session behind its bindings. */
|
|
3
|
+
export declare function sessionViewBindings<T extends object>(current: () => T): { [K in keyof T]: WritableComputedRef<T[K]>; };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type RecordFormFieldPickerConfig } from '../platform-components/index';
|
|
2
|
+
import type { ResolvedReferenceFieldDescriptor } from '../web-contracts/index';
|
|
3
|
+
import type { ReferenceResolveClient } from '../web-core/index';
|
|
4
|
+
type SourceReferencePickerConfigOptions = {
|
|
5
|
+
providerScopeKey: string;
|
|
6
|
+
sourceModuleAlias: string;
|
|
7
|
+
reference: ResolvedReferenceFieldDescriptor;
|
|
8
|
+
pickerFieldName: string;
|
|
9
|
+
referenceResolver: () => ReferenceResolveClient;
|
|
10
|
+
formValues: () => Record<string, unknown>;
|
|
11
|
+
reloadRecord: () => Record<string, unknown> | undefined;
|
|
12
|
+
source: () => {
|
|
13
|
+
recordId: string;
|
|
14
|
+
} | undefined;
|
|
15
|
+
/** Scoped-tree hosts retain their compact legacy picker alongside lazy expansion. */
|
|
16
|
+
legacyTreeLoaders?: boolean;
|
|
17
|
+
};
|
|
18
|
+
type SourceReferencePickerConfig = Pick<RecordFormFieldPickerConfig, 'provider' | 'reloadKey' | 'loadOptions' | 'loadTree' | 'resolveOptions'>;
|
|
19
|
+
/**
|
|
20
|
+
* Retains source-authorized providers for one page-runtime instance. The source callbacks stay
|
|
21
|
+
* live so page and child-row drafts can change without recreating the picker or widening its
|
|
22
|
+
* candidate authority. SOURCE_FIELD TREE delivery is part of the same provider contract; it is
|
|
23
|
+
* never reconstructed from a paged QUERY result.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createSourceReferencePickerConfigAssembler(): (options: SourceReferencePickerConfigOptions) => SourceReferencePickerConfig;
|
|
26
|
+
export {};
|