openxiangda 2.0.0-alpha.54 → 2.0.0-alpha.58

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 (32) hide show
  1. package/dist/browser/application.d.ts +2 -2
  2. package/dist/browser/application.d.ts.map +1 -1
  3. package/dist/browser/application.js +36 -40
  4. package/dist/browser/application.js.map +1 -1
  5. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +38 -7
  6. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  7. package/dist/browser/components/workflow/StandardWorkflowPages.js +131 -26
  8. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  9. package/dist/browser/platform-client.d.ts +3 -3
  10. package/dist/browser/platform-client.d.ts.map +1 -1
  11. package/dist/browser/platform-client.js +5 -3
  12. package/dist/browser/platform-client.js.map +1 -1
  13. package/dist/browser/route-manifest.d.ts +6 -12
  14. package/dist/browser/route-manifest.d.ts.map +1 -1
  15. package/dist/browser/route-manifest.js +117 -13
  16. package/dist/browser/route-manifest.js.map +1 -1
  17. package/dist/browser/runtime.d.ts +14 -2
  18. package/dist/browser/runtime.d.ts.map +1 -1
  19. package/dist/browser/runtime.js +53 -6
  20. package/dist/browser/runtime.js.map +1 -1
  21. package/dist/browser/workflow-definitions.d.ts +9 -0
  22. package/dist/browser/workflow-definitions.d.ts.map +1 -1
  23. package/dist/browser/workflow-definitions.js +19 -1
  24. package/dist/browser/workflow-definitions.js.map +1 -1
  25. package/dist/core.d.ts +1 -1
  26. package/dist/core.d.ts.map +1 -1
  27. package/dist/core.js.map +1 -1
  28. package/dist/react.d.ts +1 -0
  29. package/dist/react.d.ts.map +1 -1
  30. package/dist/react.js.map +1 -1
  31. package/package.json +7 -7
  32. package/skills/openxiangda-v2/SKILL.md +3 -3
@@ -2,7 +2,7 @@ import { type OpenXiangdaApplicationContributions } from './admin-contributions'
2
2
  import { type AdminNavigationInput, type AdminPagesInput } from './admin-information-architecture';
3
3
  import type { GeneratedResourceDefinitionsInput } from './components/resource/generated-resource-definition';
4
4
  import type { RuntimePerspective } from './runtime';
5
- import type { AnonymousPublicAccessContractV2, AppRouteManifestV2 } from 'openxiangda-contracts/browser';
5
+ import type { AnonymousPublicAccessContractV2, AppRouteManifestV3 } from 'openxiangda-contracts/browser';
6
6
  import { type StandardWorkflowDefinitionsInput } from './workflow-definitions';
7
7
  export interface OpenXiangdaApplicationProps {
8
8
  appCode: string;
@@ -10,7 +10,7 @@ export interface OpenXiangdaApplicationProps {
10
10
  resourceDefinitions: GeneratedResourceDefinitionsInput;
11
11
  adminPages: AdminPagesInput;
12
12
  adminNavigation: AdminNavigationInput;
13
- routeManifest: AppRouteManifestV2;
13
+ routeManifest: AppRouteManifestV3;
14
14
  perspectives?: readonly RuntimePerspective[];
15
15
  workflows?: StandardWorkflowDefinitionsInput;
16
16
  contributions?: OpenXiangdaApplicationContributions;
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/browser/application.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAKL,KAAK,mCAAmC,EACzC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAEV,iCAAiC,EAClC,MAAM,qDAAqD,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAUpD,OAAO,KAAK,EACV,+BAA+B,EAC/B,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,wBAAwB,CAAC;AAqGhC,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,iCAAiC,CAAC;IACvD,UAAU,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,oBAAoB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC7C,SAAS,CAAC,EAAE,gCAAgC,CAAC;IAC7C,aAAa,CAAC,EAAE,mCAAmC,CAAC;IACpD,YAAY,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CACvD;AAsLD,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,mBAAmB,EAAE,2BAA2B,EAChD,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAiB,EACjB,SAAc,EACd,aAAa,EACb,YAAY,GACb,EAAE,2BAA2B,2CA0O7B"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/browser/application.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAKL,KAAK,mCAAmC,EACzC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAEV,iCAAiC,EAClC,MAAM,qDAAqD,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AASpD,OAAO,KAAK,EACV,+BAA+B,EAC/B,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,wBAAwB,CAAC;AAqGhC,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,iCAAiC,CAAC;IACvD,UAAU,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,oBAAoB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC7C,SAAS,CAAC,EAAE,gCAAgC,CAAC;IAC7C,aAAa,CAAC,EAAE,mCAAmC,CAAC;IACpD,YAAY,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CACvD;AAgMD,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,mBAAmB,EAAE,2BAA2B,EAChD,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAiB,EACjB,SAAc,EACd,aAAa,EACb,YAAY,GACb,EAAE,2BAA2B,2CAsP7B"}
@@ -10,7 +10,7 @@ import { applicationBasename, configureApplicationIdentity, } from './runtime-me
10
10
  import { EmptyApplicationPage, Shell } from './Shell';
11
11
  import { AdminContributionsProvider, isApplicationRouteAllowed, useAdminContributions, } from './admin-contributions';
12
12
  import { AdminInformationArchitectureProvider, firstAllowedAdminPath, useAdminInformationArchitecture, } from './admin-information-architecture';
13
- import { createStandardRouteManifestIndex, negotiateStandardRoute, projectStandardAdminPages, standardRouteManifestDeviceForViewport, STANDARD_ROUTE_MOBILE_MAX_WIDTH, } from './route-manifest';
13
+ import { createStandardRouteManifestIndex, negotiateStandardRoute, projectStandardAdminPages, standardRouteManifestDeviceForViewport, } from './route-manifest';
14
14
  import { OpenXiangdaResourceDefinitionsProvider } from './resource-definitions';
15
15
  import { useGlobalRequestLoading } from './platform-client';
16
16
  import { OpenXiangdaWorkflowDefinitionsProvider, } from './workflow-definitions';
@@ -76,6 +76,19 @@ function ApplicationAdminEntry({}) {
76
76
  });
77
77
  return target ? _jsx(Navigate, { replace: true, to: target }) : _jsx(EmptyApplicationPage, {});
78
78
  }
