@ximatai/muyun-web-app 0.26.22 → 0.26.24

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.
Files changed (59) hide show
  1. package/dist/{BusinessActivityLogView-CXBpVbZW.js → BusinessActivityLogView-DQ5_VmLp.js} +2 -2
  2. package/dist/{BusinessLogListDrawer-DToyqP9V.js → BusinessLogListDrawer-BnucgqNA.js} +116 -116
  3. package/dist/{CodeConfigurationView-DAdbnF2Y.js → CodeConfigurationView-CtQjmpLz.js} +527 -527
  4. package/dist/{ConfigurationTranslationView-D1aLZQlx.js → ConfigurationTranslationView-BiYn2MJx.js} +26 -26
  5. package/dist/{LoginAuditLogView-DRxp6BbU.js → LoginAuditLogView-BIz1LVC3.js} +2 -2
  6. package/dist/ModuleActionManagementView-0_ek9yag.js +780 -0
  7. package/dist/{ModuleGovernanceView-C7V5KQcA.js → ModuleGovernanceView-DEDF61vj.js} +3061 -3061
  8. package/dist/{RequestErrorLogView-S6O4ha82.js → RequestErrorLogView-HatmiK8_.js} +2 -2
  9. package/dist/RoleDetailWorkspaceView-BzzoarpR.js +1435 -0
  10. package/dist/{RuntimeLogView-BuF-xgEc.js → RuntimeLogView-Vdt6SWK6.js} +65 -65
  11. package/dist/{WorkflowAdministrationView-DkK3Wybi.js → WorkflowAdministrationView-Dlw2ng0N.js} +193 -193
  12. package/dist/{WorkflowConfigurationView-8DFNdIyI.js → WorkflowConfigurationView-j2xnGmkM.js} +39 -39
  13. package/dist/{WorkflowWorkbenchView-CAloU49z.js → WorkflowWorkbenchView-Nv4mvTTP.js} +122 -122
  14. package/dist/{codeConfiguration-BV9yki1E.js → codeConfiguration-B_z1qQvB.js} +43 -43
  15. package/dist/index.css +1 -1
  16. package/dist/index.js +1344 -818
  17. package/dist/moduleMenuWorkspace-1N0U7QW9.js +626 -0
  18. package/dist/{platform-components-C9cG_1E2.js → platform-components-Xb5qgsXU.js} +3088 -2999
  19. package/dist/{platform-workbench-BSTroBaq.js → platform-workbench-VhgKhPLI.js} +5106 -5031
  20. package/dist/record-read.js +2 -0
  21. package/dist/recordReadEntry-CxDHM44F.js +152 -0
  22. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +6 -0
  23. package/dist/types/app/ExternalIdentityBindings.vue.d.ts +8 -0
  24. package/dist/types/app/ExternalProvisioningConfirmation.vue.d.ts +15 -0
  25. package/dist/types/app/LoginView.vue.d.ts +3 -1
  26. package/dist/types/app/WeLinkQrCode.vue.d.ts +11 -0
  27. package/dist/types/app/externalLoginReturn.d.ts +38 -0
  28. package/dist/types/app/useExternalLoginHost.d.ts +27 -0
  29. package/dist/types/app/weLinkQrCode.d.ts +22 -0
  30. package/dist/types/consumer/index.d.ts +7 -2
  31. package/dist/types/consumer/recordRead.d.ts +6 -0
  32. package/dist/types/dynamic-page-runtime/ManagedDetailRelationInlineSurface.vue.d.ts +1 -0
  33. package/dist/types/dynamic-page-runtime/ManagedDetailRelationSurface.vue.d.ts +1 -0
  34. package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +4 -0
  35. package/dist/types/dynamic-page-runtime/ModulePageDetailRelations.vue.d.ts +1 -0
  36. package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +11 -15
  37. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +2 -0
  38. package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +2 -0
  39. package/dist/types/platform-admin-runtime/job/ScheduledActionTargetFields.vue.d.ts +7 -0
  40. package/dist/types/platform-admin-runtime/scheduledActionPlanPageEnhancement.d.ts +3 -0
  41. package/dist/types/platform-components/BusinessNotificationCard.vue.d.ts +30 -0
  42. package/dist/types/platform-components/BusinessNotificationPanel.vue.d.ts +4 -39
  43. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +1 -1
  44. package/dist/types/platform-components/RecordExplorerPanel.vue.d.ts +8 -17
  45. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +2 -0
  46. package/dist/types/platform-components/RecordFormFields.vue.d.ts +2 -2
  47. package/dist/types/platform-components/SingleImageFileReferenceField.vue.d.ts +4 -0
  48. package/dist/types/platform-components/fileReferenceTransfer.d.ts +9 -2
  49. package/dist/types/platform-components/managementWorkspaceContext.d.ts +2 -1
  50. package/dist/types/platform-components/useNotificationDeckMotion.d.ts +7 -0
  51. package/dist/types/views/businessRuleGovernance.d.ts +1 -0
  52. package/dist/types/web-contracts/index.d.ts +71 -2
  53. package/dist/types/web-core/clients.d.ts +11 -1
  54. package/dist/{useWorkflowConfigurationContext-ClwD0BWE.js → useWorkflowConfigurationContext-BLFXzHwn.js} +8 -8
  55. package/dist/{workspaceViews-Cvi7uakV.js → workspaceViews-Cas3PR5B.js} +1035 -879
  56. package/package.json +5 -1
  57. package/dist/ModuleActionManagementView-D4oXCnW2.js +0 -755
  58. package/dist/RoleDetailWorkspaceView-lg4XwTlN.js +0 -1435
  59. package/dist/moduleMenuWorkspace-BBOQrHeT.js +0 -626
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "./recordReadEntry-CxDHM44F.js";
2
+ export { t as resolveRecordReadEntry, e as useRecordReadSession };
@@ -0,0 +1,152 @@
1
+ import { computed as e, onScopeDispose as t, ref as n, shallowRef as r, toValue as i, watch as a } from "vue";
2
+ //#region src/web-core/useRecordReadSession.ts
3
+ function o(o) {
4
+ let u = r(), d = n(!1), f = r(), p = n(1), m = n(s(o.pageSize ?? 20)), h = n(""), g = r(), _ = r(), v = n(!1), y = r(), b = !1, x, S = 0, C = 0, w, T, E = e(() => {
5
+ let e = i(o.view);
6
+ return JSON.stringify([
7
+ e.sourceId,
8
+ e.viewCode,
9
+ e.scopeKey
10
+ ]);
11
+ });
12
+ function D() {
13
+ C++, T?.abort(), g.value = void 0, _.value = void 0, y.value = void 0, v.value = !1;
14
+ }
15
+ async function O(e) {
16
+ if (b) return;
17
+ let t = i(o.view), n = t.recordKey(e), r = u.value?.records.find((e) => t.recordKey(e) === n);
18
+ if (!r || !t.detail) return;
19
+ D();
20
+ let a = C;
21
+ g.value = r, v.value = !0;
22
+ let s = new AbortController();
23
+ T = s;
24
+ try {
25
+ let e = await t.detail.load(r, {
26
+ signal: s.signal,
27
+ contentLanguage: i(o.contentLanguage)
28
+ });
29
+ if (b || a !== C) return;
30
+ if (!c(e)) throw Error("Read detail requires a record projection");
31
+ _.value = e;
32
+ } catch (e) {
33
+ !b && a === C && (y.value = e);
34
+ } finally {
35
+ !b && a === C && (v.value = !1);
36
+ }
37
+ }
38
+ async function k() {
39
+ if (b) return;
40
+ E.value !== x && (x = E.value, D(), p.value = 1, h.value = "");
41
+ let e = ++S;
42
+ w?.abort();
43
+ let t = new AbortController();
44
+ w = t;
45
+ let n = g.value;
46
+ D();
47
+ let r = C;
48
+ u.value = void 0, f.value = void 0, d.value = !0;
49
+ try {
50
+ if (await Promise.resolve(), b || e !== S) return;
51
+ let a = i(o.view);
52
+ if (!a.sourceId?.trim() || !a.viewCode?.trim() || !a.scopeKey?.trim() || !a.descriptor.page?.list?.fields) throw Error("Read view requires an identity, authorization scope and compiled list descriptor");
53
+ let s = n && a.recordKey(n), c = JSON.parse(JSON.stringify(i(o.query) ?? {}));
54
+ delete c.unpaged;
55
+ let d = await a.query({
56
+ ...c,
57
+ page: {
58
+ pageNum: p.value,
59
+ pageSize: m.value
60
+ },
61
+ quickSearch: h.value || void 0
62
+ }, {
63
+ signal: t.signal,
64
+ contentLanguage: i(o.contentLanguage)
65
+ });
66
+ if (b || e !== S) return;
67
+ l(d);
68
+ let f = d.records.map((e) => a.recordKey(e));
69
+ if (f.some((e) => typeof e != "string" || !e.trim()) || new Set(f).size !== f.length) throw Error("Read projection requires unique, non-empty record keys");
70
+ u.value = d, p.value = d.pageNum, m.value = d.pageSize;
71
+ let g = s && d.records.find((e) => a.recordKey(e) === s);
72
+ g && r === C && O(g);
73
+ } catch (t) {
74
+ !b && e === S && (f.value = t);
75
+ } finally {
76
+ !b && e === S && (d.value = !1);
77
+ }
78
+ }
79
+ function A(e) {
80
+ return h.value = e, j(1);
81
+ }
82
+ function j(e) {
83
+ return p.value = s(e), D(), k();
84
+ }
85
+ function M(e) {
86
+ return m.value = s(e), j(1);
87
+ }
88
+ return a([E, () => i(o.view)], () => {
89
+ k();
90
+ }, {
91
+ immediate: !0,
92
+ flush: "sync"
93
+ }), a(() => JSON.stringify(i(o.query)), () => void j(1), { flush: "sync" }), a(() => i(o.contentLanguage), () => void k(), { flush: "sync" }), t(() => {
94
+ b = !0, S++, w?.abort(), D();
95
+ }), {
96
+ result: u,
97
+ loading: d,
98
+ error: f,
99
+ pageNum: p,
100
+ pageSize: m,
101
+ quickSearch: h,
102
+ selected: g,
103
+ detail: _,
104
+ detailLoading: v,
105
+ detailError: y,
106
+ refresh: k,
107
+ search: A,
108
+ goPage: j,
109
+ resizePage: M,
110
+ select: O,
111
+ closeDetail: D
112
+ };
113
+ }
114
+ function s(e) {
115
+ if (!Number.isSafeInteger(e) || e < 1) throw RangeError("Pagination requires positive integers");
116
+ return e;
117
+ }
118
+ function c(e) {
119
+ return typeof e == "object" && !!e && !Array.isArray(e);
120
+ }
121
+ function l(e) {
122
+ if (!c(e) || !Array.isArray(e.records) || !e.records.every(c) || !Number.isSafeInteger(e.pageNum) || e.pageNum < 1 || !Number.isSafeInteger(e.pageSize) || e.pageSize < 1 || !Number.isSafeInteger(e.total) || e.total < 0 || !Number.isSafeInteger(e.pages) || e.pages < 0 || typeof e.totalKnown != "boolean" || e.records.length > e.pageSize) throw Error("Read query requires a valid paged response");
123
+ }
124
+ //#endregion
125
+ //#region src/web-core/recordReadEntry.ts
126
+ function u(e) {
127
+ let { page: t, moduleAlias: n } = e;
128
+ if (t?.target.moduleAlias && t.target.moduleAlias !== n) throw Error(`Read entry module mismatch: ${n}`);
129
+ let r = {};
130
+ if (t?.entryParamsJson !== void 0) {
131
+ let e = JSON.parse(t.entryParamsJson);
132
+ if (typeof e != "object" || !e || Array.isArray(e)) throw Error("Read entry parameters require a JSON object");
133
+ r = e;
134
+ }
135
+ let i = r.view;
136
+ if (i !== void 0 && (typeof i != "string" || !i.trim())) throw Error("Read entry requires a named view");
137
+ let a = t?.menuId ? i : e.directViewCode ?? i ?? e.defaultViewCode;
138
+ if (typeof a != "string" || !e.viewCodes.includes(a)) throw Error(`Unknown read view: ${String(a)}`);
139
+ if (t?.menuId && e.directViewCode && e.directViewCode !== a) throw Error("Read entry view conflicts with menu");
140
+ return {
141
+ moduleAlias: n,
142
+ viewCode: a,
143
+ menuId: t?.menuId,
144
+ params: r,
145
+ ...t?.pageType === "dynamic-module" || t?.pageType === "business-route" ? {
146
+ defaultUiConfigId: t.target.defaultUiConfigId,
147
+ defaultQueryTemplateId: t.target.defaultQueryTemplateId
148
+ } : {}
149
+ };
150
+ }
151
+ //#endregion
152
+ export { o as n, u as t };
@@ -1,3 +1,4 @@
1
+ import { type ExternalLoginClient } from '../web-core/index';
1
2
  import type { CurrentUserProfile } from '../web-contracts/index';
