openxiangda 2.35.3 → 2.48.2

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 (197) hide show
  1. package/dist/browser/FilePreviewPage.d.ts.map +1 -1
  2. package/dist/browser/FilePreviewPage.js +4 -2
  3. package/dist/browser/FilePreviewPage.js.map +1 -1
  4. package/dist/browser/ManagedCommand.d.ts +1 -0
  5. package/dist/browser/ManagedCommand.d.ts.map +1 -1
  6. package/dist/browser/ManagedCommand.js +1 -1
  7. package/dist/browser/ManagedCommand.js.map +1 -1
  8. package/dist/browser/Shell.d.ts.map +1 -1
  9. package/dist/browser/Shell.js +1 -1
  10. package/dist/browser/Shell.js.map +1 -1
  11. package/dist/browser/components/administration/RoleMembershipManager.d.ts +7 -0
  12. package/dist/browser/components/administration/RoleMembershipManager.d.ts.map +1 -0
  13. package/dist/browser/components/administration/RoleMembershipManager.js +724 -0
  14. package/dist/browser/components/administration/RoleMembershipManager.js.map +1 -0
  15. package/dist/browser/components/administration/membership-batch-model.d.ts +17 -0
  16. package/dist/browser/components/administration/membership-batch-model.d.ts.map +1 -0
  17. package/dist/browser/components/administration/membership-batch-model.js +117 -0
  18. package/dist/browser/components/administration/membership-batch-model.js.map +1 -0
  19. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
  20. package/dist/browser/components/platform-fields/AttachmentFileList.js +2 -1
  21. package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
  22. package/dist/browser/components/platform-fields/JsonField.d.ts.map +1 -1
  23. package/dist/browser/components/platform-fields/JsonField.js +6 -1
  24. package/dist/browser/components/platform-fields/JsonField.js.map +1 -1
  25. package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts +3 -1
  26. package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts.map +1 -1
  27. package/dist/browser/components/platform-fields/MobileManagedFileField.js +15 -6
  28. package/dist/browser/components/platform-fields/MobileManagedFileField.js.map +1 -1
  29. package/dist/browser/components/platform-fields/MobileSubtableValidation.d.ts +2 -1
  30. package/dist/browser/components/platform-fields/MobileSubtableValidation.d.ts.map +1 -1
  31. package/dist/browser/components/platform-fields/MobileSubtableValidation.js +3 -1
  32. package/dist/browser/components/platform-fields/MobileSubtableValidation.js.map +1 -1
  33. package/dist/browser/components/platform-fields/RichTextField.d.ts +3 -2
  34. package/dist/browser/components/platform-fields/RichTextField.d.ts.map +1 -1
  35. package/dist/browser/components/platform-fields/RichTextField.js +96 -44
  36. package/dist/browser/components/platform-fields/RichTextField.js.map +1 -1
  37. package/dist/browser/components/platform-fields/SignatureField.d.ts +5 -4
  38. package/dist/browser/components/platform-fields/SignatureField.d.ts.map +1 -1
  39. package/dist/browser/components/platform-fields/SignatureField.js +69 -16
  40. package/dist/browser/components/platform-fields/SignatureField.js.map +1 -1
  41. package/dist/browser/components/platform-fields/SubtableField.d.ts +18 -2
  42. package/dist/browser/components/platform-fields/SubtableField.d.ts.map +1 -1
  43. package/dist/browser/components/platform-fields/SubtableField.js +146 -57
  44. package/dist/browser/components/platform-fields/SubtableField.js.map +1 -1
  45. package/dist/browser/components/platform-fields/subtable-pagination.d.ts +20 -0
  46. package/dist/browser/components/platform-fields/subtable-pagination.d.ts.map +1 -0
  47. package/dist/browser/components/platform-fields/subtable-pagination.js +39 -0
  48. package/dist/browser/components/platform-fields/subtable-pagination.js.map +1 -0
  49. package/dist/browser/components/platform-fields/subtable-value.d.ts.map +1 -1
  50. package/dist/browser/components/platform-fields/subtable-value.js +2 -1
  51. package/dist/browser/components/platform-fields/subtable-value.js.map +1 -1
  52. package/dist/browser/components/platform-fields/surface-field-validation.d.ts +31 -0
  53. package/dist/browser/components/platform-fields/surface-field-validation.d.ts.map +1 -0
  54. package/dist/browser/components/platform-fields/surface-field-validation.js +36 -0
  55. package/dist/browser/components/platform-fields/surface-field-validation.js.map +1 -0
  56. package/dist/browser/components/resource/SurfaceFields.d.ts +4 -3
  57. package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
  58. package/dist/browser/components/resource/SurfaceFields.js +46 -72
  59. package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
  60. package/dist/browser/components/resource/resource-form-operations.d.ts.map +1 -1
  61. package/dist/browser/components/resource/resource-form-operations.js +5 -1
  62. package/dist/browser/components/resource/resource-form-operations.js.map +1 -1
  63. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  64. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +8 -1
  65. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  66. package/dist/browser/components/workflow/StandardWorkflowPages.js +305 -80
  67. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  68. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts +8 -0
  69. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts.map +1 -0
  70. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js +174 -0
  71. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js.map +1 -0
  72. package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.d.ts +3 -0
  73. package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.d.ts.map +1 -0
  74. package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.js +75 -0
  75. package/dist/browser/components/workflow/WorkflowAssignmentRoutingManager.js.map +1 -0
  76. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts +14 -0
  77. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -0
  78. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +117 -0
  79. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -0
  80. package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts +14 -0
  81. package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts.map +1 -0
  82. package/dist/browser/components/workflow/WorkflowDelegationManager.js +204 -0
  83. package/dist/browser/components/workflow/WorkflowDelegationManager.js.map +1 -0
  84. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
  85. package/dist/browser/components/workflow/WorkflowDiagram.js +14 -1
  86. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
  87. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
  88. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +27 -8
  89. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
  90. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
  91. package/dist/browser/components/workflow/WorkflowNodeCard.js +5 -2
  92. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
  93. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
  94. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +6 -5
  95. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
  96. package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.d.ts +10 -0
  97. package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.d.ts.map +1 -0
  98. package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.js +59 -0
  99. package/dist/browser/components/workflow/WorkflowTaskCommandReceipt.js.map +1 -0
  100. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts +17 -0
  101. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts.map +1 -0
  102. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js +136 -0
  103. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js.map +1 -0
  104. package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts +22 -0
  105. package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts.map +1 -0
  106. package/dist/browser/components/workflow/WorkflowTaskFiles.js +164 -0
  107. package/dist/browser/components/workflow/WorkflowTaskFiles.js.map +1 -0
  108. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +53 -0
  109. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -0
  110. package/dist/browser/components/workflow/WorkflowTaskForm.js +175 -0
  111. package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -0
  112. package/dist/browser/components/workflow/standard-process-values.d.ts +10 -0
  113. package/dist/browser/components/workflow/standard-process-values.d.ts.map +1 -0
  114. package/dist/browser/components/workflow/standard-process-values.js +25 -0
  115. package/dist/browser/components/workflow/standard-process-values.js.map +1 -0
  116. package/dist/browser/components/workflow/workflow-graph-presentation.d.ts +19 -0
  117. package/dist/browser/components/workflow/workflow-graph-presentation.d.ts.map +1 -0
  118. package/dist/browser/components/workflow/workflow-graph-presentation.js +28 -0
  119. package/dist/browser/components/workflow/workflow-graph-presentation.js.map +1 -0
  120. package/dist/browser/components/workflow/workflow-routing-draft.d.ts +4 -0
  121. package/dist/browser/components/workflow/workflow-routing-draft.d.ts.map +1 -0
  122. package/dist/browser/components/workflow/workflow-routing-draft.js +9 -0
  123. package/dist/browser/components/workflow/workflow-routing-draft.js.map +1 -0
  124. package/dist/browser/components/workflow/workflow-task-field-codec.d.ts +4 -0
  125. package/dist/browser/components/workflow/workflow-task-field-codec.d.ts.map +1 -0
  126. package/dist/browser/components/workflow/workflow-task-field-codec.js +9 -0
  127. package/dist/browser/components/workflow/workflow-task-field-codec.js.map +1 -0
  128. package/dist/browser/components/workflow/workflow-task-subtable.d.ts +7 -0
  129. package/dist/browser/components/workflow/workflow-task-subtable.d.ts.map +1 -0
  130. package/dist/browser/components/workflow/workflow-task-subtable.js +58 -0
  131. package/dist/browser/components/workflow/workflow-task-subtable.js.map +1 -0
  132. package/dist/browser/durable-command.d.ts +9 -0
  133. package/dist/browser/durable-command.d.ts.map +1 -1
  134. package/dist/browser/durable-command.js +67 -13
  135. package/dist/browser/durable-command.js.map +1 -1
  136. package/dist/browser/mobile-fields.css +4 -0
  137. package/dist/browser/navigation-guard.d.ts +3 -1
  138. package/dist/browser/navigation-guard.d.ts.map +1 -1
  139. package/dist/browser/navigation-guard.js +7 -3
  140. package/dist/browser/navigation-guard.js.map +1 -1
  141. package/dist/browser/platform-client.d.ts +67 -3
  142. package/dist/browser/platform-client.d.ts.map +1 -1
  143. package/dist/browser/platform-client.js +135 -5
  144. package/dist/browser/platform-client.js.map +1 -1
  145. package/dist/browser/record-detail.css +14 -2
  146. package/dist/browser/runtime.d.ts +2 -0
  147. package/dist/browser/runtime.d.ts.map +1 -1
  148. package/dist/browser/runtime.js +5 -1
  149. package/dist/browser/runtime.js.map +1 -1
  150. package/dist/browser/styles.css +92 -0
  151. package/dist/browser/workflow-task-command-recovery.d.ts +17 -0
  152. package/dist/browser/workflow-task-command-recovery.d.ts.map +1 -0
  153. package/dist/browser/workflow-task-command-recovery.js +50 -0
  154. package/dist/browser/workflow-task-command-recovery.js.map +1 -0
  155. package/dist/browser/workflow-task-file-upload.d.ts +18 -0
  156. package/dist/browser/workflow-task-file-upload.d.ts.map +1 -0
  157. package/dist/browser/workflow-task-file-upload.js +36 -0
  158. package/dist/browser/workflow-task-file-upload.js.map +1 -0
  159. package/dist/config.d.ts +1 -1
  160. package/dist/config.d.ts.map +1 -1
  161. package/dist/core.d.ts +5 -1
  162. package/dist/core.d.ts.map +1 -1
  163. package/dist/core.js +1 -0
  164. package/dist/core.js.map +1 -1
  165. package/dist/nest.d.ts +2 -2
  166. package/dist/nest.d.ts.map +1 -1
  167. package/dist/nest.js.map +1 -1
  168. package/dist/react.d.ts +8 -2
  169. package/dist/react.d.ts.map +1 -1
  170. package/dist/react.js +7 -1
  171. package/dist/react.js.map +1 -1
  172. package/documentation/administration.md +128 -1
  173. package/documentation/field-components.md +1 -1
  174. package/documentation/frontend.md +2 -0
  175. package/documentation/getting-started.md +7 -7
  176. package/documentation/managed-concurrency-frontend.md +9 -4
  177. package/documentation/manifest.json +7 -7
  178. package/documentation/workflow-events.md +303 -3
  179. package/package.json +21 -37
  180. package/releases/2.48.1.json +30 -0
  181. package/releases/2.48.2.json +29 -0
  182. package/skills/manifest.json +1 -1
  183. package/skills/openxiangda-v2/SKILL.md +4 -4
  184. package/skills/openxiangda-v2/references/administration.md +128 -1
  185. package/skills/openxiangda-v2/references/field-components.md +1 -1
  186. package/skills/openxiangda-v2/references/frontend.md +2 -0
  187. package/skills/openxiangda-v2/references/getting-started.md +7 -7
  188. package/skills/openxiangda-v2/references/managed-concurrency-frontend.md +9 -4
  189. package/skills/openxiangda-v2/references/workflow-events.md +303 -3
  190. package/dist/browser/components/platform-fields/MobileRichTextField.d.ts +0 -4
  191. package/dist/browser/components/platform-fields/MobileRichTextField.d.ts.map +0 -1
  192. package/dist/browser/components/platform-fields/MobileRichTextField.js +0 -38
  193. package/dist/browser/components/platform-fields/MobileRichTextField.js.map +0 -1
  194. package/releases/2.35.0.json +0 -42
  195. package/releases/2.35.1.json +0 -43
  196. package/releases/2.35.2.json +0 -45
  197. package/releases/2.35.3.json +0 -46
