openxiangda 2.34.3 → 2.35.3

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 (152) hide show
  1. package/dist/browser/application.d.ts.map +1 -1
  2. package/dist/browser/application.js +5 -4
  3. package/dist/browser/application.js.map +1 -1
  4. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  5. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +6 -2
  6. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  7. package/dist/browser/components/workflow/StandardWorkflowPages.js +6 -6
  8. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  9. package/dist/browser/components/workflow/WorkflowDiagram.d.ts +16 -0
  10. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -0
  11. package/dist/browser/components/workflow/WorkflowDiagram.js +110 -0
  12. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -0
  13. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +23 -0
  14. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -0
  15. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +78 -0
  16. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -0
  17. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +15 -0
  18. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -0
  19. package/dist/browser/components/workflow/WorkflowNodeCard.js +13 -0
  20. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -0
  21. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -0
  22. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -0
  23. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +150 -0
  24. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -0
  25. package/dist/browser/components/workflow/workflow-flow-layout.d.ts +28 -0
  26. package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -0
  27. package/dist/browser/components/workflow/workflow-flow-layout.js +54 -0
  28. package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -0
  29. package/dist/browser/platform-client.d.ts +9 -0
  30. package/dist/browser/platform-client.d.ts.map +1 -1
  31. package/dist/browser/platform-client.js +157 -42
  32. package/dist/browser/platform-client.js.map +1 -1
  33. package/dist/browser/runtime-authorization-recovery.d.ts +7 -0
  34. package/dist/browser/runtime-authorization-recovery.d.ts.map +1 -0
  35. package/dist/browser/runtime-authorization-recovery.js +119 -0
  36. package/dist/browser/runtime-authorization-recovery.js.map +1 -0
  37. package/dist/browser/runtime.d.ts.map +1 -1
  38. package/dist/browser/runtime.js +34 -12
  39. package/dist/browser/runtime.js.map +1 -1
  40. package/dist/browser/styles.css +74 -0
  41. package/dist/core.d.ts +4 -0
  42. package/dist/core.d.ts.map +1 -1
  43. package/dist/core.js +2 -0
  44. package/dist/core.js.map +1 -1
  45. package/dist/react.d.ts +2 -0
  46. package/dist/react.d.ts.map +1 -1
  47. package/dist/react.js +2 -0
  48. package/dist/react.js.map +1 -1
  49. package/documentation/administration.md +63 -0
  50. package/documentation/getting-started.md +7 -7
  51. package/documentation/managed-concurrency.md +10 -0
  52. package/documentation/manifest.json +5 -5
  53. package/documentation/workflow-events.md +24 -0
  54. package/package.json +36 -23
  55. package/releases/2.35.0.json +42 -0
  56. package/releases/2.35.1.json +43 -0
  57. package/releases/2.35.2.json +45 -0
  58. package/releases/2.35.3.json +46 -0
  59. package/skills/manifest.json +1 -1
  60. package/skills/openxiangda-v2/SKILL.md +4 -4
  61. package/skills/openxiangda-v2/references/administration.md +63 -0
  62. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  63. package/skills/openxiangda-v2/references/managed-concurrency.md +10 -0
  64. package/skills/openxiangda-v2/references/workflow-events.md +24 -0
  65. package/releases/2.0.0.json +0 -50
  66. package/releases/2.0.1.json +0 -39
  67. package/releases/2.1.0.json +0 -44
  68. package/releases/2.1.1.json +0 -48
  69. package/releases/2.10.0.json +0 -42
  70. package/releases/2.11.0.json +0 -41
  71. package/releases/2.12.0.json +0 -38
  72. package/releases/2.13.0.json +0 -41
  73. package/releases/2.13.1.json +0 -33
  74. package/releases/2.13.2.json +0 -31
  75. package/releases/2.14.0.json +0 -41
  76. package/releases/2.15.0.json +0 -40
  77. package/releases/2.16.0.json +0 -41
  78. package/releases/2.17.0.json +0 -39
  79. package/releases/2.17.1.json +0 -34
  80. package/releases/2.18.0.json +0 -37
  81. package/releases/2.18.1.json +0 -31
  82. package/releases/2.18.10.json +0 -29
  83. package/releases/2.18.2.json +0 -30
  84. package/releases/2.18.3.json +0 -30
  85. package/releases/2.18.9.json +0 -37
  86. package/releases/2.19.0.json +0 -38
  87. package/releases/2.2.0.json +0 -48
  88. package/releases/2.2.1.json +0 -35
  89. package/releases/2.2.2.json +0 -34
  90. package/releases/2.20.0.json +0 -36
  91. package/releases/2.20.1.json +0 -30
  92. package/releases/2.20.4.json +0 -30
  93. package/releases/2.21.0.json +0 -35
  94. package/releases/2.21.1.json +0 -36
  95. package/releases/2.21.2.json +0 -34
  96. package/releases/2.21.3.json +0 -31
  97. package/releases/2.21.4.json +0 -31
  98. package/releases/2.22.0.json +0 -35
  99. package/releases/2.22.1.json +0 -32
  100. package/releases/2.22.2.json +0 -35
  101. package/releases/2.22.3.json +0 -32
  102. package/releases/2.22.4.json +0 -33
  103. package/releases/2.22.5.json +0 -31
  104. package/releases/2.22.6.json +0 -29
  105. package/releases/2.22.7.json +0 -29
  106. package/releases/2.23.0.json +0 -34
  107. package/releases/2.24.0.json +0 -33
  108. package/releases/2.24.1.json +0 -33
  109. package/releases/2.24.2.json +0 -31
  110. package/releases/2.24.3.json +0 -33
  111. package/releases/2.25.0.json +0 -31
  112. package/releases/2.25.1.json +0 -33
  113. package/releases/2.25.2.json +0 -32
  114. package/releases/2.25.3.json +0 -32
  115. package/releases/2.26.0.json +0 -41
  116. package/releases/2.27.0.json +0 -38
  117. package/releases/2.28.0.json +0 -37
  118. package/releases/2.28.1.json +0 -34
  119. package/releases/2.29.0.json +0 -37
  120. package/releases/2.29.1.json +0 -34
  121. package/releases/2.29.2.json +0 -32
  122. package/releases/2.3.0.json +0 -37
  123. package/releases/2.30.0.json +0 -34
  124. package/releases/2.31.0.json +0 -39
  125. package/releases/2.31.1.json +0 -38
  126. package/releases/2.31.2.json +0 -34
  127. package/releases/2.31.3.json +0 -32
  128. package/releases/2.31.4.json +0 -33
  129. package/releases/2.31.5.json +0 -33
  130. package/releases/2.31.6.json +0 -29
  131. package/releases/2.31.7.json +0 -29
  132. package/releases/2.31.8.json +0 -33
  133. package/releases/2.31.9.json +0 -33
  134. package/releases/2.32.0.json +0 -38
  135. package/releases/2.33.0.json +0 -33
  136. package/releases/2.34.0.json +0 -38
  137. package/releases/2.34.1.json +0 -34
  138. package/releases/2.34.2.json +0 -36
  139. package/releases/2.34.3.json +0 -35
  140. package/releases/2.4.0.json +0 -37
  141. package/releases/2.4.1.json +0 -35
  142. package/releases/2.5.0.json +0 -37
  143. package/releases/2.6.0.json +0 -37
  144. package/releases/2.7.0.json +0 -37
  145. package/releases/2.7.1.json +0 -31
  146. package/releases/2.8.0.json +0 -32
  147. package/releases/2.8.1.json +0 -30
  148. package/releases/2.9.0.json +0 -33
  149. package/releases/2.9.1.json +0 -31
  150. package/releases/2.9.2.json +0 -33
  151. package/releases/2.9.3.json +0 -31
  152. package/releases/2.9.4.json +0 -37