2
3
  type __VLS_Props = {
3
4
  open?: boolean;
@@ -5,6 +6,9 @@ type __VLS_Props = {
5
6
  loading?: boolean;
6
7
  saving?: boolean;
7
8
  error?: string;
9
+ /** Shows the user's external account bindings when the deployment enables federation. */
10
+ externalLoginClient?: ExternalLoginClient;
11
+ authToken?: string;
8
12
  };
9
13
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
14
  close: () => any;
@@ -26,6 +30,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
26
30
  open: boolean;
27
31
  profile: CurrentUserProfile;
28
32
  saving: boolean;
33
+ externalLoginClient: ExternalLoginClient;
34
+ authToken: string;
29
35
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
36
  declare const _default: typeof __VLS_export;
31
37
  export default _default;
@@ -0,0 +1,8 @@
1
+ import type { ExternalLoginClient } from '../web-core/index';
2
+ type __VLS_Props = {
3
+ client: ExternalLoginClient;
4
+ token: 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,15 @@
1
+ import type { ExternalProvisioningProfile } from '../web-contracts/index';
2
+ type __VLS_Props = {
3
+ confirmation: ExternalProvisioningProfile;
4
+ busy?: boolean;
5
+ error?: string;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ confirm: () => any;
9
+ cancel: () => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onConfirm?: (() => any) | undefined;
12
+ onCancel?: (() => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -1,8 +1,10 @@
1
- import { type AuthClient, type LoginContextClient } from '../web-core/index';
1
+ import { type AuthClient, type ExternalLoginClient, type LoginContextClient } from '../web-core/index';
2
2
  import type { LoginResult } from '../web-contracts/index';
3
3
  type __VLS_Props = {
4
4
  authClient: AuthClient;
5
5
  loginContextClient?: LoginContextClient;
6
+ /** Enables external sign-in on tenant-locked entries that offer it. */
7
+ externalLoginClient?: ExternalLoginClient;
6
8
  loading?: boolean;
7
9
  error?: string;
8
10
  /** Used only when the form is first created; URL-locked tenants always take precedence. */
@@ -0,0 +1,11 @@
1
+ import type { ExternalLoginStart } from '../web-contracts/index';
2
+ type __VLS_Props = {
3
+ start: ExternalLoginStart;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ close: () => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onClose?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,38 @@
1
+ import type { LanguageContext } from '../web-core/index';
2
+ import type { ExternalLoginCompletion, ExternalLoginPurpose, ExternalLoginStart } from '../web-contracts/index';
3
+ /** A transaction this browser started and may complete when the provider returns it to the workbench. */
4
+ export interface PendingExternalLogin {
5
+ providerId: string;
6
+ state: string;
7
+ browserProof: string;
8
+ purpose: ExternalLoginPurpose;
9
+ /** Locked tenant of the sign-in entry, restored on the address after the provider round trip. */
10
+ tenantId?: string;
11
+ }
12
+ /** A provider return to the workbench, matched against this browser's pending transactions. */
13
+ export interface ExternalLoginReturn {
14
+ /** Absent when this browser did not start the transaction; the return must then be ignored. */
15
+ pending?: PendingExternalLogin;
16
+ /** Every provider parameter on the address, forwarded unchanged for server-side verification. */
17
+ parameters: Record<string, string>;
18
+ }
19
+ /**
20
+ * Keeps the state and proof of a started transaction in session storage. Only this browser tab session can
21
+ * complete the transaction; neither value is ever placed in a URL by the workbench.
22
+ */
23
+ export declare function rememberExternalLogin(start: ExternalLoginStart, target: {
24
+ providerId: string;
25
+ purpose: ExternalLoginPurpose;
26
+ tenantId?: string;
27
+ }, storage?: Storage | undefined): void;
28
+ /** Closing the QR surface discards this tab's proof; a later return cannot complete that transaction. */
29
+ export declare function forgetExternalLogin(state: string, storage?: Storage | undefined): void;
30
+ /** Sends the browser to the provider authorization page; the page itself is outside the workbench. */
31
+ export declare function navigateToExternalAuthorization(authorizationUrl: string): void;
32
+ /**
33
+ * Reads a provider return from the workbench root query and forgets the matching pending transaction.
34
+ * Returns `undefined` when the address is not a provider return.
35
+ */
36
+ export declare function takeExternalLoginReturn(query: Record<string, unknown>, storage?: Storage | undefined): ExternalLoginReturn | undefined;
37
+ /** User-facing explanation of a completion that did not succeed. */
38
+ export declare function externalLoginFailureMessage(completion: ExternalLoginCompletion, language: LanguageContext): string;
@@ -0,0 +1,27 @@
1
+ import type { Router } from 'vue-router';
2
+ import { type ExternalLoginClient } from '../web-core/index';
3
+ import type { ExternalProvisioningProfile, LoginResult } from '../web-contracts/index';
4
+ /** App-level composition; protocol clients and browser transaction storage remain separate concerns. */
5
+ export interface ExternalLoginHostOptions {
6
+ client: ExternalLoginClient;
7
+ router: Router;
8
+ /** Receives the session exactly as password login does; the host owns persistence and startup. */
9
+ onAuthenticated: (login: LoginResult) => void | Promise<void>;
10
+ signedIn: () => boolean;
11
+ /** Workbench route registered as the provider redirect URI, relative to the router base. */
12
+ callbackPath?: string;
13
+ }
14
+ /** Public host state. Call completeReturn before restoring the ordinary workbench session. */
15
+ export declare function useExternalLoginHost(options: ExternalLoginHostOptions): {
16
+ client: ExternalLoginClient;
17
+ /** Read-only server profile. Browser credentials remain private to this host instance. */
18
+ confirmation: import("vue").ComputedRef<ExternalProvisioningProfile | undefined>;
19
+ confirming: import("vue").ComputedRef<boolean>;
20
+ confirmProvisioning: () => Promise<void>;
21
+ cancelProvisioning(): void;
22
+ error: import("vue").ComputedRef<string | undefined>;
23
+ completing: import("vue").ComputedRef<boolean>;
24
+ /** True means session handoff, pending confirmation, or a signed-out failure decided the screen. Concurrent calls coalesce. */
25
+ completeReturn(): Promise<boolean>;
26
+ };
27
+ export type ExternalLoginHost = ReturnType<typeof useExternalLoginHost>;
@@ -0,0 +1,22 @@
1
+ export declare const WELINK_ORIGIN = "https://login.welink.huaweicloud.com";
2
+ export declare const WELINK_SCRIPT = "https://login.welink.huaweicloud.com/sso-proxy-front/public/qrcode/0.0.1/wlQrcodeLogin.js";
3
+ type CreateQrCode = (options: {
4
+ id: string;
5
+ client_id: string;
6
+ redirect_uri: string;
7
+ state: string;
8
+ scope: string;
9
+ response_type: string;
10
+ self_redirect: string;
11
+ lang: string;
12
+ width: number;
13
+ height: number;
14
+ }) => void;
15
+ declare global {
16
+ interface Window {
17
+ wlQrcodeLogin?: CreateQrCode;
18
+ }
19
+ }
20
+ /** One official script per document; failed loads can be retried by a fresh transaction. */
21
+ export declare function loadWeLinkScript(): Promise<CreateQrCode>;
22
+ export {};
@@ -16,10 +16,11 @@ export { restoreLockedTabPreference, saveLockedTabPreference } from '../app/lock
16
16
  export { configureModulePageEnhancementContributions, configureModulePageEnhancements, createModulePageEnhancementRegistry, modulePageWorkspaceViews, } from '../dynamic-page-runtime/modulePageEnhancements';
17
17
  export { refreshModulePageList } from '../dynamic-page-runtime/modulePageListRefresh';
18
18
  export type { ModuleListEnhancement, ModuleDetailEnhancement, ModulePageActionContext, ModulePageActionContribution, ModulePageActionStateContext, ModulePageBatchActionContext, ModulePageBatchActionContribution, ModulePageColumnContribution, ModulePageDetailDrawer, ModulePageDetailSection, ModulePageDetailSectionContext, ModulePageDrawer, ModulePageDrawerContext, ModulePageRecordViewContext, ModulePageEnhancement, ModulePageEnhancementTarget, ModulePageLockedNavigatorEntry, ModulePageNavigatorEnhancement, ModulePageNavigatorExtension, ModulePageNavigatorExtensionContext, ModulePageRecordActionContext, ModulePageRecordActionContribution, ModulePageScopeContext, ModulePageWorkspaceView, ModulePageWorkspaceViewInput, } from '../dynamic-page-runtime/modulePageEnhancements';
19
- export { UiButton, UiDropdown, UiIcon, confirmAction, UiDataTable, UiSidePanel, UiTree, UiTreeSelect, UiInput, UiDatePicker, UiSwitch, UiTextArea, } from '../vue-ui-antdv/index';
19
+ export { UiButton, UiDropdown, UiIcon, confirmAction, UiDataTable, UiSidePanel, UiTree, UiTreeSelect, UiInput, UiSearchInput, UiDatePicker, UiSwitch, UiTextArea, } from '../vue-ui-antdv/index';
20
20
  export type { UiDropdownItem, UiIconName, UiDatePickerMode, UiDatePickerPrecision, } from '../vue-ui-antdv/index';
21
21
  export { default as PlatformAdminOutlet } from './PlatformAdminOutlet.vue';
22
22
  export { default as AppWorkbenchShell } from './AppWorkbenchShell.vue';
23
+ export { default as ExternalProvisioningConfirmation } from '../app/ExternalProvisioningConfirmation.vue';
23
24
  export { default as LoginView } from '../app/LoginView.vue';
24
25
  export type { AppWorkbenchNavigation } from './workbenchNavigation';
25
26
  export { configureUserPreferencePersistence } from './userPreferencePersistence';
@@ -49,7 +50,7 @@ export type { ReferencePickerReadErrorKind } from '../platform-components/refere
49
50
  export type { ReferencePickerAxisSelection, ReferencePickerBrowseScope, ReferencePickerCandidate, ReferencePickerColumn, ReferencePickerConfig, ReferencePickerId, ReferencePickerNavigationAxis, ReferencePickerNavigationItem, ReferencePickerPage, ReferencePickerPageRequest, ReferencePickerProvider, ReferencePickerSelectionSummary, ReferencePickerSourceIdentity, ReferencePickerTreeNode, ReferencePickerValidity, } from '../platform-components/referencePickerModel';
50
51
  export { UiLanguageProvider, registerUiLanguageLocales } from '../vue-ui-antdv';
51
52
  export { default as LanguageSelector } from '../platform-workbench/LanguageSelector.vue';
52
- export { ManagementWorkspace, RecordQueryListSurface, RecordQueryListCell, RecordDetailPanel, RecordDetailFields, RecordDetailExtensionSection, useWorkspaceDetailSurface, listDetailWorkspaceMinWidth, resolveRecordQueryListColumns, resolveRecordDetailFields, } from '../platform-components/index';
53
+ export { ManagementWorkspace, ManagementExplorerColumn, RecordExplorerPanel, TenantScopeExplorer, RecordQueryListSurface, RecordQueryListCell, RecordDetailPanel, RecordDetailFields, RecordDetailExtensionSection, useWorkspaceDetailSurface, listDetailWorkspaceMinWidth, resolveRecordQueryListColumns, resolveRecordDetailFields, } from '../platform-components/index';
53
54
  export type { RecordFormFieldFallback } from '../platform-components/index';
54
55
  export type { QueryListRecord, RecordQueryListColumn, RecordFormFieldDescriptor, } from '../platform-components/index';
55
56
  export type { UiDataTableColumn, UiDataTableRecord, UiDataTableSelection } from '../vue-ui-antdv/index';
@@ -57,3 +58,7 @@ export { UiSelect, UiEmpty, UiError } from '../vue-ui-antdv/index';
57
58
  export { default as ReadonlyRecordWorkspace } from '../platform-components/ReadonlyRecordWorkspace.vue';
58
59
  export { usePageDescriptor, usePageRoute } from '../app/pageRouteContext';
59
60
  export type { PageRoute } from '../app/pageRouteContext';
61
+ export { useExternalLoginHost } from '../app/useExternalLoginHost';
62
+ export type { ExternalLoginHost, ExternalLoginHostOptions } from '../app/useExternalLoginHost';
63
+ export { default as CurrentUserProfileDialog } from '../app/CurrentUserProfileDialog.vue';
64
+ export { default as ExternalIdentityBindings } from '../app/ExternalIdentityBindings.vue';
@@ -0,0 +1,6 @@
1
+ /** Record reading without UI registration, styles or browser globals; Vue remains a peer. */
2
+ export { useRecordReadSession } from '../web-core/useRecordReadSession';
3
+ export { resolveRecordReadEntry } from '../web-core/recordReadEntry';
4
+ export type { RecordReadEntry } from '../web-core/recordReadEntry';
5
+ export type { RecordReadQuery, RecordReadRequestOptions, RecordReadView } from '../web-core/recordReadView';
6
+ export type { PageDescriptor, QuerySchema, ResolvedModuleUiDescriptor, WebPageResponse, WebQueryRequest, } from '../web-contracts/index';
@@ -7,6 +7,7 @@ type __VLS_Props = {
7
7
  uiDescriptor: ResolvedModuleUiDescriptor;
8
8
  relation: ResolvedDetailRelationDescriptor;
9
9
  parentRecord: QueryListRecord;
10
+ parentMode?: 'create' | 'edit' | 'view';
10
11
  reloadKey?: number;
11
12
  addRequestKey?: number;
12
13
  removeRequestKey?: number;
@@ -7,6 +7,7 @@ type __VLS_Props = {
7
7
  uiDescriptor: ResolvedModuleUiDescriptor;
8
8
  relation: ResolvedDetailRelationDescriptor;
9
9
  parentRecord: QueryListRecord;
10
+ parentMode?: 'create' | 'edit' | 'view';
10
11
  mutationEnabled?: boolean;
11
12
  reloadKey?: number;
12
13
  };
@@ -832,6 +832,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
832
832
  dismissLocalEdit: () => void;
833
833
  localEditDraft: import("../platform-components/index").RecordFormRecord | undefined;
834
834
  localEditFields: Map<string, import("../platform-components/index").RecordFormFieldDescriptor>;
835
+ localEditFieldErrors: Readonly<Record<string, string>>;
836
+ localEditErrorMessage: string | undefined;
835
837
  updateLocalEditFormValidity: (validity: {
836
838
  valid: boolean;
837
839
  }) => void;
@@ -1627,6 +1629,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1627
1629
  dismissLocalEdit: () => void;
1628
1630
  localEditDraft: import("../platform-components/index").RecordFormRecord | undefined;
1629
1631
  localEditFields: Map<string, import("../platform-components/index").RecordFormFieldDescriptor>;
1632
+ localEditFieldErrors: Readonly<Record<string, string>>;
1633
+ localEditErrorMessage: string | undefined;
1630
1634
  updateLocalEditFormValidity: (validity: {
1631
1635
  valid: boolean;
1632
1636
  }) => void;
@@ -8,6 +8,7 @@ type __VLS_Props = {
8
8
  uiDescriptor: ResolvedModuleUiDescriptor;
9
9
  relations: ResolvedDetailRelationDescriptor[];
10
10
  parentRecord: QueryListRecord;
11
+ parentMode?: 'create' | 'edit' | 'view';
11
12
  surface?: 'detail' | 'list-expansion';
12
13
  mutationEnabled?: boolean;
13
14
  reloadKey?: number;
@@ -1340,6 +1340,8 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
1340
1340
  dismissLocalEdit: import("vue").WritableComputedRef<() => void, () => void>;
1341
1341
  localEditDraft: import("vue").WritableComputedRef<import("../platform-components/index").RecordFormRecord | undefined, import("../platform-components/index").RecordFormRecord | undefined>;
1342
1342
  localEditFields: import("vue").WritableComputedRef<Map<string, import("../platform-components/index").RecordFormFieldDescriptor>, Map<string, import("../platform-components/index").RecordFormFieldDescriptor>>;
1343
+ localEditFieldErrors: import("vue").WritableComputedRef<Readonly<Record<string, string>>, Readonly<Record<string, string>>>;
1344
+ localEditErrorMessage: import("vue").WritableComputedRef<string | undefined, string | undefined>;
1343
1345
  updateLocalEditFormValidity: import("vue").WritableComputedRef<(validity: {
1344
1346
  valid: boolean;
1345
1347
  }) => void, (validity: {
@@ -2105,21 +2107,13 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
2105
2107
  utilityPlacement: "header" | "toolbar";
2106
2108
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
2107
2109
  $slots: {
2108
- title?: (props: {}) => any;
2109
- } & {
2110
- 'title-extra'?: (props: {}) => any;
2111
- } & {
2112
- 'utility-actions'?: (props: {}) => any;
2113
- } & {
2114
- actions?: (props: {}) => any;
2115
- } & {
2116
- 'utility-actions'?: (props: {}) => any;
2117
- } & {
2118
- default?: (props: {}) => any;
2119
- } & {
2120
- footer?: (props: {}) => any;
2121
- } & {
2122
- editor?: (props: {}) => any;
2110
+ default?: () => unknown;
2111
+ footer?: () => unknown;
2112
+ title?: () => unknown;
2113
+ 'title-extra'?: () => unknown;
2114
+ 'utility-actions'?: () => unknown;
2115
+ actions?: () => unknown;
2116
+ editor?: () => unknown;
2123
2117
  };
2124
2118
  });
2125
2119
  RecordFormFields: {
@@ -3658,6 +3652,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
3658
3652
  uiDescriptor: import("../web-contracts/index.ts").ResolvedModuleUiDescriptor;
3659
3653
  relations: import("../web-contracts/index.ts").ResolvedDetailRelationDescriptor[];
3660
3654
  parentRecord: QueryListRecord;
3655
+ parentMode?: "create" | "edit" | "view";
3661
3656
  surface?: "detail" | "list-expansion";
3662
3657
  mutationEnabled?: boolean;
3663
3658
  reloadKey?: number;
@@ -3671,6 +3666,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
3671
3666
  uiDescriptor: import("../web-contracts/index.ts").ResolvedModuleUiDescriptor;
3672
3667
  relations: import("../web-contracts/index.ts").ResolvedDetailRelationDescriptor[];
3673
3668
  parentRecord: QueryListRecord;
3669
+ parentMode?: "create" | "edit" | "view";
3674
3670
  surface?: "detail" | "list-expansion";
3675
3671
  mutationEnabled?: boolean;
3676
3672
  reloadKey?: number;
@@ -44,6 +44,8 @@ export declare function useModulePageDetailActionRuntime(options: ModulePageDeta
44
44
  localEditDraft: Ref<RecordFormRecord | undefined, RecordFormRecord | undefined>;
45
45
  localEditDirty: import("vue").ComputedRef<boolean>;
46
46
  localEditFields: import("vue").ComputedRef<Map<string, RecordFormFieldDescriptor>>;
47
+ localEditFieldErrors: Ref<Readonly<Record<string, string>>, Readonly<Record<string, string>>>;
48
+ localEditErrorMessage: Ref<string | undefined, string | undefined>;
47
49
  handleConfiguredAction: (action: {
48
50
  key?: string;
49
51
  }) => boolean;
@@ -846,6 +846,8 @@ export declare function useModulePageSession(props: ModulePageSessionProps, emit
846
846
  dismissLocalEdit: () => void;
847
847
  localEditDraft: import("vue").Ref<RecordFormRecord | undefined, RecordFormRecord | undefined>;
848
848
  localEditFields: import("vue").ComputedRef<Map<string, import("../platform-components/index").RecordFormFieldDescriptor>>;
849
+ localEditFieldErrors: import("vue").Ref<Readonly<Record<string, string>>, Readonly<Record<string, string>>>;
850
+ localEditErrorMessage: import("vue").Ref<string | undefined, string | undefined>;
849
851
  updateLocalEditFormValidity: (validity: {
850
852
  valid: boolean;
851
853
  }) => void;
@@ -0,0 +1,7 @@
1
+ import type { ModulePageFormContributionContext } from '../../dynamic-page-runtime/index';
2
+ type __VLS_Props = {
3
+ context: ModulePageFormContributionContext;
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
+ import type { ModulePageEnhancement } from '../dynamic-page-runtime/index';
2
+ /** The target is a module/code pair, not a foreign record ID. Keep the standard save boundary. */
3
+ export declare const scheduledActionPlanPageEnhancement: ModulePageEnhancement;
@@ -0,0 +1,30 @@
1
+ import type { WebBusinessNotification, WebBusinessNotificationAction } from '../web-contracts/index';
2
+ type __VLS_Props = {
3
+ notification: WebBusinessNotification;
4
+ hasAccessory: boolean;
5
+ busyAction?: string;
6
+ recordHandled: boolean;
7
+ };
8
+ declare var __VLS_27: {
9
+ notification: WebBusinessNotification;
10
+ };
11
+ type __VLS_Slots = {} & {
12
+ accessory?: (props: typeof __VLS_27) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ close: () => any;
16
+ action: (action: WebBusinessNotificationAction) => any;
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
+ onClose?: (() => any) | undefined;
19
+ onAction?: ((action: WebBusinessNotificationAction) => any) | undefined;
20
+ }>, {
21
+ busyAction: string;
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ type __VLS_WithSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
@@ -1,50 +1,15 @@
1
1
  import type { WebBusinessNotification, WebBusinessNotificationAction } from '../web-contracts/index';
2
2
  type __VLS_Props = {
3
3
  notifications: WebBusinessNotification[];
4
- /** Allows a consumer to opt an individual card into the optional right-hand attachment area. */
4
+ /** Opt a card into the optional right-hand attachment area. */
5
5
  hasAccessory?: (notification: WebBusinessNotification) => boolean;
6
6
  executeAction: (notification: WebBusinessNotification, action: WebBusinessNotificationAction) => void | boolean | Promise<void | boolean>;
7
7
  };
8
- declare var __VLS_33: {
9
- notification: {
10
- title: string;
11
- subtitle: string;
12
- content: string;
13
- actions: ({
14
- label: string;
15
- kind: "navigate";
16
- key: string;
17
- moduleAlias: string;
18
- recordId?: string;
19
- pageMode?: "LIST" | "FORM" | "DETAIL";
20
- query?: Record<string, string>;
21
- placement?: "leading" | "trailing";
22
- dismissOnSuccess: boolean;
23
- } | {
24
- label: string;
25
- kind: "record";
26
- key: string;
27
- moduleAlias: string;
28
- recordId: string;
29
- actionCode: string;
30
- arguments?: Record<string, unknown>;
31
- danger?: boolean;
32
- confirmation?: string;
33
- placement?: "leading" | "trailing";
34
- dismissOnSuccess: boolean;
35
- })[];
36
- textResources?: Record<string, import("../web-contracts/index").TextPresentation>;
37
- id: string;
38
- code: string;
39
- dismissible: boolean;
40
- displayPolicy?: "standard" | "persistent";
41
- expiresAt?: string;
42
- tone?: import("../web-contracts/index").WebBusinessNotificationTone;
43
- occurredAt?: string;
44
- };
8
+ declare var __VLS_17: {
9
+ notification: WebBusinessNotification;
45
10
  };
46
11
  type __VLS_Slots = {} & {
47
- accessory?: (props: typeof __VLS_33) => any;
12
+ accessory?: (props: typeof __VLS_17) => any;
48
13
  };
49
14
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
50
15
  dismiss: (notificationId: string) => any;
@@ -5,7 +5,7 @@ type __VLS_Props = {
5
5
  requestUploadAccess?: (file: File) => Promise<FileTransferUploadAccess>;
6
6
  /** Storage-specific transport; ordinary FileServer fields continue to use upload access tickets. */
7
7
  uploadFile?: (file: File) => Promise<FileTransferUploadReceipt>;
8
- /** Optional business callback after upload. Standard file-reference fields leave this undefined. */
8
+ /** Optional platform or business confirmation before completing the upload and binding its result. */
9
9
  confirmUpload?: (receipt: FileTransferUploadReceipt) => Promise<unknown>;
10
10
  accept?: string;
11
11
  allowedMediaTypes?: string[];
@@ -12,23 +12,14 @@ type __VLS_Props = {
12
12
  collapseAction?: boolean;
13
13
  utilityPlacement?: 'header' | 'toolbar';
14
14
  };
15
- declare var __VLS_10: {}, __VLS_13: {}, __VLS_25: {}, __VLS_34: {}, __VLS_36: {}, __VLS_60: {}, __VLS_62: {}, __VLS_64: {};
16
- type __VLS_Slots = {} & {
17
- title?: (props: typeof __VLS_10) => any;
18
- } & {
19
- 'title-extra'?: (props: typeof __VLS_13) => any;
20
- } & {
21
- 'utility-actions'?: (props: typeof __VLS_25) => any;
22
- } & {
23
- actions?: (props: typeof __VLS_34) => any;
24
- } & {
25
- 'utility-actions'?: (props: typeof __VLS_36) => any;
26
- } & {
27
- default?: (props: typeof __VLS_60) => any;
28
- } & {
29
- footer?: (props: typeof __VLS_62) => any;
30
- } & {
31
- editor?: (props: typeof __VLS_64) => any;
15
+ type __VLS_Slots = {
16
+ default?: () => unknown;
17
+ footer?: () => unknown;
18
+ title?: () => unknown;
19
+ 'title-extra'?: () => unknown;
20
+ 'utility-actions'?: () => unknown;
21
+ actions?: () => unknown;
22
+ editor?: () => unknown;
32
23
  };
33
24
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
25
  refresh: () => any;
@@ -26,8 +26,10 @@ type __VLS_Props = {
26
26
  };
27
27
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
28
28
  "update:value": (value: string | string[] | undefined) => any;
29
+ "update:record-id": (recordId: string) => any;
29
30
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
30
31
  "onUpdate:value"?: ((value: string | string[] | undefined) => any) | undefined;
32
+ "onUpdate:record-id"?: ((recordId: string) => any) | undefined;
31
33
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
34
  declare const _default: typeof __VLS_export;
33
35
  export default _default;