@@ -0,0 +1,174 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef, useState } from 'react';
3
+ import { Alert, App, Button, Checkbox, DatePicker, Drawer, Empty, Form, Input, InputNumber, Modal, Popconfirm, Select, Space, Table, Tag, Typography } from 'antd';
4
+ import dayjs from 'dayjs';
5
+ import { validateWorkflowAssignmentRoutingRules } from 'openxiangda-contracts/browser';
6
+ import { loadWorkflowAssignmentRoutingConfiguration, saveWorkflowAssignmentRoutingConfiguration } from '../../platform-client';
7
+ import { routingDraftJson } from './workflow-routing-draft';
8
+ const errorText = (failure) => failure instanceof Error ? failure.message : '请求失败,请重试';
9
+ /** Shared rule maintenance on the existing application administration API. */
10
+ export function WorkflowAssignmentRoutingEditor({ configuration: initial, onClose, onSaved }) {
11
+ const { modal } = App.useApp();
12
+ const [configuration, setConfiguration] = useState(initial);
13
+ const [rules, setRules] = useState(() => structuredClone(initial.rules));
14
+ const [reason, setReason] = useState(''), [error, setError] = useState('');
15
+ const [busy, setBusy] = useState(false), [uncertain, setUncertain] = useState(false), [conflict, setConflict] = useState(false), [reviewing, setReviewing] = useState(false);
16
+ const [editing, setEditing] = useState();
17
+ const frozen = useRef(null);
18
+ const dirty = routingDraftJson(rules) !== routingDraftJson(configuration.rules) || reason.trim().length > 0;
19
+ const blocked = busy || uncertain || reviewing;
20
+ const policy = configuration.policy;
21
+ const close = () => {
22
+ if (busy || reviewing || editing)
23
+ return;
24
+ if (dirty || uncertain)
25
+ modal.confirm({ title: '关闭路由维护?', content: uncertain ? '保存结果尚未确认,请记录原操作 ID,重试原请求或查询修改历史。' : '当前未保存的规则草稿将丢失。', okText: '关闭', cancelText: '继续编辑', onOk: onClose });
26
+ else
27
+ onClose();
28
+ };
29
+ const execute = async (mutation) => {
30
+ setBusy(true);
31
+ setError('');
32
+ try {
33
+ onSaved(await saveWorkflowAssignmentRoutingConfiguration(policy.policyCode, mutation));
34
+ }
35
+ catch (failure) {
36
+ const detail = failure;
37
+ setError(errorText(failure));
38
+ if (['WORKFLOW_V2_ROUTING_REVISION_CONFLICT', 'WORKFLOW_V2_ROUTING_HEAD_CHANGED'].includes(detail.code || '')) {
39
+ setConflict(true);
40
+ setUncertain(false);
41
+ frozen.current = null;
42
+ }
43
+ else if (detail.status && detail.status >= 400 && detail.status < 500) {
44
+ setUncertain(false);
45
+ frozen.current = null;
46
+ }
47
+ else
48
+ setUncertain(true);
49
+ }
50
+ finally {
51
+ setBusy(false);
52
+ }
53
+ };
54
+ const prepareSave = () => {
55
+ if (busy || reviewing || editing || conflict)
56
+ return;
57
+ if (frozen.current) {
58
+ void execute(frozen.current);
59
+ return;
60
+ }
61
+ if (!reason.trim()) {
62
+ setError('请填写本次规则调整的原因。');
63
+ return;
64
+ }
65
+ const diagnostics = validateWorkflowAssignmentRoutingRules(policy, rules);
66
+ if (diagnostics.length) {
67
+ setError(`规则未通过校验:${diagnostics.join(';')}`);
68
+ return;
69
+ }
70
+ const previous = new Map(configuration.rules.map(rule => [rule.ruleCode, rule]));
71
+ const changes = rules.flatMap(rule => {
72
+ const before = previous.get(rule.ruleCode);
73
+ previous.delete(rule.ruleCode);
74
+ return before && routingDraftJson(before) === routingDraftJson(rule) ? [] : [{ key: rule.ruleCode, action: before ? '修改' : '新增', before: before ? describe(before, configuration) : '—', after: describe(rule, configuration) }];
75
+ });
76
+ changes.push(...[...previous.values()].map(rule => ({ key: rule.ruleCode, action: '删除', before: describe(rule, configuration), after: '—' })));
77
+ if (!changes.length) {
78
+ setError('规则没有变化。');
79
+ return;
80
+ }
81
+ const mutation = { expectedHeadRevision: configuration.headRevision, expectedRevision: configuration.revision,
82
+ operationId: crypto.randomUUID(), reason: reason.trim(), rules: structuredClone(rules) };
83
+ setReviewing(true);
84
+ modal.confirm({ title: `核对 ${changes.length} 项规则变更`, width: 900, okText: '确认保存', cancelText: '继续编辑', mask: { closable: false },
85
+ content: _jsxs(_Fragment, { children: [_jsx("p", { children: "\u4FDD\u5B58\u540E\u5F71\u54CD\u672A\u6765\u8FDB\u5165\u7684\u5BA1\u6279\u8282\u70B9\u3002\u5F53\u524D\u5F85\u529E\u4E0E\u5DF2\u9009\u4E2D\u7684\u4EBA\u5458\u4FDD\u6301\u539F\u5FEB\u7167\u3002" }), _jsx(Table, { rowKey: "key", size: "small", dataSource: changes, pagination: { pageSize: 6, showSizeChanger: false }, scroll: { x: 600 }, columns: [
86
+ { title: '变更', dataIndex: 'action', width: 64 }, { title: '保存前', dataIndex: 'before' }, { title: '保存后', dataIndex: 'after' },
87
+ ] })] }), onCancel: () => setReviewing(false), onOk: async () => { frozen.current = mutation; try {
88
+ await execute(mutation);
89
+ }
90
+ finally {
91
+ setReviewing(false);
92
+ } }, });
93
+ };
94
+ const refreshKeepingDraft = async () => {
95
+ setBusy(true);
96
+ setError('');
97
+ try {
98
+ const latest = await loadWorkflowAssignmentRoutingConfiguration(policy.policyCode);
99
+ const diagnostics = validateWorkflowAssignmentRoutingRules(latest.policy, rules);
100
+ setConfiguration(latest);
101
+ if (diagnostics.length) {
102
+ setError('代码许可已变化,当前草稿需要按最新维度和来源调整后才能保存。');
103
+ return;
104
+ }
105
+ setConflict(false);
106
+ frozen.current = null;
107
+ }
108
+ catch (failure) {
109
+ setError(errorText(failure));
110
+ }
111
+ finally {
112
+ setBusy(false);
113
+ }
114
+ };
115
+ return _jsxs(Drawer, { open: true, title: "\u5BA1\u6279\u4EBA\u8DEF\u7531\u7EF4\u62A4", size: 960, rootClassName: "oxa-workflow-routing", onClose: close, closable: !busy && !reviewing && !editing, mask: { closable: !busy && !reviewing && !editing }, footer: _jsxs("div", { className: "oxa-workflow-config-footer", children: [_jsx("span", { children: "\u5F53\u524D\u5F85\u529E\u4FDD\u7559\u5206\u6D3E\u5FEB\u7167" }), _jsxs(Space, { children: [_jsx(Button, { disabled: busy || reviewing || Boolean(editing), onClick: close, children: "\u53D6\u6D88" }), _jsx(Button, { type: "primary", loading: busy, disabled: conflict || reviewing || Boolean(editing), onClick: prepareSave, children: uncertain ? '重试原操作' : '核对并保存规则' })] })] }), children: [_jsxs(Space, { wrap: true, children: [_jsx(Typography.Title, { level: 4, style: { margin: 0 }, children: policy.title }), _jsxs(Tag, { children: ["\u4FEE\u8BA2 ", configuration.revision] }), _jsx(Tag, { children: policy.strategy === 'replace_only' ? '替换命中时不再追加' : '替换后继续追加' })] }), _jsx("p", { className: "oxa-workflow-config-help", children: "\u89C4\u5219\u9009\u62E9\u5BA1\u6279\u4EBA\uFF0C\u6D41\u7A0B\u5206\u652F\u53CA\u8303\u56F4\u8BA1\u7B97\u7531\u4EE3\u7801\u7EF4\u62A4\u3002\u6700\u9AD8\u4F18\u5148\u7EA7\u66FF\u6362\u5FC5\u987B\u552F\u4E00\uFF0C\u901A\u7528\u4E0E\u4E13\u9879\u8FFD\u52A0\u5171\u540C\u751F\u6548\u3002" }), error && _jsx(Alert, { showIcon: true, type: "error", title: conflict ? '已有新的修订,草稿已保留' : uncertain ? '保存结果未确认' : '规则未保存', description: error, style: { marginBottom: 16 } }), conflict && _jsx(Button, { disabled: busy, onClick: () => void refreshKeepingDraft(), style: { marginBottom: 16 }, children: "\u8F7D\u5165\u6700\u65B0\u89C4\u5219\u5E76\u4FDD\u7559\u8349\u7A3F" }), uncertain && _jsxs(Typography.Paragraph, { children: ["\u91CD\u8BD5\u6CBF\u7528\u539F\u64CD\u4F5C ID\uFF1A", _jsx(Typography.Text, { code: true, children: frozen.current?.operationId })] }), _jsxs("div", { className: "oxa-workflow-routing-toolbar", children: [_jsxs("span", { children: [rules.length, " \u6761\u89C4\u5219 \u00B7 ", configuration.references.filter(r => !r.pinned).length, " \u4E2A\u5F53\u524D\u5BA1\u6279\u8282\u70B9\u5F15\u7528"] }), _jsx(Button, { disabled: blocked || rules.length >= 256, onClick: () => setEditing({}), children: "\u65B0\u589E\u89C4\u5219" })] }), _jsx(Table, { rowKey: "ruleCode", size: "small", dataSource: rules, scroll: { x: 740 }, pagination: { pageSize: 8, showSizeChanger: false }, locale: { emptyText: _jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: "\u8FD8\u6CA1\u6709\u8865\u5145\u89C4\u5219\uFF0C\u5C06\u6309\u4EE3\u7801\u9ED8\u8BA4\u6765\u6E90\u5206\u6D3E" }) }, columns: [
116
+ { title: '规则', width: 170, render: (_, rule) => _jsxs(_Fragment, { children: [_jsx("b", { children: rule.title }), _jsxs("div", { className: "oxa-workflow-config-help", children: [rule.ruleCode, " \u00B7 ", rule.enabled ? '启用' : '停用'] })] }) },
117
+ { title: '匹配范围', render: (_, rule) => _jsxs(_Fragment, { children: [_jsx("div", { children: targetLabel(rule) }), _jsx("small", { children: matchLabel(rule, configuration) })] }) },
118
+ { title: '选择方式', width: 145, render: (_, rule) => _jsxs(_Fragment, { children: [_jsx(Tag, { color: rule.effect === 'replace' ? 'orange' : 'blue', children: rule.effect === 'replace' ? '替换' : '追加' }), _jsx("div", { children: policy.sources[rule.sourceCode]?.title || rule.sourceCode }), _jsxs("small", { children: ["\u4F18\u5148\u7EA7 ", rule.priority] })] }) },
119
+ { title: '有效期', width: 160, render: (_, rule) => _jsxs("small", { children: [rule.validFrom ? dayjs(rule.validFrom).format('YYYY-MM-DD HH:mm') : '立即', " \u81F3 ", rule.validTo ? dayjs(rule.validTo).format('YYYY-MM-DD HH:mm') : '长期'] }) },
120
+ { title: '操作', width: 105, render: (_, rule) => _jsxs(Space, { children: [_jsx(Button, { type: "link", size: "small", disabled: blocked, onClick: () => setEditing({ rule }), children: "\u7F16\u8F91" }), _jsx(Popconfirm, { title: `删除“${rule.title}”规则?`, description: "\u6838\u5BF9\u5E76\u4FDD\u5B58\u540E\u751F\u6548\uFF0C\u5F53\u524D\u4EFB\u52A1\u4FDD\u6301\u5FEB\u7167\u3002", onConfirm: () => setRules(previous => previous.filter(r => r.ruleCode !== rule.ruleCode)), disabled: blocked, children: _jsx(Button, { type: "link", danger: true, size: "small", disabled: blocked, children: "\u5220\u9664" }) })] }) },
121
+ ] }), _jsxs("details", { className: "oxa-workflow-routing-definition", children: [_jsx("summary", { children: "\u67E5\u770B\u4EE3\u7801\u5F00\u653E\u7684\u5339\u914D\u7EF4\u5EA6\u4E0E\u89D2\u8272\u6765\u6E90" }), Object.entries(policy.dimensions).map(([code, dimension]) => _jsxs("p", { children: [_jsx("b", { children: dimension.title }), " \u00B7 \u4ECE\u7533\u8BF7\u4E8B\u5B9E ", dimension.valueFrom, " \u8BFB\u53D6\u3002"] }, code)), Object.entries(policy.sources).map(([code, source]) => _jsxs("p", { children: [_jsx("b", { children: source.title }), " \u00B7 ", source.provider === 'app_role_in_scope' ? '范围内角色' : '应用角色', " ", source.roleCode, source.scope ? `,范围 ${source.scope.dimension} 来自 ${source.scope.valueFrom || source.scope.value}` : '', "\u3002"] }, code))] }), _jsxs("div", { className: "oxa-workflow-config-reason", children: [_jsx("label", { htmlFor: "oxa-routing-reason", children: "\u4FEE\u6539\u539F\u56E0" }), _jsx(Input.TextArea, { id: "oxa-routing-reason", value: reason, onChange: e => setReason(e.target.value), rows: 2, maxLength: 1000, disabled: blocked, placeholder: "\u8BF4\u660E\u672C\u6B21\u89C4\u5219\u8C03\u6574\u7684\u539F\u56E0" })] }), editing && _jsx(RuleDialog, { configuration: configuration, initial: editing.rule, rules: rules, onClose: () => setEditing(undefined), onSave: rule => { setRules(previous => editing.rule ? previous.map(item => item.ruleCode === editing.rule.ruleCode ? rule : item) : [...previous, rule]); setEditing(undefined); setError(''); } })] });
122
+ }
123
+ function RuleDialog({ configuration, initial, rules, onClose, onSave }) {
124
+ const { modal } = App.useApp();
125
+ const [form] = Form.useForm();
126
+ const workflow = Form.useWatch('workflowCode', form);
127
+ const [error, setError] = useState('');
128
+ const policy = configuration.policy;
129
+ const workflowOptions = [...new Set(configuration.references.map(r => r.workflowCode))].map(code => ({ value: code, label: code }));
130
+ const nodeOptions = [...new Set(configuration.references.filter(r => r.workflowCode === workflow).map(r => r.nodeId))].map(value => ({ value, label: value }));
131
+ const close = () => {
132
+ if (form.isFieldsTouched())
133
+ modal.confirm({ title: '放弃这条规则的修改?', content: '这条规则尚未加入整组草稿。', okText: '放弃修改', cancelText: '继续编辑', onOk: onClose });
134
+ else
135
+ onClose();
136
+ };
137
+ const save = async () => {
138
+ let values;
139
+ try {
140
+ values = await form.validateFields();
141
+ }
142
+ catch {
143
+ return;
144
+ }
145
+ const { lifetime, ...rest } = values;
146
+ const rule = { ruleCode: rest.ruleCode, title: rest.title, enabled: rest.enabled, priority: rest.priority,
147
+ sourceCode: rest.sourceCode, effect: rest.effect,
148
+ matches: Object.fromEntries(Object.entries(rest.matches || {}).filter(([, values]) => values?.length)),
149
+ ...(rest.workflowCode ? { workflowCode: rest.workflowCode, ...(rest.nodeId ? { nodeId: rest.nodeId } : {}) } : {}),
150
+ ...(lifetime?.[0] ? { validFrom: lifetime[0].toISOString() } : {}), ...(lifetime?.[1] ? { validTo: lifetime[1].toISOString() } : {}),
151
+ };
152
+ if (!initial && rules.some(item => item.ruleCode === rule.ruleCode)) {
153
+ setError('规则代码已使用,请换一个稳定代码。');
154
+ return;
155
+ }
156
+ const errors = validateWorkflowAssignmentRoutingRules(policy, [rule]);
157
+ if (errors.length) {
158
+ setError('请检查匹配值、有效期及代码开放的来源。');
159
+ return;
160
+ }
161
+ onSave(rule);
162
+ };
163
+ return _jsxs(Modal, { open: true, title: initial ? '编辑规则' : '新增规则', width: 600, onCancel: close, onOk: () => void save(), okText: "\u52A0\u5165\u89C4\u5219\u8349\u7A3F", cancelText: "\u53D6\u6D88", mask: { closable: false }, children: [_jsx("p", { className: "oxa-workflow-config-help", children: "\u6B64\u5904\u5148\u52A0\u5165\u8349\u7A3F\uFF0C\u6838\u5BF9\u5168\u90E8\u53D8\u66F4\u5E76\u4FDD\u5B58\u540E\u624D\u751F\u6548\u3002" }), error && _jsx(Alert, { type: "error", showIcon: true, title: error, style: { marginBottom: 12 } }), _jsxs(Form, { layout: "vertical", form: form, initialValues: initial ? { ...initial, lifetime: [initial.validFrom ? dayjs(initial.validFrom) : null, initial.validTo ? dayjs(initial.validTo) : null] } : { enabled: true, priority: 0, effect: 'append', matches: {} }, children: [_jsxs("div", { className: "oxa-workflow-routing-form-row", children: [_jsx(Form.Item, { name: "title", label: "\u89C4\u5219\u540D\u79F0", rules: [{ required: true, whitespace: true, max: 128 }], children: _jsx(Input, {}) }), _jsx(Form.Item, { name: "ruleCode", label: "\u7A33\u5B9A\u4EE3\u7801", rules: [{ required: true, pattern: /^[a-z][a-z0-9_-]{0,127}$/, message: '使用小写字母、数字、短横线或下划线' }], children: _jsx(Input, { disabled: Boolean(initial), maxLength: 128, placeholder: "\u4F8B\u5982 extra-review" }) })] }), _jsxs("div", { className: "oxa-workflow-routing-form-row", children: [_jsx(Form.Item, { name: "effect", label: "\u9009\u62E9\u65B9\u5F0F", rules: [{ required: true }], children: _jsx(Select, { options: [{ value: 'append', label: '追加到当前审批人' }, { value: 'replace', label: '替换默认审批人' }] }) }), _jsx(Form.Item, { name: "sourceCode", label: "\u5BA1\u6279\u4EBA\u6765\u6E90", rules: [{ required: true }], children: _jsx(Select, { options: Object.entries(policy.sources).map(([value, source]) => ({ value, label: source.title })) }) })] }), _jsxs("div", { className: "oxa-workflow-routing-form-row", children: [_jsx(Form.Item, { name: "workflowCode", label: "\u9002\u7528\u6D41\u7A0B", children: _jsx(Select, { allowClear: true, placeholder: "\u6240\u6709\u5F15\u7528\u6B64\u7B56\u7565\u7684\u6D41\u7A0B", options: workflowOptions, onChange: () => form.setFieldValue('nodeId', undefined) }) }), _jsx(Form.Item, { name: "nodeId", label: "\u9002\u7528\u5BA1\u6279\u8282\u70B9", children: _jsx(Select, { allowClear: true, disabled: !workflow, options: nodeOptions, placeholder: "\u8BE5\u6D41\u7A0B\u7684\u6240\u6709\u5F15\u7528\u8282\u70B9" }) })] }), Object.entries(policy.dimensions).map(([code, dimension]) => _jsx(Form.Item, { name: ['matches', code], label: `${dimension.title}匹配值`, extra: "\u7559\u7A7A\u8868\u793A\u4E0D\u9650\uFF1B\u591A\u4E2A\u503C\u5339\u914D\u4EFB\u610F\u4E00\u4E2A\uFF0C\u4E0D\u540C\u7EF4\u5EA6\u987B\u540C\u65F6\u6EE1\u8DB3\u3002", children: _jsx(Select, { mode: "tags", maxCount: 64, tokenSeparators: [',', ','], placeholder: `输入${dimension.title}的业务值` }) }, code)), _jsx(Form.Item, { name: "lifetime", label: "\u751F\u6548\u65F6\u95F4", children: _jsx(DatePicker.RangePicker, { showTime: true, allowEmpty: [true, true], style: { width: '100%' }, placeholder: ['立即生效', '长期有效'] }) }), _jsxs(Space, { size: "large", children: [_jsx(Form.Item, { name: "priority", label: "\u4F18\u5148\u7EA7", rules: [{ required: true }], children: _jsx(InputNumber, { min: -1000, max: 1000, precision: 0 }) }), _jsx(Form.Item, { name: "enabled", valuePropName: "checked", children: _jsx(Checkbox, { children: "\u542F\u7528\u89C4\u5219" }) })] })] })] });
164
+ }
165
+ function targetLabel(rule) {
166
+ return rule.workflowCode ? `${rule.workflowCode}${rule.nodeId ? ` / ${rule.nodeId}` : ' / 全部引用节点'}` : '所有引用此策略的流程';
167
+ }
168
+ function matchLabel(rule, configuration) {
169
+ return Object.entries(rule.matches).map(([code, values]) => `${configuration.policy.dimensions[code]?.title || code} = ${values.join(' 或 ')}`).join(';') || '不限匹配值';
170
+ }
171
+ function describe(rule, configuration) {
172
+ return `${rule.enabled ? '启用' : '停用'} · ${rule.title} · ${targetLabel(rule)} · ${matchLabel(rule, configuration)} → ${rule.effect === 'replace' ? '替换' : '追加'} ${configuration.policy.sources[rule.sourceCode]?.title || rule.sourceCode} · 优先级 ${rule.priority}${rule.validFrom ? ` · 开始 ${rule.validFrom}` : ''}${rule.validTo ? ` · 结束 ${rule.validTo}` : ''}`;
173
+ }
174
+ //# sourceMappingURL=WorkflowAssignmentRoutingEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowAssignmentRoutingEditor.js","sourceRoot":"","sources":["../../../../src/browser/components/workflow/WorkflowAssignmentRoutingEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACnK,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sCAAsC,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,EAAE,0CAA0C,EAAE,0CAA0C,EAAE,MAAM,uBAAuB,CAAC;AAC/H,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;AAEhG,8EAA8E;AAC9E,MAAM,UAAU,+BAA+B,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAEzF;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7K,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAA4C,CAAC;IACnF,MAAM,MAAM,GAAG,MAAM,CAA2C,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5G,MAAM,OAAO,GAAG,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,IAAI,IAAI,SAAS,IAAI,OAAO;YAAE,OAAO;QACzC,IAAI,KAAK,IAAI,SAAS;YAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;YACpL,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,QAA2C,EAAE,EAAE;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC;YAAC,OAAO,CAAC,MAAM,0CAA0C,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAAC,CAAC;QAC/F,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,OAAqD,CAAC;YACrE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,uCAAuC,EAAE,kCAAkC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC9G,WAAW,CAAC,IAAI,CAAC,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YAChE,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YAAC,CAAC;;gBACnH,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ;YAAE,OAAO;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,sCAAsC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,WAAW,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3E,OAAO,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;QACnO,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/I,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrD,MAAM,QAAQ,GAAsC,EAAE,oBAAoB,EAAE,aAAa,CAAC,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAC,QAAQ;YAC9I,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3F,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5H,OAAO,EAAE,8BAAE,2NAAuC,EAChD,KAAC,KAAK,IAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE;4BACtI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;yBAC7H,GAAI,IAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC;gBAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;oBAAS,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC,GACpK,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,0CAA0C,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnF,MAAM,WAAW,GAAG,sCAAsC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjF,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC/E,WAAW,CAAC,KAAK,CAAC,CAAC;YAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5C,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;gBAAS,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACjF,CAAC,CAAC;IACF,OAAO,MAAC,MAAM,IAAC,IAAI,QAAC,KAAK,EAAC,4CAAS,EAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAC,sBAAsB,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,EAChM,MAAM,EAAE,eAAK,SAAS,EAAC,4BAA4B,aAAC,0FAAuB,EAAA,MAAC,KAAK,eAAC,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,6BAAa,EAAA,KAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,YAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAU,IAAQ,IAAM,aAC/U,MAAC,KAAK,IAAC,IAAI,mBAAC,KAAC,UAAU,CAAC,KAAK,IAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAG,MAAM,CAAC,KAAK,GAAoB,EAAA,MAAC,GAAG,gCAAK,aAAa,CAAC,QAAQ,IAAO,EAAA,KAAC,GAAG,cAAE,MAAM,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAO,IAAQ,EACtN,YAAG,SAAS,EAAC,0BAA0B,2SAAoD,EAC1F,KAAK,IAAI,KAAC,KAAK,IAAC,QAAQ,QAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,GAAI,EAC7J,QAAQ,IAAI,KAAC,MAAM,IAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,mFAAsB,EAChI,SAAS,IAAI,MAAC,UAAU,CAAC,SAAS,sEAAY,KAAC,UAAU,CAAC,IAAI,IAAC,IAAI,kBAAE,MAAM,CAAC,OAAO,EAAE,WAAW,GAAmB,IAAuB,EAC3I,eAAK,SAAS,EAAC,8BAA8B,aAAC,2BAAO,KAAK,CAAC,MAAM,iCAAS,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,+DAAkB,EAAA,KAAC,MAAM,IAAC,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,yCAAe,IAAM,EACtP,KAAC,KAAK,IAAC,MAAM,EAAC,UAAU,EAAC,IAAI,EAAC,OAAO,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,WAAW,EAAC,8GAAoB,GAAG,EAAE,EAAE,OAAO,EAAE;oBACjP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAmC,EAAE,EAAE,CAAC,8BAAE,sBAAI,IAAI,CAAC,KAAK,GAAK,EAAA,eAAK,SAAS,EAAC,0BAA0B,aAAE,IAAI,CAAC,QAAQ,cAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAO,IAAG,EAAE;oBACvM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAmC,EAAE,EAAE,CAAC,8BAAE,wBAAM,WAAW,CAAC,IAAI,CAAC,GAAO,EAAA,0BAAQ,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,GAAS,IAAG,EAAE;oBAC1J,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAmC,EAAE,EAAE,CAAC,8BAAE,KAAC,GAAG,IAAC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,YAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAO,EAAA,wBAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,GAAO,EAAA,mDAAY,IAAI,CAAC,QAAQ,IAAS,IAAG,EAAE;oBAC1S,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAmC,EAAE,EAAE,CAAC,4BAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,cAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAS,EAAE;oBACpP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAmC,EAAE,EAAE,CAAC,MAAC,KAAK,eAAC,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,6BAAa,EAAA,KAAC,UAAU,IAAC,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,MAAM,EAAE,WAAW,EAAC,8GAAoB,EAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,YAAE,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,QAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,OAAO,6BAAa,GAAa,IAAQ,EAAE;iBACld,GAAI,EACL,mBAAS,SAAS,EAAC,iCAAiC,aAAC,iIAAmC,EACrF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,wBAAc,sBAAI,SAAS,CAAC,KAAK,GAAK,6CAAU,SAAS,CAAC,SAAS,4BAA3D,IAAI,CAAgE,CAAC,EAC1I,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,wBAAc,sBAAI,MAAM,CAAC,KAAK,GAAK,cAAI,MAAM,CAAC,QAAQ,KAAK,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,eAAnN,IAAI,CAAqN,CAAC,IAClR,EACV,eAAK,SAAS,EAAC,4BAA4B,aAAC,gBAAO,OAAO,EAAC,oBAAoB,yCAAa,EAAA,KAAC,KAAK,CAAC,QAAQ,IAAC,EAAE,EAAC,oBAAoB,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAC,oEAAa,GAAG,IAAM,EAC3Q,OAAO,IAAI,KAAC,UAAU,IAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAI,IAC/T,CAAC;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAA0N;IAC5R,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAc,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpI,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/J,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;YAC3I,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YAAC,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACrC,MAAM,IAAI,GAAkC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACtI,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;YAChD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClH,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrI,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/G,MAAM,MAAM,GAAG,sCAAsC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;IACF,OAAO,MAAC,KAAK,IAAC,IAAI,QAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,EAAC,sCAAQ,EAAC,UAAU,EAAC,cAAI,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAClK,YAAG,SAAS,EAAC,0BAA0B,qJAA2B,EACjE,KAAK,IAAI,KAAC,KAAK,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,QAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,GAAI,EACpF,MAAC,IAAI,IAAC,MAAM,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,aAC3P,eAAK,SAAS,EAAC,+BAA+B,aAAC,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,0BAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,YAAE,KAAC,KAAK,KAAG,GAAY,EAAA,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,0BAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,YAAE,KAAC,KAAK,IAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAC,2BAAiB,GAAG,GAAY,IAAM,EAC/Y,eAAK,SAAS,EAAC,+BAA+B,aAAC,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,0BAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAE,KAAC,MAAM,IAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,GAAI,GAAY,EAAA,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,gCAAO,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAE,KAAC,MAAM,IAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAI,GAAY,IAAM,EAC3a,eAAK,SAAS,EAAC,+BAA+B,aAAC,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,0BAAM,YAAC,KAAC,MAAM,IAAC,UAAU,QAAC,WAAW,EAAC,8DAAY,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAI,GAAY,EAAA,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,sCAAQ,YAAC,KAAC,MAAM,IAAC,UAAU,QAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAC,8DAAY,GAAG,GAAY,IAAM,EAC1X,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAC,IAAI,CAAC,IAAI,IAAY,IAAI,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,KAAK,EAAE,KAAK,EAAC,oKAA6B,YAAC,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,KAAK,SAAS,CAAC,KAAK,MAAM,GAAI,IAA7M,IAAI,CAAqN,CAAC,EACxS,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,0BAAM,YAAC,KAAC,UAAU,CAAC,WAAW,IAAC,QAAQ,QAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAI,GAAY,EAC1K,MAAC,KAAK,IAAC,IAAI,EAAC,OAAO,aAAC,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,oBAAK,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAE,KAAC,WAAW,IAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAI,GAAY,EAAA,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,SAAS,EAAC,aAAa,EAAC,SAAS,YAAC,KAAC,QAAQ,2CAAgB,GAAY,IAAQ,IAClP,IACD,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,IAAmC;IACtD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACrH,CAAC;AACD,SAAS,UAAU,CAAC,IAAmC,EAAE,aAAqD;IAC5G,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;AACtK,CAAC;AACD,SAAS,QAAQ,CAAC,IAAmC,EAAE,aAAqD;IAC1G,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpW,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Embeddable administration page. Permissions, scope and revisions come from the platform. */
2
+ export declare function WorkflowAssignmentRoutingManager(): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=WorkflowAssignmentRoutingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowAssignmentRoutingManager.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/workflow/WorkflowAssignmentRoutingManager.tsx"],"names":[],"mappings":"AAMA,+FAA+F;AAC/F,wBAAgB,gCAAgC,4CAyC/C"}
@@ -0,0 +1,75 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { Alert, App, Button, Drawer, Empty, Input, Space, Table, Tag } from 'antd';
4
+ import { loadWorkflowAssignmentRoutingCatalog, loadWorkflowAssignmentRoutingConfiguration, loadWorkflowAssignmentRoutingHistory } from '../../platform-client';
5
+ import { WorkflowAssignmentRoutingEditor } from './WorkflowAssignmentRoutingEditor';
6
+ /** Embeddable administration page. Permissions, scope and revisions come from the platform. */
7
+ export function WorkflowAssignmentRoutingManager() {
8
+ const { message } = App.useApp();
9
+ const [page, setPage] = useState(1), [keyword, setKeyword] = useState(''), [search, setSearch] = useState(''), [attempt, setAttempt] = useState(0);
10
+ const [catalog, setCatalog] = useState();
11
+ const [loading, setLoading] = useState(true), [error, setError] = useState(''), [opening, setOpening] = useState('');
12
+ const [editing, setEditing] = useState();
13
+ const [history, setHistory] = useState();
14
+ useEffect(() => {
15
+ let active = true;
16
+ setLoading(true);
17
+ setError('');
18
+ void loadWorkflowAssignmentRoutingCatalog({ keyword: search, limit: 20, offset: (page - 1) * 20 }).then(result => {
19
+ if (active)
20
+ setCatalog(result);
21
+ }).catch(failure => { if (active)
22
+ setError(errorText(failure)); }).finally(() => { if (active)
23
+ setLoading(false); });
24
+ return () => { active = false; };
25
+ }, [page, search, attempt]);
26
+ const open = async (policyCode) => {
27
+ setOpening(policyCode);
28
+ setError('');
29
+ try {
30
+ setEditing(await loadWorkflowAssignmentRoutingConfiguration(policyCode));
31
+ }
32
+ catch (failure) {
33
+ setError(errorText(failure));
34
+ }
35
+ finally {
36
+ setOpening('');
37
+ }
38
+ };
39
+ const blocked = Boolean(editing || opening);
40
+ return _jsxs("div", { className: "oxa-workflow-routing-manager", children: [_jsxs("div", { className: "oxa-workflow-routing-toolbar", children: [_jsx(Input.Search, { "aria-label": "\u641C\u7D22\u5BA1\u6279\u4EBA\u8DEF\u7531\u7B56\u7565", placeholder: "\u641C\u7D22\u7B56\u7565\u540D\u79F0\u6216\u4EE3\u7801", value: keyword, disabled: blocked, allowClear: true, style: { maxWidth: 'min(340px, 100%)', minWidth: 0, flex: '1 1 240px' }, onChange: event => setKeyword(event.target.value), onSearch: value => { setSearch(value.trim()); setPage(1); } }), _jsx(Button, { disabled: blocked, onClick: () => setAttempt(value => value + 1), children: "\u5237\u65B0\u7B56\u7565" })] }), _jsx("p", { className: "oxa-workflow-config-help", children: "\u6D41\u7A0B\u4EE3\u7801\u5F00\u653E\u5339\u914D\u7EF4\u5EA6\u4E0E\u89D2\u8272\u6765\u6E90\uFF0C\u5728\u8FD9\u91CC\u7EF4\u62A4\u901A\u7528\u548C\u4E13\u9879\u89C4\u5219\u3002\u4EBA\u5458\u6210\u5458\u901A\u8FC7\u89D2\u8272\u7BA1\u7406\u7EF4\u62A4\u3002" }), error && _jsx(Alert, { type: "error", showIcon: true, title: "\u8DEF\u7531\u8BFB\u53D6\u5931\u8D25", description: error, action: _jsx(Button, { disabled: blocked, onClick: () => setAttempt(value => value + 1), children: "\u91CD\u8BD5" }), style: { marginBottom: 16 } }), _jsx(Table, { rowKey: "policyCode", size: "small", loading: loading, dataSource: catalog?.items, scroll: { x: 660 }, locale: { emptyText: _jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: "\u5F53\u524D\u4EE3\u7801\u5C1A\u672A\u58F0\u660E\u5BA1\u6279\u4EBA\u8DEF\u7531\u7B56\u7565" }) }, pagination: { current: page, pageSize: 20, showSizeChanger: false, total: catalog?.total, onChange: setPage, disabled: blocked }, columns: [
41
+ { title: '路由策略', render: (_, item) => _jsxs(_Fragment, { children: [_jsx("b", { children: item.title }), _jsx("div", { className: "oxa-workflow-config-help", children: item.policyCode })] }) },
42
+ { title: '规则数', dataIndex: 'ruleCount', width: 90 }, { title: '引用节点', dataIndex: 'referenceCount', width: 100 },
43
+ { title: '当前修订', render: (_, item) => _jsx(Tag, { children: item.revision ? `r${item.revision}` : '代码默认' }), width: 100 },
44
+ { title: '操作', width: 180, render: (_, item) => _jsxs(Space, { children: [_jsx(Button, { type: "link", size: "small", disabled: blocked, loading: opening === item.policyCode, onClick: () => void open(item.policyCode), children: "\u7EF4\u62A4\u89C4\u5219" }), _jsx(Button, { type: "link", size: "small", disabled: blocked, onClick: () => setHistory(item), children: "\u4FEE\u6539\u5386\u53F2" })] }) },
45
+ ] }), editing && _jsx(WorkflowAssignmentRoutingEditor, { configuration: editing, onClose: () => setEditing(undefined), onSaved: receipt => {
46
+ setEditing(undefined);
47
+ setAttempt(value => value + 1);
48
+ void message.success(`规则已保存为修订 ${receipt.revision},未来进入节点生效`);
49
+ } }, editing.policy.policyCode), history && _jsx(RoutingHistory, { policy: history, onClose: () => setHistory(undefined) })] });
50
+ }
51
+ function RoutingHistory({ policy, onClose }) {
52
+ const [page, setPage] = useState(1), [attempt, setAttempt] = useState(0), [loading, setLoading] = useState(true), [error, setError] = useState('');
53
+ const [history, setHistory] = useState();
54
+ useEffect(() => {
55
+ let active = true;
56
+ setLoading(true);
57
+ setError('');
58
+ void loadWorkflowAssignmentRoutingHistory(policy.policyCode, { limit: 10, offset: (page - 1) * 10 }).then(result => { if (active)
59
+ setHistory(result); })
60
+ .catch(failure => { if (active)
61
+ setError(errorText(failure)); }).finally(() => { if (active)
62
+ setLoading(false); });
63
+ return () => { active = false; };
64
+ }, [policy.policyCode, page, attempt]);
65
+ return _jsxs(Drawer, { open: true, title: `${policy.title} · 修改历史`, size: 840, onClose: onClose, children: [error && _jsx(Alert, { type: "error", showIcon: true, title: error, action: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u8BD5" }) }), _jsx(Table, { rowKey: "id", size: "small", loading: loading, dataSource: history?.items, scroll: { x: 640 }, pagination: { current: page, pageSize: 10, showSizeChanger: false, total: history?.total, onChange: setPage }, columns: [
66
+ { title: '修订', dataIndex: 'revision', width: 65 }, { title: '时间', dataIndex: 'createdAt', render: value => new Date(value).toLocaleString(), width: 170 },
67
+ { title: '操作人', dataIndex: 'actorUserId', ellipsis: true }, { title: '修改原因', dataIndex: 'reason' },
68
+ { title: '规则变化', render: (_, item) => `${item.before.rules.length} → ${item.after.rules.length}`, width: 100 },
69
+ ], expandable: { expandedRowRender: item => _jsxs("div", { children: [_jsx("p", { children: "\u4FEE\u6539\u524D" }), _jsx(RuleSummary, { rules: item.before.rules }), _jsx("p", { children: "\u4FEE\u6539\u540E" }), _jsx(RuleSummary, { rules: item.after.rules })] }) } })] });
70
+ }
71
+ function RuleSummary({ rules }) {
72
+ return rules.length ? _jsx("ul", { children: rules.map(rule => _jsxs("li", { children: [rule.title, "\uFF08", rule.ruleCode, "\uFF09 \u00B7 ", rule.enabled ? '启用' : '停用', " \u00B7 ", rule.workflowCode || '全部引用流程', rule.nodeId ? ` / ${rule.nodeId}` : '', " \u00B7 ", Object.entries(rule.matches).map(([code, values]) => `${code}=${values.join('或')}`).join(';') || '不限匹配值', " \u00B7 ", rule.effect === 'append' ? '追加' : '替换', " ", rule.sourceCode, " \u00B7 \u4F18\u5148\u7EA7 ", rule.priority, rule.validFrom ? ` · 从 ${rule.validFrom}` : '', rule.validTo ? ` · 至 ${rule.validTo}` : ''] }, rule.ruleCode)) }) : _jsx("p", { children: "\u6CA1\u6709\u8DEF\u7531\u8865\u5145\u89C4\u5219\uFF0C\u4F7F\u7528\u4EE3\u7801\u9ED8\u8BA4\u6765\u6E90\u3002" });
73
+ }
74
+ function errorText(failure) { return failure instanceof Error ? failure.message : '请求失败,请重试'; }
75
+ //# sourceMappingURL=WorkflowAssignmentRoutingManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowAssignmentRoutingManager.js","sourceRoot":"","sources":["../../../../src/browser/components/workflow/WorkflowAssignmentRoutingManager.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface WorkflowBusinessStepRecoveryDraftState {
2
+ dirty: boolean;
3
+ busy: boolean;
4
+ unknown: boolean;
5
+ }
6
+ export interface WorkflowBusinessStepRecoveryPanelProps {
7
+ instanceId: string;
8
+ onCompleted?: () => void | Promise<void>;
9
+ /** Keep the panel mounted during an uncertain write using the host's navigation owner. */
10
+ onDraftStateChange?: (state: WorkflowBusinessStepRecoveryDraftState) => void;
11
+ }
12
+ /** Shared administrator repair; the server owns authority, CAS, state and audit. */
13
+ export declare function WorkflowBusinessStepRecoveryPanel({ instanceId, onCompleted, onDraftStateChange }: WorkflowBusinessStepRecoveryPanelProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=WorkflowBusinessStepRecoveryPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBusinessStepRecoveryPanel.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,sCAAsC;IAAG,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AAC3G,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,IAAI,CAAC;CAC9E;AAGD,oFAAoF;AACpF,wBAAgB,iCAAiC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,sCAAsC,2CAiFxI"}
@@ -0,0 +1,117 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { Alert, Button, Descriptions, Input, Space, Spin } from 'antd';
4
+ import { loadWorkflowBusinessStepRecovery, previewWorkflowBusinessStepRecovery, executeWorkflowBusinessStepRecovery, OpenXiangdaPlatformRequestError } from '../../platform-client';
5
+ const errorText = (error) => error instanceof Error ? error.message : String(error);
6
+ /** Shared administrator repair; the server owns authority, CAS, state and audit. */
7
+ export function WorkflowBusinessStepRecoveryPanel({ instanceId, onCompleted, onDraftStateChange }) {
8
+ const [options, setOptions] = useState();
9
+ const [preview, setPreview] = useState();
10
+ const [reason, setReason] = useState('');
11
+ const [busy, setBusy] = useState(false);
12
+ const [unknown, setUnknown] = useState(false);
13
+ const [loading, setLoading] = useState(true);
14
+ const [error, setError] = useState('');
15
+ const [refreshError, setRefreshError] = useState('');
16
+ const [reload, setReload] = useState(0);
17
+ const request = useRef(undefined);
18
+ const generation = useRef(0);
19
+ const dirty = Boolean(reason.trim() || preview || unknown);
20
+ useEffect(() => {
21
+ onDraftStateChange?.({ dirty, busy, unknown });
22
+ return () => onDraftStateChange?.({ dirty: false, busy: false, unknown: false });
23
+ }, [dirty, busy, unknown, onDraftStateChange]);
24
+ useEffect(() => {
25
+ if (!dirty && !busy)
26
+ return;
27
+ const beforeUnload = (event) => { event.preventDefault(); event.returnValue = ''; };
28
+ window.addEventListener('beforeunload', beforeUnload);
29
+ return () => window.removeEventListener('beforeunload', beforeUnload);
30
+ }, [dirty, busy]);
31
+ useEffect(() => {
32
+ const current = ++generation.current;
33
+ setLoading(true);
34
+ setBusy(false);
35
+ setOptions(undefined);
36
+ setPreview(undefined);
37
+ request.current = undefined;
38
+ setError('');
39
+ loadWorkflowBusinessStepRecovery(instanceId).then(value => { if (current === generation.current)
40
+ setOptions(value); }).catch(e => { if (current === generation.current)
41
+ setError(e instanceof Error ? e.message : String(e)); }).finally(() => { if (current === generation.current)
42
+ setLoading(false); });
43
+ return () => { generation.current++; };
44
+ }, [instanceId, reload]);
45
+ const prepare = async () => {
46
+ if (busy || unknown || !reason.trim())
47
+ return;
48
+ const current = generation.current;
49
+ setBusy(true);
50
+ setError('');
51
+ setRefreshError('');
52
+ try {
53
+ const value = await previewWorkflowBusinessStepRecovery(instanceId);
54
+ if (current !== generation.current)
55
+ return;
56
+ setPreview(value);
57
+ request.current = value.commandToken ? { commandToken: value.commandToken, idempotencyKey: `step-recovery:${crypto.randomUUID()}`, input: { reason: reason.trim() } } : undefined;
58
+ }
59
+ catch (e) {
60
+ if (current === generation.current)
61
+ setError(e instanceof Error ? e.message : String(e));
62
+ }
63
+ finally {
64
+ if (current === generation.current)
65
+ setBusy(false);
66
+ }
67
+ };
68
+ const commit = async () => {
69
+ if (busy || !request.current || !preview?.canCommit)
70
+ return;
71
+ const current = generation.current, recovering = unknown;
72
+ setBusy(true);
73
+ setError('');
74
+ try {
75
+ await executeWorkflowBusinessStepRecovery(instanceId, request.current);
76
+ }
77
+ catch (e) {
78
+ if (current !== generation.current)
79
+ return;
80
+ setError(errorText(e));
81
+ if (!recovering && e instanceof OpenXiangdaPlatformRequestError && e.status >= 400 && e.status < 500) {
82
+ setPreview(undefined);
83
+ request.current = undefined;
84
+ }
85
+ else
86
+ setUnknown(true);
87
+ setBusy(false);
88
+ return;
89
+ }
90
+ if (current !== generation.current)
91
+ return;
92
+ setUnknown(false);
93
+ setPreview(undefined);
94
+ request.current = undefined;
95
+ setReason('');
96
+ // A host refresh failure must not turn a confirmed command into an unknown write.
97
+ try {
98
+ await onCompleted?.();
99
+ }
100
+ catch (e) {
101
+ if (current === generation.current)
102
+ setRefreshError(errorText(e));
103
+ }
104
+ finally {
105
+ if (current === generation.current) {
106
+ setBusy(false);
107
+ setReload(value => value + 1);
108
+ }
109
+ }
110
+ };
111
+ return _jsx("section", { "aria-label": "\u4E1A\u52A1\u6B65\u9AA4\u6062\u590D", children: _jsxs(Space, { orientation: "vertical", style: { width: '100%' }, children: [loading && _jsx("span", { "aria-label": "\u8BFB\u53D6\u4E1A\u52A1\u6B65\u9AA4\u72B6\u6001", children: _jsx(Spin, {}) }), options && _jsxs(_Fragment, { children: [_jsx(Descriptions, { column: 1, size: "small", items: [
112
+ { label: '当前步骤', children: options.businessStep ? `${options.businessStep.handlerCode} · v${options.businessStep.handlerVersion}` : '当前没有等待中的业务步骤' },
113
+ { label: '状态', children: options.businessStep?.status === 'result_ready' ? '结果已收到,后续推进受阻' : options.businessStep?.status === 'waiting' ? '等待处理器结果' : options.status },
114
+ ...(options.businessStep?.lastErrorCode ? [{ label: '阻塞原因', children: options.businessStep.lastErrorCode }] : []),
115
+ ] }), !options.canRetryBusinessStep && _jsx(Alert, { type: "info", title: options.businessStep?.status === 'waiting' ? '尚未收到可用结果' : '当前无需恢复步骤', description: options.businessStep?.status === 'waiting' ? '先在事件管理中核对原投递及处理器回执,再按原请求恢复。' : '刷新后查看最新状态。' })] }), options?.canRetryBusinessStep && !preview && _jsxs(_Fragment, { children: [_jsx(Alert, { type: "info", title: "\u4F7F\u7528\u5DF2\u4FDD\u5B58\u7ED3\u679C\u7EE7\u7EED\u6D41\u7A0B", description: "\u8BF7\u5148\u4FEE\u590D\u540E\u7EED\u5BA1\u6279\u4EBA\u6216\u8282\u70B9\u914D\u7F6E\u3002\u6267\u884C\u952E\u3001\u8BA1\u7B97\u7ED3\u679C\u548C\u65E2\u6709\u8F68\u8FF9\u4FDD\u6301\u53EF\u8FFD\u6EAF\u3002" }), _jsxs("label", { children: ["\u64CD\u4F5C\u539F\u56E0", _jsx(Input.TextArea, { "aria-label": "\u4E1A\u52A1\u6B65\u9AA4\u6062\u590D\u539F\u56E0", value: reason, onChange: e => setReason(e.target.value), rows: 3, maxLength: 1000, disabled: busy || unknown })] }), _jsx(Button, { type: "primary", disabled: busy || unknown || !reason.trim(), loading: busy, onClick: () => void prepare(), children: "\u9884\u89C8\u6B65\u9AA4\u6062\u590D" })] }), preview && _jsxs(_Fragment, { children: [_jsx(Alert, { type: "info", title: `继续 ${preview.target.title}`, description: "\u6309\u5DF2\u4FDD\u5B58\u7ED3\u679C\u548C\u5F53\u524D\u5408\u6CD5\u914D\u7F6E\u63A8\u8FDB\uFF1B\u540E\u7EED\u4ECD\u53EF\u80FD\u56E0\u914D\u7F6E\u95EE\u9898\u53D7\u963B\uFF0C\u8BF7\u67E5\u770B\u6700\u65B0\u72B6\u6001\u3002" }), _jsxs("p", { style: { overflowWrap: 'anywhere' }, children: ["\u539F\u6267\u884C\u952E\uFF1A", preview.target.executionId] }), _jsxs("p", { children: ["\u64CD\u4F5C\u539F\u56E0\uFF1A", reason] }), _jsxs(Space, { wrap: true, children: [_jsx(Button, { disabled: busy || unknown, onClick: () => setReload(value => value + 1), children: "\u91CD\u65B0\u8BFB\u53D6\u5E76\u9884\u89C8" }), _jsx(Button, { type: "primary", loading: busy, disabled: busy || !preview.canCommit || !request.current, onClick: () => void commit(), children: unknown ? '重试原恢复请求' : '使用已收结果继续' })] })] }), error && _jsx(Alert, { type: unknown ? 'warning' : 'error', showIcon: true, title: unknown ? '提交结果待确认' : '操作未完成', description: error }), refreshError && _jsx(Alert, { type: "warning", showIcon: true, title: "\u6062\u590D\u64CD\u4F5C\u5DF2\u6210\u529F\uFF0C\u4F46\u9875\u9762\u5237\u65B0\u5931\u8D25", description: refreshError }), unknown && _jsx("p", { children: "\u8BF7\u4FDD\u7559\u5F53\u524D\u9875\u9762\u5E76\u91CD\u8BD5\u539F\u8BF7\u6C42\uFF0C\u5E73\u53F0\u4F1A\u6838\u5BF9\u539F\u64CD\u4F5C\u7ED3\u679C\u3002" }), !preview && _jsx(Button, { disabled: busy || loading || unknown, onClick: () => setReload(value => value + 1), children: "\u5237\u65B0\u6B65\u9AA4\u72B6\u6001" })] }) });
116
+ }
117
+ //# sourceMappingURL=WorkflowBusinessStepRecoveryPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBusinessStepRecoveryPanel.js","sourceRoot":"","sources":["../../../../src/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface WorkflowDelegationDraftState {
2
+ dirty: boolean;
3
+ busy: boolean;
4
+ unknown: boolean;
5
+ }
6
+ export interface WorkflowDelegationManagerProps {
7
+ initialAll?: boolean;
8
+ refreshKey?: number | string;
9
+ /** Register dirty state with the host's existing navigation owner. */
10
+ onDraftStateChange?: (state: WorkflowDelegationDraftState) => void;
11
+ }
12
+ /** Personal and administrator maintenance use the same current-user contract. */
13
+ export declare function WorkflowDelegationManager({ initialAll, refreshKey, onDraftStateChange }: WorkflowDelegationManagerProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=WorkflowDelegationManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowDelegationManager.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/workflow/WorkflowDelegationManager.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,4BAA4B;IAAG,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AACjG,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACpE;AAoBD,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,EAAC,UAAgB,EAAC,UAAY,EAAC,kBAAkB,EAAC,EAAC,8BAA8B,2CAyC1H"}