79
+ function ApplicationRootEntry({ index, }) {
80
+ const location = useLocation();
81
+ const device = useViewportDevice(index.manifest.devicePolicy);
82
+ const target = device ? index.manifest.rootEntry[device] : undefined;
83
+ if (target && target !== location.pathname) {
84
+ return (_jsx(Navigate, { replace: true, to: {
85
+ pathname: target,
86
+ search: location.search,
87
+ hash: location.hash,
88
+ }, state: location.state }));
89
+ }
90
+ return _jsx(ApplicationAdminEntry, {});
91
+ }
79
92
  function ApplicationContributionRoute({ contribution, allRoutes, }) {
80
93
  const { hasCapability } = useRuntime();
81
94
  const Component = contribution.component;
@@ -86,52 +99,22 @@ function GlobalRequestLoading() {
86
99
  const loading = useGlobalRequestLoading();
87
100
  return loading ? (_jsx("div", { "aria-label": "\u9875\u9762\u8BF7\u6C42\u8FDB\u884C\u4E2D", "aria-valuetext": "\u6B63\u5728\u52A0\u8F7D", className: "oxa-global-request-loading", role: "progressbar", children: _jsx("span", {}) })) : null;
88
101
  }
89
- function readViewportDevice() {
102
+ function readViewportDevice(policy) {
90
103
  if (typeof window === 'undefined')
91
104
  return null;
92
- if (typeof window.matchMedia === 'function') {
93
- return window.matchMedia(`(max-width: ${STANDARD_ROUTE_MOBILE_MAX_WIDTH}px)`).matches
94
- ? 'mobile'
95
- : 'desktop';
96
- }
97
- return standardRouteManifestDeviceForViewport(window.innerWidth);
105
+ return standardRouteManifestDeviceForViewport(policy, window.innerWidth);
98
106
  }
99
- function useViewportDevice() {
100
- const [device, setDevice] = useState(readViewportDevice);
107
+ function useViewportDevice(policy) {
108
+ const [device, setDevice] = useState(() => readViewportDevice(policy));
101
109
  useEffect(() => {
102
110
  if (typeof window === 'undefined')
103
111
  return;
104
112
  const update = (next) => setDevice(current => (current === next ? current : next));
105
- if (typeof window.matchMedia === 'function') {
106
- const query = window.matchMedia(`(max-width: ${STANDARD_ROUTE_MOBILE_MAX_WIDTH}px)`);
107
- const onChange = (event) => {
108
- update(event?.matches === undefined
109
- ? standardRouteManifestDeviceForViewport(window.innerWidth)
110
- : event.matches
111
- ? 'mobile'
112
- : 'desktop');
113
- };
114
- onChange({ matches: query.matches });
115
- if (typeof query.addEventListener === 'function') {
116
- query.addEventListener('change', onChange);
117
- }
118
- else {
119
- query.addListener?.(onChange);
120
- }
121
- return () => {
122
- if (typeof query.removeEventListener === 'function') {
123
- query.removeEventListener('change', onChange);
124
- }
125
- else {
126
- query.removeListener?.(onChange);
127
- }
128
- };
129
- }
130
- const onResize = () => update(standardRouteManifestDeviceForViewport(window.innerWidth));
113
+ const onResize = () => update(standardRouteManifestDeviceForViewport(policy, window.innerWidth));
131
114
  onResize();
132
115
  window.addEventListener('resize', onResize);
133
116
  return () => window.removeEventListener('resize', onResize);
134
- }, []);
117
+ }, [policy]);
135
118
  return device;
136
119
  }
137
120
  /**
@@ -144,11 +127,24 @@ function useViewportDevice() {
144
127
  function StandardRouteDeviceNegotiator({ index, }) {
145
128
  const location = useLocation();
146
129
  const navigate = useNavigate();
147
- const device = useViewportDevice();
130
+ const device = useViewportDevice(index.manifest.devicePolicy);
148
131
  const redirectKey = useRef(undefined);
132
+ const initialPath = useRef(location.pathname);
133
+ const initialized = useRef(false);
149
134
  useEffect(() => {
150
135
  if (!device)
151
136
  return;
137
+ if (!initialized.current) {
138
+ initialized.current = true;
139
+ const explicitPaths = [
140
+ index.manifest.authentication.desktop.path,
141
+ index.manifest.authentication.mobile.path,
142
+ ];
143
+ const normalizePath = (path) => path.length > 1 ? path.replace(/\/$/, '') : path;
144
+ if (explicitPaths.some(path => normalizePath(path) === normalizePath(initialPath.current))) {
145
+ return;
146
+ }
147
+ }
152
148
  const currentUrl = `${location.pathname}${location.search}${location.hash}`;
153
149
  const target = negotiateStandardRoute(index, {
154
150
  pathname: location.pathname,
@@ -242,7 +238,7 @@ export function OpenXiangdaApplication({ appCode, appName, resourceDefinitions:
242
238
  return [];
243
239
  });
244
240
  const provider = createApplicationProvider(resourceDefinitions);
245
- return (_jsx(AdminInformationArchitectureProvider, { navigation: adminNavigation, pages: effectiveAdminPages, children: _jsx(AdminContributionsProvider, { contributions: contributions, children: _jsx(OpenXiangdaResourceDefinitionsProvider, { definitions: resourceDefinitions, children: _jsx(OpenXiangdaWorkflowDefinitionsProvider, { definitions: workflows, children: _jsx(AppearanceProvider, { children: _jsxs(BrowserRouter, { basename: applicationBasename(), children: [_jsx(GlobalRequestLoading, {}), _jsx(StandardRouteDeviceNegotiator, { index: routeManifestIndex }), _jsx(RuntimeBoundary, { authentication: contributions?.authentication, perspectives: perspectives, publicAccess: publicAccess, routes: contributionRoutes, children: _jsx(Refine, { dataProvider: provider, options: REFINE_OPTIONS, resources: codes.map((code) => {
241
+ return (_jsx(AdminInformationArchitectureProvider, { navigation: adminNavigation, pages: effectiveAdminPages, children: _jsx(AdminContributionsProvider, { contributions: contributions, children: _jsx(OpenXiangdaResourceDefinitionsProvider, { definitions: resourceDefinitions, children: _jsx(OpenXiangdaWorkflowDefinitionsProvider, { definitions: workflows, children: _jsx(AppearanceProvider, { children: _jsxs(BrowserRouter, { basename: applicationBasename(), children: [_jsx(GlobalRequestLoading, {}), _jsx(StandardRouteDeviceNegotiator, { index: routeManifestIndex }), _jsx(RuntimeBoundary, { authentication: contributions?.authentication, perspectives: perspectives, publicAccess: publicAccess, routeManifest: routeManifest, routes: contributionRoutes, children: _jsx(Refine, { dataProvider: provider, options: REFINE_OPTIONS, resources: codes.map((code) => {
246
242
  const byKind = new Map(resourcePages
247
243
  .filter(page => page.resourceCode === code)
248
244
  .map(page => [page.kind, page.path]));
@@ -261,6 +257,6 @@ export function OpenXiangdaApplication({ appCode, appName, resourceDefinitions:
261
257
  ? { show: byKind.get('resource-detail') }
262
258
  : {}),
263
259
  };
264
- }), children: _jsxs(Routes, { children: [_jsx(Route, { path: "/", element: adminEntry }), _jsx(Route, { path: "/admin", element: adminEntry }), _jsx(Route, { path: "/files/:resourceCode/:fileId/preview", element: _jsx(ApplicationRoute, { children: _jsx(FilePreviewPage, {}) }) }), resourceRoutes, workflowRoutes, applicationRoutes] }) }) })] }) }) }) }) }) }));
260
+ }), children: _jsxs(Routes, { children: [_jsx(Route, { path: "/", element: _jsx(ApplicationRootEntry, { index: routeManifestIndex }) }), _jsx(Route, { path: "/m/", element: _jsx(ApplicationRootEntry, { index: routeManifestIndex }) }), _jsx(Route, { path: "/m", element: _jsx(ApplicationRootEntry, { index: routeManifestIndex }) }), _jsx(Route, { path: "/admin", element: adminEntry }), _jsx(Route, { path: "/files/:resourceCode/:fileId/preview", element: _jsx(ApplicationRoute, { children: _jsx(FilePreviewPage, {}) }) }), resourceRoutes, workflowRoutes, applicationRoutes] }) }) })] }) }) }) }) }) }));
265
261
  }
266
262
  //# sourceMappingURL=application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/browser/application.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EACL,aAAa,EACb,QAAQ,EACR,KAAK,EACL,MAAM,EACN,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oCAAoC,EACpC,qBAAqB,EACrB,+BAA+B,GAGhC,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,sCAAsC,EACtC,+BAA+B,GAGhC,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,sCAAsC,GAEvC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,GAAG,EAAE,CACzB,MAAM,CAAC,6CAA6C,CAAC,CAAC;AACxD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAChC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAClF,CAAC;AACF,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,MAAM,CAAC,qBAAqB;CACtC,CAAC,CAAC,CACJ,CAAC;AACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CACrC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAC7E,CAAC;AACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CACvC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,sBAAsB;CACvC,CAAC,CAAC,CACJ,CAAC;AACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CACjC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CACzE,CAAC;AACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CACvC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,sBAAsB;CACvC,CAAC,CAAC,CACJ,CAAC;AACF,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,EAAE,CAC1C,MAAM,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,MAAM,CAAC,yBAAyB;CAC1C,CAAC,CAAC,CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,EAAE,QAAQ,EAA2B;IAC1D,OAAO,CACL,KAAC,QAAQ,IACP,QAAQ,EAAE,cAAK,SAAS,EAAC,kBAAkB,uEAAgB,YAE1D,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAA2B;IAC7D,OAAO,CACL,KAAC,QAAQ,IACP,QAAQ,EAAE,cAAK,SAAS,EAAC,kBAAkB,uEAAgB,YAE1D,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAK/B;IACC,MAAM,OAAO,GAAG,CACd,KAAC,gBAAgB,cACf,KAAC,qBAAqB,OAAK,KAAK,GAAI,GACnB,CACpB,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,KAAK,cAAE,OAAO,GAAS,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAsB,EACtB,YAAoB,EACpB,OAA6B;IAE7B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,KAAK;SACF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC;SAClD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAU,CAAC,CACzD,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;YAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC;AAeD,SAAS,qBAAqB,CAAC,EAC1B;IACH,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,UAAU,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,+BAA+B,EAAE,CAAC;IACvD,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,qBAAqB,CAClC,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CACrC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CACtD,CAAC;QACF,OAAO,OAAO,CACZ,KAAK;YACH,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO;YAC/B,yBAAyB,CACvB,KAAK,EACL,aAAa,CAAC,MAAM,EACpB,aAAa,CACd,CACJ,CAAC;IACJ,CAAC,CACF,CAAC;IACF,OAAO,MAAM,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,OAAO,QAAC,EAAE,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,KAAC,oBAAoB,KAAG,CAAC;AAC9E,CAAC;AAED,SAAS,4BAA4B,CAAC,EACpC,YAAY,EACZ,SAAS,GAIV;IACC,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,yBAAyB,CACxC,YAAY,EACZ,SAAS,EACT,aAAa,CACd,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,0EAAc,GAAG,CAC7C,CAAC,CAAC,CAAC,CACF,KAAC,gBAAgB,cACf,KAAC,SAAS,IAAC,KAAK,EAAE,YAAY,CAAC,KAAK,GAAI,GACvB,CACpB,CAAC;IACF,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAC9C,KAAC,KAAK,cAAE,OAAO,GAAS,CACzB,CAAC,CAAC,CAAC,CACF,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,OAAO,OAAO,CAAC,CAAC,CAAC,CACf,4BACa,4CAAS,oBACL,0BAAM,EACrB,SAAS,EAAC,4BAA4B,EACtC,IAAI,EAAC,aAAa,YAElB,gBAAQ,GACJ,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,UAAU,CACtB,eAAe,+BAA+B,KAAK,CACpD,CAAC,OAAO;YACP,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IACD,OAAO,sCAAsC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,kBAAkB,CACnB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,MAAM,GAAG,CAAC,IAAiC,EAAE,EAAE,CACnD,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAC7B,eAAe,+BAA+B,KAAK,CACpD,CAAC;YACF,MAAM,QAAQ,GAAG,CAAC,KAA2B,EAAE,EAAE;gBAC/C,MAAM,CACJ,KAAK,EAAE,OAAO,KAAK,SAAS;oBAC1B,CAAC,CAAC,sCAAsC,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC3D,CAAC,CAAC,KAAK,CAAC,OAAO;wBACb,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,SAAS,CAChB,CAAC;YACJ,CAAC,CAAC;YACF,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAyB,CAAC,CAAC;YAC5D,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;gBACjD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,GAAG,EAAE;gBACV,IAAI,OAAO,KAAK,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;oBACpD,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,MAAM,CAAC,sCAAsC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6BAA6B,CAAC,EACrC,KAAK,GAGN;IACC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,sBAAsB,CACnC,KAAK,EACL;YACE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,EACD,MAAM,CACP,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACrE,IAAI,SAAS,KAAK,UAAU;YAAE,OAAO;QACrC,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;QACtC,wEAAwE;QACxE,yEAAyE;QACzE,0DAA0D;QAC1D,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACvD,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,WAAW,CAAC,OAAO,KAAK,GAAG;YAAE,OAAO;QACxC,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC,EAAE;QACD,MAAM;QACN,KAAK;QACL,QAAQ,CAAC,IAAI;QACb,QAAQ,CAAC,QAAQ;QACjB,QAAQ,CAAC,MAAM;QACf,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,mBAAmB,EAAE,2BAA2B,EAChD,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,GAAG,EAAE,EACjB,SAAS,GAAG,EAAE,EACd,aAAa,EACb,YAAY,GACgB;IAC5B,4BAA4B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,gCAAgC,CAAC,aAAa,EAAE,OAAO,CAAC,EAC9D,CAAC,OAAO,EAAE,aAAa,CAAC,CACzB,CAAC;IACF,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,yBAAyB,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAC/D,CAAC,UAAU,EAAE,kBAAkB,CAAC,CACjC,CAAC;IACF,MAAM,mBAAmB,GACvB,2BAAsE,CAAC;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,KAAC,qBAAqB,KAAG,CAAC;IAC7C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAa,CAAC;QACxC,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,KAAK,iBAAiB;YAC7B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB;gBAC/B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB;oBAC/B,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,MAAM,CAAC;QACjB,MAAM,YAAY,GAAG,kBAAkB,CACrC,aAAa,EACb,YAAY,EACZ,SAAS,CACV,CAAC;QACF,MAAM,WAAW,GAAG,kBAAkB,CACpC,aAAa,EACb,YAAY,EACZ,QAAQ,CACT,CAAC;QACF,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO;YACL,KAAC,KAAK,IAEJ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EACL,KAAC,sBAAsB,IACrB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,YAAY,GAC1B,IAPC,IAAI,CAAC,IAAI,CASd;YACF,KAAC,KAAK,IAEJ,IAAI,EAAE,UAAU,EAChB,OAAO,EACL,KAAC,sBAAsB,IACrB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAC,QAAQ,GAChB,IARC,GAAG,IAAI,CAAC,IAAI,SAAS,CAU1B;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CACjE,KAAC,KAAK,IACJ,OAAO,EACL,KAAC,4BAA4B,IAC3B,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,YAAY,GAC1B,EAGJ,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,IADxB,YAAY,CAAC,KAAK,CAAC,IAAI,CAE5B,CACH,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxE,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC7C,OAAO;gBACL,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EACxB,OAAO,EACL,KAAC,gBAAgB,cACf,KAAC,KAAK,cAAC,KAAC,yBAAyB,KAAG,GAAQ,GAC3B,IALhB,KAAK,CAAC,IAAI,CAOf;gBACF,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EACvB,OAAO,EACL,KAAC,gBAAgB,cACf,KAAC,yBAAyB,IAAC,OAAO,EAAC,QAAQ,GAAG,GAC7B,IALhB,GAAG,KAAK,CAAC,IAAI,SAAS,CAO3B;aACH,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC1C,OAAO;gBACL,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EACxB,OAAO,EAAE,KAAC,aAAa,cAAC,KAAC,sBAAsB,KAAG,GAAgB,IAF7D,KAAK,CAAC,IAAI,CAGf;gBACF,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EACvB,OAAO,EAAE,KAAC,aAAa,cAAC,KAAC,sBAAsB,IAAC,OAAO,EAAC,QAAQ,GAAG,GAAgB,IAF9E,GAAG,KAAK,CAAC,IAAI,SAAS,CAG3B;aACH,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,OAAO;gBACL,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EACxB,OAAO,EAAE,KAAC,aAAa,cAAC,KAAC,gBAAgB,KAAG,GAAgB,IAFvD,KAAK,CAAC,IAAI,CAGf;gBACF,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EACvB,OAAO,EAAE,KAAC,aAAa,cAAC,KAAC,gBAAgB,IAAC,OAAO,EAAC,QAAQ,GAAG,GAAgB,IAFxE,GAAG,KAAK,CAAC,IAAI,SAAS,CAG3B;aACH,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,OAAO;gBACL,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EACxB,OAAO,EAAE,KAAC,aAAa,cAAC,KAAC,oBAAoB,KAAG,GAAgB,IAF3D,KAAK,CAAC,IAAI,CAGf;gBACF,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EACvB,OAAO,EAAE,KAAC,aAAa,cAAC,KAAC,oBAAoB,IAAC,OAAO,EAAC,QAAQ,GAAG,GAAgB,IAF5E,GAAG,KAAK,CAAC,IAAI,SAAS,CAG3B;aACH,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACrC,OAAO;gBACL,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EACxB,OAAO,EACL,KAAC,aAAa,cACZ,KAAC,sBAAsB,IAAC,YAAY,EAAE,KAAK,CAAC,YAAY,GAAI,GAC9C,IALb,KAAK,CAAC,IAAI,CAOf;gBACF,KAAC,KAAK,IAEJ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EACvB,OAAO,EACL,KAAC,aAAa,cACZ,KAAC,sBAAsB,IAAC,OAAO,EAAC,QAAQ,GAAG,GAC7B,IALb,GAAG,KAAK,CAAC,IAAI,SAAS,CAO3B;aACH,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAEhE,OAAO,CACL,KAAC,oCAAoC,IACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,mBAAmB,YAE1B,KAAC,0BAA0B,IAAC,aAAa,EAAE,aAAa,YACxD,KAAC,sCAAsC,IAAC,WAAW,EAAE,mBAAmB,YACtE,KAAC,sCAAsC,IAAC,WAAW,EAAE,SAAS,YAC5D,KAAC,kBAAkB,cACjB,MAAC,aAAa,IAAC,QAAQ,EAAE,mBAAmB,EAAE,aAC5C,KAAC,oBAAoB,KAAG,EACxB,KAAC,6BAA6B,IAAC,KAAK,EAAE,kBAAkB,GAAI,EAC5D,KAAC,eAAe,IACd,cAAc,EAAE,aAAa,EAAE,cAAc,EAC7C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,kBAAkB,YAE1B,KAAC,MAAM,IACL,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;4CAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,aAAa;iDACV,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;iDAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;4CACF,OAAO;gDACL,IAAI,EAAE,IAAI;gDACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;oDAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;oDACvC,CAAC,CAAC,EAAE,CAAC;gDACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;oDAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;oDAC3C,CAAC,CAAC,EAAE,CAAC;gDACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;oDAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;oDACzC,CAAC,CAAC,EAAE,CAAC;gDACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;oDAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;oDACzC,CAAC,CAAC,EAAE,CAAC;6CACR,CAAC;wCACJ,CAAC,CAAC,YAEF,MAAC,MAAM,eACL,KAAC,KAAK,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,UAAU,GAAI,EACvC,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,GAAI,EAC5C,KAAC,KAAK,IACJ,IAAI,EAAC,sCAAsC,EAC3C,OAAO,EACL,KAAC,gBAAgB,cACf,KAAC,eAAe,KAAG,GACF,GAErB,EACD,cAAc,EACd,cAAc,EACd,iBAAiB,IACX,GACF,GACO,IACJ,GACG,GACkB,GACF,GACZ,GACQ,CACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/browser/application.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,26 @@
1
- import type { WorkflowSurface } from 'openxiangda-contracts/browser';
1
+ import type { WorkflowCommandResult, WorkflowSurface } from 'openxiangda-contracts/browser';
2
2
  import { type ReactNode } from 'react';
3
3
  type PageVariant = 'desktop' | 'mobile';
4
4
  export type WorkflowPageVariant = PageVariant;
5
+ export type WorkflowSurfaceKind = 'task' | 'instance';
6
+ /**
7
+ * An advanced task command has completed the current task and may have
8
+ * created a new task. Reading the old task Surface in that case is expected
9
+ * to fail, so only instance commands and non-advanced task commands refresh a
10
+ * Surface through the current identifier.
11
+ */
12
+ export declare function shouldRefreshWorkflowSurface(kind: WorkflowSurfaceKind, result: WorkflowCommandResult): boolean;
13
+ /**
14
+ * Apply the command-completion lifecycle shared by the standard and
15
+ * embeddable Workflow panels. The explicit command callback always receives
16
+ * the platform result; the legacy Surface callback only runs when a valid
17
+ * current Surface was refreshed.
18
+ */
19
+ export declare function completeWorkflowCommand(kind: WorkflowSurfaceKind, result: WorkflowCommandResult, options: {
20
+ refresh: () => Promise<WorkflowSurface | null>;
21
+ onCommandCompleted?: (result: WorkflowCommandResult) => void | Promise<void>;
22
+ onCompleted?: (surface: WorkflowSurface, result?: WorkflowCommandResult) => void | Promise<void>;
23
+ }): Promise<WorkflowSurface | null>;
5
24
  export interface WorkflowTaskOperationsPanelProps {
6
25
  /** The platform task identifier. It is never inferred from application data. */
7
26
  taskId: string;
@@ -11,11 +30,17 @@ export interface WorkflowTaskOperationsPanelProps {
11
30
  surface?: WorkflowSurface | null;
12
31
  /** Called whenever the panel obtains a fresh task Surface. */
13
32
  onSurfaceChange?: (surface: WorkflowSurface) => void;
14
- /** Called after a command succeeds and the task Surface has been refreshed. */
15
- onCompleted?: (surface: WorkflowSurface) => void | Promise<void>;
33
+ /**
34
+ * Called after a command succeeds and the task Surface has been refreshed.
35
+ * The optional second argument carries the unchanged platform command
36
+ * result for existing consumers that still use this callback.
37
+ */
38
+ onCompleted?: (surface: WorkflowSurface, result?: WorkflowCommandResult) => void | Promise<void>;
39
+ /** Called with the platform command result after successful completion. */
40
+ onCommandCompleted?: (result: WorkflowCommandResult) => void | Promise<void>;
16
41
  }
17
42
  /** Public, embeddable Workflow task operation surface. */
18
- export declare function WorkflowTaskOperationsPanel({ taskId, variant, surface, onSurfaceChange, onCompleted, }: WorkflowTaskOperationsPanelProps): import("react/jsx-runtime").JSX.Element;
43
+ export declare function WorkflowTaskOperationsPanel({ taskId, variant, surface, onSurfaceChange, onCompleted, onCommandCompleted, }: WorkflowTaskOperationsPanelProps): import("react/jsx-runtime").JSX.Element;
19
44
  export interface WorkflowInstanceOperationsPanelProps {
20
45
  /** The platform workflow instance identifier. It is never inferred from business data. */
21
46
  instanceId: string;
@@ -25,11 +50,17 @@ export interface WorkflowInstanceOperationsPanelProps {
25
50
  surface?: WorkflowSurface | null;
26
51
  /** Called whenever the panel obtains a fresh instance Surface. */
27
52
  onSurfaceChange?: (surface: WorkflowSurface) => void;
28
- /** Called after a command succeeds and the instance Surface has been refreshed. */
29
- onCompleted?: (surface: WorkflowSurface) => void | Promise<void>;
53
+ /**
54
+ * Called after a command succeeds and the instance Surface has been
55
+ * refreshed. The optional second argument carries the platform command
56
+ * result for existing consumers that still use this callback.
57
+ */
58
+ onCompleted?: (surface: WorkflowSurface, result?: WorkflowCommandResult) => void | Promise<void>;
59
+ /** Called with the platform command result after successful completion. */
60
+ onCommandCompleted?: (result: WorkflowCommandResult) => void | Promise<void>;
30
61
  }
31
62
  /** Public, embeddable Workflow instance operation surface. */
32
- export declare function WorkflowInstanceOperationsPanel({ instanceId, variant, surface, onSurfaceChange, onCompleted, }: WorkflowInstanceOperationsPanelProps): import("react/jsx-runtime").JSX.Element;
63
+ export declare function WorkflowInstanceOperationsPanel({ instanceId, variant, surface, onSurfaceChange, onCompleted, onCommandCompleted, }: WorkflowInstanceOperationsPanelProps): import("react/jsx-runtime").JSX.Element;
33
64
  export declare function WorkflowTaskPage({ variant, }: {
34
65
  variant?: PageVariant;
35
66
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"StandardWorkflowPages.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/workflow/StandardWorkflowPages.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAMV,eAAe,EAKhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAuCf,KAAK,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AACxC,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;AA41B9C,MAAM,WAAW,gCAAgC;IAC/C,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,0DAA0D;AAC1D,wBAAgB,2BAA2B,CAAC,EAC1C,MAAM,EACN,OAAmB,EACnB,OAAO,EACP,eAAe,EACf,WAAW,GACZ,EAAE,gCAAgC,2CAgBlC;AAED,MAAM,WAAW,oCAAoC;IACnD,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,8FAA8F;IAC9F,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,kEAAkE;IAClE,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,mFAAmF;IACnF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,8DAA8D;AAC9D,wBAAgB,+BAA+B,CAAC,EAC9C,UAAU,EACV,OAAmB,EACnB,OAAO,EACP,eAAe,EACf,WAAW,GACZ,EAAE,oCAAoC,2CAgBtC;AAoTD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAmB,GACpB,EAAE;IACD,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,2CAEA;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAmB,GACpB,EAAE;IACD,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,2CAEA;AA0ED,wBAAgB,sBAAsB,CAAC,EACrC,OAAmB,GACpB,EAAE;IACD,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,2CA6GA;AA0CD,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EAAE,oBAAoB,EAClC,OAAmB,GACpB,GAAE;IACD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;CAClB,2UAsRL"}
1
+ {"version":3,"file":"StandardWorkflowPages.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/workflow/StandardWorkflowPages.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { ArrowLeftOutlined, CheckCircleFilled, EllipsisOutlined, FileSearchOutlined, ReloadOutlined, } from '@ant-design/icons';
3
3
  import { Alert, App, Button, Card, Drawer, Empty, Form, Input, List, Modal, Result, Segmented, Select, Space, Spin, Table, Tag, Typography, } from 'antd';
4
+ import { normalizeWorkflowBusinessData } from 'openxiangda-contracts/browser';
4
5
  import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
5
6
  import { Link, Navigate, useNavigate, useParams, useSearchParams, } from 'react-router-dom';
6
7
  import { Shell } from '../../Shell';
@@ -10,6 +11,29 @@ import { useResourceDefinitions } from '../../resource-definitions';
10
11
  import { useRuntime } from '../../runtime';
11
12
  import { MobileSurfaceFieldControl, SurfaceFieldControl, } from '../resource/SurfaceFields';
12
13
  import { normalizeFormValues, normalizeRecordForForm, } from '../platform-fields/field-form-codec';
14
+ /**
15
+ * An advanced task command has completed the current task and may have
16
+ * created a new task. Reading the old task Surface in that case is expected
17
+ * to fail, so only instance commands and non-advanced task commands refresh a
18
+ * Surface through the current identifier.
19
+ */
20
+ export function shouldRefreshWorkflowSurface(kind, result) {
21
+ return kind === 'instance' || result.advanced !== true;
22
+ }
23
+ /**
24
+ * Apply the command-completion lifecycle shared by the standard and
25
+ * embeddable Workflow panels. The explicit command callback always receives
26
+ * the platform result; the legacy Surface callback only runs when a valid
27
+ * current Surface was refreshed.
28
+ */
29
+ export async function completeWorkflowCommand(kind, result, options) {
30
+ const refreshSurface = shouldRefreshWorkflowSurface(kind, result);
31
+ const nextSurface = refreshSurface ? await options.refresh() : null;
32
+ await options.onCommandCompleted?.(result);
33
+ if (nextSurface)
34
+ await options.onCompleted?.(nextSurface, result);
35
+ return nextSurface;
36
+ }
13
37
  function errorMessage(error, fallback) {
14
38
  return error instanceof Error ? error.message : fallback;
15
39
  }
@@ -74,8 +98,7 @@ function workflowSurfaceMatchesInstance(surface, instanceId) {
74
98
  workflowSurfaceInstanceId(surface) === normalizedInstanceId);
75
99
  }
76
100
  function surfaceBusinessData(surface) {
77
- const presentation = surface.presentation;
78
- return presentation.businessData || {};
101
+ return normalizeWorkflowBusinessData(surface.presentation.businessData);
79
102
  }
80
103
  function displayValue(value) {
81
104
  if (value === null || value === undefined || value === '')
@@ -120,9 +143,15 @@ function standardWorkflowOperations(surface) {
120
143
  }
121
144
  function WorkflowBusinessCard({ surface, variant, }) {
122
145
  const navigate = useNavigate();
123
- const entries = Object.entries(surfaceBusinessData(surface));
146
+ const businessData = surfaceBusinessData(surface);
147
+ const entries = Object.entries(businessData.fields);
148
+ const emptyDescription = businessData.status === 'unavailable'
149
+ ? '业务摘要暂不可用'
150
+ : businessData.status === 'missing'
151
+ ? '业务记录不存在'
152
+ : '没有可展示的业务字段';
124
153
  const target = surface.navigationTarget;
125
- return (_jsxs(Card, { className: "oxa-workflow-business", title: "\u7533\u8BF7\u4FE1\u606F", children: [entries.length ? (_jsx("div", { className: "oxa-workflow-business-grid", children: entries.map(([key, value]) => (_jsxs("div", { children: [_jsx(Typography.Text, { type: "secondary", children: key }), _jsx("strong", { children: displayValue(value) })] }, key))) })) : (_jsx(Empty, { description: "\u6CA1\u6709\u53EF\u5C55\u793A\u7684\u4E1A\u52A1\u5B57\u6BB5", image: Empty.PRESENTED_IMAGE_SIMPLE })), target && (_jsx(Button, { block: true, className: "oxa-workflow-business-link", icon: _jsx(FileSearchOutlined, {}), onClick: () => navigate(variant === 'mobile' ? target.mobilePath : target.desktopPath), children: "\u67E5\u770B\u4E1A\u52A1\u8BE6\u60C5" }))] }));
154
+ return (_jsxs(Card, { className: "oxa-workflow-business", title: "\u7533\u8BF7\u4FE1\u606F", children: [businessData.status === 'stale' && (_jsx(Alert, { className: "oxa-workflow-business-stale", message: "\u4E1A\u52A1\u6570\u636E\u5DF2\u53D8\u5316", showIcon: true, type: "warning" })), entries.length ? (_jsx("div", { className: "oxa-workflow-business-grid", children: entries.map(([key, value]) => (_jsxs("div", { children: [_jsx(Typography.Text, { type: "secondary", children: key }), _jsx("strong", { children: displayValue(value) })] }, key))) })) : (_jsx(Empty, { description: emptyDescription, image: Empty.PRESENTED_IMAGE_SIMPLE })), target && (_jsx(Button, { block: true, className: "oxa-workflow-business-link", icon: _jsx(FileSearchOutlined, {}), onClick: () => navigate(variant === 'mobile' ? target.mobilePath : target.desktopPath), children: "\u67E5\u770B\u4E1A\u52A1\u8BE6\u60C5" }))] }));
126
155
  }
127
156
  function timelineTone(status) {
128
157
  if (status === 'completed')
@@ -246,15 +275,16 @@ function WorkflowOperations({ surface, variant, onRefresh, onCommandSuccess, })
246
275
  await onRefresh();
247
276
  throw new Error('WORKFLOW_COMMAND_SURFACE_EXPIRED');
248
277
  }
278
+ let result;
249
279
  if (task && !['withdraw', 'terminate'].includes(selected.key)) {
250
- await executeWorkflowTaskCommand(task.id, selected.key, {
280
+ result = await executeWorkflowTaskCommand(task.id, selected.key, {
251
281
  commandToken,
252
282
  idempotencyKey: randomId(`workflow:${task.id}:${selected.key}`),
253
283
  input: values,
254
284
  });
255
285
  }
256
286
  else if (selected.key === 'withdraw' || selected.key === 'terminate') {
257
- await executeWorkflowInstanceCommand(instance.id, selected.key, {
287
+ result = await executeWorkflowInstanceCommand(instance.id, selected.key, {
258
288
  commandToken,
259
289
  idempotencyKey: randomId(`workflow:${instance.id}:${selected.key}`),
260
290
  input: { reason: String(values.reason || '') },
@@ -265,7 +295,7 @@ function WorkflowOperations({ surface, variant, onRefresh, onCommandSuccess, })
265
295
  }
266
296
  message.success(`${selected.label}已提交`);
267
297
  setSelectedState(null);
268
- await onCommandSuccess();
298
+ await onCommandSuccess(result);
269
299
  }
270
300
  catch (error) {
271
301
  if (error?.data?.freshSurface) {
@@ -297,7 +327,7 @@ function WorkflowOperations({ surface, variant, onRefresh, onCommandSuccess, })
297
327
  * idempotency, and state transitions; all operation controls continue to be
298
328
  * rendered by WorkflowOperations above.
299
329
  */
300
- function WorkflowOperationsPanel({ identifier, variant, surface: suppliedSurface, onSurfaceChange, onCompleted, loadSurface, matchesSurface, missingIdentifierMessage, surfaceMismatchMessage, loadingLabel, loadErrorFallback, }) {
330
+ function WorkflowOperationsPanel({ identifier, surfaceKind, variant, surface: suppliedSurface, onSurfaceChange, onCompleted, onCommandCompleted, loadSurface, matchesSurface, missingIdentifierMessage, surfaceMismatchMessage, loadingLabel, loadErrorFallback, }) {
301
331
  const normalizedIdentifier = identifier.trim();
302
332
  const inputSurface = suppliedSurface || null;
303
333
  const suppliedSurfaceMatches = matchesSurface(inputSurface, normalizedIdentifier);
@@ -315,6 +345,7 @@ function WorkflowOperationsPanel({ identifier, variant, surface: suppliedSurface
315
345
  const activeRef = useRef(false);
316
346
  const onSurfaceChangeRef = useRef(onSurfaceChange);
317
347
  const onCompletedRef = useRef(onCompleted);
348
+ const onCommandCompletedRef = useRef(onCommandCompleted);
318
349
  if (currentIdentifierRef.current !== normalizedIdentifier) {
319
350
  currentIdentifierRef.current = normalizedIdentifier;
320
351
  generationRef.current += 1;
@@ -330,6 +361,7 @@ function WorkflowOperationsPanel({ identifier, variant, surface: suppliedSurface
330
361
  const panelGeneration = generationRef.current;
331
362
  onSurfaceChangeRef.current = onSurfaceChange;
332
363
  onCompletedRef.current = onCompleted;
364
+ onCommandCompletedRef.current = onCommandCompleted;
333
365
  const refresh = useCallback(async () => {
334
366
  const requestIdentifier = normalizedIdentifier;
335
367
  const requestGeneration = generationRef.current;
@@ -455,23 +487,56 @@ function WorkflowOperationsPanel({ identifier, variant, surface: suppliedSurface
455
487
  return;
456
488
  await refresh();
457
489
  }, [isCurrentGeneration, normalizedIdentifier, panelGeneration, refresh]);
458
- const completed = useCallback(async () => {
490
+ const completed = useCallback(async (result) => {
459
491
  const identifierAtStart = normalizedIdentifier;
460
492
  const generationAtStart = panelGeneration;
461
493
  if (!isCurrentGeneration(identifierAtStart, generationAtStart))
462
494
  return;
463
- const nextSurface = await refresh();
464
- if (!nextSurface ||
465
- !isCurrentGeneration(identifierAtStart, generationAtStart)) {
466
- return;
467
- }
468
- const callback = onCompletedRef.current;
469
- if (!callback ||
470
- !isCurrentGeneration(identifierAtStart, generationAtStart)) {
471
- return;
495
+ if (!shouldRefreshWorkflowSurface(surfaceKind, result)) {
496
+ // The old task has become terminal. Remove its controls immediately so
497
+ // a consumer without the explicit callback cannot submit the stale
498
+ // command token a second time.
499
+ setSurface(null);
500
+ // Keep the identifier marked as current. Clearing it would make the
501
+ // generic loading predicate spin forever because no refresh is expected
502
+ // for a terminal task; the explicit callback is responsible for loading
503
+ // the resulting instance or navigating away.
504
+ setLoading(false);
505
+ setLoadingIdentifier(null);
472
506
  }
473
- await callback(nextSurface);
474
- }, [isCurrentGeneration, normalizedIdentifier, panelGeneration, refresh]);
507
+ await completeWorkflowCommand(surfaceKind, result, {
508
+ refresh: async () => {
509
+ if (!isCurrentGeneration(identifierAtStart, generationAtStart)) {
510
+ return null;
511
+ }
512
+ const nextSurface = await refresh();
513
+ return isCurrentGeneration(identifierAtStart, generationAtStart)
514
+ ? nextSurface
515
+ : null;
516
+ },
517
+ onCommandCompleted: async (commandResult) => {
518
+ if (!isCurrentGeneration(identifierAtStart, generationAtStart)) {
519
+ return;
520
+ }
521
+ await onCommandCompletedRef.current?.(commandResult);
522
+ },
523
+ onCompleted: async (nextSurface, commandResult) => {
524
+ if (!isCurrentGeneration(identifierAtStart, generationAtStart)) {
525
+ return;
526
+ }
527
+ const callback = onCompletedRef.current;
528
+ if (!callback)
529
+ return;
530
+ await callback(nextSurface, commandResult);
531
+ },
532
+ });
533
+ }, [
534
+ isCurrentGeneration,
535
+ normalizedIdentifier,
536
+ panelGeneration,
537
+ refresh,
538
+ surfaceKind,
539
+ ]);
475
540
  const stateSurfaceMatches = surfaceIdentifier === normalizedIdentifier &&
476
541
  matchesSurface(surface, normalizedIdentifier);
477
542
  const acceptedInput = acceptedInputSurface === inputSurface;
@@ -506,12 +571,12 @@ function WorkflowOperationsPanel({ identifier, variant, surface: suppliedSurface
506
571
  return (_jsxs(_Fragment, { children: [renderError && (_jsx(Alert, { description: renderError, showIcon: true, type: "warning" })), _jsx(WorkflowOperations, { onCommandSuccess: completed, onRefresh: refreshCurrent, surface: renderSurface, variant: variant })] }));
507
572
  }
508
573
  /** Public, embeddable Workflow task operation surface. */
509
- export function WorkflowTaskOperationsPanel({ taskId, variant = 'desktop', surface, onSurfaceChange, onCompleted, }) {
510
- return (_jsx(WorkflowOperationsPanel, { identifier: taskId, loadErrorFallback: "\u5BA1\u6279\u4EFB\u52A1\u52A0\u8F7D\u5931\u8D25", loadSurface: loadWorkflowTaskSurface, matchesSurface: workflowSurfaceMatchesTask, missingIdentifierMessage: "WORKFLOW_TASK_ID_REQUIRED", onCompleted: onCompleted, onSurfaceChange: onSurfaceChange, surface: surface, surfaceMismatchMessage: "WORKFLOW_TASK_SURFACE_TASK_MISMATCH", variant: variant, loadingLabel: "\u6B63\u5728\u52A0\u8F7D\u5BA1\u6279\u64CD\u4F5C" }));
574
+ export function WorkflowTaskOperationsPanel({ taskId, variant = 'desktop', surface, onSurfaceChange, onCompleted, onCommandCompleted, }) {
575
+ return (_jsx(WorkflowOperationsPanel, { identifier: taskId, onCommandCompleted: onCommandCompleted, loadErrorFallback: "\u5BA1\u6279\u4EFB\u52A1\u52A0\u8F7D\u5931\u8D25", loadSurface: loadWorkflowTaskSurface, matchesSurface: workflowSurfaceMatchesTask, missingIdentifierMessage: "WORKFLOW_TASK_ID_REQUIRED", onCompleted: onCompleted, onSurfaceChange: onSurfaceChange, surface: surface, surfaceMismatchMessage: "WORKFLOW_TASK_SURFACE_TASK_MISMATCH", surfaceKind: "task", variant: variant, loadingLabel: "\u6B63\u5728\u52A0\u8F7D\u5BA1\u6279\u64CD\u4F5C" }));
511
576
  }
512
577
  /** Public, embeddable Workflow instance operation surface. */
513
- export function WorkflowInstanceOperationsPanel({ instanceId, variant = 'desktop', surface, onSurfaceChange, onCompleted, }) {
514
- return (_jsx(WorkflowOperationsPanel, { identifier: instanceId, loadErrorFallback: "\u6D41\u7A0B\u5B9E\u4F8B\u52A0\u8F7D\u5931\u8D25", loadSurface: loadWorkflowInstanceSurface, matchesSurface: workflowSurfaceMatchesInstance, missingIdentifierMessage: "WORKFLOW_INSTANCE_ID_REQUIRED", onCompleted: onCompleted, onSurfaceChange: onSurfaceChange, surface: surface, surfaceMismatchMessage: "WORKFLOW_INSTANCE_SURFACE_INSTANCE_MISMATCH", variant: variant, loadingLabel: "\u6B63\u5728\u52A0\u8F7D\u6D41\u7A0B\u64CD\u4F5C" }));
578
+ export function WorkflowInstanceOperationsPanel({ instanceId, variant = 'desktop', surface, onSurfaceChange, onCompleted, onCommandCompleted, }) {
579
+ return (_jsx(WorkflowOperationsPanel, { identifier: instanceId, onCommandCompleted: onCommandCompleted, loadErrorFallback: "\u6D41\u7A0B\u5B9E\u4F8B\u52A0\u8F7D\u5931\u8D25", loadSurface: loadWorkflowInstanceSurface, matchesSurface: workflowSurfaceMatchesInstance, missingIdentifierMessage: "WORKFLOW_INSTANCE_ID_REQUIRED", onCompleted: onCompleted, onSurfaceChange: onSurfaceChange, surface: surface, surfaceMismatchMessage: "WORKFLOW_INSTANCE_SURFACE_INSTANCE_MISMATCH", surfaceKind: "instance", variant: variant, loadingLabel: "\u6B63\u5728\u52A0\u8F7D\u6D41\u7A0B\u64CD\u4F5C" }));
515
580
  }
516
581
  function WorkflowDetailPage({ kind, variant, }) {
517
582
  const params = useParams();
@@ -625,6 +690,38 @@ function WorkflowDetailPage({ kind, variant, }) {
625
690
  setTimeline(nextTimeline);
626
691
  setTimelineDetailKey(detailKey);
627
692
  }, [detailGeneration, detailKey, detailSequenceAtRender, id]);
693
+ const onTaskCommandCompleted = useCallback(async (result) => {
694
+ if (result.advanced !== true)
695
+ return;
696
+ const instanceId = typeof result.instanceId === 'string' ? result.instanceId.trim() : '';
697
+ if (!instanceId)
698
+ return;
699
+ if (!detailActiveRef.current ||
700
+ detailSequenceAtRender !== requestSequence.current ||
701
+ currentDetailKeyRef.current !== detailKey ||
702
+ detailGenerationRef.current !== detailGeneration) {
703
+ return;
704
+ }
705
+ const nextSurface = await loadWorkflowInstanceSurface(instanceId);
706
+ if (!workflowSurfaceMatchesInstance(nextSurface, instanceId)) {
707
+ throw new Error('WORKFLOW_INSTANCE_SURFACE_INSTANCE_MISMATCH');
708
+ }
709
+ if (!detailActiveRef.current ||
710
+ detailSequenceAtRender !== requestSequence.current ||
711
+ currentDetailKeyRef.current !== detailKey ||
712
+ detailGenerationRef.current !== detailGeneration) {
713
+ return;
714
+ }
715
+ navigate(variant === 'mobile'
716
+ ? nextSurface.detailNavigation.mobilePath
717
+ : nextSurface.detailNavigation.desktopPath, { replace: true });
718
+ }, [
719
+ detailGeneration,
720
+ detailKey,
721
+ detailSequenceAtRender,
722
+ navigate,
723
+ variant,
724
+ ]);
628
725
  const onInstanceSurfaceChange = useCallback((nextSurface) => {
629
726
  if (!detailActiveRef.current ||
630
727
  detailSequenceAtRender !== requestSequence.current ||
@@ -677,7 +774,7 @@ function WorkflowDetailPage({ kind, variant, }) {
677
774
  const title = task?.title || instance.workflowCode;
678
775
  content = (_jsxs("div", { className: `oxa-workflow-detail oxa-workflow-detail-${variant}`, children: [_jsxs("header", { className: "oxa-workflow-detail-header", children: [variant === 'mobile' && (_jsx(Button, { "aria-label": "\u8FD4\u56DE", icon: _jsx(ArrowLeftOutlined, {}), onClick: () => navigate(-1), type: "text" })), _jsxs("div", { children: [_jsx(Typography.Title, { level: variant === 'mobile' ? 3 : 2, children: title }), _jsxs(Space, { wrap: true, children: [_jsx(StatusTag, { status: task?.status || instance.status }), _jsx(Typography.Text, { type: "secondary", children: instance.businessKey }), _jsxs(Typography.Text, { type: "secondary", children: ["\u5E8F\u5217 ", renderSurface.instanceSequence] })] })] }), _jsx(Button, { icon: _jsx(ReloadOutlined, {}), loading: loading, onClick: () => void load(), children: "\u5237\u65B0" })] }), renderError && (_jsx(Alert, { description: renderError, showIcon: true, type: "warning" })), _jsxs("div", { className: "oxa-workflow-detail-grid", children: [_jsx(WorkflowBusinessCard, { surface: renderSurface, variant: variant }), _jsx(WorkflowTimelineCard, { timeline: renderTimeline })] }), task?.participants?.length ? (_jsx(Card, { className: "oxa-workflow-participants", title: "\u5F53\u524D\u5BA1\u6279\u53C2\u4E0E\u4EBA", children: _jsx(List, { dataSource: task.participants, renderItem: (participant) => (_jsx(List.Item, { extra: _jsx(StatusTag, { status: participant.status }), children: _jsx(List.Item.Meta, { description: participant.role?.name ||
679
776
  participant.roleSubjectKey ||
680
- '直接指派', title: participant.userId }) })) }) })) : null, kind === 'task' ? (task ? (_jsx(WorkflowTaskOperationsPanel, { onCompleted: onTaskCompleted, onSurfaceChange: onTaskSurfaceChange, surface: renderSurface, taskId: task.id, variant: variant })) : null) : (_jsx(WorkflowInstanceOperationsPanel, { instanceId: instance.id, onCompleted: onInstanceCompleted, onSurfaceChange: onInstanceSurfaceChange, surface: renderSurface, variant: variant }))] }));
777
+ '直接指派', title: participant.userId }) })) }) })) : null, kind === 'task' ? (task ? (_jsx(WorkflowTaskOperationsPanel, { onCommandCompleted: onTaskCommandCompleted, onCompleted: onTaskCompleted, onSurfaceChange: onTaskSurfaceChange, surface: renderSurface, taskId: task.id, variant: variant })) : null) : (_jsx(WorkflowInstanceOperationsPanel, { instanceId: instance.id, onCompleted: onInstanceCompleted, onSurfaceChange: onInstanceSurfaceChange, surface: renderSurface, variant: variant }))] }));
681
778
  }
682
779
  return variant === 'desktop' ? (_jsx(Shell, { children: content })) : (_jsx("div", { className: "oxa-workflow-mobile-page", children: content }));
683
780
  }
@@ -833,12 +930,20 @@ export function WorkflowSubmissionPage({ workflowCode: declaredWorkflowCode, var
833
930
  ? Object.entries(definition.subject.factProjection).sort()
834
931
  : [];
835
932
  const actualProjection = Object.entries(surface.subject.factProjection).sort();
933
+ const expectedSummaryFields = definition
934
+ ? [...(definition.subject.summaryFields || [])].sort()
935
+ : [];
936
+ const actualSummaryFields = [
937
+ ...(surface.subject.summaryFields || []),
938
+ ].sort();
836
939
  if (!definition ||
837
940
  surface.environmentKey !== identity.environment.key ||
838
941
  surface.environmentId !== identity.environment.id ||
839
942
  surface.processOperationCode !== definition.processOperationCode ||
840
943
  surface.subject.resourceCode !== definition.subject.resourceCode ||
841
- JSON.stringify(actualProjection) !== JSON.stringify(expectedProjection)) {
944
+ JSON.stringify(actualProjection) !== JSON.stringify(expectedProjection) ||
945
+ JSON.stringify(actualSummaryFields) !==
946
+ JSON.stringify(expectedSummaryFields)) {
842
947
  throw new Error('OPENXIANGDA_WORKFLOW_LAUNCH_CONTRACT_MISMATCH');
843
948
  }
844
949
  if (active)