@ximatai/muyun-web-app 0.26.11 → 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-Dkb35QXc.js +673 -0
- package/dist/ModuleGovernanceView-Dx43QvGf.js +28651 -0
- 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 +1938 -325
- package/dist/moduleGovernanceWorkspaceView-4V_UW-Bt.js +40 -0
- package/dist/platform-components-1cvOeHmo.js +17854 -0
- package/dist/platform-workbench-Cu14Xd9d.js +10299 -0
- package/dist/rolldown-runtime-DPVXH0ON.js +17 -0
- package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +0 -2
- package/dist/types/app/LoginView.vue.d.ts +1 -1
- package/dist/types/app/workbenchRouteSync.d.ts +10 -1
- package/dist/types/app/workbenchSessionTabs.d.ts +22 -0
- package/dist/types/app/workbenchStartup.d.ts +7 -0
- package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +4 -1
- package/dist/types/consumer/index.d.ts +8 -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/ModulePageDetailRelations.vue.d.ts +1 -1
- package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +32 -5
- 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 +20 -0
- package/dist/types/dynamic-page-runtime/ModuleReferenceRecordDetailBrowser.vue.d.ts +42 -0
- package/dist/types/dynamic-page-runtime/NavigatorPanelActions.vue.d.ts +22 -0
- package/dist/types/dynamic-page-runtime/PageNavigatorExplorer.vue.d.ts +11 -11
- 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/childAggregateContext.d.ts +11 -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 +81 -26
- package/dist/types/dynamic-page-runtime/composables/useRecordEditingSession.d.ts +1 -1
- package/dist/types/dynamic-page-runtime/formActionResult.d.ts +7 -0
- package/dist/types/dynamic-page-runtime/formComputeCoordinator.d.ts +7 -4
- package/dist/types/dynamic-page-runtime/formValidationCoordinator.d.ts +17 -0
- package/dist/types/dynamic-page-runtime/index.d.ts +3 -1
- package/dist/types/dynamic-page-runtime/inputValidationActionStatus.d.ts +20 -0
- package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +13 -3
- package/dist/types/dynamic-page-runtime/modulePageUnsavedState.d.ts +10 -0
- package/dist/types/dynamic-page-runtime/pageActionInvocation.d.ts +7 -0
- package/dist/types/dynamic-page-runtime/pageActionPlacement.d.ts +14 -0
- package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +1 -0
- package/dist/types/dynamic-page-runtime/recordMutationPayload.d.ts +4 -0
- 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/formula/FormulaRuntime.d.ts +6 -0
- package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +5 -0
- package/dist/types/platform-admin-runtime/module-menu/ModuleMenuDrawer.vue.d.ts +7 -0
- package/dist/types/platform-admin-runtime/module-menu/ModuleMenuEntriesSection.vue.d.ts +7 -0
- package/dist/types/platform-admin-runtime/module-menu/moduleMenuClient.d.ts +16 -0
- package/dist/types/platform-admin-runtime/platformModulePageEnhancement.d.ts +2 -0
- package/dist/types/platform-admin-runtime/role/roleScopeSelectionClient.d.ts +52 -0
- package/dist/types/platform-components/AdaptiveHeaderActionBar.vue.d.ts +24 -0
- package/dist/types/platform-components/BusinessNotificationPanel.vue.d.ts +15 -1
- package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +11 -3
- package/dist/types/platform-components/DetailRelationListPanel.vue.d.ts +1 -1
- 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/FormulaExpressionEditor.vue.d.ts +54 -0
- package/dist/types/platform-components/ManagementExplorerColumn.vue.d.ts +15 -3
- package/dist/types/platform-components/ManagementPanelHeader.vue.d.ts +5 -3
- package/dist/types/platform-components/ManagementWorkspace.vue.d.ts +11 -0
- package/dist/types/platform-components/ModuleActionButton.vue.d.ts +3 -3
- 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/QueryGroupedSummary.vue.d.ts +21 -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 +9 -3
- package/dist/types/platform-components/RecordDetailFields.vue.d.ts +41 -4
- package/dist/types/platform-components/RecordDetailLayout.vue.d.ts +4 -1
- package/dist/types/platform-components/RecordDetailPanel.vue.d.ts +2 -0
- package/dist/types/platform-components/RecordExplorerCreateButton.vue.d.ts +16 -0
- package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +16 -5
- package/dist/types/platform-components/RecordFieldLabel.vue.d.ts +16 -0
- package/dist/types/platform-components/RecordFormFields.vue.d.ts +24 -5
- package/dist/types/platform-components/RecordFormGrid.vue.d.ts +24 -0
- package/dist/types/platform-components/RecordListExplorer.vue.d.ts +23 -1
- package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +11 -3
- package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +3 -3
- package/dist/types/platform-components/RecordPanelButton.vue.d.ts +9 -3
- package/dist/types/platform-components/RecordPermissionDialog.vue.d.ts +15 -0
- package/dist/types/platform-components/RecordPicker.vue.d.ts +3 -3
- package/dist/types/platform-components/RecordQueryEnumFilter.vue.d.ts +17 -0
- package/dist/types/platform-components/RecordQueryListCell.vue.d.ts +12 -0
- package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +120 -63
- package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +144 -0
- package/dist/types/platform-components/RecordRelationTable.vue.d.ts +62 -0
- package/dist/types/platform-components/RecordRelationValue.vue.d.ts +9 -0
- package/dist/types/platform-components/RecordStatusSwitch.vue.d.ts +3 -3
- 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/StaticManagementLayout.vue.d.ts +2 -0
- package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +14 -3
- package/dist/types/platform-components/UserPicker.vue.d.ts +47 -0
- package/dist/types/platform-components/adaptiveHeaderActionLayout.d.ts +22 -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/formulaExpressionTokens.d.ts +18 -0
- package/dist/types/platform-components/identityPickerModel.d.ts +18 -0
- package/dist/types/platform-components/index.d.ts +48 -2
- package/dist/types/platform-components/managementExplorerContext.d.ts +11 -0
- package/dist/types/platform-components/managementWorkspaceContext.d.ts +20 -0
- package/dist/types/platform-components/managementWorkspaceLayout.d.ts +14 -0
- 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/recordActionBarModel.d.ts +3 -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 +44 -0
- 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/selectionRefresh.d.ts +9 -0
- package/dist/types/platform-components/sortPartitionKey.d.ts +5 -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/index.d.ts +2 -0
- package/dist/types/platform-workbench/useWorkspaceViewUnsavedState.d.ts +5 -0
- package/dist/types/platform-workbench/workbenchNavigation.d.ts +5 -1
- package/dist/types/platform-workbench/workspaceViewContract.d.ts +5 -0
- package/dist/types/platform-workbench/workspaceViewHost.d.ts +5 -0
- package/dist/types/platform-workbench/workspaceViewNavigation.d.ts +9 -0
- package/dist/types/platform-workbench/workspaceViewUnsavedState.d.ts +5 -0
- package/dist/types/views/BusinessActivityLogView.vue.d.ts +3 -0
- package/dist/types/views/BusinessLogListDrawer.vue.d.ts +9 -0
- package/dist/types/views/BusinessRuleGovernanceSurface.vue.d.ts +10 -0
- package/dist/types/views/LoginAuditLogView.vue.d.ts +3 -0
- package/dist/types/views/MetadataGovernanceSurface.vue.d.ts +8 -0
- package/dist/types/views/MetadataSourceTree.vue.d.ts +44 -0
- package/dist/types/views/ModuleBusinessPreview.vue.d.ts +7 -0
- package/dist/types/views/ModuleExperienceProfileOverview.vue.d.ts +7 -0
- package/dist/types/views/ModuleGovernanceView.vue.d.ts +9 -0
- package/dist/types/views/PageCompositionDescriptorPreview.vue.d.ts +54 -0
- package/dist/types/views/PageCompositionTree.vue.d.ts +103 -0
- package/dist/types/views/PageCompositionWorkspace.vue.d.ts +7 -0
- package/dist/types/views/PageQuerySummaryEditor.vue.d.ts +48 -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/businessRuleGovernance.d.ts +201 -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 +84 -0
- package/dist/types/views/metadataModelTree.d.ts +40 -0
- package/dist/types/views/metadataNaming.d.ts +7 -0
- package/dist/types/views/metadataOrchestrationState.d.ts +161 -6
- package/dist/types/views/metadataSourceTree.d.ts +10 -0
- package/dist/types/views/moduleGovernanceWorkspaceView.d.ts +9 -0
- package/dist/types/views/pageCompositionDraftState.d.ts +404 -0
- package/dist/types/views/pageCompositionDragPayload.d.ts +26 -0
- package/dist/types/views/pageCompositionMode.d.ts +86 -0
- package/dist/types/views/pageCompositionPlacement.d.ts +48 -0
- package/dist/types/views/pageCompositionTransport.d.ts +9 -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/views/usePageCompositionActionPreviewDrag.d.ts +41 -0
- package/dist/types/views/usePageCompositionPreviewDrag.d.ts +48 -0
- package/dist/types/vue-ui-antdv/components/UiActionButton.vue.d.ts +2 -2
- package/dist/types/vue-ui-antdv/components/UiButton.vue.d.ts +6 -3
- package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +20 -2
- package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiPopover.vue.d.ts +22 -0
- package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiSearchInput.vue.d.ts +16 -2
- package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +28 -2
- package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +9 -2
- package/dist/types/vue-ui-antdv/components/UiSwitch.vue.d.ts +1 -1
- package/dist/types/vue-ui-antdv/components/UiTextArea.vue.d.ts +38 -1
- package/dist/types/vue-ui-antdv/components/UiTokenInput.vue.d.ts +62 -0
- package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +63 -9
- package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +24 -2
- 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 +10 -1
- package/dist/types/vue-ui-antdv/treeStructure.d.ts +18 -0
- package/dist/types/vue-ui-antdv/types.d.ts +64 -0
- package/dist/types/vue-ui-antdv/useTreeLoader.d.ts +21 -0
- package/dist/types/vue-ui-antdv/useTreeMotion.d.ts +9 -0
- package/dist/types/vue-ui-antdv/useUiTreeDrag.d.ts +32 -0
- package/dist/types/web-contracts/index.d.ts +132 -12
- package/dist/types/web-core/http.d.ts +2 -0
- package/dist/types/web-core/module/index.d.ts +1 -0
- package/dist/types/web-core/module/moduleContext.d.ts +29 -1
- package/dist/types/web-core/module/pageActionEntries.d.ts +21 -0
- package/dist/types/web-core/module/runtimeContext.d.ts +10 -5
- package/dist/types/web-core/module/staticModuleClient.d.ts +30 -3
- package/dist/workspaceViews-CCg6V0pr.js +3623 -0
- package/package.json +1 -1
- package/dist/MetadataOrchestrationView-F_Bmfn9K.js +0 -661
- package/dist/ModuleActionManagementView-Db_3Twom.js +0 -597
- package/dist/RoleDetailWorkspaceView-UOm1ejGH.js +0 -1369
- package/dist/platform-components-59b4qzUL.js +0 -12489
- package/dist/types/views/metadataOrchestrationWorkspaceView.d.ts +0 -6
- package/dist/workspaceViews-BvV8mpML.js +0 -11149
|
@@ -3,6 +3,8 @@ import type { ModuleContext } from '../web-core/index';
|
|
|
3
3
|
import type { PickerConstraint, RecordPickerRecord } from './recordPickerConstraints';
|
|
4
4
|
import type { WebTreeNode } from '../web-contracts/index';
|
|
5
5
|
import type { RecordPickerMode } from './recordPickerModel';
|
|
6
|
+
import type { ScopedTreePickerProvider } from './scopedTreePickerModel';
|
|
7
|
+
import type { ReferencePickerColumn, ReferencePickerProvider } from './referencePickerModel';
|
|
6
8
|
export type RecordFormFieldDescriptor = (ViewFieldDefinition | ResolvedViewFieldDescriptor) & {
|
|
7
9
|
/** Optional during the protocol migration; resolved descriptors take precedence over legacy uiType. */
|
|
8
10
|
fieldControl?: ResolvedFieldControlDescriptor;
|
|
@@ -36,7 +38,9 @@ export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
|
36
38
|
};
|
|
37
39
|
/** A business boolean does not inherit the lifecycle field's implicit enabled default. */
|
|
38
40
|
export type RecordBooleanStatusValue = boolean | undefined;
|
|
39
|
-
export type RecordFormFieldControlType = 'input' | 'numberInput' | 'dateInput' | 'dateTimeInput' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'fileTransfer' | 'imageFileTransfer' | 'unsupported';
|
|
41
|
+
export type RecordFormFieldControlType = 'input' | 'numberInput' | 'dateInput' | 'dateTimeInput' | 'textarea' | 'colorPicker' | 'select' | 'enabledStatus' | 'booleanStatus' | 'switch' | 'recordPicker' | 'recordMultiPicker' | 'dictionaryPicker' | 'dictionaryRadioGroup' | 'fileTransfer' | 'imageFileTransfer' | 'unsupported';
|
|
42
|
+
/** The only source-field reference presentations implemented by the common picker. */
|
|
43
|
+
export type RecordFormReferencePickerPresentation = 'dropdown' | 'dialog';
|
|
40
44
|
export interface RecordFieldRenderer {
|
|
41
45
|
rendererType: string;
|
|
42
46
|
controlType: Exclude<RecordFormFieldControlType, 'unsupported'>;
|
|
@@ -60,10 +64,14 @@ export interface RecordFormFieldFallback {
|
|
|
60
64
|
}
|
|
61
65
|
export interface RecordFormFieldPickerConfig {
|
|
62
66
|
context: ModuleContext<RecordPickerRecord>;
|
|
67
|
+
/** Source-authorized, paged reference delivery for the common picker. */
|
|
68
|
+
provider?: ReferencePickerProvider;
|
|
69
|
+
/** Candidate columns are presentation only; identity and authorization stay with the provider. */
|
|
70
|
+
columns?: readonly ReferencePickerColumn[];
|
|
63
71
|
loadOptions?: (keyword: string) => Promise<RecordPickerRecord[]>;
|
|
64
72
|
loadTree?: () => Promise<WebTreeNode<RecordPickerRecord>[]>;
|
|
65
73
|
resolveOptions?: (values: string[]) => Promise<RecordPickerRecord[]>;
|
|
66
|
-
reloadKey?: number;
|
|
74
|
+
reloadKey?: string | number;
|
|
67
75
|
mode?: RecordPickerMode;
|
|
68
76
|
placeholder?: string;
|
|
69
77
|
allowClear?: boolean;
|
|
@@ -71,6 +79,17 @@ export interface RecordFormFieldPickerConfig {
|
|
|
71
79
|
titleOf?: (record: RecordPickerRecord) => string;
|
|
72
80
|
descriptionOf?: (record: RecordPickerRecord) => string | undefined;
|
|
73
81
|
filterOption?: (record: RecordPickerRecord, keyword: string) => boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Optional expanded tree navigation for a reference that keeps its ordinary compact picker.
|
|
84
|
+
* The host owns whether its declared effective scope is ready; this generic form model does
|
|
85
|
+
* not infer tenant or organization rules from field names.
|
|
86
|
+
*/
|
|
87
|
+
scopedTree?: {
|
|
88
|
+
title?: string;
|
|
89
|
+
disabled?: boolean;
|
|
90
|
+
unavailableMessage?: string;
|
|
91
|
+
provider: ScopedTreePickerProvider;
|
|
92
|
+
};
|
|
74
93
|
}
|
|
75
94
|
export interface RecordFormFieldState {
|
|
76
95
|
fieldName: string;
|
|
@@ -93,6 +112,13 @@ export interface RecordFormFieldState {
|
|
|
93
112
|
optionTitleField?: string;
|
|
94
113
|
optionItems?: import('../web-contracts/index').OptionItemDescriptor[];
|
|
95
114
|
referenceTitleField?: string;
|
|
115
|
+
/** The compiled reference contract remains available to read-only detail and list renderers. */
|
|
116
|
+
reference?: ResolvedReferenceFieldDescriptor;
|
|
117
|
+
/**
|
|
118
|
+
* Source-neutral presentation resolved from the field control. It is intentionally separate
|
|
119
|
+
* from the provider: the descriptor chooses presentation while the host owns transport.
|
|
120
|
+
*/
|
|
121
|
+
referencePickerPresentation?: RecordFormReferencePickerPresentation;
|
|
96
122
|
/** Title for the standard TreeAbility root sentinel when this field is a tree parent reference. */
|
|
97
123
|
treeRootTitle?: string;
|
|
98
124
|
fileReference?: ResolvedFileReferenceFieldDescriptor;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { OptionItemDescriptor, QuerySchemaField, ResolvedViewDescriptor, ResolvedViewFieldDescriptor, ResolvedReferenceFieldDescriptor } from '../web-contracts/index';
|
|
2
|
+
import type { Component } from 'vue';
|
|
3
|
+
export type QueryListRecord = Record<string, unknown> & {
|
|
4
|
+
id?: string;
|
|
5
|
+
enabled?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type RecordQueryListMode = 'normal' | 'recycleBin';
|
|
8
|
+
export type StandardCrudRowActionKey = 'view' | 'edit' | 'delete';
|
|
9
|
+
/**
|
|
10
|
+
* Source-neutral list-column projection consumed by the standard table shell.
|
|
11
|
+
* It deliberately carries presentation facts only; cell rendering remains the table's responsibility.
|
|
12
|
+
*/
|
|
13
|
+
export interface RecordQueryListColumn {
|
|
14
|
+
key: string;
|
|
15
|
+
title: string;
|
|
16
|
+
type?: 'text' | 'enabledStatus' | 'booleanStatus' | 'tagList' | 'datetime' | 'fileSize' | 'colorPicker';
|
|
17
|
+
booleanStatus?: ResolvedViewFieldDescriptor['booleanStatus'];
|
|
18
|
+
width?: string;
|
|
19
|
+
align?: 'left' | 'center' | 'right';
|
|
20
|
+
titleField?: string;
|
|
21
|
+
/** Compiled reference facts for pure read-side title/summary rendering. */
|
|
22
|
+
reference?: ResolvedReferenceFieldDescriptor;
|
|
23
|
+
/** Only descriptor-declared option fields load a runtime option catalog. */
|
|
24
|
+
optionBinding?: boolean;
|
|
25
|
+
/** Dynamic child entity whose declared option binding owns this field. */
|
|
26
|
+
optionEntityAlias?: string;
|
|
27
|
+
/** Runtime dictionary/reference options used when the response has no title companion. */
|
|
28
|
+
optionItems?: OptionItemDescriptor[];
|
|
29
|
+
/** Maximum visible lines for text cells. Defaults to one line. */
|
|
30
|
+
maxDisplayLines?: number;
|
|
31
|
+
render?: (record: QueryListRecord) => string;
|
|
32
|
+
}
|
|
33
|
+
export interface RecordQueryListCellComponent {
|
|
34
|
+
key: string;
|
|
35
|
+
component: Component;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Compiles the source-neutral resolved list descriptor into the standard table's presentation model.
|
|
39
|
+
*
|
|
40
|
+
* `queryFields` is optional because descriptors normally carry their own value and option facts. It
|
|
41
|
+
* preserves the runtime list's compatibility fallback for older descriptors that still rely on the
|
|
42
|
+
* query schema for timestamp and option-title information.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveRecordQueryListColumns(view: ResolvedViewDescriptor | undefined, queryFields?: readonly QuerySchemaField[]): RecordQueryListColumn[];
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-neutral candidate contract for records selected through an authorized
|
|
3
|
+
* reference source. IDs are the only persisted value; projections are display
|
|
4
|
+
* data and affectPatch remains an explicit, host-owned extension.
|
|
5
|
+
*/
|
|
6
|
+
export type ReferencePickerId = string;
|
|
7
|
+
/** Whether the compact entry still represents the persisted reference selection. */
|
|
8
|
+
export interface ReferencePickerValidity {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
status: 'ready' | 'editing' | 'resolving' | 'unmatched' | 'error';
|
|
11
|
+
message?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ReferencePickerSourceIdentity {
|
|
14
|
+
targetModuleAlias: string;
|
|
15
|
+
source: {
|
|
16
|
+
kind: 'sourceField' | 'businessPurpose' | 'targetReference';
|
|
17
|
+
id: string;
|
|
18
|
+
};
|
|
19
|
+
/** A source-controlled authorization/range revision when it is available. */
|
|
20
|
+
authorizationScope?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ReferencePickerCandidate {
|
|
23
|
+
id: ReferencePickerId;
|
|
24
|
+
title: string;
|
|
25
|
+
subtitle?: string;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
unavailable?: boolean;
|
|
28
|
+
projections?: Readonly<Record<string, unknown>>;
|
|
29
|
+
affectPatch?: Readonly<Record<string, unknown>>;
|
|
30
|
+
}
|
|
31
|
+
export interface ReferencePickerAxisSelection {
|
|
32
|
+
axisId: string;
|
|
33
|
+
itemId: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ReferencePickerBrowseScope {
|
|
36
|
+
selections: readonly ReferencePickerAxisSelection[];
|
|
37
|
+
}
|
|
38
|
+
export interface ReferencePickerNavigationItem {
|
|
39
|
+
id: string;
|
|
40
|
+
title: string;
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** A declared browse axis. The picker clears dependent selections on an upstream change. */
|
|
44
|
+
export interface ReferencePickerNavigationAxis {
|
|
45
|
+
id: string;
|
|
46
|
+
title: string;
|
|
47
|
+
dependsOn?: readonly string[];
|
|
48
|
+
items: readonly ReferencePickerNavigationItem[];
|
|
49
|
+
}
|
|
50
|
+
export interface ReferencePickerPageRequest {
|
|
51
|
+
keyword: string;
|
|
52
|
+
pageNum: number;
|
|
53
|
+
pageSize: number;
|
|
54
|
+
scope: ReferencePickerBrowseScope;
|
|
55
|
+
}
|
|
56
|
+
export interface ReferencePickerPage<TCandidate extends ReferencePickerCandidate = ReferencePickerCandidate> {
|
|
57
|
+
records: TCandidate[];
|
|
58
|
+
total: number;
|
|
59
|
+
navigation?: readonly ReferencePickerNavigationAxis[];
|
|
60
|
+
}
|
|
61
|
+
/** A complete, source-authorized browse tree. It is never synthesized from paged query results. */
|
|
62
|
+
export interface ReferencePickerTreeNode<TCandidate extends ReferencePickerCandidate = ReferencePickerCandidate> {
|
|
63
|
+
record: TCandidate;
|
|
64
|
+
children?: ReferencePickerTreeNode<TCandidate>[];
|
|
65
|
+
}
|
|
66
|
+
export interface ReferencePickerProvider<TCandidate extends ReferencePickerCandidate = ReferencePickerCandidate> {
|
|
67
|
+
identity: ReferencePickerSourceIdentity;
|
|
68
|
+
searchPage(request: ReferencePickerPageRequest): Promise<ReferencePickerPage<TCandidate>>;
|
|
69
|
+
/**
|
|
70
|
+
* Reads the complete tree under the source's authorization scope. Dialog browse uses this only
|
|
71
|
+
* without a keyword; keyword search remains server-paged through searchPage.
|
|
72
|
+
*/
|
|
73
|
+
loadTree?: (request: {
|
|
74
|
+
scope: ReferencePickerBrowseScope;
|
|
75
|
+
}) => Promise<ReferencePickerTreeNode<TCandidate>[]>;
|
|
76
|
+
/** Resolves persisted IDs under the source's authorized historical-display scope. */
|
|
77
|
+
resolve(ids: ReferencePickerId[]): Promise<TCandidate[]>;
|
|
78
|
+
}
|
|
79
|
+
export interface ReferencePickerColumn {
|
|
80
|
+
key: string;
|
|
81
|
+
title: string;
|
|
82
|
+
width?: number;
|
|
83
|
+
}
|
|
84
|
+
/** Compiled page/query configuration for a standard reference interaction. */
|
|
85
|
+
export interface ReferencePickerConfig {
|
|
86
|
+
provider: ReferencePickerProvider;
|
|
87
|
+
mode?: 'dialog' | 'dropdown';
|
|
88
|
+
columns?: readonly ReferencePickerColumn[];
|
|
89
|
+
title?: string;
|
|
90
|
+
placeholder?: string;
|
|
91
|
+
searchPlaceholder?: string;
|
|
92
|
+
maxSelection?: number;
|
|
93
|
+
reloadKey?: string | number;
|
|
94
|
+
}
|
|
95
|
+
export interface ReferencePickerSelectionSummary {
|
|
96
|
+
id: ReferencePickerId;
|
|
97
|
+
title: string;
|
|
98
|
+
subtitle?: string;
|
|
99
|
+
unavailable?: boolean;
|
|
100
|
+
}
|
|
101
|
+
export declare function normalizeReferencePickerIds(value: ReferencePickerId | readonly ReferencePickerId[] | undefined, multiple: boolean): ReferencePickerId[];
|
|
102
|
+
export declare function referencePickerValue(ids: readonly ReferencePickerId[], multiple: boolean): ReferencePickerId | ReferencePickerId[] | undefined;
|
|
103
|
+
export declare function referencePickerSummary(candidate: ReferencePickerCandidate): ReferencePickerSelectionSummary;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AppError } from '../web-core/index';
|
|
2
|
+
export type ReferencePickerReadErrorKind = 'accessDenied' | 'missingDependencies' | 'unsupportedConfiguration' | 'temporaryFailure';
|
|
3
|
+
/**
|
|
4
|
+
* The picker only classifies facts carried by AppError or facts its source can
|
|
5
|
+
* prove locally. It deliberately never derives a category from an error message.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ReferencePickerReadError extends AppError {
|
|
8
|
+
readonly kind: ReferencePickerReadErrorKind;
|
|
9
|
+
readonly retryable: boolean;
|
|
10
|
+
readonly missingDependencyFields: readonly string[];
|
|
11
|
+
readonly original: AppError;
|
|
12
|
+
constructor(kind: ReferencePickerReadErrorKind, message: string, options: {
|
|
13
|
+
retryable: boolean;
|
|
14
|
+
missingDependencyFields?: readonly string[];
|
|
15
|
+
original?: AppError;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Returns undefined for 401 so the request client's authentication lifecycle
|
|
20
|
+
* remains the sole owner of login recovery and redirect behavior.
|
|
21
|
+
*/
|
|
22
|
+
export declare function referencePickerReadErrorOf(cause: unknown, fallbackMessage: string): ReferencePickerReadError | undefined;
|
|
23
|
+
export declare function missingReferencePickerDependencies(sourceFields: readonly string[]): ReferencePickerReadError;
|
|
24
|
+
export declare function unsupportedReferencePickerConfiguration(message: string): ReferencePickerReadError;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type InjectionKey } from 'vue';
|
|
2
|
+
import { type HttpClient, type ModuleContext } from '../web-core/index';
|
|
3
|
+
import type { QueryListRecord } from './recordQueryListColumnModel';
|
|
4
|
+
import { type RecordFormFieldDescriptor } from './recordFormFieldModel';
|
|
5
|
+
export type ActiveReferenceRecord = {
|
|
6
|
+
targetModuleAlias: string;
|
|
7
|
+
recordId: string;
|
|
8
|
+
record?: QueryListRecord;
|
|
9
|
+
loading: boolean;
|
|
10
|
+
/** A record-only editor owns an in-flight target mutation. */
|
|
11
|
+
busy?: boolean;
|
|
12
|
+
failed: boolean;
|
|
13
|
+
failureKind?: 'notFound' | 'temporary';
|
|
14
|
+
};
|
|
15
|
+
export type ReferenceRecordDetailMutation = {
|
|
16
|
+
targetModuleAlias: string;
|
|
17
|
+
recordId: string;
|
|
18
|
+
type: 'saved' | 'deleted' | 'unavailable';
|
|
19
|
+
record?: QueryListRecord;
|
|
20
|
+
};
|
|
21
|
+
export interface ReferenceRecordDetailBrowser {
|
|
22
|
+
revision: {
|
|
23
|
+
value: number;
|
|
24
|
+
};
|
|
25
|
+
active: {
|
|
26
|
+
value: ActiveReferenceRecord | undefined;
|
|
27
|
+
};
|
|
28
|
+
activeContext: {
|
|
29
|
+
value: ModuleContext<QueryListRecord> | undefined;
|
|
30
|
+
};
|
|
31
|
+
fields: {
|
|
32
|
+
value: Map<string, RecordFormFieldDescriptor>;
|
|
33
|
+
};
|
|
34
|
+
title: {
|
|
35
|
+
value: string;
|
|
36
|
+
};
|
|
37
|
+
canBrowse(targetModuleAlias: string, recordId: string): boolean;
|
|
38
|
+
open(targetModuleAlias: string, recordId: string): void;
|
|
39
|
+
setBusy(targetModuleAlias: string, recordId: string, busy: boolean): void;
|
|
40
|
+
reportMutation(mutation: ReferenceRecordDetailMutation): void;
|
|
41
|
+
close(): void;
|
|
42
|
+
/** Component teardown bypasses the user-facing busy close gate. */
|
|
43
|
+
dispose(): void;
|
|
44
|
+
}
|
|
45
|
+
export declare const referenceRecordDetailBrowserKey: InjectionKey<ReferenceRecordDetailBrowser | undefined>;
|
|
46
|
+
export declare function createReferenceRecordDetailBrowser(http: HttpClient): ReferenceRecordDetailBrowser;
|
|
47
|
+
export declare function provideReferenceRecordDetailBrowser(browser: ReferenceRecordDetailBrowser): void;
|
|
48
|
+
export declare function useReferenceRecordDetailBrowser(): ReferenceRecordDetailBrowser | undefined;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An authorized, source-owned record projection for a lazily loaded tree selector.
|
|
3
|
+
* The component deliberately does not infer a parent, tenant, or module from this shape.
|
|
4
|
+
*/
|
|
5
|
+
export interface ScopedTreePickerCandidate {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
/** A provider may return a path, code, or scope summary to disambiguate equal titles. */
|
|
9
|
+
subtitle?: string;
|
|
10
|
+
/** False keeps the item expandable and asks the provider for children when it is expanded. */
|
|
11
|
+
isLeaf?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
unavailable?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ScopedTreePickerRootRequest {
|
|
16
|
+
/** Provider-defined search text. An empty string requests the current scope roots. */
|
|
17
|
+
keyword: string;
|
|
18
|
+
signal: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
export interface ScopedTreePickerChildrenRequest extends ScopedTreePickerRootRequest {
|
|
21
|
+
parent: ScopedTreePickerCandidate;
|
|
22
|
+
/** Opaque continuation supplied by an earlier child response when the provider supports paging. */
|
|
23
|
+
cursor?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ScopedTreePickerPage {
|
|
26
|
+
records: ScopedTreePickerCandidate[];
|
|
27
|
+
hasMore?: boolean;
|
|
28
|
+
nextCursor?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A source-owned delivery boundary. The caller may use a static reference resolver, a dedicated
|
|
32
|
+
* candidate endpoint, or another authorized source; this component has no module-path knowledge.
|
|
33
|
+
*/
|
|
34
|
+
export interface ScopedTreePickerProvider {
|
|
35
|
+
loadRoot: (request: ScopedTreePickerRootRequest) => Promise<ScopedTreePickerPage>;
|
|
36
|
+
loadChildren: (request: ScopedTreePickerChildrenRequest) => Promise<ScopedTreePickerPage>;
|
|
37
|
+
/** Resolves persisted IDs through the same authorization and effective-scope rule. */
|
|
38
|
+
resolve: (ids: string[]) => Promise<ScopedTreePickerCandidate[]>;
|
|
39
|
+
}
|
|
40
|
+
export interface ScopedTreePickerConfig {
|
|
41
|
+
title?: string;
|
|
42
|
+
placeholder?: string;
|
|
43
|
+
searchPlaceholder?: string;
|
|
44
|
+
provider: ScopedTreePickerProvider;
|
|
45
|
+
}
|
|
46
|
+
export declare function scopedTreePickerValue(value: string | undefined): string | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reconciles a controlled selection with a freshly loaded collection.
|
|
3
|
+
*
|
|
4
|
+
* Platform components never infer a business fallback; callers supply it when their domain has
|
|
5
|
+
* one. The shared rule is simply that a still-present stable key keeps focus after refresh.
|
|
6
|
+
*/
|
|
7
|
+
export declare function reconcileSelectedKey<Key>(previous: Key | undefined, available: Iterable<Key>, fallback?: Key): Key | undefined;
|
|
8
|
+
/** Keeps only selected keys that are still present in the refreshed result set. */
|
|
9
|
+
export declare function reconcileSelectedKeys<Key>(previous: Iterable<Key>, available: Iterable<Key>): Key[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encodes partition values without collapsing distinct persisted values such as null and "".
|
|
3
|
+
* JSON is used instead of a delimiter so values cannot collide through delimiter characters.
|
|
4
|
+
*/
|
|
5
|
+
export declare function sortPartitionKey(values: readonly unknown[]): string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ResolvedReferenceFieldDescriptor } from '../web-contracts/index';
|
|
2
|
+
import type { ReferenceResolveClient } from '../web-core/index';
|
|
3
|
+
import type { ReferencePickerProvider } from './referencePickerModel';
|
|
4
|
+
export interface SourceReferencePickerProviderOptions {
|
|
5
|
+
sourceModuleAlias: string;
|
|
6
|
+
fieldName: string;
|
|
7
|
+
reference: ResolvedReferenceFieldDescriptor;
|
|
8
|
+
/** Obtained at request time so a retained provider does not capture a replaced module context. */
|
|
9
|
+
resolver: () => ReferenceResolveClient;
|
|
10
|
+
/** Read at request time so a stable provider always uses the current draft. */
|
|
11
|
+
formValues: () => Record<string, unknown>;
|
|
12
|
+
source: () => {
|
|
13
|
+
recordId: string;
|
|
14
|
+
} | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Adapts the source-field resolver to the neutral picker contract. It deliberately carries no
|
|
18
|
+
* target-module query fallback: the declaring source field remains the authority for candidate
|
|
19
|
+
* eligibility, projections and patches.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createSourceReferencePickerProvider({ sourceModuleAlias, fieldName, reference, resolver, formValues, source, }: SourceReferencePickerProviderOptions): ReferencePickerProvider;
|
|
22
|
+
/**
|
|
23
|
+
* Only source identity, persisted record scope and declared candidate dependencies invalidate a
|
|
24
|
+
* picker. This avoids resetting pagination or re-querying for unrelated form edits.
|
|
25
|
+
*/
|
|
26
|
+
export declare function sourceReferencePickerReloadKey(sourceModuleAlias: string, fieldName: string, reference: ResolvedReferenceFieldDescriptor, record: Record<string, unknown> | undefined): string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
1
2
|
import { type ModuleContext } from '../web-core/index';
|
|
2
3
|
import type { UiConfirmOptions } from '../vue-ui-antdv/index';
|
|
3
4
|
import { type PlatformActionResultReactionHandler } from './platformActionResultFeedback';
|
|
@@ -41,12 +42,12 @@ export interface StaticCrudManagementOptions<TRecord extends StaticCrudRecord> {
|
|
|
41
42
|
actionResultReactionHandlers?: Record<string, PlatformActionResultReactionHandler | undefined>;
|
|
42
43
|
}
|
|
43
44
|
export declare function useFlatCrudManagementState<TRecord extends StaticCrudRecord>(options: StaticCrudManagementOptions<TRecord>): {
|
|
44
|
-
selected:
|
|
45
|
-
draft:
|
|
46
|
-
mode:
|
|
47
|
-
reloadKey:
|
|
48
|
-
saving:
|
|
49
|
-
actionError:
|
|
45
|
+
selected: Ref<TRecord | undefined, TRecord | undefined>;
|
|
46
|
+
draft: Ref<TRecord, TRecord>;
|
|
47
|
+
mode: Ref<StaticCrudCardMode, StaticCrudCardMode>;
|
|
48
|
+
reloadKey: Ref<number, number>;
|
|
49
|
+
saving: Ref<boolean, boolean>;
|
|
50
|
+
actionError: Ref<string | undefined, string | undefined>;
|
|
50
51
|
cardTitle: import("vue").ComputedRef<string>;
|
|
51
52
|
readonly: import("vue").ComputedRef<boolean>;
|
|
52
53
|
canCreate: import("vue").ComputedRef<boolean>;
|
|
@@ -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;
|
|
@@ -8,6 +8,8 @@ export type { OpenRouteOptions, WorkbenchNavigation, WorkbenchPageOpenResult } f
|
|
|
8
8
|
export { routeUrlWithOpenOptions } from './workbenchNavigation';
|
|
9
9
|
export { configureWorkspaceViewContributions, createWorkspaceViewDescriptor, createWorkspaceViewRegistry, dismissWorkspaceViewDescriptor, resolveWorkspaceView, } from './workspaceViews';
|
|
10
10
|
export { provideWorkspaceViewHost, useWorkspaceViewHost } from './workspaceViewHost';
|
|
11
|
+
export { useWorkspaceViewNavigation } from './workspaceViewNavigation';
|
|
12
|
+
export { useWorkspaceViewUnsavedState } from './useWorkspaceViewUnsavedState';
|
|
11
13
|
export { defineWorkspaceView } from './workspaceViewContract';
|
|
12
14
|
export type { ResolvedWorkspaceView, WorkspaceViewRegistry } from './workspaceViews';
|
|
13
15
|
export type { WorkspaceViewDefinition, WorkspaceViewInput, WorkspaceViewPresentation, WorkspaceDrawerProfile, } from './workspaceViewContract';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PageDescriptor, RouteQueryValue } from '../web-contracts/index';
|
|
1
|
+
import type { MenuRecord, MenuTreeNode, PageDescriptor, RouteQueryValue } from '../web-contracts/index';
|
|
2
2
|
export interface OpenRouteOptions {
|
|
3
3
|
/** Opens an independent internal tab instance without changing the public URL. */
|
|
4
4
|
newInstance?: boolean;
|
|
@@ -6,6 +6,10 @@ export interface OpenRouteOptions {
|
|
|
6
6
|
query?: Record<string, RouteQueryValue>;
|
|
7
7
|
}
|
|
8
8
|
export interface WorkbenchNavigation {
|
|
9
|
+
/** Reloads visible menus without resetting open pages or their edits. */
|
|
10
|
+
refreshMenus?(): Promise<MenuTreeNode[]>;
|
|
11
|
+
/** Uses the same navigation policy as clicking a sidebar menu. */
|
|
12
|
+
openMenu?(menu: MenuRecord): void;
|
|
9
13
|
openRoute(path: string, options?: OpenRouteOptions): WorkbenchPageOpenResult;
|
|
10
14
|
replaceRoute(path: string, options?: OpenRouteOptions): WorkbenchPageOpenResult;
|
|
11
15
|
closeCurrentTab(fallbackPath: string): WorkbenchPageOpenResult;
|
|
@@ -13,6 +13,11 @@ export interface WorkspaceViewDefinition<TInput extends WorkspaceViewInput> {
|
|
|
13
13
|
drawerProfile?: WorkspaceDrawerProfile;
|
|
14
14
|
routeTitle?: string;
|
|
15
15
|
titleOf(input: TInput): string;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the input fields that identify one workbench tab. Other parsed
|
|
18
|
+
* input fields remain URL-restorable view state and can change in-place.
|
|
19
|
+
*/
|
|
20
|
+
tabIdentityParamsOf?(input: TInput): Record<string, RouteQueryValue>;
|
|
16
21
|
parentRouteQueryOf?(input: TInput): Record<string, RouteQueryValue>;
|
|
17
22
|
parse(query: Record<string, RouteQueryValue>): TInput | undefined;
|
|
18
23
|
presentations: readonly WorkspaceViewPresentation[];
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import type { RouteQueryValue } from '../web-contracts/index';
|
|
1
2
|
import type { WorkspaceViewPresentation } from './workspaceViewContract';
|
|
2
3
|
export interface WorkspaceViewHost {
|
|
3
4
|
presentation: WorkspaceViewPresentation;
|
|
4
5
|
setTitle(title: string): void;
|
|
6
|
+
/** Replaces URL-restorable state without creating another workbench tab. */
|
|
7
|
+
replaceQuery(query: Record<string, RouteQueryValue | undefined>): void;
|
|
8
|
+
/** Registers a local draft signal used only when the owning workbench tab closes. */
|
|
9
|
+
registerUnsavedState(source: string, isDirty: () => boolean, isBusy?: () => boolean): () => void;
|
|
5
10
|
dismiss(): void;
|
|
6
11
|
/** Closes the current independent workbench view. */
|
|
7
12
|
close(): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RouteQueryValue } from '../web-contracts/index';
|
|
2
|
+
/**
|
|
3
|
+
* Updates navigation state owned by the current workspace view. The workbench
|
|
4
|
+
* replaces the current page descriptor, so this does not open another tab or
|
|
5
|
+
* add a browser-history entry.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useWorkspaceViewNavigation(): {
|
|
8
|
+
replaceQuery(query: Record<string, RouteQueryValue | undefined>): void;
|
|
9
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function registerWorkspaceViewUnsavedState(pageKey: string, source: string, isDirty: () => boolean, isBusy?: () => boolean): () => void;
|
|
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[];
|
|
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,10 @@
|
|
|
1
|
+
import { type BusinessRuleFormulaCapability, type BusinessRuleFormulaCatalogEntry } from './businessRuleGovernance';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
moduleAlias: string;
|
|
4
|
+
moduleTitle?: string;
|
|
5
|
+
/** A server-supplied portable catalogue can replace the built-in capability descriptors. */
|
|
6
|
+
formulaCapabilities?: readonly (BusinessRuleFormulaCapability | BusinessRuleFormulaCatalogEntry)[];
|
|
7
|
+
};
|
|
8
|
+
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>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
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,8 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
moduleAlias: string;
|
|
3
|
+
moduleTitle?: string;
|
|
4
|
+
title?: string;
|
|
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,44 @@
|
|
|
1
|
+
import { type UiTreeNode } from '../vue-ui-antdv/index';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
nodes: UiTreeNode[];
|
|
4
|
+
title?: string;
|
|
5
|
+
embedded?: boolean;
|
|
6
|
+
searchKeyword?: string;
|
|
7
|
+
showSystemFields?: boolean;
|
|
8
|
+
searchable?: boolean;
|
|
9
|
+
refreshDisabled?: boolean;
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
unavailable?: boolean;
|
|
12
|
+
unavailableDescription?: string;
|
|
13
|
+
};
|
|
14
|
+
declare var __VLS_34: {};
|
|
15
|
+
type __VLS_Slots = {} & {
|
|
16
|
+
default?: (props: typeof __VLS_34) => any;
|
|
17
|
+
};
|
|
18
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
|
+
refresh: () => any;
|
|
20
|
+
"update:searchKeyword": (value: string) => any;
|
|
21
|
+
"update:showSystemFields": (value: boolean) => any;
|
|
22
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
23
|
+
onRefresh?: (() => any) | undefined;
|
|
24
|
+
"onUpdate:searchKeyword"?: ((value: string) => any) | undefined;
|
|
25
|
+
"onUpdate:showSystemFields"?: ((value: boolean) => any) | undefined;
|
|
26
|
+
}>, {
|
|
27
|
+
title: string;
|
|
28
|
+
loading: boolean;
|
|
29
|
+
unavailable: boolean;
|
|
30
|
+
embedded: boolean;
|
|
31
|
+
refreshDisabled: boolean;
|
|
32
|
+
searchKeyword: string;
|
|
33
|
+
searchable: boolean;
|
|
34
|
+
showSystemFields: boolean;
|
|
35
|
+
unavailableDescription: string;
|
|
36
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
37
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
38
|
+
declare const _default: typeof __VLS_export;
|
|
39
|
+
export default _default;
|
|
40
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
41
|
+
new (): {
|
|
42
|
+
$slots: S;
|
|
43
|
+
};
|
|
44
|
+
};
|