@@ -1,14 +1,15 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Modal, Result, Spin } from 'antd';
2
+ import { Alert, Button, Modal, Result, Spin } from 'antd';
3
3
  import { createContext, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';
4
4
  import { Navigate, useLocation, useNavigate } from 'react-router-dom';
5
- import { isApplicationUnauthenticatedError, createAnonymousPublicClient, loadRuntimeAuthorization, loadApplicationLoginSurface, OpenXiangdaPlatformRequestError, subscribePlatformSessionInvalidation, } from './platform-client';
5
+ import { isApplicationUnauthenticatedError, isRuntimeAuthorizationIdentityRejection, createAnonymousPublicClient, loadRuntimeAuthorization, loadApplicationLoginSurface, OpenXiangdaPlatformRequestError, subscribePlatformSessionInvalidation, } from './platform-client';
6
6
  import { applicationCode, applicationName, runtimeMount, setActivePerspectiveCode, } from './runtime-meta';
7
7
  import { ApplicationLoginController, } from './authentication';
8
8
  import { standardRouteManifestDeviceForViewport, } from './route-manifest';
9
9
  const RuntimeContext = createContext(null);
10
10
  export function classifyRuntimeAuthorizationFailure(error) {
11
- if (isApplicationUnauthenticatedError(error))
11
+ if (isApplicationUnauthenticatedError(error) ||
12
+ (error instanceof OpenXiangdaPlatformRequestError && error.status === 401))
12
13
  return 'unauthenticated';
13
14
  if (error instanceof OpenXiangdaPlatformRequestError &&
14
15
  error.status === 403) {
@@ -65,8 +66,10 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
65
66
  const [attempt, setAttempt] = useState(0);
66
67
  const [identityEpoch, setIdentityEpoch] = useState(0);
67
68
  const [sessionChecking, setSessionChecking] = useState(false);
69
+ const [sessionCheckError, setSessionCheckError] = useState();
68
70
  const [changedAuthorization, setChangedAuthorization] = useState();
69
71
  const recheckEpoch = useRef(0);
72
+ const invalidationEpoch = useRef(0);
70
73
  const [pendingRedirect, setPendingRedirect] = useState();
71
74
  const location = useLocation();
72
75
  const navigate = useNavigate();
@@ -78,9 +81,12 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
78
81
  const [publicError, setPublicError] = useState();
79
82
  useEffect(() => {
80
83
  let active = true;
84
+ const epoch = invalidationEpoch.current;
85
+ const controller = new AbortController();
81
86
  if (publicPolicy) {
82
87
  setChangedAuthorization(undefined);
83
88
  setSessionChecking(false);
89
+ setSessionCheckError(undefined);
84
90
  setAuthorization(undefined);
85
91
  setError(undefined);
86
92
  setPublicReady(false);
@@ -100,23 +106,27 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
100
106
  setPublicError(undefined);
101
107
  setChangedAuthorization(undefined);
102
108
  setSessionChecking(false);
109
+ setSessionCheckError(undefined);
103
110
  setAuthorization(undefined);
104
111
  setError(undefined);
105
- void loadRuntimeAuthorization({ refresh: attempt > 0 }).then(value => {
106
- if (!active)
112
+ void loadRuntimeAuthorization({ refresh: attempt > 0, signal: controller.signal }).then(value => {
113
+ if (!active || epoch !== invalidationEpoch.current)
107
114
  return;
108
115
  setAuthorization(value);
109
116
  setIdentityEpoch(epoch => epoch + 1);
110
- }, reason => active &&
117
+ }, reason => active && epoch === invalidationEpoch.current &&
111
118
  setError(reason instanceof Error ? reason : new Error(String(reason))));
112
119
  return () => {
113
120
  active = false;
121
+ controller.abort();
114
122
  };
115
123
  }, [attempt, publicPolicy?.code, publicPolicy?.routeCode]);
116
124
  useEffect(() => subscribePlatformSessionInvalidation(() => {
125
+ invalidationEpoch.current += 1;
117
126
  recheckEpoch.current += 1;
118
127
  setChangedAuthorization(undefined);
119
128
  setSessionChecking(false);
129
+ setSessionCheckError(undefined);
120
130
  setAuthorization(undefined);
121
131
  setError(new OpenXiangdaPlatformRequestError({
122
132
  code: 'APPLICATION_AUTH_UNAUTHENTICATED',
@@ -127,24 +137,29 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
127
137
  const currentScope = authorization?.identity?.identityScope;
128
138
  const currentUserId = authorization?.identity?.userId;
129
139
  const currentEnvironment = authorization?.identity?.environment.key;
140
+ const currentEnvironmentId = authorization?.identity?.environment.id;
130
141
  useEffect(() => {
131
142
  if (publicPolicy || !authorization || changedAuthorization || error)
132
143
  return;
133
144
  let active = true;
134
145
  let pending = false;
146
+ let controller;
135
147
  const check = () => {
136
148
  if (!active || pending || document.visibilityState === 'hidden')
137
149
  return;
138
150
  pending = true;
151
+ controller = new AbortController();
139
152
  const epoch = ++recheckEpoch.current;
140
153
  setSessionChecking(true);
141
- void loadRuntimeAuthorization({ refresh: true }).then(value => {
154
+ setSessionCheckError(undefined);
155
+ void loadRuntimeAuthorization({ refresh: true, signal: controller.signal }).then(value => {
142
156
  if (!active || epoch !== recheckEpoch.current)
143
157
  return;
144
158
  pending = false;
145
159
  setSessionChecking(false);
146
160
  if (value.identity?.userId === currentUserId &&
147
161
  value.identity?.environment.key === currentEnvironment &&
162
+ value.identity?.environment.id === currentEnvironmentId &&
148
163
  value.identity?.identityScope === currentScope) {
149
164
  setAuthorization(value);
150
165
  }
@@ -157,8 +172,14 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
157
172
  return;
158
173
  pending = false;
159
174
  setSessionChecking(false);
160
- setAuthorization(undefined);
161
- setError(reason instanceof Error ? reason : new Error(String(reason)));
175
+ const failure = reason instanceof Error ? reason : new Error(String(reason));
176
+ if (isRuntimeAuthorizationIdentityRejection(failure)) {
177
+ setAuthorization(undefined);
178
+ setError(failure);
179
+ }
180
+ else {
181
+ setSessionCheckError(failure);
182
+ }
162
183
  });
163
184
  };
164
185
  const onVisible = () => {
@@ -170,10 +191,11 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
170
191
  return () => {
171
192
  active = false;
172
193
  recheckEpoch.current += 1;
194
+ controller?.abort();
173
195
  window.removeEventListener('focus', check);
174
196
  document.removeEventListener('visibilitychange', onVisible);
175
197
  };
176
- }, [currentScope, currentUserId, currentEnvironment, Boolean(authorization), Boolean(changedAuthorization), Boolean(error), publicPolicy?.code]);
198
+ }, [currentScope, currentUserId, currentEnvironment, currentEnvironmentId, Boolean(authorization), Boolean(changedAuthorization), Boolean(error), publicPolicy?.code]);
177
199
  const identity = authorization?.identity || null;
178
200
  const production = identity?.environment.key === 'production' ||
179
201
  runtimeMount()?.environmentKey === 'production';
@@ -210,7 +232,7 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
210
232
  }
211
233
  return _jsx(AnonymousPublicRuntime, { children: children });
212
234
  }
213
- return (_jsxs(_Fragment, { children: [_jsx(Modal, { open: sessionChecking, closable: false, footer: null, maskClosable: false, keyboard: false, centered: true, children: _jsx(Spin, { description: "\u6B63\u5728\u6838\u5BF9\u5F53\u524D\u767B\u5F55\u8EAB\u4EFD\u4E0E\u6743\u9650" }) }), changedAuthorization ? (_jsx(Result, { status: "warning", title: "\u767B\u5F55\u8EAB\u4EFD\u6216\u6743\u9650\u5DF2\u53D8\u5316", subTitle: "\u65E7\u9875\u9762\u5DF2\u505C\u6B62\u4F7F\u7528\u3002\u672A\u4FDD\u5B58\u5185\u5BB9\u4E0D\u4F1A\u8DE8\u8D26\u53F7\u6216\u6743\u9650\u4F5C\u7528\u57DF\u63D0\u4EA4\u3002", extra: _jsx(Button, { type: "primary", onClick: () => {
235
+ return (_jsxs(_Fragment, { children: [_jsx(Modal, { open: sessionChecking, closable: false, footer: null, maskClosable: false, keyboard: false, centered: true, children: _jsx(Spin, { description: "\u6B63\u5728\u6838\u5BF9\u5F53\u524D\u767B\u5F55\u8EAB\u4EFD\u4E0E\u6743\u9650" }) }), sessionCheckError && authorization?.identity && _jsx(Alert, { type: "warning", showIcon: true, title: "\u6682\u65F6\u65E0\u6CD5\u6838\u5BF9\u767B\u5F55\u72B6\u6001", description: "\u7F51\u7EDC\u6216\u5E73\u53F0\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u5DF2\u4FDD\u7559\u5F53\u524D\u9875\u9762\u4E0E\u539F\u7533\u8BF7\uFF1B\u8BF7\u7A0D\u540E\u91CD\u65B0\u68C0\u67E5\u3002", action: _jsx(Button, { onClick: () => window.dispatchEvent(new Event('focus')), children: "\u91CD\u65B0\u68C0\u67E5" }) }), changedAuthorization ? (_jsx(Result, { status: "warning", title: "\u767B\u5F55\u8EAB\u4EFD\u6216\u6743\u9650\u5DF2\u53D8\u5316", subTitle: "\u65E7\u9875\u9762\u5DF2\u505C\u6B62\u4F7F\u7528\u3002\u672A\u4FDD\u5B58\u5185\u5BB9\u4E0D\u4F1A\u8DE8\u8D26\u53F7\u6216\u6743\u9650\u4F5C\u7528\u57DF\u63D0\u4EA4\u3002", extra: _jsx(Button, { type: "primary", onClick: () => {
214
236
  setAuthorization(changedAuthorization);
215
237
  setChangedAuthorization(undefined);
216
238
  setIdentityEpoch(epoch => epoch + 1);
@@ -220,7 +242,7 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
220
242
  } })) : error &&
221
243
  failureKind === 'unauthenticated' &&
222
244
  deviceLoginContribution ? (_jsx(Navigate, { replace: true, to: `${deviceLoginContribution.surface.path}?returnTo=${encodeURIComponent(currentReturnTo)}` })) : error && failureKind === 'forbidden' ? (_jsx(Result, { status: "403", title: "\u5F53\u524D\u8D26\u53F7\u65E0\u6743\u8BBF\u95EE\u6B64\u5E94\u7528", subTitle: "\u5F53\u524D\u8EAB\u4EFD\u5DF2\u767B\u5F55\uFF0C\u4F46\u7F3A\u5C11\u8BBF\u95EE\u8BE5\u5E94\u7528\u6216\u5F53\u524D\u529F\u80FD\u6240\u9700\u7684\u6388\u6743\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u65B0\u68C0\u67E5" }) })) : error ? (_jsx(Result, { status: "error", title: "\u767B\u5F55\u4E0E\u6743\u9650\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528", subTitle: "\u7F51\u7EDC\u6216\u5E73\u53F0\u670D\u52A1\u5F02\u5E38\uFF1B\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4F1A\u56E0\u6B64\u88AB\u6E05\u9664\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u8BD5" }) })) : authorization?.state === 'unassigned' ? (_jsx(Result, { status: "403", title: "\u5C1A\u672A\u5206\u914D\u5E94\u7528\u89D2\u8272", subTitle: "\u8BF7\u8054\u7CFB\u5E94\u7528\u7BA1\u7406\u5458\uFF0C\u4E3A\u5F53\u524D\u7528\u6237\u5206\u914D\u81F3\u5C11\u4E00\u4E2A\u5F53\u524D\u73AF\u5883\u4E2D\u7684\u5E94\u7528\u89D2\u8272\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u65B0\u68C0\u67E5" }) })) : identity && authorization ? (loginContribution ? (pendingRedirect ? _jsx("div", { className: "oxa-loading", children: _jsx(Spin, { description: "\u6B63\u5728\u8FD4\u56DE\u539F\u9875\u9762" }) }) :
223
- _jsx(AuthenticatedLoginReturn, { returnTo: declaredReturnTo, device: loginContribution.surface.device })) : (_jsx(ActiveRuntime, { authorization: authorization, identityEpoch: identityEpoch, perspectives: perspectives, children: children }))) : (_jsx("div", { className: "oxa-loading", children: _jsx(Spin, { description: "\u6B63\u5728\u8BFB\u53D6\u5F53\u524D\u7528\u6237\u7684\u89D2\u8272\u5E76\u96C6\u4E0E\u6743\u9650" }) }))] }));
245
+ _jsx(AuthenticatedLoginReturn, { returnTo: declaredReturnTo, device: loginContribution.surface.device })) : (_jsx(ActiveRuntime, { authorization: authorization, identityEpoch: identityEpoch, perspectives: perspectives, children: children }))) : (_jsx("div", { className: "oxa-loading", children: _jsx(Spin, { description: "\u6B63\u5728\u8FDE\u63A5\u5E94\u7528\uFF0C\u8BBF\u95EE\u8F83\u591A\u65F6\u5C06\u81EA\u52A8\u7B49\u5F85\uFF0C\u8BF7\u7A0D\u5019" }) }))] }));
224
246
  }
225
247
  function AnonymousPublicRuntime({ children }) {
226
248
  const environmentKey = runtimeMount()?.environmentKey || 'preproduction';
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/browser/runtime.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMtE,OAAO,EACL,iCAAiC,EACjC,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,+BAA+B,EAC/B,oCAAoC,GAGrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,GAE3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sCAAsC,GAEvC,MAAM,kBAAkB,CAAC;AAe1B,MAAM,cAAc,GAAG,aAAa,CAAsB,IAAI,CAAC,CAAC;AAOhE,MAAM,UAAU,mCAAmC,CACjD,KAAc;IAEd,IAAI,iCAAiC,CAAC,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACvE,IACE,KAAK,YAAY,+BAA+B;QAChD,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAwC;IAExC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqC,GAAG,EAAE;QAC5E,IAAI,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO,sCAAsC,CAC3C,QAAQ,CAAC,YAAY,EACrB,MAAM,CAAC,UAAU,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QACvD,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,IAAI,GAAG,sCAAsC,CACjD,QAAQ,CAAC,YAAY,EACrB,MAAM,CAAC,UAAU,CAClB,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,MAAM,EAAE,CAAC;QACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,IAAY;IACzD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAClC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,EAC/C,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,GAMf;IACC,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YAClE,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;gBACnE,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS;QACf,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnD,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CACjD,CAAC;IACF,MAAM,eAAe,GACnB,iBAAiB,EAAE,OAAO,CAAC,MAAM;QACjC,cAAc;QACd,cAAc;QACd,SAAS,CAAC;IACZ,MAAM,uBAAuB,GAAG,cAAc,CAAC,IAAI,CACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,eAAe,CAChD,CAAC;IACF,OAAO;QACL,iBAAiB;QACjB,eAAe;QACf,uBAAuB;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,EAAE,EACnB,MAAM,GAAG,EAAE,EACX,YAAY,EACZ,aAAa,GAQd;IACC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAwB,CAAC;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,EAAwB,CAAC;IACzF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAU,CAAC;IACjE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAS,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,YAAY,EAAE,CAAC;YACjB,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACnC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1B,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,KAAK,2BAA2B,CAAC;gBAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,UAAU,EAAE,YAAY,CAAC,IAAI;aAC9B,CAAC;iBACC,SAAS,EAAE;iBACX,IAAI,CACH,GAAG,EAAE,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EACpC,MAAM,CAAC,EAAE,CACP,MAAM;gBACN,cAAc,CACZ,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAC7D,CACJ,CAAC;YACJ,OAAO,GAAG,EAAE;gBACV,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACnC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,wBAAwB,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAC1D,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxB,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,EACD,MAAM,CAAC,EAAE,CACP,MAAM;YACN,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACzE,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3D,SAAS,CACP,GAAG,EAAE,CACH,oCAAoC,CAAC,GAAG,EAAE;QACxC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1B,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACnC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CACN,IAAI,+BAA+B,CAAC;YAClC,IAAI,EAAE,kCAAkC;YACxC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,WAAW;SACrB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,aAAa,EAAE,QAAQ,EAAE,aAAa,CAAC;IAC5D,MAAM,aAAa,GAAG,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC;IACtD,MAAM,kBAAkB,GAAG,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;IACpE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,CAAC,aAAa,IAAI,oBAAoB,IAAI,KAAK;YAAE,OAAO;QAC5E,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ;gBAAE,OAAO;YACxE,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,KAAK,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC;YACrC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzB,KAAK,wBAAwB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACnD,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;oBAAE,OAAO;gBACtD,OAAO,GAAG,KAAK,CAAC;gBAChB,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1B,IACE,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa;oBACxC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,kBAAkB;oBACtD,KAAK,CAAC,QAAQ,EAAE,aAAa,KAAK,YAAY,EAC9C,CAAC;oBACD,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBAC5B,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,EACD,MAAM,CAAC,EAAE;gBACP,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;oBAAE,OAAO;gBACtD,OAAO,GAAG,KAAK,CAAC;gBAChB,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1B,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC5B,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;gBAAE,KAAK,EAAE,CAAC;QACtD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;YACf,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjJ,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,IAAI,IAAI,CAAC;IACjD,MAAM,UAAU,GACd,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,YAAY;QAC1C,YAAY,EAAE,EAAE,cAAc,KAAK,YAAY,CAAC;IAClD,MAAM,cAAc,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,EACJ,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GACxB,GAAG,gCAAgC,CAAC;QACnC,cAAc;QACd,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,cAAc;KACf,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC,mCAAmC,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,iBAAiB;QACxC,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YACpD,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC;YACpE,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC;YACzC,GAAG;QACL,CAAC,CAAC,eAAe,CAAC;IAEpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC,eAAe;YAAE,OAAO;QACzD,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9B,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEzD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAC,OAAO,EACd,KAAK,EAAC,wDAAW,EACjB,QAAQ,EAAC,wJAA2B,EACpC,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,6BAE5C,GAEX,CACH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CACL,cAAK,SAAS,EAAC,aAAa,YAC1B,KAAC,IAAI,IAAC,WAAW,EAAC,oEAAa,GAAG,GAC9B,CACP,CAAC;QACJ,CAAC;QACD,OAAO,KAAC,sBAAsB,cAAE,QAAQ,GAA0B,CAAC;IACrE,CAAC;IAED,OAAO,CACL,8BACE,KAAC,KAAK,IAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,kBACzG,KAAC,IAAI,IAAC,WAAW,EAAC,gFAAe,GAAG,GAC9B,EACP,oBAAoB,CAAC,CAAC,CAAC,CACtB,KAAC,MAAM,IACL,MAAM,EAAC,SAAS,EAChB,KAAK,EAAC,8DAAY,EAClB,QAAQ,EAAC,0KAA8B,EACvC,KAAK,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE;wBAC1C,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;wBACvC,uBAAuB,CAAC,SAAS,CAAC,CAAC;wBACnC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACvC,CAAC,2DAAkB,GACnB,CACH,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,KAAK,iBAAiB,IAAI,iBAAiB,CAAC,CAAC,CAAC,CACpE,KAAC,0BAA0B,IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EACzD,YAAY,EAAE,iBAAiB,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;oBAClC,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAC/B,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC,GACD,CACH,CAAC,CAAC,CAAC,KAAK;gBACP,WAAW,KAAK,iBAAiB;gBACjC,uBAAuB,CAAC,CAAC,CAAC,CAC1B,KAAC,QAAQ,IACP,OAAO,QACP,EAAE,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,aAAa,kBAAkB,CACxE,eAAe,CAChB,EAAE,GACH,CACH,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,CACzC,KAAC,MAAM,IACL,MAAM,EAAC,KAAK,EACZ,KAAK,EAAC,oEAAa,EACnB,QAAQ,EAAC,oKAA6B,EACtC,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,yCAE5C,GAEX,CACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,KAAC,MAAM,IACL,MAAM,EAAC,OAAO,EACd,KAAK,EAAC,0EAAc,EACpB,QAAQ,EAAC,0KAA8B,EACvC,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,6BAE5C,GAEX,CACH,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAC1C,KAAC,MAAM,IACL,MAAM,EAAC,KAAK,EACZ,KAAK,EAAC,kDAAU,EAChB,QAAQ,EAAC,4LAAiC,EAC1C,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,yCAE5C,GAEX,CACH,CAAC,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAC9B,iBAAiB,CAAC,CAAC,CAAC,CAClB,eAAe,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,aAAa,YAAC,KAAC,IAAI,IAAC,WAAW,EAAC,4CAAS,GAAG,GAAM,CAAC,CAAC;gBACrF,KAAC,wBAAwB,IAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,GAAI,CACnG,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,YAEzB,QAAQ,GACK,CACjB,CACF,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,aAAa,YAC1B,KAAC,IAAI,IAAC,WAAW,EAAC,kGAAkB,GAAG,GACnC,CACP,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAE,QAAQ,EAAiC;IACzE,MAAM,cAAc,GAAG,YAAY,EAAE,EAAE,cAAc,IAAI,eAAe,CAAC;IACzE,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CACH,CAAC;QACC,MAAM,EAAE,mBAAmB;QAC3B,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,oBAAoB,eAAe,EAAE,IAAI,cAAc,EAAE;QACxE,cAAc,EAAE,EAAE;QAClB,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,cAAc,EAAE;KAC7D,CAA+B,EAClC,CAAC,cAAc,CAAC,CACjB,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EACrC,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ;QACR,aAAa;QACb,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;QAC1B,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;QAC9B,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;KAChC,CAAC,EACF,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC1B,CAAC;IACF,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA2B,CAAC;AACrF,CAAC;AAED,qCAAqC;AACrC,SAAS,wBAAwB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAsD;IACxG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAsD,CAAC;IAC3F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,2BAA2B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACpE,IAAI,MAAM;gBAAE,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC,EAAE,GAAG,EAAE;YACN,IAAI,MAAM;gBAAE,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,OAAO,EAAE,MAAM;QAAE,OAAO,KAAC,QAAQ,IAAC,OAAO,QAAC,EAAE,EAAE,OAAO,CAAC,MAAM,GAAI,CAAC;IACrE,IAAI,OAAO,EAAE,MAAM;QAAE,OAAO,KAAC,MAAM,IAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAC,wDAAW,EAClE,QAAQ,EAAC,4IAAyB,EAClC,KAAK,EAAE,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,6BAAa,GAAI,CAAC;IAChF,OAAO,cAAK,SAAS,EAAC,aAAa,YAAC,KAAC,IAAI,IAAC,WAAW,EAAC,4CAAS,GAAG,GAAM,CAAC;AAC3E,CAAC;AAED,SAAS,gBAAgB,CACvB,SAAiB,EACjB,MAAmD;IAEnD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EAAE,oBAAoB,GAMnC;IACC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAS,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CACH,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CACxC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtC,CACF,EACH,CAAC,oBAAoB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAC3C,CAAC;IACF,MAAM,UAAU,GAAG,2BAA2B,eAAe,EAAE,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IACjH,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC7E,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GACf,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC;IAEnE,eAAe,CAAC,GAAG,EAAE;QACnB,wBAAwB,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QACpD,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAClE,OAAO,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ;QACR,aAAa;QACb,aAAa;QACb,aAAa,EAAE,IAAI,CAAC,EAAE,CACpB,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrE,iBAAiB,EAAE,IAAI,CAAC,EAAE,CACxB,QAAQ,CAAC,eAAe;YACxB,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,YAAY;QACZ,WAAW;QACX,cAAc,EAAE,IAAI,CAAC,EAAE;YACrB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,IACE,UAAU;gBACV,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,EACpD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,EACF,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,CACpE,CAAC;IAEF,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAEtB,KAAK,EAAE,KAAK,YAEX,QAAQ,IAHJ,GAAG,QAAQ,CAAC,aAAa,IAAI,aAAa,IAAI,WAAW,EAAE,IAAI,IAAI,OAAO,EAAE,CAIzD,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW,EAAE,IAAmB;IAClE,IAAI,CAAC;QACH,IAAI,IAAI;YAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/browser/runtime.tsx"],"names":[],"mappings":"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"}
@@ -2926,3 +2926,77 @@
2926
2926
  .oxa-form-full .oxa-actions > button:first-child { margin-right: auto; }
2927
2927
  .oxa-form-scroll > .ant-alert { margin: 12px 16px; }
2928
2928
  .oxa-form-overlay .oxa-settings-actions { padding: 12px; }
2929
+ .oxa-workflow-diagram { min-width: 0; min-height: 0; display: flex; flex-direction: column; height: 100%; background: var(--ant-color-bg-container, #fff); }
2930
+ .oxa-workflow-diagram-tools { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--ant-color-border-secondary, #e8edf2); font-size: 12px; }
2931
+ .oxa-workflow-node-search { display: flex; gap: 8px; min-width: 0; flex: 1; max-width: 460px; }
2932
+ .oxa-workflow-node-search > .ant-input-search { width: 190px; }
2933
+ .oxa-workflow-node-search > .ant-select { flex: 1; min-width: 130px; }
2934
+ .oxa-workflow-readonly { margin-left: auto; color: var(--ant-color-text-secondary, #748092); white-space: nowrap; display: flex; align-items: center; gap: 5px; }
2935
+ .oxa-workflow-canvas { position: relative; flex: 1; min-height: 440px; height: clamp(440px, 64dvh, 850px); background: #f5f7fa; }
2936
+ .oxa-workflow-reactflow { width: 100%; height: 100%; }
2937
+ .oxa-workflow-canvas-loading { max-width: 340px; margin: 90px auto; padding: 24px; }
2938
+ .oxa-workflow-diagram .react-flow__node { border: 0; padding: 0; }
2939
+ .oxa-workflow-diagram .react-flow__handle { width: 6px; height: 6px; background: #aab4c1; border: 2px solid #fff; pointer-events: none; }
2940
+ .oxa-workflow-node { position: relative; box-sizing: border-box; display: flex; align-items: center; gap: 12px; width: 100%; height: 100%; min-height: 92px; padding: 16px 20px; text-align: left; background: var(--ant-color-bg-container, #fff); color: var(--ant-color-text, #263446); border: 1px solid #d6dde6; border-radius: 10px; cursor: pointer; line-height: 1.6; box-shadow: 0 2px 5px rgba(31, 54, 80, .045); transition: border-color 160ms, box-shadow 160ms, background 160ms; font-family: inherit; }
2941
+ .oxa-workflow-node:hover { border-color: #aab9c9; box-shadow: 0 4px 12px rgba(31, 54, 80, .08); }
2942
+ .oxa-workflow-node.selected { border-color: var(--ant-color-primary, #1677ff); background: var(--ant-color-primary-bg, #eef6ff); box-shadow: 0 0 0 2px var(--ant-color-primary-border, #c4dfff); }
2943
+ .oxa-workflow-node:focus-visible { outline: 3px solid var(--ant-color-primary, #1677ff); outline-offset: 4px; }
2944
+ .oxa-workflow-node-icon { flex: 0 0 32px; width: 32px; height: 32px; display: grid; place-items: center; background: #f1f4f8; color: #65758b; border-radius: 8px; font-size: 17px; }
2945
+ .oxa-workflow-node.selected .oxa-workflow-node-icon { background: var(--ant-color-primary-bg-hover, #dcecff); color: var(--ant-color-primary, #1677ff); }
2946
+ .oxa-workflow-node-copy { min-width: 0; flex: 1; }
2947
+ .oxa-workflow-node strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; font-size: 14px; font-weight: 600; margin: 2px 0 3px; line-height: 1.5; }
2948
+ .oxa-workflow-node small, .oxa-workflow-node-kind { display: block; font-size: 11px; color: var(--ant-color-text-secondary, #748092); }
2949
+ .oxa-workflow-node small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2950
+ .oxa-workflow-node.visited { border-left: 3px solid var(--ant-color-success, #389e0d); }
2951
+ .oxa-workflow-node-status { position: absolute; top: -10px; right: 12px; font-size: 10px; padding: 1px 6px; color: #3f6b42; background: #f0f8f0; border: 1px solid #d4e7d3; border-radius: 4px; }
2952
+ .oxa-workflow-node-status.status-error { color: #a33731; background: #fff1f0; border-color: #eccdca; }
2953
+ .oxa-workflow-edge-label { position: absolute; pointer-events: all; max-width: 226px; border: 1px solid #e0e6ed; border-radius: 5px; padding: 4px 8px; background: #fdfefe; color: #66758a; font-family: inherit; font-size: 11px; text-align: left; cursor: pointer; box-shadow: 0 1px 3px rgba(31, 54, 80, .025); }
2954
+ .oxa-workflow-edge-label.branch { width: 226px; }
2955
+ .oxa-workflow-edge-label > span { display: flex; align-items: center; gap: 6px; }
2956
+ .oxa-workflow-edge-label span b { font-size: 10px; background: #eef2f6; padding: 0 4px; border-radius: 3px; font-variant-numeric: tabular-nums; }
2957
+ .oxa-workflow-edge-label span small { color: #3f6b42; margin-left: auto; font-size: 10px; }
2958
+ .oxa-workflow-edge-label strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; font-weight: 500; color: var(--ant-color-text, #334155); margin-top: 2px; }
2959
+ .oxa-workflow-edge-label.selected { border-color: var(--ant-color-primary-border, #91caff); }
2960
+ .oxa-workflow-edge-label.executed { border-color: #aad19e; }
2961
+ .oxa-workflow-edge-label:focus-visible { outline: 2px solid var(--ant-color-primary, #1677ff); outline-offset: 2px; }
2962
+ .oxa-workflow-viewport-tools { position: absolute; left: 16px; bottom: 42px; display: flex; align-items: center; gap: 2px; background: #fff; border: 1px solid #e0e6ed; border-radius: 8px; padding: 3px; box-shadow: 0 3px 12px rgba(31, 54, 80, .07); }
2963
+ .oxa-workflow-viewport-tools > span { min-width: 44px; text-align: center; font-size: 12px; color: #66758a; font-variant-numeric: tabular-nums; }
2964
+ .oxa-workflow-viewport-tools .ant-btn { border: 0; box-shadow: none; }
2965
+ .oxa-workflow-graph-help { position: absolute; left: 16px; bottom: 13px; color: #748092; font-size: 11px; pointer-events: none; }
2966
+ .oxa-workflow-diagram .react-flow__minimap { background: rgba(255,255,255,.9); border: 1px solid #e0e6ed; border-radius: 8px; overflow: hidden; box-shadow: none; }
2967
+ .oxa-workflow-node-list { margin: 0; padding: 12px 16px 12px 38px; max-height: min(780px, 65dvh); overflow: auto; color: #748092; scrollbar-width: thin; }
2968
+ .oxa-workflow-node-list > li { padding: 8px 0; }
2969
+ .oxa-workflow-node-list .oxa-workflow-node { min-height: 106px; }
2970
+ .oxa-workflow-node-list ul { padding: 8px 0 8px 12px; font-size: 12px; line-height: 1.8; }
2971
+ .oxa-workflow-node-list ul button:not(.ant-btn) { border: 0; background: transparent; color: var(--ant-color-primary, #1677ff); text-align: left; cursor: pointer; overflow-wrap: anywhere; }
2972
+ @media (max-width: 700px) {
2973
+ .oxa-workflow-diagram-tools { padding: 12px; gap: 10px; }
2974
+ .oxa-workflow-diagram-tools .ant-segmented { display: none; }
2975
+ .oxa-workflow-node-search { width: 100%; max-width: none; flex-basis: 100%; }
2976
+ .oxa-workflow-node-search > .ant-input-search { width: 45%; }
2977
+ .oxa-workflow-readonly { font-size: 11px; }
2978
+ }
2979
+ .oxa-workflow-config .ant-drawer-body { padding: 20px 24px; }
2980
+ .oxa-workflow-config-context { margin-bottom: 16px; }
2981
+ .oxa-workflow-config-context h4 { margin: 0 0 8px; }
2982
+ .oxa-workflow-config-help { color: var(--ant-color-text-secondary, #748092); font-size: 13px; line-height: 1.7; margin: 0 0 20px; }
2983
+ .oxa-workflow-config .ant-tabs-nav { margin-bottom: 20px; }
2984
+ .oxa-workflow-provider-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; }
2985
+ .oxa-workflow-provider-options .ant-radio-wrapper, .oxa-workflow-mode-options .ant-radio-wrapper { border: 1px solid var(--ant-color-border-secondary, #e0e6ed); border-radius: 6px; padding: 12px; margin: 0; align-items: start; }
2986
+ .oxa-workflow-provider-options .ant-radio-wrapper-checked, .oxa-workflow-mode-options .ant-radio-wrapper-checked { border-color: var(--ant-color-primary, #1677ff); background: var(--ant-color-primary-bg, #eef6ff); }
2987
+ .oxa-workflow-mode-options { display: flex; flex-direction: column; gap: 8px; width: 100%; }
2988
+ .oxa-workflow-mode-options b { display: block; font-weight: 500; }
2989
+ .oxa-workflow-mode-options small { display: block; margin-top: 2px; color: var(--ant-color-text-secondary, #748092); }
2990
+ .oxa-workflow-config-scope { border-left: 2px solid var(--ant-color-border, #d6dde6); padding-left: 12px; margin: 0 0 24px; line-height: 1.7; font-size: 13px; }
2991
+ .oxa-workflow-operation-row { padding: 16px 0; border-bottom: 1px solid var(--ant-color-border-secondary, #e0e6ed); }
2992
+ .oxa-workflow-operation-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
2993
+ .oxa-workflow-operation-row .ant-form-item { margin-bottom: 12px; }
2994
+ .oxa-workflow-operation-row small { color: var(--ant-color-text-secondary, #748092); }
2995
+ .oxa-workflow-config-reason { border-top: 1px solid var(--ant-color-border-secondary, #e0e6ed); margin-top: 24px; padding-top: 20px; }
2996
+ .oxa-workflow-config-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
2997
+ .oxa-workflow-config-footer > span { font-size: 12px; color: var(--ant-color-text-secondary, #748092); }
2998
+ @media (max-width: 700px) {
2999
+ .oxa-workflow-config .ant-drawer-body { padding: 16px; }
3000
+ .oxa-workflow-config-footer > span { display: none; }
3001
+ .oxa-workflow-config-footer { justify-content: flex-end; }
3002
+ }
package/dist/core.d.ts CHANGED
@@ -3,6 +3,10 @@ export * from './browser/managed-command';
3
3
  export type { ManagedReadResult, CommandReceipt, WaitingReceipt } from 'openxiangda-contracts/browser';
4
4
  export type { BusinessProcessCommand, BusinessProcessCommandQuery, BusinessProcessCommandList, DataAuditEntry, DataAuditPage, DataAggregateMeasureType, DataAggregatePage, DataAggregateQuery, DataBatchQueryItemResult, DataBatchQueryOperation, DataBatchQueryRequest, DataBatchQueryResult, DataExportRequest, DataFieldOption, DataFieldSourcePage, DataFieldSourceQuery, DataFieldSourceLaunchBinding, DataFieldSurface, DataFilePreview, DataFileRef, DataFileUploadPlan, DataFileDownloadSession, DataFileOutputRequest, DataFileOutputPlan, DataPage, DataQuery, DataRecord, DataResourceSurface, DataTransactionOperation, DataDecimalReservationTransition, DataTransactionRequest, DataTransactionResult, DataWhere, DirectoryEntry, DirectoryEntryPage, DirectoryResolveRequest, LabeledValue, NativeAuthorizationManagementCatalog, NativeAuthorizationMutationReceipt, NativeRoleManagementAction, NativeRoleManagementAuthority, NativeRoleManagementGrant, NativeRoleManagementGrantMutationResult, NativeRoleManagementGrantPage, NativeRoleMembership, NativeRoleMembershipMutationResult, NativeRoleMembershipPage, NativeScopeGrant, NotificationDeliveryV2, NotificationMessageDetailV2, NotificationReadReceiptV2, ResourceReferenceValue, RuntimeAuthorizationContext, RuntimeAuthorizationIdentity, StableAddressValue, StableLocationValue, SubjectProfile, WorkflowDetailNavigation, WorkflowBusinessData, WorkflowBusinessDataStatus, WorkflowCommandResult, WorkflowDetailSurfaceV2, WorkflowInstance, WorkflowSurface, WorkflowTask, WorkflowTimeline, WorkflowWorkCenterItem, } from 'openxiangda-contracts/browser';
5
5
  export * from './browser/platform-client';
6
+ export { formatWorkflowExpression, projectWorkflowGraph } from 'openxiangda-contracts/browser';
7
+ export type { WorkflowReadability, WorkflowGraphProjection, WorkflowGraphVariable, WorkflowGraphEdge, WorkflowGraphVisit, WorkflowGraphReadResult, WorkflowInstanceGraphReadResult } from 'openxiangda-contracts/browser';
8
+ export { WORKFLOW_CONFIGURABLE_OPERATIONS, WORKFLOW_CONFIGURABLE_PROVIDERS, validateWorkflowNodeConfigurationPatch, projectWorkflowNodePolicy } from 'openxiangda-contracts/browser';
9
+ export type { ApplicationAdministrationContext, WorkflowApprovalAdministration, WorkflowApprovalMode, WorkflowConfigurableOperation, WorkflowFieldPolicy, WorkflowNodeOperationPolicy, WorkflowNodeConfigurations, WorkflowNodeConfigurationPatch, WorkflowNodeConfigurationMutation, WorkflowNodeConfigurationReceipt } from 'openxiangda-contracts/browser';
6
10
  export * from './browser/runtime-meta';
7
11
  export * from './browser/components/platform-fields/resource-query';
8
12
  export type * from './browser/components/resource/generated-resource-definition';
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvG,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,oCAAoC,EACpC,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,uCAAuC,EACvC,6BAA6B,EAC7B,oBAAoB,EACpB,kCAAkC,EAClC,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvG,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,oCAAoC,EACpC,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,uCAAuC,EACvC,6BAA6B,EAC7B,oBAAoB,EACpB,kCAAkC,EAClC,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAC1N,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrL,YAAY,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAC9V,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
package/dist/core.js CHANGED
@@ -1,6 +1,8 @@
1
1
  export { createManagedConcurrencyClient } from './browser/platform-client';
2
2
  export * from './browser/managed-command';
3
3
  export * from './browser/platform-client';
4
+ export { formatWorkflowExpression, projectWorkflowGraph } from 'openxiangda-contracts/browser';
5
+ export { WORKFLOW_CONFIGURABLE_OPERATIONS, WORKFLOW_CONFIGURABLE_PROVIDERS, validateWorkflowNodeConfigurationPatch, projectWorkflowNodePolicy } from 'openxiangda-contracts/browser';
4
6
  export * from './browser/runtime-meta';
5
7
  export * from './browser/components/platform-fields/resource-query';
6
8
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAuE1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,2BAA2B,CAAC;AAuE1C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE/F,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAErL,cAAc,wBAAwB,CAAC;AACvC,cAAc,qDAAqD,CAAC"}
package/dist/react.d.ts CHANGED
@@ -27,6 +27,8 @@ export * from './browser/components/resource/GeneratedResourceCrud';
27
27
  export * from './browser/components/resource/ResourceBatchActions';
28
28
  export * from './browser/components/resource/StandardResourcePages';
29
29
  export * from './browser/components/workflow/StandardWorkflowPages';
30
+ export * from './browser/components/workflow/WorkflowDiagram';
31
+ export * from './browser/components/workflow/WorkflowNodeConfigurationEditor';
30
32
  export * from './browser/components/PlatformAvatar';
31
33
  export * from './browser/components/todo/ApplicationTodoCenterPage';
32
34
  export type * from './browser/components/resource/generated-resource-definition';
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,oCAAoC,EACpC,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,oCAAoC,EACpC,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+DAA+D,CAAC;AAC9E,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
package/dist/react.js CHANGED
@@ -25,6 +25,8 @@ export * from './browser/components/resource/GeneratedResourceCrud';
25
25
  export * from './browser/components/resource/ResourceBatchActions';
26
26
  export * from './browser/components/resource/StandardResourcePages';
27
27
  export * from './browser/components/workflow/StandardWorkflowPages';
28
+ export * from './browser/components/workflow/WorkflowDiagram';
29
+ export * from './browser/components/workflow/WorkflowNodeConfigurationEditor';
28
30
  export * from './browser/components/PlatformAvatar';
29
31
  export * from './browser/components/todo/ApplicationTodoCenterPage';
30
32
  //# sourceMappingURL=react.js.map
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAG3E,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAmC,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EAEzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAG7B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AASnC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAG3E,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAmC,MAAM,4BAA4B,CAAC;AACrG,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EAEzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAG7B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AASnC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+DAA+D,CAAC;AAC9E,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC"}
@@ -25,3 +25,66 @@ MCP 对应 `workflow_node_configurations`。workflowCode 来自当前应用声
25
25
  确有业务需要时,使用 `openxiangda/core` 的角色管理 SDK。目录提供可管理角色、动作与授权范围;业务角色只能维护管理员已委托的范围。进一步委托要求 management.delegate,并受已有目标角色及动作子集限制。
26
26
 
27
27
  成员和委托修改带 UUID operationId、原因,更新/撤销带最新 expectedRevision;冲突后重新读取。应用不另建授权表、选择 actor 或自行保存权限快照。SDK 和当前用户数据边界见[权限](./data-authz.md)。
28
+
29
+ ## 可读流程图与实例路径 {#workflow-graph}
30
+
31
+ 管理员在流程目录检索全部定义,查看指定版本的分支顺序、默认路径、变量类型/单位及来源。拓扑和条件由开发者发布;图和列表只用于查看。当前有效配置只叠加在匹配的激活定义上;历史实例使用固定定义和节点进入时的人员/配置,尚未执行的节点不计入执行路径。
32
+
33
+ 目录进入独立流程图地址,刷新及浏览器返回保留所查看流程/版本。共享组件按需加载 React Flow 与 ELK 正交布局:所有线段横平竖直、转角为直角;支持画布平移、滚轮缩放、适应全图、聚焦选中和缩略导航。分支标签可选中,详情保留完整条件、顺序和来源;窄屏采用同源节点列表,方向键/Home/End 定位节点。画布布局上限为 200 节点、1024 连线,不提供拖改、删除或连线编辑。
34
+
35
+ 应用自定义管理页面可复用当前用户客户端和共享图组件:
36
+
37
+ ```tsx
38
+ import { useEffect, useState } from 'react';
39
+ import { WorkflowDiagram } from 'openxiangda/react';
40
+ import { loadWorkflowDefinitionGraph, type WorkflowGraphReadResult } from 'openxiangda/core';
41
+
42
+ export function ReadableWorkflow({ workflowCode, version }: {
43
+ workflowCode: string; version: number;
44
+ }) {
45
+ const [result, setResult] = useState<WorkflowGraphReadResult>();
46
+ const [selected, setSelected] = useState('');
47
+ const [error, setError] = useState('');
48
+ useEffect(() => {
49
+ let cancelled = false;
50
+ setResult(undefined); setError('');
51
+ loadWorkflowDefinitionGraph(workflowCode, version).then(value => {
52
+ if (!cancelled) { setResult(value); setSelected(value.graph.startAt); }
53
+ }).catch(error => { if (!cancelled) setError(error.message); });
54
+ return () => { cancelled = true; };
55
+ }, [workflowCode, version]);
56
+ if (error) return <p role="alert">{error}</p>;
57
+ if (!result) return <p>正在读取流程</p>;
58
+ return <WorkflowDiagram graph={result.graph} selectedNodeId={selected} onSelectNode={setSelected} />;
59
+ }
60
+ ```
61
+
62
+ 组件运行在平台应用作用域内,SDK 使用当前用户,凭据及环境继续由平台管理。`loadWorkflowInstanceGraph(instanceId)` 返回固定版本、序列及持久访问记录,传入组件 `visits` 即可查看实际路径。两种管理读取都受服务端授权;不能给普通申请页暴露整个管理读面。
63
+
64
+ `titles`、`summaries` 只用于匹配版本的有效配置或进入快照;不能将今天的模式叠加到旧实例。可选 `selectedEdgeId/onSelectEdge` 将图上分支选择关联到自定义详情;它们不修改条件。实际边由访问记录的 `transition/matchedBranch` 确认,两个节点先后出现不能证明中间所有连线都被执行。
65
+
66
+ ## 有界节点配置与 SDK {#node-administration}
67
+
68
+ 开发者在审批节点的 `administration` 声明可维护的模式、人员来源和任务按钮。未声明这些项的节点保留名称、说明及原人员来源维护;拓扑、分支、范围计算仍由代码控制。使用新声明的应用需要平台 `workflow.node-administration@1.0.0`,编译与激活均检查该能力。
69
+
70
+ 模式为 `single/any/all/sequence` 的允许子集;来源限 `fixed_users/app_role/app_role_in_scope`,范围角色必须已有代码声明的 scope。按钮 code 保持同意、拒绝、退回、转交、委托、加签的稳定语义;同意和拒绝不能关闭。只有同意/拒绝支持意见规则,拒绝或代码已有必填意见不能放宽。字段显隐、填写与必填行为由应用页面和代码维护,不提供流程节点的字段管理覆盖。可编译声明见 `examples/workflow-administration/declaration.ts`。
71
+
72
+ 应用自定义管理页可使用 `WorkflowNodeConfigurationEditor`(`openxiangda/react`),输入同一读面中的节点、principals 和 context.headRevision,放在平台 App/UI 作用域内。它复用下列当前用户 SDK:
73
+
74
+ ```ts
75
+ import { loadApplicationAdministrationContext, loadWorkflowNodeConfigurations,
76
+ saveWorkflowNodeConfiguration } from 'openxiangda/core';
77
+
78
+ const context = await loadApplicationAdministrationContext();
79
+ const configuration = await loadWorkflowNodeConfigurations('requests');
80
+ const node = configuration.nodes.find(item => item.nodeId === 'review')!;
81
+ const operationId = crypto.randomUUID();
82
+ await saveWorkflowNodeConfiguration('requests', node.nodeId, {
83
+ expectedHeadRevision: context.headRevision!, expectedRevision: node.configuration.revision,
84
+ operationId, reason: '更新复审方式', patch: { mode: 'all' },
85
+ });
86
+ ```
87
+
88
+ 只有已声明允许 all 的节点可保存此例。输入最多 32KiB,人员 200、按钮文字 40 字。用 `patch: null` 恢复默认,也产生审计修订。结果未知时保留相同 operationId 和完整请求,查询后重试相同操作;确认的修订/Head 冲突先重新读取,不能覆盖别人。共享编辑器按审批人、审批按钮、名称与说明分组,显示配置来源、修订与生效范围;切组保留草稿,校验失败定位到相应分组。在冲突时保留草稿,加载最新基准后再次显式保存。
89
+
90
+ 新配置影响以后进入的节点,当前待办保留进入时模式、人员、按钮和必填意见;实时人员资格仍复核。含新增配置或快照的环境不能直接回退到忽略策略的旧服务器。
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
68
68
  以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
69
69
 
70
70
  ```bash
71
- pnpm dlx openxiangda@2.34.3 skill install --force
72
- pnpm dlx openxiangda@2.34.3 auth status --base-url <平台地址> --json
73
- pnpm dlx openxiangda@2.34.3 login --cwd my-app --base-url https://platform.example.com
74
- pnpm dlx openxiangda@2.34.3 create my-app --base-url https://platform.example.com
71
+ pnpm dlx openxiangda@2.35.3 skill install --force
72
+ pnpm dlx openxiangda@2.35.3 auth status --base-url <平台地址> --json
73
+ pnpm dlx openxiangda@2.35.3 login --cwd my-app --base-url https://platform.example.com
74
+ pnpm dlx openxiangda@2.35.3 create my-app --base-url https://platform.example.com
75
75
  cd my-app
76
76
  pnpm openxiangda context --json
77
77
  pnpm openxiangda dev
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
174
174
  无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
175
175
 
176
176
  ```bash
177
- pnpm dlx openxiangda@2.34.3 auth status --base-url <平台> --json
178
- pnpm dlx openxiangda@2.34.3 source resolve <仓库URL> --base-url <平台> --json
179
- pnpm dlx openxiangda@2.34.3 source clone <仓库URL> <新目录> --base-url <平台> --json
177
+ pnpm dlx openxiangda@2.35.3 auth status --base-url <平台> --json
178
+ pnpm dlx openxiangda@2.35.3 source resolve <仓库URL> --base-url <平台> --json
179
+ pnpm dlx openxiangda@2.35.3 source clone <仓库URL> <新目录> --base-url <平台> --json
180
180
  ```
181
181
 
182
182
  登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
@@ -4,6 +4,16 @@
4
4
 
5
5
  页面开发参见[并发能力的前端接入](./managed-concurrency-frontend.md):按热点详情、一键申请、填完再提交、短确认入口、预占确认和原结果恢复选择交互方式,并核对当前 API 与尚未提供的封装边界。
6
6
 
7
+ ## 开抢瞬间的完整请求链
8
+
9
+ 容量验收覆盖同一批用户的整条请求链:进入 HTML 和静态资源、运行时身份初始化、活动内容与本人状态、持久排队提交、后台执行、按原请求键恢复结果,以及页面的自然查询。为这些入口共同规划连接数、HTTP 在途数、数据库连接、回源和 worker 预算;只测 enqueue 或缓存命中,不能证明整条链能承受同一秒进入的人数。共享活动内容和本人状态分别使用合适的读取范围与失效依赖,排队阶段按服务端建议间隔和抖动查询,避免自然刷新再次形成尖峰。
10
+
11
+ 运行时 current 对明确繁忙响应最多恢复 300 秒,安全只读传输故障最多三次总尝试。它只帮助用户完成入口初始化,尚未持久受理业务申请;只有 enqueue 返回持久回执后才展示已受理。退出、真实身份变化、权限或版本拒绝仍应停止旧客户端。同身份检查保留页面和原申请,刷新或重新进入继续查原请求键,不自动创建第二次提交。
12
+
13
+ 资源不足时,通过独立 intake 预算保护新受理,再让持久命令在业务 deadline 内等待受控执行;等待、重试与恢复不延长原截止。资源充足时,根据已测的 CPU、数据库连接、锁竞争和完成率提高工作预算,分别调整受理、回源、查询与执行,不能只增加队列长度或 worker 数。业务需要三十分钟内完成时,同时核对命令自身的 acceptedAt/deadlineAt,以及从开抢时刻到最终结果的总耗时,入口等待不能被排除在体验指标之外。
14
+
15
+ 记录同一秒发起人数、进入成功率、持久受理率、明确拒绝、暂时无法确认、最终结果耗时分布、最老非终态与资源峰值。合成独立测试主体用于验证目标服务器的应用请求链;真实 SSO 认证、客户端网络和浏览器渲染容量需要另行验证,不能由合成压测推断。
16
+
7
17
  ## 声明与权限
8
18
 
9
19
  完整且由双编译器测试验证的示例位于源码 `examples/managed-concurrency/declaration.ts`。调用 `defineOpenXiangdaApp(concurrencyExample())` 即可编译。把示例中的 `data.concurrency` 合入应用配置,并按实际业务配置模型和参与权限。
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": "openxiangda.documentation/v1",
3
- "version": "2.34.3",
3
+ "version": "2.35.3",
4
4
  "topics": [
5
5
  {
6
6
  "id": "getting-started",
7
7
  "title": "安装与开始开发",
8
8
  "file": "getting-started.md",
9
- "sha256": "91bc8680c17e1c9c184c49aac3097e8211146a886d747b712aa4a421ce79dd2f"
9
+ "sha256": "f32771aac73fa5cbe2ef41f30f997abb723d18fb48b1fa6418553a7632da073b"
10
10
  },
11
11
  {
12
12
  "id": "product-design",
@@ -84,7 +84,7 @@
84
84
  "id": "workflow-events",
85
85
  "title": "审批、事件与通知",
86
86
  "file": "workflow-events.md",
87
- "sha256": "5eec24d16fbcea7f94155b0d68beeacbc7d86dec4f06b6c87dda89245843f621"
87
+ "sha256": "4dcb4b24aeb1f94f2d8c8261b41b0a602c365eeb68fc89592274397dbb9915e1"
88
88
  },
89
89
  {
90
90
  "id": "backend",
@@ -108,7 +108,7 @@
108
108
  "id": "managed-concurrency",
109
109
  "title": "缓存、排队与整数配额",
110
110
  "file": "managed-concurrency.md",
111
- "sha256": "248e26e1774e0d2b231fe588884f473a63866e0d2b1885e05225cd242f476ee7"
111
+ "sha256": "f79065a4ba932c92c22325d0a80c3841d3f0672e0513e7749be1dca59c1fd9bb"
112
112
  },
113
113
  {
114
114
  "id": "managed-concurrency-frontend",
@@ -120,7 +120,7 @@
120
120
  "id": "administration",
121
121
  "title": "应用管理与有效配置",
122
122
  "file": "administration.md",
123
- "sha256": "f4ea9d0f385a22bfaa56593abe460e503f990abc3c31d25460c2570ae209ec40"
123
+ "sha256": "b023843d340e6664aca09009b2a6d195ce5fc0a92de4c075c2a9db54e99f3b17"
124
124
  },
125
125
  {
126
126
  "id": "testing",
@@ -104,6 +104,8 @@ events: {
104
104
 
105
105
  待办中心通过 Workflow 查询 `pending`、`handled`、`created`、`cc` 四种视图;消息中心默认向 Notification Hub 查询 `view=all`,沿用应用声明的渲染扩展。各入口按服务端 `detailNavigation` 打开详情,页面不自行拼接人员范围。
106
106
 
107
+ 标准任务和实例详情的“返回”由应用 Router 使用同一份 route manifest 中对应设备的流程中心路径;没有中心条目时返回已声明门户。普通用户无需管理后台权限。应用独立消费 `WorkflowTaskPage` 或 `WorkflowInstancePage` 时,可以传入本应用已声明的 `returnPath`,例如 `<WorkflowInstancePage variant="mobile" returnPath="/m/work-center" />`。抽屉的 `onDismiss` 仍负责关闭当前抽屉;返回导航不授予目标页面权限。
108
+
107
109
  抄送由动态 Surface 提供 `cc` 操作,使用 `user_select` 多选组件收集 1 至 20 位人员。任务 Surface 可以正式包含实例抄送命令;前端按 `operation.execute.href` 和该 Surface 的 token 提交,不另造任务命令或 token。公共事件为 `openxiangda.workflow.instance.cc_added.v2`。
108
110
 
109
111
  ## 钉钉卡片已读查询
@@ -378,3 +380,25 @@ Surface 上执行。
378
380
  ## 验证
379
381
 
380
382
  至少验证:完整标准详情投影、父子表边界、流程附件读取、桌面/移动独立渲染、全部标准操作、多人模式、重复/并发命令、stale revision、重启 replay、乱序事件、重复回调、消息终态全量更新、详情跳转、错用户/错租户/过期动作、渠道超时/unknown、死信重放和 1.x 零触碰。
383
+
384
+ ## 流程说明与变量来源 {#workflow-readability}
385
+
386
+ `definition.readability` 是可选说明,随不可变定义及其摘要发布。变量来源从实际 `inputSchema` 和 `subject.factProjection` 推导;不另行声明一个可编辑的条件图。例如,条件路径 `amountCents` 对应业务字段 `amountCents`,单选条件通常读取 `reason.value`:
387
+
388
+ ```ts
389
+ readability: {
390
+ variables: {
391
+ amountCents: { label: '申请金额', unit: '分', description: '提交记录中的非负整数金额' },
392
+ 'reason.value': { label: '休学原因值' },
393
+ },
394
+ logic: [{
395
+ code: 'submission-validation', title: '核验申请',
396
+ description: '提交时校验已声明字段;金额由表单直接提供',
397
+ phase: 'submission', inputPaths: ['amountCents'],
398
+ }],
399
+ }
400
+ ```
401
+
402
+ 说明的执行位置只能是 submission、某节点的 node_input 或 completion。它是对已有逻辑的注释,不会自动执行计算或产生新流程节点。没有实际计算步骤时,不应写成“系统已计算总金额”。条件的变量必须存在于输入 Schema;对旧未标注定义,读取投影会明确给出未知来源诊断。
403
+
404
+ 可选 `source: { path, symbol?, digest }` 只返回源码位置和 SHA256,不返回源码内容。path 指向工作区 apps/packages/platform 下的代码文件,digest 为 `sha256:<原始文件字节摘要>`。工作区加载时核对文件存在、无符号链接、大小和摘要;源码变化后以 WORKFLOW_LOGIC_DESCRIPTION_STALE 阻止封装,开发者应核实说明并更新引用。32 个文件、单文件 2MiB、总量 8MiB 为上限。元数据不能验证任意 TypeScript 的业务含义,业务说明及验收仍由开发者维护。