@rytass/bpm-core-react 0.13.5 → 0.15.0

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 (86) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/dist/chunks/FormBuilderView-6bCbIkz6.cjs +3 -0
  3. package/dist/chunks/FormBuilderView-6bCbIkz6.cjs.map +1 -0
  4. package/dist/chunks/{FormBuilderView-BYLN6W-P.js → FormBuilderView-CLg-JYmu.js} +495 -452
  5. package/dist/chunks/FormBuilderView-CLg-JYmu.js.map +1 -0
  6. package/dist/chunks/FormRendererView-DU9LLrOF.js +999 -0
  7. package/dist/chunks/FormRendererView-DU9LLrOF.js.map +1 -0
  8. package/dist/chunks/FormRendererView-gctFIqwC.cjs +4 -0
  9. package/dist/chunks/FormRendererView-gctFIqwC.cjs.map +1 -0
  10. package/dist/chunks/{compose-6P64PO1i.js → compose-BtQPBd1Q.js} +6 -5
  11. package/dist/chunks/compose-BtQPBd1Q.js.map +1 -0
  12. package/dist/chunks/compose-DZhTQOt4.cjs +2 -0
  13. package/dist/chunks/compose-DZhTQOt4.cjs.map +1 -0
  14. package/dist/chunks/{designer-C3s2kSna.js → designer-CrbBRPUU.js} +1382 -1199
  15. package/dist/chunks/designer-CrbBRPUU.js.map +1 -0
  16. package/dist/chunks/designer-D3_lWmfa.cjs +65 -0
  17. package/dist/chunks/designer-D3_lWmfa.cjs.map +1 -0
  18. package/dist/chunks/detail-CVXb5Vy8.cjs +2 -0
  19. package/dist/chunks/detail-CVXb5Vy8.cjs.map +1 -0
  20. package/dist/chunks/{detail-pYEIk-jW.js → detail-_c21WQla.js} +862 -815
  21. package/dist/chunks/detail-_c21WQla.js.map +1 -0
  22. package/dist/chunks/routes-config-C1j_vFKo.cjs.map +1 -1
  23. package/dist/chunks/routes-config-yZbESPlw.js.map +1 -1
  24. package/dist/chunks/task-node-label-BF6UllxP.cjs +2 -0
  25. package/dist/chunks/task-node-label-BF6UllxP.cjs.map +1 -0
  26. package/dist/chunks/task-node-label-CWZgOBj0.js +9 -0
  27. package/dist/chunks/task-node-label-CWZgOBj0.js.map +1 -0
  28. package/dist/lib/member-profile-resolution.d.ts +48 -0
  29. package/dist/lib/routes-config.d.ts +1 -1
  30. package/dist/lib/task-node-label.d.ts +10 -0
  31. package/dist/pages/instances/detail/index.cjs +1 -1
  32. package/dist/pages/instances/detail/index.js +1 -1
  33. package/dist/pages/templates/compose/index.cjs +1 -1
  34. package/dist/pages/templates/compose/index.js +1 -1
  35. package/dist/pages/templates/designer/index.cjs +1 -1
  36. package/dist/pages/templates/designer/index.js +1 -1
  37. package/dist/views/forms/builder/index.cjs +1 -1
  38. package/dist/views/forms/builder/index.js +1 -1
  39. package/dist/views/forms/renderer/form-field-link.d.ts +16 -0
  40. package/dist/views/forms/renderer/index.cjs +1 -1
  41. package/dist/views/forms/renderer/index.js +2 -2
  42. package/dist/views/forms/renderer/member-field-options.d.ts +39 -0
  43. package/dist/views/forms/renderer/member-field.d.ts +21 -0
  44. package/dist/views/inbox/index.cjs +1 -1
  45. package/dist/views/inbox/index.cjs.map +1 -1
  46. package/dist/views/inbox/index.js +100 -97
  47. package/dist/views/inbox/index.js.map +1 -1
  48. package/dist/views/instances/detail/index.cjs +1 -1
  49. package/dist/views/instances/detail/index.js +1 -1
  50. package/dist/views/instances/detail/sections/container-helpers.d.ts +3 -2
  51. package/dist/views/instances/detail/sections/shared.d.ts +5 -0
  52. package/dist/views/instances/detail/submitted-by.d.ts +23 -0
  53. package/dist/views/instances/new/index.cjs +1 -1
  54. package/dist/views/instances/new/index.js +1 -1
  55. package/dist/views/sent/SentView.d.ts +1 -1
  56. package/dist/views/sent/index.cjs +1 -1
  57. package/dist/views/sent/index.cjs.map +1 -1
  58. package/dist/views/sent/index.js +2 -2
  59. package/dist/views/sent/index.js.map +1 -1
  60. package/dist/views/templates/compose/index.cjs +1 -1
  61. package/dist/views/templates/compose/index.js +1 -1
  62. package/dist/views/templates/designer/decision-policy-options.d.ts +8 -0
  63. package/dist/views/templates/designer/designer-version-labels.d.ts +12 -0
  64. package/dist/views/templates/designer/dry-run-assignee-label.d.ts +28 -0
  65. package/dist/views/templates/designer/dry-run-sample-data.d.ts +9 -0
  66. package/dist/views/templates/designer/dynamic-form-resolver-options.d.ts +35 -0
  67. package/dist/views/templates/designer/index.cjs +1 -1
  68. package/dist/views/templates/designer/index.js +1 -1
  69. package/dist/views/templates/designer/position-level-options.d.ts +17 -0
  70. package/package.json +3 -3
  71. package/dist/chunks/FormBuilderView-BYLN6W-P.js.map +0 -1
  72. package/dist/chunks/FormBuilderView-VmdPVbg7.cjs +0 -3
  73. package/dist/chunks/FormBuilderView-VmdPVbg7.cjs.map +0 -1
  74. package/dist/chunks/FormRendererView-Bs8lTb4k.cjs +0 -2
  75. package/dist/chunks/FormRendererView-Bs8lTb4k.cjs.map +0 -1
  76. package/dist/chunks/FormRendererView-UPowZZgw.js +0 -798
  77. package/dist/chunks/FormRendererView-UPowZZgw.js.map +0 -1
  78. package/dist/chunks/compose-6P64PO1i.js.map +0 -1
  79. package/dist/chunks/compose-BnSRL4ml.cjs +0 -2
  80. package/dist/chunks/compose-BnSRL4ml.cjs.map +0 -1
  81. package/dist/chunks/designer-C3s2kSna.js.map +0 -1
  82. package/dist/chunks/designer-_g58R6rQ.cjs +0 -65
  83. package/dist/chunks/designer-_g58R6rQ.cjs.map +0 -1
  84. package/dist/chunks/detail-Db-UOELp.cjs +0 -2
  85. package/dist/chunks/detail-Db-UOELp.cjs.map +0 -1
  86. package/dist/chunks/detail-pYEIk-jW.js.map +0 -1
@@ -3,20 +3,21 @@ import { n as e } from "./auth-provider-B5oPmvk2.js";
3
3
  import { t } from "./format-date-time-CB-LxzqT.js";
4
4
  import { t as n } from "./bpm-form-field-Cao0rMol.js";
5
5
  import { t as r } from "./use-bpm-member-D57LKe_u.js";
6
- import { i, t as a } from "./FormRendererView-UPowZZgw.js";
6
+ import { t as i } from "./task-node-label-CWZgOBj0.js";
7
+ import { o as a, t as o } from "./FormRendererView-DU9LLrOF.js";
7
8
  import '../style.css';import '../detail.css';/* empty css */
8
- import { Fragment as o, forwardRef as s, useCallback as c, useEffect as l, useImperativeHandle as u, useMemo as d, useRef as f, useState as p } from "react";
9
- import { AutoComplete as m, Badge as h, Button as g, Input as ee, Modal as _, PageHeader as v, Section as y, SectionGroup as te, Select as b, Stepper as x, Table as S, Textarea as ne, Tooltip as re, Typography as C } from "@mezzanine-ui/react";
10
- import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
11
- import { cancelAdhocDirective as ie, cancelApprovalInstance as ae, configureAdhocCompletionNotification as D, configureAdhocStageNotification as oe, decideTask as se, listAdhocDirectives as ce, listAttachments as le, listTaskDecisions as O, listWorkflowWebhookDeliveries as ue, readApprovalInstance as de, readAttachmentDownloadUrl as fe, readAttachmentPreviewUrl as pe, readInstanceSignatures as me, requestAdhocCountersign as he, requestAdhocPreApproval as ge, resolveMemberProfiles as _e, resubmitApprovalInstance as ve, retryWorkflowWebhookDelivery as ye, searchMembers as be, uploadAttachment as xe } from "@rytass/bpm-core-client/workflow";
12
- import Se from "@mezzanine-ui/react/ContentHeader";
13
- import { CheckedIcon as Ce, ChevronLeftIcon as k, ChevronRightIcon as we, DangerousOutlineIcon as Te, DownloadIcon as Ee, FileSearchIcon as De, NotificationUnreadIcon as Oe, PlusIcon as ke, RefreshCcwIcon as Ae, ResetIcon as A, ShareIcon as je, UserIcon as Me, ZoomInIcon as Ne, ZoomOutIcon as Pe } from "@mezzanine-ui/icons";
14
- import { buildFormRendererValues as Fe, focusFormRendererField as Ie, readFormDataSourceErrorMessage as Le, validateFormRendererValues as Re } from "@rytass/bpm-core-client/form";
15
- import { Background as j, Controls as ze, Handle as Be, Position as Ve, ReactFlow as He } from "@xyflow/react";
16
- import * as Ue from "dagre";
17
- import { Document as M, Page as We } from "react-pdf";
18
- import { stepClasses as N } from "@mezzanine-ui/core/stepper";
19
- var P = {
9
+ import { Fragment as s, forwardRef as c, useCallback as l, useEffect as u, useImperativeHandle as d, useMemo as f, useRef as p, useState as m } from "react";
10
+ import { AutoComplete as ee, Badge as h, Button as g, Input as te, Modal as _, PageHeader as v, Section as y, SectionGroup as ne, Select as b, Stepper as x, Table as re, Textarea as ie, Tooltip as ae, Typography as S } from "@mezzanine-ui/react";
11
+ import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
12
+ import { cancelAdhocDirective as E, cancelApprovalInstance as oe, configureAdhocCompletionNotification as se, configureAdhocStageNotification as ce, decideTask as le, listAdhocDirectives as ue, listAttachments as de, listTaskDecisions as fe, listWorkflowWebhookDeliveries as pe, readApprovalInstance as me, readAttachmentDownloadUrl as he, readAttachmentPreviewUrl as ge, readInstanceSignatures as _e, requestAdhocCountersign as ve, requestAdhocPreApproval as ye, resolveMemberProfiles as be, resubmitApprovalInstance as xe, retryWorkflowWebhookDelivery as Se, searchMembers as Ce, uploadAttachment as we } from "@rytass/bpm-core-client/workflow";
13
+ import Te from "@mezzanine-ui/react/ContentHeader";
14
+ import { CheckedIcon as Ee, ChevronLeftIcon as D, ChevronRightIcon as De, DangerousOutlineIcon as Oe, DownloadIcon as ke, FileSearchIcon as O, NotificationUnreadIcon as Ae, PlusIcon as je, RefreshCcwIcon as Me, ResetIcon as Ne, ShareIcon as Pe, UserIcon as Fe, ZoomInIcon as Ie, ZoomOutIcon as Le } from "@mezzanine-ui/icons";
15
+ import { buildFormRendererValues as Re, focusFormRendererField as ze, readFormDataSourceErrorMessage as Be, validateFormRendererValues as Ve } from "@rytass/bpm-core-client/form";
16
+ import { Background as k, Controls as He, Handle as Ue, Position as A, ReactFlow as We } from "@xyflow/react";
17
+ import * as j from "dagre";
18
+ import { Document as Ge, Page as Ke } from "react-pdf";
19
+ import { stepClasses as M } from "@mezzanine-ui/core/stepper";
20
+ var N = {
20
21
  root: "bpm_root_ehm7w",
21
22
  toolbar: "bpm_toolbar_R-tis",
22
23
  pageControls: "bpm_pageControls_jM-rC",
@@ -25,56 +26,56 @@ var P = {
25
26
  viewport: "bpm_viewport_DQXms",
26
27
  page: "bpm_page_Cv5Rg",
27
28
  state: "bpm_state_bpgp3"
28
- }, F = 760, Ge = 920, Ke = 320, I = 32, L = .75, qe = 1.75, R = .25;
29
- function Je({ filename: e, fileUrl: t, onDownload: n }) {
30
- let r = f(null), [i, a] = p(null), [o, s] = p(1), [u, m] = p(1), [h, ee] = p(F);
31
- l(() => {
29
+ }, qe = 760, Je = 920, Ye = 320, P = 32, F = .75, I = 1.75, Xe = .25;
30
+ function Ze({ filename: e, fileUrl: t, onDownload: n }) {
31
+ let r = p(null), [i, a] = m(null), [o, s] = m(1), [c, d] = m(1), [ee, h] = m(qe);
32
+ u(() => {
32
33
  let e = r.current;
33
34
  if (!e || typeof ResizeObserver > "u") return;
34
35
  let t = new ResizeObserver((e) => {
35
36
  let t = e[0]?.contentRect.width;
36
- t && ee(t);
37
+ t && h(t);
37
38
  });
38
39
  return t.observe(e), () => t.disconnect();
39
- }, []), l(() => {
40
- a(null), s(1), m(1);
40
+ }, []), u(() => {
41
+ a(null), s(1), d(1);
41
42
  }, [t]);
42
- let _ = d(() => {
43
- let e = Math.max(Ke, h - I);
44
- return Math.round(Math.min(Ge, e) * u);
45
- }, [u, h]), v = c((e) => {
43
+ let te = f(() => {
44
+ let e = Math.max(Ye, ee - P);
45
+ return Math.round(Math.min(Je, e) * c);
46
+ }, [c, ee]), _ = l((e) => {
46
47
  a(e.numPages), s(1);
47
- }, []), y = o > 1, te = i !== null && o < i, b = u > L, x = u < qe, S = i === null ? `第 ${o} 頁` : `第 ${o} / ${i} 頁`, ne = `${Math.round(u * 100)}%`;
48
- return /* @__PURE__ */ E("section", {
48
+ }, []), v = o > 1, y = i !== null && o < i, ne = c > F, b = c < I, x = i === null ? `第 ${o} 頁` : `第 ${o} / ${i} 頁`, re = `${Math.round(c * 100)}%`;
49
+ return /* @__PURE__ */ T("section", {
49
50
  "aria-label": `${e} PDF 預覽`,
50
- className: P.root,
51
- children: [/* @__PURE__ */ E("div", {
52
- className: P.toolbar,
51
+ className: N.root,
52
+ children: [/* @__PURE__ */ T("div", {
53
+ className: N.toolbar,
53
54
  children: [
54
- /* @__PURE__ */ E("div", {
55
- className: P.pageControls,
55
+ /* @__PURE__ */ T("div", {
56
+ className: N.pageControls,
56
57
  "aria-label": "頁面切換",
57
58
  children: [
58
- /* @__PURE__ */ T(g, {
59
+ /* @__PURE__ */ w(g, {
59
60
  "aria-label": "上一頁",
60
- disabled: !y,
61
- icon: k,
61
+ disabled: !v,
62
+ icon: D,
62
63
  onClick: () => {
63
64
  s((e) => Math.max(1, e - 1));
64
65
  },
65
66
  size: "minor",
66
67
  variant: "base-secondary"
67
68
  }),
68
- /* @__PURE__ */ T(C, {
69
- className: P.counter,
69
+ /* @__PURE__ */ w(S, {
70
+ className: N.counter,
70
71
  component: "span",
71
72
  variant: "body",
72
- children: S
73
+ children: x
73
74
  }),
74
- /* @__PURE__ */ T(g, {
75
+ /* @__PURE__ */ w(g, {
75
76
  "aria-label": "下一頁",
76
- disabled: !te,
77
- icon: we,
77
+ disabled: !y,
78
+ icon: De,
78
79
  onClick: () => {
79
80
  s((e) => i === null ? e : Math.min(i, e + 1));
80
81
  },
@@ -83,40 +84,40 @@ function Je({ filename: e, fileUrl: t, onDownload: n }) {
83
84
  })
84
85
  ]
85
86
  }),
86
- /* @__PURE__ */ E("div", {
87
- className: P.zoomControls,
87
+ /* @__PURE__ */ T("div", {
88
+ className: N.zoomControls,
88
89
  "aria-label": "縮放",
89
90
  children: [
90
- /* @__PURE__ */ T(g, {
91
+ /* @__PURE__ */ w(g, {
91
92
  "aria-label": "縮小",
92
- disabled: !b,
93
- icon: Pe,
93
+ disabled: !ne,
94
+ icon: Le,
94
95
  onClick: () => {
95
- m((e) => Math.max(L, e - R));
96
+ d((e) => Math.max(F, e - Xe));
96
97
  },
97
98
  size: "minor",
98
99
  variant: "base-secondary"
99
100
  }),
100
- /* @__PURE__ */ T(C, {
101
- className: P.counter,
101
+ /* @__PURE__ */ w(S, {
102
+ className: N.counter,
102
103
  component: "span",
103
104
  variant: "body",
104
- children: ne
105
+ children: re
105
106
  }),
106
- /* @__PURE__ */ T(g, {
107
+ /* @__PURE__ */ w(g, {
107
108
  "aria-label": "放大",
108
- disabled: !x,
109
- icon: Ne,
109
+ disabled: !b,
110
+ icon: Ie,
110
111
  onClick: () => {
111
- m((e) => Math.min(qe, e + R));
112
+ d((e) => Math.min(I, e + Xe));
112
113
  },
113
114
  size: "minor",
114
115
  variant: "base-secondary"
115
116
  })
116
117
  ]
117
118
  }),
118
- n ? /* @__PURE__ */ T(g, {
119
- icon: Ee,
119
+ n ? /* @__PURE__ */ w(g, {
120
+ icon: ke,
120
121
  iconType: "leading",
121
122
  onClick: n,
122
123
  size: "minor",
@@ -124,31 +125,31 @@ function Je({ filename: e, fileUrl: t, onDownload: n }) {
124
125
  children: "下載"
125
126
  }) : null
126
127
  ]
127
- }), /* @__PURE__ */ T("div", {
128
- className: P.viewport,
128
+ }), /* @__PURE__ */ w("div", {
129
+ className: N.viewport,
129
130
  ref: r,
130
- children: /* @__PURE__ */ T(M, {
131
- error: /* @__PURE__ */ T(z, { message: "PDF 無法載入。" }),
131
+ children: /* @__PURE__ */ w(Ge, {
132
+ error: /* @__PURE__ */ w(L, { message: "PDF 無法載入。" }),
132
133
  file: t,
133
- loading: /* @__PURE__ */ T(z, { message: "正在載入 PDF..." }),
134
- noData: /* @__PURE__ */ T(z, { message: "沒有可預覽的 PDF。" }),
135
- onLoadSuccess: v,
136
- children: /* @__PURE__ */ T(We, {
137
- className: P.page,
138
- loading: /* @__PURE__ */ T(z, { message: "正在載入頁面..." }),
134
+ loading: /* @__PURE__ */ w(L, { message: "正在載入 PDF..." }),
135
+ noData: /* @__PURE__ */ w(L, { message: "沒有可預覽的 PDF。" }),
136
+ onLoadSuccess: _,
137
+ children: /* @__PURE__ */ w(Ke, {
138
+ className: N.page,
139
+ loading: /* @__PURE__ */ w(L, { message: "正在載入頁面..." }),
139
140
  pageNumber: o,
140
141
  renderAnnotationLayer: !0,
141
142
  renderTextLayer: !0,
142
- width: _
143
+ width: te
143
144
  })
144
145
  })
145
146
  })]
146
147
  });
147
148
  }
148
- function z({ message: e }) {
149
- return /* @__PURE__ */ T("div", {
150
- className: P.state,
151
- children: /* @__PURE__ */ T(C, {
149
+ function L({ message: e }) {
150
+ return /* @__PURE__ */ w("div", {
151
+ className: N.state,
152
+ children: /* @__PURE__ */ w(S, {
152
153
  color: "text-neutral",
153
154
  variant: "body",
154
155
  children: e
@@ -156,67 +157,78 @@ function z({ message: e }) {
156
157
  });
157
158
  }
158
159
  //#endregion
160
+ //#region src/views/instances/detail/submitted-by.ts
161
+ function R({ initiatorMemberId: e, submittedByMemberId: t }) {
162
+ return t && t !== e ? t : null;
163
+ }
164
+ function Qe(e, t) {
165
+ let n = R(e);
166
+ if (!n || !e.initiatorMemberId) return null;
167
+ let r = (e) => t.get(e)?.name ?? e;
168
+ return `由 ${r(n)} 代 ${r(e.initiatorMemberId)} 送出`;
169
+ }
170
+ //#endregion
159
171
  //#region src/views/instances/detail/sections/shared.ts
160
- function B(e) {
161
- let t = V(e, "from"), n = V(e, "to"), r = V(e, "reason");
172
+ function $e(e) {
173
+ let t = z(e, "from"), n = z(e, "to"), r = z(e, "reason");
162
174
  return !t || !n || !r ? null : {
163
175
  from: t,
164
176
  reason: r,
165
- ruleId: V(e, "ruleId"),
177
+ ruleId: z(e, "ruleId"),
166
178
  to: n
167
179
  };
168
180
  }
169
- function Ye(e) {
181
+ function et(e) {
170
182
  try {
171
183
  let t = JSON.parse(e);
172
- return Array.isArray(t) ? t.map((e) => Qe(e) ? B(e) : null).filter((e) => e !== null) : [];
184
+ return Array.isArray(t) ? t.map((e) => H(e) ? $e(e) : null).filter((e) => e !== null) : [];
173
185
  } catch {
174
186
  return [];
175
187
  }
176
188
  }
177
- function V(e, t) {
189
+ function z(e, t) {
178
190
  let n = e[t];
179
191
  return typeof n == "string" ? n : null;
180
192
  }
181
- function Xe(e, t) {
193
+ function B(e, t) {
182
194
  let n = e[t];
183
195
  return Array.isArray(n) ? n.filter((e) => typeof e == "string") : [];
184
196
  }
185
- function Ze(e, t) {
197
+ function tt(e, t) {
186
198
  let n = e[t];
187
199
  return typeof n == "number" ? n : null;
188
200
  }
189
- function H(e) {
201
+ function V(e) {
190
202
  return typeof e == "string" && e.trim().length > 0;
191
203
  }
192
- function Qe(e) {
204
+ function H(e) {
193
205
  return typeof e == "object" && !!e;
194
206
  }
195
- function $e(e) {
207
+ function nt(e) {
196
208
  return e.status === "PENDING" || e.status === "IN_PROGRESS";
197
209
  }
198
210
  function U(e) {
199
- return Le(e) || (e instanceof Error ? e.message : "發生未知錯誤");
211
+ return Be(e) || (e instanceof Error ? e.message : "發生未知錯誤");
200
212
  }
201
- function W(e) {
213
+ function rt(e) {
202
214
  return !Number.isFinite(e) || e <= 0 ? "-" : e < 1024 ? `${e} B` : e < 1048576 ? `${(e / 1024).toFixed(1)} KB` : `${(e / 1024 / 1024).toFixed(1)} MB`;
203
215
  }
204
- function et(e) {
216
+ function it(e) {
205
217
  return e.length > 16 ? `${e.slice(0, 12)}...` : e;
206
218
  }
207
- function tt(e) {
219
+ function at(e) {
208
220
  return e === "APPROVED" ? "已同意" : e === "CANCELLED" ? "已取消" : e === "DRAFT" ? "草稿" : e === "EXPIRED" ? "已逾期" : e === "REJECTED" ? "已拒絕" : e === "RETURNED" ? "已退回" : e === "RUNNING" ? "進行中" : e;
209
221
  }
210
- function nt(e) {
222
+ function ot(e) {
211
223
  return e === "PENDING" ? "待處理" : e === "IN_PROGRESS" ? "處理中" : e === "COMPLETED" ? "已完成" : e === "CANCELLED" ? "已取消" : e === "TRANSFERRED" ? "已轉派" : e;
212
224
  }
213
- function rt(e) {
225
+ function W(e) {
214
226
  return e === "APPROVED" ? "同意" : e === "REJECTED" ? "拒絕" : e === "RETURNED" ? "退回" : e === "TRANSFERRED" ? "轉派" : e;
215
227
  }
216
228
  function G(e) {
217
229
  return e === "startEvent" ? "開始" : e === "endEvent" ? "完成" : e === "userTask" ? "簽核節點" : e === "serviceTask" ? "知會節點" : e === "exclusiveGateway" ? "條件分流" : "平行處理";
218
230
  }
219
- function it(e, t) {
231
+ function st(e, t) {
220
232
  return t?.nodes.find((t) => t.id === e)?.data.label ?? e;
221
233
  }
222
234
  function K(e, t) {
@@ -224,16 +236,16 @@ function K(e, t) {
224
236
  let n = t.get(e);
225
237
  return n ? `${n.name}(${n.email})` : e;
226
238
  }
227
- function at(e, t = /* @__PURE__ */ new Map()) {
228
- let n = Ye(e.delegationChainJson);
239
+ function ct(e, t = /* @__PURE__ */ new Map()) {
240
+ let n = et(e.delegationChainJson);
229
241
  if (!e.assigneeMemberId) return e.candidateMemberIds.length ? `候選 ${e.candidateMemberIds.map((e) => K(e, t)).join("、")}` : "未指定";
230
242
  let r = K(e.assigneeMemberId, t), i = K(e.originalAssigneeMemberId, t);
231
243
  return n.length === 0 || e.originalAssigneeMemberId === e.assigneeMemberId ? r : `${r}(原:${i})`;
232
244
  }
233
- function ot(e, t) {
234
- return t ? e.assigneeMemberId === t || e.candidateMemberIds.includes(t) : !1;
245
+ function lt(e, t) {
246
+ return t ? e.assigneeMemberId === t || (e.openCandidateMemberIds ?? e.candidateMemberIds).includes(t) : !1;
235
247
  }
236
- function st(e, t) {
248
+ function ut(e, t) {
237
249
  if (t.type !== "userTask" || !t.data.returnBehavior.allowReturn) return [];
238
250
  if (t.data.returnBehavior.allowedTargets === "ANY") return e.nodes.filter((e) => e.id !== t.id).map((e) => ({
239
251
  id: e.id,
@@ -245,14 +257,14 @@ function st(e, t) {
245
257
  name: `${r.data.label}(${G(r.type)})`
246
258
  }] : [];
247
259
  }
248
- function ct(e) {
260
+ function q(e) {
249
261
  return {
250
262
  email: e.email,
251
263
  id: e.memberId,
252
264
  name: `${e.name} · ${e.email}`
253
265
  };
254
266
  }
255
- function q({ memberIds: e, useWebhookTarget: t, webhookUrl: n }) {
267
+ function dt({ memberIds: e, useWebhookTarget: t, webhookUrl: n }) {
256
268
  if (t) {
257
269
  let e = n.trim();
258
270
  return e ? {
@@ -277,11 +289,11 @@ function q({ memberIds: e, useWebhookTarget: t, webhookUrl: n }) {
277
289
  valid: !1
278
290
  };
279
291
  }
280
- function lt(e) {
292
+ function ft(e) {
281
293
  return !!e;
282
294
  }
283
- function ut(e) {
284
- if (!Qe(e)) return null;
295
+ function pt(e) {
296
+ if (!H(e)) return null;
285
297
  let t = e.email, n = e.id, r = e.name;
286
298
  return typeof n == "string" && typeof r == "string" ? {
287
299
  email: typeof t == "string" ? t : null,
@@ -289,7 +301,7 @@ function ut(e) {
289
301
  name: r
290
302
  } : null;
291
303
  }
292
- function dt(e, t) {
304
+ function mt(e, t) {
293
305
  let n = e.trim().toLocaleLowerCase();
294
306
  if (!n) return null;
295
307
  let r = t.filter((e) => [
@@ -300,20 +312,20 @@ function dt(e, t) {
300
312
  return r.length === 1 ? r[0] ?? null : null;
301
313
  }
302
314
  function J(e) {
303
- return H(e) ? {
315
+ return V(e) ? {
304
316
  text: e,
305
317
  type: "text"
306
318
  } : null;
307
319
  }
308
- function ft(e, t, n = "neutral") {
309
- return H(t) ? {
320
+ function ht(e, t, n = "neutral") {
321
+ return V(t) ? {
310
322
  label: e,
311
323
  text: t,
312
324
  tone: n,
313
325
  type: "comment"
314
326
  } : null;
315
327
  }
316
- function pt(e, t, n, r) {
328
+ function gt(e, t, n, r) {
317
329
  let i = t ? n.get(t) : null;
318
330
  return {
319
331
  email: i?.email ?? null,
@@ -326,176 +338,201 @@ function pt(e, t, n, r) {
326
338
  function Y(e) {
327
339
  return !!e;
328
340
  }
329
- function mt(e) {
341
+ function _t(e) {
330
342
  let t = e.findIndex((e) => e.id.startsWith("pending-task-") || e.id.startsWith("future-node-"));
331
343
  return t === -1 ? e.length : t;
332
344
  }
333
- function ht(e) {
334
- return e.eventType === "INSTANCE_STARTED" || e.eventType === "TASK_DECIDED" || e.eventType === "SLA_TRIGGERED" || gt(e.eventType, yt(e));
345
+ function X(e) {
346
+ return e.eventType === "INSTANCE_STARTED" || e.eventType === "TASK_DECIDED" || e.eventType === "SLA_TRIGGERED" || e.eventType === "TASK_CANDIDATE_ACTIVATED" || vt(e) || Z(e.eventType, Q(e));
347
+ }
348
+ function vt(e) {
349
+ return e.eventType === "TASK_CREATED" && B(Q(e), "sequentialCandidateMemberIds").length > 0;
350
+ }
351
+ function yt(e) {
352
+ if (e.eventType !== "TASK_CANDIDATE_ACTIVATED" && e.eventType !== "TASK_CREATED") return [];
353
+ let t = Q(e);
354
+ return [
355
+ ...B(t, "sequentialCandidateMemberIds"),
356
+ z(t, "candidateMemberId"),
357
+ z(t, "previousMemberId")
358
+ ].filter(V);
335
359
  }
336
- var X = /* @__PURE__ */ new Set([
360
+ var bt = /* @__PURE__ */ new Set([
337
361
  "SERVICE_TASK_EXECUTED",
338
362
  "SERVICE_TASK_FAILED",
339
363
  "WEBHOOK_DELIVERY_RETRIED"
340
364
  ]);
341
- function gt(e, t) {
342
- return X.has(e) && V(t, "action") === "NOTIFY_WEBHOOK";
365
+ function Z(e, t) {
366
+ return bt.has(e) && z(t, "action") === "NOTIFY_WEBHOOK";
343
367
  }
344
- function _t(e) {
345
- return V(e, "endpointLabel") ?? V(e, "endpointKey") ?? "外部系統";
368
+ function xt(e) {
369
+ return z(e, "endpointLabel") ?? z(e, "endpointKey") ?? "外部系統";
346
370
  }
347
- function vt(e) {
371
+ function St(e) {
348
372
  return e === "APPROVED" ? "已同意" : e === "REJECTED" ? "已拒絕" : e === "RETURNED" ? "已退回" : e === "TRANSFERRED" ? "已轉派" : "簽核已決議";
349
373
  }
350
- function Z(e, t) {
374
+ function Ct(e, t) {
351
375
  if (e === "INSTANCE_STARTED") return "案件已發起";
352
376
  if (e === "TOKEN_CREATED") return "流程路徑已建立";
353
377
  if (e === "ENGINE_PROCESS_REQUESTED") return "流程引擎已處理";
354
378
  if (e === "TOKEN_ADVANCED") return "流程已前進";
355
379
  if (e === "TASK_CREATED") return "待簽任務已建立";
356
- if (e === "TASK_DECIDED") return vt(V(t, "action"));
380
+ if (e === "TASK_CANDIDATE_ACTIVATED") return "輪到下一位簽核";
381
+ if (e === "TASK_DECIDED") return St(z(t, "action"));
357
382
  if (e === "SLA_TRIGGERED") return "時限提醒已觸發";
358
- if (gt(e, t)) {
359
- let n = _t(t);
383
+ if (Z(e, t)) {
384
+ let n = xt(t);
360
385
  return e === "SERVICE_TASK_EXECUTED" ? `已通知外部系統:${n}` : e === "SERVICE_TASK_FAILED" ? `通知外部系統失敗:${n}` : `管理者重新傳送外部系統通知:${n}`;
361
386
  }
362
387
  return e;
363
388
  }
364
- function yt(e) {
389
+ function Q(e) {
365
390
  try {
366
391
  let t = JSON.parse(e.payloadJson);
367
- return Qe(t) ? t : {};
392
+ return H(t) ? t : {};
368
393
  } catch {
369
394
  return {};
370
395
  }
371
396
  }
372
- function bt(e, t) {
373
- return e.eventType === "SLA_TRIGGERED" || e.eventType === "SERVICE_TASK_FAILED" && gt(e.eventType, t) || V(t, "action") === "REJECTED" || V(t, "instanceState") === "REJECTED";
397
+ function wt(e, t) {
398
+ return e.eventType === "SLA_TRIGGERED" || e.eventType === "SERVICE_TASK_FAILED" && Z(e.eventType, t) || z(t, "action") === "REJECTED" || z(t, "instanceState") === "REJECTED";
374
399
  }
375
- function xt(e) {
400
+ function Tt(e) {
376
401
  return t(e);
377
402
  }
378
- function St(e, t, n, r) {
403
+ function Et(e, t, n, r) {
404
+ if (e.eventType === "INSTANCE_STARTED") return Qe({
405
+ initiatorMemberId: e.actorMemberId,
406
+ submittedByMemberId: z(t, "submittedByMemberId")
407
+ }, r);
408
+ if (e.eventType === "TASK_CANDIDATE_ACTIVATED") {
409
+ let e = z(t, "candidateMemberId"), n = z(t, "previousMemberId");
410
+ if (!e) return null;
411
+ let i = K(e, r);
412
+ return n ? `輪到:${i}(前一位:${K(n, r)})` : `輪到:${i}`;
413
+ }
379
414
  if (e.eventType === "TASK_CREATED") {
380
- let e = V(t, "assigneeMemberId"), n = V(t, "originalAssigneeMemberId");
381
- if (!e) {
382
- let e = Xe(t, "candidateMemberIds");
415
+ let e = B(t, "sequentialCandidateMemberIds");
416
+ if (e.length) return `簽核順序:${e.map((e) => K(e, r)).join(" → ")}`;
417
+ let n = z(t, "assigneeMemberId"), i = z(t, "originalAssigneeMemberId");
418
+ if (!n) {
419
+ let e = B(t, "candidateMemberIds");
383
420
  return e.length ? `候選簽核人:${e.map((e) => K(e, r)).join("、")}` : null;
384
421
  }
385
- let i = K(e, r), a = K(n, r);
386
- return n && n !== e ? `待簽人:${i}(原簽核人:${a})` : `待簽人:${i}`;
422
+ let a = K(n, r), o = K(i, r);
423
+ return i && i !== n ? `待簽人:${a}(原簽核人:${o})` : `待簽人:${a}`;
387
424
  }
388
425
  if (e.eventType === "TASK_DECIDED") {
389
- let e = V(t, "action"), n = V(t, "comment"), i = e ? `決議:${rt(e)}` : null, a = V(t, "transferToMemberId");
390
- return e === "REJECTED" && n ? [i, `拒絕原因:${n}`].filter(H).join(" · ") : e === "APPROVED" && n ? [i, `同意說明:${n}`].filter(H).join(" · ") : e === "TRANSFERRED" ? [i, `轉派給:${K(a, r)}`].filter(H).join(" · ") : i;
426
+ let e = z(t, "action"), n = z(t, "comment"), i = e ? `決議:${W(e)}` : null, a = z(t, "transferToMemberId");
427
+ return e === "REJECTED" && n ? [i, `拒絕原因:${n}`].filter(V).join(" · ") : e === "APPROVED" && n ? [i, `同意說明:${n}`].filter(V).join(" · ") : e === "TRANSFERRED" ? [i, `轉派給:${K(a, r)}`].filter(V).join(" · ") : i;
391
428
  }
392
429
  if (e.eventType === "TOKEN_ADVANCED") {
393
- let e = V(t, "action");
394
- if (e) return `流程結果:${rt(e)}`;
395
- let r = Ze(t, "arrivedCount"), i = Ze(t, "requiredCount");
430
+ let e = z(t, "action");
431
+ if (e) return `流程結果:${W(e)}`;
432
+ let r = tt(t, "arrivedCount"), i = tt(t, "requiredCount");
396
433
  if (r !== null && i !== null) return `等待匯合:${r}/${i}`;
397
- let a = V(t, "fromNodeId"), o = V(t, "toNodeId");
398
- if (a && o) return `由 ${it(a, n)} 前進至 ${it(o, n)}`;
434
+ let a = z(t, "fromNodeId"), o = z(t, "toNodeId");
435
+ if (a && o) return `由 ${st(a, n)} 前進至 ${st(o, n)}`;
399
436
  }
400
437
  if (e.eventType === "ENGINE_PROCESS_REQUESTED") {
401
- let e = V(t, "state");
402
- return e ? `案件狀態:${tt(e)}` : null;
438
+ let e = z(t, "state");
439
+ return e ? `案件狀態:${at(e)}` : null;
403
440
  }
404
441
  return null;
405
442
  }
406
- function Q(e, t, n, r, i, a, o) {
407
- if (e.eventType !== "TASK_DECIDED") return [J(St(e, t, n, o))].filter(Y);
408
- let s = e.taskId ? r.get(e.taskId) : null, c = V(t, "action") ?? s?.action ?? null, l = V(t, "comment") ?? s?.comment ?? null, u = V(t, "transferToMemberId") ?? s?.transferToMemberId ?? null, d = V(t, "signatureId") ?? s?.signatureId ?? null, f = d ? i.get(d) : null;
443
+ function Dt(e, t, n, r, i, a, o) {
444
+ if (e.eventType !== "TASK_DECIDED") return [J(Et(e, t, n, o))].filter(Y);
445
+ let s = e.taskId ? r.get(e.taskId) : null, c = z(t, "action") ?? s?.action ?? null, l = z(t, "comment") ?? s?.comment ?? null, u = z(t, "transferToMemberId") ?? s?.transferToMemberId ?? null, d = z(t, "signatureId") ?? s?.signatureId ?? null, f = d ? i.get(d) : null;
409
446
  return [
410
- J(c ? `決議:${rt(c)}` : null),
411
- c === "REJECTED" ? ft("拒絕原因", l ?? "-", "danger") : null,
412
- c === "APPROVED" ? ft("同意說明", l) : null,
413
- c === "RETURNED" ? ft("退回說明", l ?? "-") : null,
447
+ J(c ? `決議:${W(c)}` : null),
448
+ c === "REJECTED" ? ht("拒絕原因", l ?? "-", "danger") : null,
449
+ c === "APPROVED" ? ht("同意說明", l) : null,
450
+ c === "RETURNED" ? ht("退回說明", l ?? "-") : null,
414
451
  c === "TRANSFERRED" ? J(`轉派給:${K(u, o)}`) : null,
415
- c === "TRANSFERRED" ? ft("轉派說明", l ?? "-") : null,
416
- f ? J(a?.valid ? `簽章:已驗證(${et(f.signedPayloadHash)})` : `簽章:待檢查(${et(f.signedPayloadHash)})`) : null
452
+ c === "TRANSFERRED" ? ht("轉派說明", l ?? "-") : null,
453
+ f ? J(a?.valid ? `簽章:已驗證(${it(f.signedPayloadHash)})` : `簽章:待檢查(${it(f.signedPayloadHash)})`) : null
417
454
  ].filter(Y);
418
455
  }
419
- function Ct(e, t, n, r, i) {
456
+ function Ot(e, t, n, r, i) {
420
457
  if (e.type === "startEvent" || i.has(e.id)) return !1;
421
458
  if (r === "REJECTED") return !0;
422
- let a = jt(e, t, n, r);
459
+ let a = It(e, t, n, r);
423
460
  return a.tone === "neutral" || a.tone === "waiting";
424
461
  }
425
- function wt(e, t, n, r, i) {
462
+ function $(e, t, n, r, i) {
426
463
  if (r !== "RUNNING" && r !== "REJECTED") return [];
427
- let a = e.nodes.filter((e) => Ct(e, t, n, r, i)), o = Tt(e, a, t, n, i), s = new Map(e.nodes.map((e, t) => [e.id, t]));
464
+ let a = e.nodes.filter((e) => Ot(e, t, n, r, i)), o = kt(e, a, t, n, i), s = new Map(e.nodes.map((e, t) => [e.id, t]));
428
465
  return a.filter((e) => o.has(e.id)).sort((e, t) => {
429
466
  let n = o.get(e.id) ?? 0, r = o.get(t.id) ?? 0;
430
467
  return n === r ? e.position.x === t.position.x ? e.position.y === t.position.y ? (s.get(e.id) ?? 0) - (s.get(t.id) ?? 0) : e.position.y - t.position.y : e.position.x - t.position.x : n - r;
431
468
  });
432
469
  }
433
- function Tt(e, t, n, r, i) {
470
+ function kt(e, t, n, r, i) {
434
471
  let a = new Set(t.map((e) => e.id)), o = e.edges.reduce((e, t) => {
435
472
  let n = [...e.get(t.source) ?? [], t.target];
436
473
  return new Map(e).set(t.source, n);
437
474
  }, /* @__PURE__ */ new Map());
438
- return Et(e, n, r, i).reduce((e, t) => Ot(e, $(t, o, a)), /* @__PURE__ */ new Map());
475
+ return At(e, n, r, i).reduce((e, t) => Nt(e, jt(t, o, a)), /* @__PURE__ */ new Map());
439
476
  }
440
- function Et(e, t, n, r) {
441
- let i = n.filter((e) => e.status === "ACTIVE" || e.status === "WAITING").map((e) => e.currentNodeId), a = t.filter($e).map((e) => e.nodeId), o = e.nodes.filter((e) => r.has(e.id)).map((e) => e.id), s = [.../* @__PURE__ */ new Set([
477
+ function At(e, t, n, r) {
478
+ let i = n.filter((e) => e.status === "ACTIVE" || e.status === "WAITING").map((e) => e.currentNodeId), a = t.filter(nt).map((e) => e.nodeId), o = e.nodes.filter((e) => r.has(e.id)).map((e) => e.id), s = [.../* @__PURE__ */ new Set([
442
479
  ...i,
443
480
  ...a,
444
481
  ...o
445
482
  ])], c = e.nodes.filter((e) => e.type === "startEvent").map((e) => e.id);
446
483
  return s.length > 0 ? s : c;
447
484
  }
448
- function $(e, t, n) {
449
- return Dt([{
485
+ function jt(e, t, n) {
486
+ return Mt([{
450
487
  distance: 0,
451
488
  nodeId: e
452
489
  }], t, n);
453
490
  }
454
- function Dt(e, t, n, r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map()) {
491
+ function Mt(e, t, n, r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map()) {
455
492
  let [a, ...o] = e;
456
493
  if (!a) return i;
457
- if (r.has(a.nodeId)) return Dt(o, t, n, r, i);
494
+ if (r.has(a.nodeId)) return Mt(o, t, n, r, i);
458
495
  let s = new Set(r).add(a.nodeId), c = n.has(a.nodeId) ? new Map(i).set(a.nodeId, Math.min(i.get(a.nodeId) ?? a.distance, a.distance)) : i;
459
- return Dt([...o, ...(t.get(a.nodeId) ?? []).map((e) => ({
496
+ return Mt([...o, ...(t.get(a.nodeId) ?? []).map((e) => ({
460
497
  distance: a.distance + 1,
461
498
  nodeId: e
462
499
  }))], t, n, s, c);
463
500
  }
464
- function Ot(e, t) {
501
+ function Nt(e, t) {
465
502
  return [...t.entries()].reduce((e, [t, n]) => new Map(e).set(t, Math.min(e.get(t) ?? n, n)), e);
466
503
  }
467
- function kt(e) {
504
+ function Pt(e) {
468
505
  return e.type === "userTask" ? `未來簽核:${e.data.label}` : e.type === "serviceTask" ? `未來知會:${e.data.label}` : e.type === "exclusiveGateway" ? `未來分流:${e.data.label}` : e.type === "parallelGateway" ? `未來匯合:${e.data.label}` : e.type === "endEvent" ? `流程完成:${e.data.label}` : `未來節點:${e.data.label}`;
469
506
  }
470
- function At(e, t, n, r, i, a, o, s, c) {
471
- let l = e.filter(ht).map((e) => {
472
- let t = yt(e), n = e.nodeId ? it(e.nodeId, r) : null;
507
+ function Ft(e, t, n, r, i, a, o, s, c) {
508
+ let l = e.filter(X).map((e) => {
509
+ let t = Q(e), n = e.nodeId ? st(e.nodeId, r) : null;
473
510
  return {
474
511
  descriptionParts: [
475
512
  J(n ? `節點:${n}` : "節點:全流程"),
476
- pt("操作者", e.actorMemberId, a, "系統"),
477
- J(`時間:${xt(e.createdAt)}`),
478
- ...Q(e, t, r, o, s, c, a)
513
+ gt("操作者", e.actorMemberId, a, "系統"),
514
+ J(`時間:${Tt(e.createdAt)}`),
515
+ ...Dt(e, t, r, o, s, c, a)
479
516
  ].filter(Y),
480
- error: bt(e, t),
517
+ error: wt(e, t),
481
518
  id: e.id,
482
- title: Z(e.eventType, t)
519
+ title: Ct(e.eventType, t)
483
520
  };
484
- }), u = t.filter($e).map((e) => ({
521
+ }), u = t.filter(nt).map((e) => ({
485
522
  descriptionParts: [
486
- J(`節點:${it(e.nodeId, r)}`),
487
- pt("處理者", e.assigneeMemberId, a, "未指定"),
488
- J(`建立時間:${xt(e.createdAt)}`)
523
+ J(`節點:${st(e.nodeId, r)}`),
524
+ gt("處理者", e.assigneeMemberId, a, "未指定"),
525
+ J(`建立時間:${Tt(e.createdAt)}`)
489
526
  ].filter(Y),
490
527
  error: !1,
491
528
  id: `pending-task-${e.id}`,
492
529
  title: e.status === "IN_PROGRESS" ? "簽核處理中" : "等待簽核處理"
493
- })), d = new Set([...e.filter(ht).map((e) => e.nodeId), ...t.map((e) => e.nodeId)].filter(H)), f = r ? wt(r, t, n, i, d).map((e) => ({
530
+ })), d = new Set([...e.filter(X).map((e) => e.nodeId), ...t.map((e) => e.nodeId)].filter(V)), f = r ? $(r, t, n, i, d).map((e) => ({
494
531
  descriptionParts: [J(`${G(e.type)} · 尚未抵達`)].filter(Y),
495
532
  error: !1,
496
533
  forcePending: !0,
497
534
  id: `future-node-${e.id}`,
498
- title: kt(e)
535
+ title: Pt(e)
499
536
  })) : [];
500
537
  return [
501
538
  ...l,
@@ -503,18 +540,18 @@ function At(e, t, n, r, i, a, o, s, c) {
503
540
  ...f
504
541
  ];
505
542
  }
506
- function jt(e, t, n, r) {
543
+ function It(e, t, n, r) {
507
544
  let i = t.filter((t) => t.nodeId === e.id), a = i.find((e) => e.status === "PENDING" || e.status === "IN_PROGRESS"), o = i.find((e) => e.status === "CANCELLED"), s = i.find((e) => e.status === "COMPLETED"), c = n.filter((t) => t.currentNodeId === e.id), l = c.find((e) => e.status === "ACTIVE"), u = c.find((e) => e.status === "WAITING");
508
545
  return a ? {
509
- secondaryLabel: `處理者 ${at(a)}`,
546
+ secondaryLabel: `處理者 ${ct(a)}`,
510
547
  statusLabel: "待處理",
511
548
  tone: "current"
512
549
  } : o ? {
513
- secondaryLabel: `已取消 ${at(o)}`,
550
+ secondaryLabel: `已取消 ${ct(o)}`,
514
551
  statusLabel: "已取消",
515
552
  tone: "cancelled"
516
553
  } : s ? {
517
- secondaryLabel: `已完成 ${at(s)}`,
554
+ secondaryLabel: `已完成 ${ct(s)}`,
518
555
  statusLabel: "已完成",
519
556
  tone: "completed"
520
557
  } : l ? {
@@ -541,32 +578,35 @@ function jt(e, t, n, r) {
541
578
  }
542
579
  //#endregion
543
580
  //#region src/views/instances/detail/sections/container-helpers.ts
544
- async function Mt({ activityLogs: e, adhocDirectives: t = [], tasks: n }) {
545
- let r = [...new Set([
581
+ async function Lt({ activityLogs: e, adhocDirectives: t = [], instance: n, tasks: r }) {
582
+ let i = [...new Set([
583
+ n?.initiatorMemberId ?? null,
584
+ n?.submittedByMemberId ?? null,
546
585
  ...e.map((e) => e.actorMemberId),
547
- ...n.map((e) => e.assigneeMemberId),
548
- ...n.map((e) => e.originalAssigneeMemberId),
549
- ...n.flatMap((e) => e.candidateMemberIds),
550
- ...n.flatMap((e) => Ye(e.delegationChainJson).flatMap((e) => [e.from, e.to])),
551
- ...t.flatMap((e) => [e.createdByMemberId, ...Nt(e.targetValueJson)])
552
- ].filter(H))];
586
+ ...e.flatMap(yt),
587
+ ...r.map((e) => e.assigneeMemberId),
588
+ ...r.map((e) => e.originalAssigneeMemberId),
589
+ ...r.flatMap((e) => e.candidateMemberIds),
590
+ ...r.flatMap((e) => et(e.delegationChainJson).flatMap((e) => [e.from, e.to])),
591
+ ...t.flatMap((e) => [e.createdByMemberId, ...Rt(e.targetValueJson)])
592
+ ].filter(V))];
553
593
  try {
554
- return await _e(r);
594
+ return await be(i);
555
595
  } catch {
556
596
  return [];
557
597
  }
558
598
  }
559
- function Nt(e) {
599
+ function Rt(e) {
560
600
  try {
561
601
  return (JSON.parse(e).memberIds ?? []).filter((e) => typeof e == "string");
562
602
  } catch {
563
603
  return [];
564
604
  }
565
605
  }
566
- async function Pt(e) {
567
- return (await Promise.all(e.map((e) => O(e.id)))).flat();
606
+ async function zt(e) {
607
+ return (await Promise.all(e.map((e) => fe(e.id)))).flat();
568
608
  }
569
- function Ft(e) {
609
+ function Bt(e) {
570
610
  return e.reduce((e, t) => {
571
611
  let n = e.get(t.taskId), r = !n || new Date(t.decidedAt).getTime() > new Date(n.decidedAt).getTime() ? t : n;
572
612
  return new Map(e).set(t.taskId, r);
@@ -574,29 +614,29 @@ function Ft(e) {
574
614
  }
575
615
  //#endregion
576
616
  //#region src/views/instances/detail/sections/InstanceFormSection.tsx
577
- var It = {
617
+ var Vt = {
578
618
  display: "grid",
579
619
  gap: 16
580
- }, Lt = {
620
+ }, Ht = {
581
621
  display: "flex",
582
622
  flexWrap: "wrap",
583
623
  gap: 8
584
624
  };
585
- function Rt({ canResubmitInstance: e, deciding: t, error: n, instance: r, loading: i, onDataSourceStateChange: o, onResubmitFormChange: s, onResubmitInstance: c, onUploadAttachment: l, resubmitFormData: u, resubmitFormErrors: d }) {
586
- return /* @__PURE__ */ E("div", {
587
- style: It,
625
+ function Ut({ canResubmitInstance: e, deciding: t, error: n, instance: r, loading: i, onDataSourceStateChange: a, onResubmitFormChange: s, onResubmitInstance: c, onUploadAttachment: l, resubmitFormData: u, resubmitFormErrors: d }) {
626
+ return /* @__PURE__ */ T("div", {
627
+ style: Vt,
588
628
  children: [
589
- n ? /* @__PURE__ */ T(C, {
629
+ n ? /* @__PURE__ */ w(S, {
590
630
  color: "text-error",
591
631
  variant: "body",
592
632
  children: n
593
633
  }) : null,
594
- i ? /* @__PURE__ */ T(C, {
634
+ i ? /* @__PURE__ */ w(S, {
595
635
  color: "text-neutral",
596
636
  variant: "body",
597
637
  children: "載入中..."
598
638
  }) : null,
599
- r?.formDefinitionSnapshot.schema && r.formDefinitionSnapshot.uiSchema ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(a, {
639
+ r?.formDefinitionSnapshot.schema && r.formDefinitionSnapshot.uiSchema ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(o, {
600
640
  dataSourceContext: e ? {
601
641
  instanceId: r.id,
602
642
  kind: "runtime"
@@ -606,24 +646,24 @@ function Rt({ canResubmitInstance: e, deciding: t, error: n, instance: r, loadin
606
646
  onChange: (e) => {
607
647
  s(e);
608
648
  },
609
- onDataSourceStateChange: o,
649
+ onDataSourceStateChange: a,
610
650
  onUploadAttachment: e ? l : void 0,
611
651
  optionSnapshots: r.formDataOptionSnapshot,
612
652
  readonly: !e,
613
653
  schema: r.formDefinitionSnapshot.schema,
614
654
  uiSchema: r.formDefinitionSnapshot.uiSchema,
615
655
  value: e ? u : r.formData
616
- }), e ? /* @__PURE__ */ T("div", {
617
- style: Lt,
618
- children: /* @__PURE__ */ T(g, {
656
+ }), e ? /* @__PURE__ */ w("div", {
657
+ style: Ht,
658
+ children: /* @__PURE__ */ w(g, {
619
659
  disabled: t,
620
- icon: Ae,
660
+ icon: Me,
621
661
  iconType: "leading",
622
662
  onClick: c,
623
663
  variant: "base-primary",
624
664
  children: "重新送出"
625
665
  })
626
- }) : null] }) : /* @__PURE__ */ T(C, {
666
+ }) : null] }) : /* @__PURE__ */ w(S, {
627
667
  color: "text-neutral",
628
668
  variant: "body",
629
669
  children: "此案件沒有可顯示的表單快照。"
@@ -633,20 +673,20 @@ function Rt({ canResubmitInstance: e, deciding: t, error: n, instance: r, loadin
633
673
  }
634
674
  //#endregion
635
675
  //#region src/views/instances/detail/sections/InstanceAttachmentsSection.tsx
636
- var zt = {
676
+ var Wt = {
637
677
  display: "grid",
638
678
  gap: 16
639
679
  };
640
- function Bt({ attachments: e, onDownload: n, onPreview: r }) {
641
- let i = d(() => e.map((e) => ({
680
+ function Gt({ attachments: e, onDownload: n, onPreview: r }) {
681
+ let i = f(() => e.map((e) => ({
642
682
  attachment: e,
643
683
  createdAt: e.createdAt,
644
684
  filename: e.filename,
645
685
  id: e.id,
646
686
  key: e.id,
647
687
  mimeType: e.mimeType,
648
- sizeLabel: W(Number(e.sizeBytes))
649
- })), [e]), a = d(() => [
688
+ sizeLabel: rt(Number(e.sizeBytes))
689
+ })), [e]), a = f(() => [
650
690
  {
651
691
  dataIndex: "filename",
652
692
  key: "filename",
@@ -667,7 +707,7 @@ function Bt({ attachments: e, onDownload: n, onPreview: r }) {
667
707
  },
668
708
  {
669
709
  key: "createdAt",
670
- render: (e) => /* @__PURE__ */ T(C, {
710
+ render: (e) => /* @__PURE__ */ w(S, {
671
711
  component: "span",
672
712
  variant: "body",
673
713
  children: t(e.createdAt)
@@ -675,16 +715,16 @@ function Bt({ attachments: e, onDownload: n, onPreview: r }) {
675
715
  title: "上傳時間",
676
716
  width: 220
677
717
  }
678
- ], []), o = d(() => ({
718
+ ], []), o = f(() => ({
679
719
  render: (e) => [...e.mimeType === "application/pdf" ? [{
680
- icon: De,
720
+ icon: O,
681
721
  iconType: "leading",
682
722
  name: "預覽",
683
723
  onClick: () => {
684
724
  r(e.attachment);
685
725
  }
686
726
  }] : [], {
687
- icon: Ee,
727
+ icon: ke,
688
728
  iconType: "leading",
689
729
  name: "下載",
690
730
  onClick: () => {
@@ -694,18 +734,18 @@ function Bt({ attachments: e, onDownload: n, onPreview: r }) {
694
734
  variant: "base-secondary",
695
735
  width: 160
696
736
  }), [n, r]);
697
- return /* @__PURE__ */ E("div", {
698
- style: zt,
699
- children: [/* @__PURE__ */ T(C, {
737
+ return /* @__PURE__ */ T("div", {
738
+ style: Wt,
739
+ children: [/* @__PURE__ */ w(S, {
700
740
  component: "h2",
701
741
  variant: "h3",
702
742
  children: "附件"
703
- }), i.length > 0 ? /* @__PURE__ */ T(S, {
743
+ }), i.length > 0 ? /* @__PURE__ */ w(re, {
704
744
  actions: o,
705
745
  columns: a,
706
746
  dataSource: i,
707
747
  fullWidth: !0
708
- }) : /* @__PURE__ */ T(C, {
748
+ }) : /* @__PURE__ */ w(S, {
709
749
  color: "text-neutral",
710
750
  variant: "body",
711
751
  children: "此案件沒有附件。"
@@ -714,55 +754,58 @@ function Bt({ attachments: e, onDownload: n, onPreview: r }) {
714
754
  }
715
755
  //#endregion
716
756
  //#region src/views/instances/detail/sections/InstanceTasksSection.tsx
717
- var Vt = {
757
+ var Kt = {
718
758
  display: "grid",
719
759
  gap: 12,
720
760
  width: "100%"
721
- }, Ht = {
761
+ }, qt = {
722
762
  minWidth: "100%",
723
763
  width: "100%"
724
- }, Ut = {
764
+ }, Jt = {
725
765
  display: "grid",
726
766
  gap: 12,
727
767
  width: "100%"
728
- }, Wt = { marginTop: 12 }, Gt = { marginTop: 24 };
729
- function Kt(e) {
768
+ }, Yt = { marginTop: 12 }, Xt = { marginTop: 24 };
769
+ function Zt(e) {
730
770
  e && (e.style.width = "100%");
731
771
  }
732
- var qt = {
772
+ var Qt = {
733
773
  COMPLETION_NOTIFY: "結案通知",
734
774
  COUNTERSIGN: "臨時會簽",
735
775
  PRE_APPROVAL: "臨時加簽",
736
776
  STAGE_NOTIFY: "階段完成通知"
737
- }, Jt = {
777
+ }, $t = {
738
778
  COMPLETION_NOTIFY: "本張單到達結案狀態(核准 / 拒絕 / 取消)後,通知指定對象。",
739
779
  COUNTERSIGN: "指定對象會併入下一層簽核,下一層需所有人都完成才會繼續。",
740
780
  PRE_APPROVAL: "指定對象需先完成加簽,本階段才會往下一層繼續。",
741
781
  STAGE_NOTIFY: "本階段完成後(不論通過與否)通知指定對象。"
742
- }, Yt = [{
782
+ }, en = [{
743
783
  id: "REJECT_INSTANCE",
744
784
  name: "加簽拒絕時整單駁回"
745
785
  }, {
746
786
  id: "RETURN_TO_ORIGIN",
747
787
  name: "加簽拒絕時退回給我重新處理"
748
- }], Xt = [{
788
+ }], tn = [{
749
789
  id: "MEMBER",
750
790
  name: "指定成員"
751
791
  }, {
752
792
  id: "WEBHOOK",
753
793
  name: "Webhook"
754
- }], Zt = s(function({ adhocDirectives: e, currentMemberId: r, instance: i, memberProfilesById: a, onChanged: o, tasks: s }, c) {
755
- let [l, f] = p(!1), [h, v] = p(null), [y, te] = p(""), [x, re] = p(!1), [ae, ce] = p(""), [le, O] = p(null), [ue, de] = p(!1), [fe, pe] = p(""), [me, _e] = p(!1), [ve, ye] = p(null), [xe, Se] = p(""), [Ce, k] = p(null), [we, Te] = p(!1), [Ee, De] = p([]), [Oe, ke] = p(!1), [Ae, A] = p(""), [je, Me] = p([]), [Ne, Pe] = p(!1), [Fe, Ie] = p([]), [Le, Re] = p(!1), [j, ze] = p("COUNTERSIGN"), [Be, Ve] = p("REJECT_INSTANCE"), [He, Ue] = p(!1), [M, We] = p("MEMBER"), [N, P] = p(""), F = ae.trim(), Ge = fe.trim(), Ke = xe.trim(), I = d(() => s.find((e) => ot(e, r) && (e.status === "PENDING" || e.status === "IN_PROGRESS")) ?? null, [r, s]), L = d(() => I && i ? i.workflowSnapshot.nodes.find((e) => e.id === I.nodeId) ?? null : null, [I, i]), qe = d(() => L && i ? st(i.workflowSnapshot, L) : [], [L, i]), R = L?.type === "userTask" && L.data.returnBehavior.allowReturn, Je = L?.type === "userTask" && L.data.allowReject !== !1, z = L?.type === "userTask" && L.data.allowTransfer !== !1, B = L?.type === "userTask" && L.data.returnBehavior.requireComment === !0, Ye = L?.type === "userTask" && L.data.allowAddSigner, V = d(() => e.filter((e) => e.status === "PENDING"), [e]), Xe = qe.find((e) => e.id === ve) ?? qe[0] ?? null, Ze = d(() => s.map((e) => ({
794
+ }], nn = c(function({ adhocDirectives: e, currentMemberId: r, instance: a, memberProfilesById: o, onChanged: s, tasks: c }, l) {
795
+ let [u, p] = m(!1), [h, v] = m(null), [y, ne] = m(""), [x, ae] = m(!1), [oe, ue] = m(""), [de, fe] = m(null), [pe, me] = m(!1), [he, ge] = m(""), [_e, be] = m(!1), [xe, Se] = m(null), [we, Te] = m(""), [Ee, D] = m(null), [De, Oe] = m(!1), [ke, O] = m([]), [Ae, je] = m(!1), [Me, Ne] = m(""), [Pe, Fe] = m([]), [Ie, Le] = m(!1), [Re, ze] = m([]), [Be, Ve] = m(!1), [k, He] = m("COUNTERSIGN"), [Ue, A] = m("REJECT_INSTANCE"), [We, j] = m(!1), [Ge, Ke] = m("MEMBER"), [M, N] = m(""), qe = oe.trim(), Je = he.trim(), Ye = we.trim(), P = f(() => c.find((e) => lt(e, r) && (e.status === "PENDING" || e.status === "IN_PROGRESS")) ?? null, [r, c]), F = f(() => P && a ? a.workflowSnapshot.nodes.find((e) => e.id === P.nodeId) ?? null : null, [P, a]), I = f(() => F && a ? ut(a.workflowSnapshot, F) : [], [F, a]), Xe = F?.type === "userTask" && F.data.returnBehavior.allowReturn, Ze = F?.type === "userTask" && F.data.allowReject !== !1, L = F?.type === "userTask" && F.data.allowTransfer !== !1, R = F?.type === "userTask" && F.data.returnBehavior.requireComment === !0, Qe = F?.type === "userTask" && F.data.allowAddSigner, $e = f(() => e.filter((e) => e.status === "PENDING"), [e]), et = I.find((e) => e.id === xe) ?? I[0] ?? null, z = f(() => c.map((e) => ({
756
796
  ...e,
757
- assigneeLabel: at(e, a),
797
+ assigneeLabel: ct(e, o),
758
798
  key: e.id,
759
- nodeLabel: `${it(e.nodeId, i?.workflowSnapshot ?? null)}${e.isAdhoc ? e.adhocType === "COUNTERSIGN" ? "(臨時會簽)" : "(臨時加簽)" : ""}`,
760
- statusLabel: nt(e.status)
799
+ nodeLabel: i({
800
+ ...e,
801
+ nodeLabel: st(e.nodeId, a?.workflowSnapshot ?? null)
802
+ }),
803
+ statusLabel: ot(e.status)
761
804
  })), [
762
- i,
763
805
  a,
764
- s
765
- ]), H = d(() => [
806
+ o,
807
+ c
808
+ ]), B = f(() => [
766
809
  {
767
810
  dataIndex: "nodeLabel",
768
811
  key: "nodeLabel",
@@ -772,7 +815,7 @@ var qt = {
772
815
  {
773
816
  key: "assigneeMemberId",
774
817
  title: "處理者",
775
- render: (e) => /* @__PURE__ */ T(C, {
818
+ render: (e) => /* @__PURE__ */ w(S, {
776
819
  component: "span",
777
820
  variant: "body",
778
821
  children: e.assigneeLabel
@@ -787,7 +830,7 @@ var qt = {
787
830
  },
788
831
  {
789
832
  key: "createdAt",
790
- render: (e) => /* @__PURE__ */ T(C, {
833
+ render: (e) => /* @__PURE__ */ w(S, {
791
834
  component: "span",
792
835
  variant: "body",
793
836
  children: t(e.createdAt)
@@ -795,13 +838,13 @@ var qt = {
795
838
  title: "建立時間",
796
839
  width: 220
797
840
  }
798
- ], []), Qe = d(() => V.map((e) => ({
841
+ ], []), tt = f(() => $e.map((e) => ({
799
842
  ...e,
800
- createdByLabel: K(e.createdByMemberId, a),
843
+ createdByLabel: K(e.createdByMemberId, o),
801
844
  key: e.id,
802
- targetLabel: Qt(e, a),
803
- typeLabel: qt[e.type]
804
- })), [a, V]), $e = d(() => [
845
+ targetLabel: rn(e, o),
846
+ typeLabel: Qt[e.type]
847
+ })), [o, $e]), V = f(() => [
805
848
  {
806
849
  dataIndex: "typeLabel",
807
850
  key: "typeLabel",
@@ -810,7 +853,7 @@ var qt = {
810
853
  },
811
854
  {
812
855
  key: "targetLabel",
813
- render: (e) => /* @__PURE__ */ T(C, {
856
+ render: (e) => /* @__PURE__ */ w(S, {
814
857
  component: "span",
815
858
  variant: "body",
816
859
  children: e.targetLabel
@@ -820,7 +863,7 @@ var qt = {
820
863
  },
821
864
  {
822
865
  key: "createdByLabel",
823
- render: (e) => /* @__PURE__ */ T(C, {
866
+ render: (e) => /* @__PURE__ */ w(S, {
824
867
  component: "span",
825
868
  variant: "body",
826
869
  children: e.createdByLabel
@@ -830,7 +873,7 @@ var qt = {
830
873
  },
831
874
  {
832
875
  key: "createdAt",
833
- render: (e) => /* @__PURE__ */ T(C, {
876
+ render: (e) => /* @__PURE__ */ w(S, {
834
877
  component: "span",
835
878
  variant: "body",
836
879
  children: t(e.createdAt)
@@ -840,336 +883,336 @@ var qt = {
840
883
  },
841
884
  {
842
885
  key: "actions",
843
- render: (e) => e.createdByMemberId === r ? /* @__PURE__ */ T(g, {
844
- disabled: He,
845
- onClick: () => void St(e.id),
886
+ render: (e) => e.createdByMemberId === r ? /* @__PURE__ */ w(g, {
887
+ disabled: We,
888
+ onClick: () => void Ct(e.id),
846
889
  size: "minor",
847
890
  variant: "destructive-secondary",
848
891
  children: "撤回"
849
- }) : /* @__PURE__ */ T(w, {}),
892
+ }) : /* @__PURE__ */ w(C, {}),
850
893
  title: "操作",
851
894
  width: 100
852
895
  }
853
- ], [He, r]);
854
- async function W({ action: e, comment: t, returnToNodeId: n = null, transferToMemberId: i = null }) {
855
- if (!r || !I || e === "REJECTED" && !Je || e === "TRANSFERRED" && !z) return !1;
856
- f(!0), v(null);
896
+ ], [We, r]);
897
+ async function H({ action: e, comment: t, returnToNodeId: n = null, transferToMemberId: i = null }) {
898
+ if (!r || !P || e === "REJECTED" && !Ze || e === "TRANSFERRED" && !L) return !1;
899
+ p(!0), v(null);
857
900
  try {
858
- await se({
901
+ await le({
859
902
  action: e,
860
903
  comment: t,
861
904
  decidedByMemberId: r,
862
905
  returnToNodeId: n,
863
- taskId: I.id,
906
+ taskId: P.id,
864
907
  transferToMemberId: i
865
- }), de(!1), _e(!1), ke(!1), ce(""), pe(""), Se(""), k(null), ye(null), O(null);
908
+ }), me(!1), be(!1), je(!1), ue(""), ge(""), Te(""), D(null), Se(null), fe(null);
866
909
  } catch (e) {
867
- return v(U(e)), f(!1), !1;
910
+ return v(U(e)), p(!1), !1;
868
911
  }
869
912
  try {
870
- await o();
913
+ await s();
871
914
  } catch (e) {
872
915
  v(U(e));
873
916
  } finally {
874
- f(!1);
917
+ p(!1);
875
918
  }
876
919
  return !0;
877
920
  }
878
- function et() {
879
- r && I && (v(null), te(""), re(!0));
921
+ function nt() {
922
+ r && P && (v(null), ne(""), ae(!0));
880
923
  }
881
- function tt() {
882
- l || (re(!1), te(""));
924
+ function rt() {
925
+ u || (ae(!1), ne(""));
883
926
  }
884
- async function rt() {
885
- l || await W({
927
+ async function it() {
928
+ u || await H({
886
929
  action: "APPROVED",
887
930
  comment: y.trim() || null
888
- }) && (re(!1), te(""));
931
+ }) && (ae(!1), ne(""));
889
932
  }
890
- function G() {
891
- Je && (ce(""), O(null), de(!0));
933
+ function at() {
934
+ Ze && (ue(""), fe(null), me(!0));
892
935
  }
893
- function J() {
894
- l || (de(!1), ce(""), O(null));
936
+ function W() {
937
+ u || (me(!1), ue(""), fe(null));
895
938
  }
896
- function ft() {
897
- pe(""), ye(qe[0]?.id ?? null), _e(!0);
939
+ function G() {
940
+ ge(""), Se(I[0]?.id ?? null), be(!0);
898
941
  }
899
- function pt() {
900
- l || (_e(!1), pe(""), ye(null));
942
+ function J() {
943
+ u || (be(!1), ge(""), Se(null));
901
944
  }
902
- function Y() {
903
- z && (Se(""), k(null), ke(!0), ht(""));
945
+ function ht() {
946
+ L && (Te(""), D(null), je(!0), Y(""));
904
947
  }
905
- function mt() {
906
- l || (ke(!1), Se(""), k(null));
948
+ function gt() {
949
+ u || (je(!1), Te(""), D(null));
907
950
  }
908
- async function ht(e) {
909
- Te(!0);
951
+ async function Y(e) {
952
+ Oe(!0);
910
953
  try {
911
- De((await be(e)).filter((e) => e.memberId !== r).map(ct));
954
+ O((await Ce(e)).filter((e) => e.memberId !== r).map(q));
912
955
  } catch (e) {
913
956
  v(U(e));
914
957
  } finally {
915
- Te(!1);
958
+ Oe(!1);
916
959
  }
917
960
  }
918
- async function X() {
919
- if (Je) {
920
- if (!F) {
921
- O("請輸入拒絕原因");
961
+ async function _t() {
962
+ if (Ze) {
963
+ if (!qe) {
964
+ fe("請輸入拒絕原因");
922
965
  return;
923
966
  }
924
- await W({
967
+ await H({
925
968
  action: "REJECTED",
926
- comment: F
969
+ comment: qe
927
970
  });
928
971
  }
929
972
  }
930
- async function gt() {
931
- if (z) {
932
- if (!Ce) {
973
+ async function X() {
974
+ if (L) {
975
+ if (!Ee) {
933
976
  v("請選擇轉派對象");
934
977
  return;
935
978
  }
936
- await W({
979
+ await H({
937
980
  action: "TRANSFERRED",
938
- comment: Ke || null,
939
- transferToMemberId: Ce.id
981
+ comment: Ye || null,
982
+ transferToMemberId: Ee.id
940
983
  });
941
984
  }
942
985
  }
943
- async function _t() {
944
- await W({
986
+ async function vt() {
987
+ await H({
945
988
  action: "RETURNED",
946
- comment: Ge || null,
947
- returnToNodeId: Xe?.id ?? null
989
+ comment: Je || null,
990
+ returnToNodeId: et?.id ?? null
948
991
  });
949
992
  }
950
- function vt() {
951
- A(""), Me([]), Ve("REJECT_INSTANCE"), We("MEMBER"), P("");
993
+ function yt() {
994
+ Ne(""), Fe([]), A("REJECT_INSTANCE"), Ke("MEMBER"), N("");
952
995
  }
953
- function Z(e) {
954
- ze(e), vt(), Re(!0), bt("");
996
+ function bt(e) {
997
+ He(e), yt(), Ve(!0), xt("");
955
998
  }
956
- function yt() {
957
- He || (Re(!1), vt());
999
+ function Z() {
1000
+ We || (Ve(!1), yt());
958
1001
  }
959
- async function bt(e) {
960
- Pe(!0);
1002
+ async function xt(e) {
1003
+ Le(!0);
961
1004
  try {
962
- Ie((await be(e)).map(ct));
1005
+ ze((await Ce(e)).map(q));
963
1006
  } catch (e) {
964
1007
  v(U(e));
965
1008
  } finally {
966
- Pe(!1);
1009
+ Le(!1);
967
1010
  }
968
1011
  }
969
- async function xt() {
970
- if (!I) return;
971
- let e = (j === "STAGE_NOTIFY" || j === "COMPLETION_NOTIFY") && M === "WEBHOOK", t = q({
972
- memberIds: je.map((e) => e.id),
1012
+ async function St() {
1013
+ if (!P) return;
1014
+ let e = (k === "STAGE_NOTIFY" || k === "COMPLETION_NOTIFY") && Ge === "WEBHOOK", t = dt({
1015
+ memberIds: Pe.map((e) => e.id),
973
1016
  useWebhookTarget: e,
974
- webhookUrl: N
1017
+ webhookUrl: M
975
1018
  });
976
1019
  if (!t.valid) {
977
1020
  v(t.error);
978
1021
  return;
979
1022
  }
980
- let { target: n } = t, r = Ae.trim() || null;
981
- Ue(!0), v(null);
1023
+ let { target: n } = t, r = Me.trim() || null;
1024
+ j(!0), v(null);
982
1025
  try {
983
- j === "COUNTERSIGN" ? await he({
1026
+ k === "COUNTERSIGN" ? await ve({
984
1027
  comment: r,
985
1028
  target: n,
986
- taskId: I.id
987
- }) : j === "PRE_APPROVAL" ? await ge({
1029
+ taskId: P.id
1030
+ }) : k === "PRE_APPROVAL" ? await ye({
988
1031
  comment: r,
989
- onReject: Be,
1032
+ onReject: Ue,
990
1033
  target: n,
991
- taskId: I.id
992
- }) : j === "STAGE_NOTIFY" ? await oe({
1034
+ taskId: P.id
1035
+ }) : k === "STAGE_NOTIFY" ? await ce({
993
1036
  target: n,
994
- taskId: I.id
995
- }) : await D({
1037
+ taskId: P.id
1038
+ }) : await se({
996
1039
  target: n,
997
- taskId: I.id
998
- }), Re(!1), vt(), await o();
1040
+ taskId: P.id
1041
+ }), Ve(!1), yt(), await s();
999
1042
  } catch (e) {
1000
1043
  v(U(e));
1001
1044
  } finally {
1002
- Ue(!1);
1045
+ j(!1);
1003
1046
  }
1004
1047
  }
1005
- async function St(e) {
1006
- Ue(!0), v(null);
1048
+ async function Ct(e) {
1049
+ j(!0), v(null);
1007
1050
  try {
1008
- await ie(e), await o();
1051
+ await E(e), await s();
1009
1052
  } catch (e) {
1010
1053
  v(U(e));
1011
1054
  } finally {
1012
- Ue(!1);
1055
+ j(!1);
1013
1056
  }
1014
1057
  }
1015
- u(c, () => ({
1016
- canAddSignerCurrentTask: Ye,
1017
- canRejectCurrentTask: Je,
1018
- canReturnCurrentTask: R,
1019
- canTransferCurrentTask: z,
1020
- deciding: l,
1021
- handleApprove: et,
1022
- hasCurrentTask: I !== null,
1023
- openAdhocModal: Z,
1024
- openRejectModal: G,
1025
- openReturnModal: ft,
1026
- openTransferModal: Y
1058
+ d(l, () => ({
1059
+ canAddSignerCurrentTask: Qe,
1060
+ canRejectCurrentTask: Ze,
1061
+ canReturnCurrentTask: Xe,
1062
+ canTransferCurrentTask: L,
1063
+ deciding: u,
1064
+ handleApprove: nt,
1065
+ hasCurrentTask: P !== null,
1066
+ openAdhocModal: bt,
1067
+ openRejectModal: at,
1068
+ openReturnModal: G,
1069
+ openTransferModal: ht
1027
1070
  }), [
1028
- Ye,
1029
- Je,
1030
- R,
1031
- z,
1071
+ Qe,
1072
+ Ze,
1073
+ Xe,
1074
+ L,
1032
1075
  r,
1033
- I,
1034
- l
1076
+ P,
1077
+ u
1035
1078
  ]);
1036
- let Q = j === "STAGE_NOTIFY" || j === "COMPLETION_NOTIFY", Ct = Q && M === "WEBHOOK" ? !N.trim() : je.length === 0, wt = Yt.find((e) => e.id === Be) ?? Yt[0], Tt = Xt.find((e) => e.id === M) ?? Xt[0];
1037
- return /* @__PURE__ */ E(w, { children: [
1038
- /* @__PURE__ */ T(C, {
1079
+ let Q = k === "STAGE_NOTIFY" || k === "COMPLETION_NOTIFY", wt = Q && Ge === "WEBHOOK" ? !M.trim() : Pe.length === 0, Tt = en.find((e) => e.id === Ue) ?? en[0], Et = tn.find((e) => e.id === Ge) ?? tn[0];
1080
+ return /* @__PURE__ */ T(C, { children: [
1081
+ /* @__PURE__ */ w(S, {
1039
1082
  component: "h2",
1040
1083
  variant: "h3",
1041
1084
  children: "任務"
1042
1085
  }),
1043
- h ? /* @__PURE__ */ T(C, {
1086
+ h ? /* @__PURE__ */ w(S, {
1044
1087
  color: "text-error",
1045
1088
  variant: "body",
1046
1089
  children: h
1047
1090
  }) : null,
1048
- /* @__PURE__ */ T("div", {
1049
- style: Wt,
1050
- children: /* @__PURE__ */ T(S, {
1051
- columns: H,
1052
- dataSource: Ze,
1091
+ /* @__PURE__ */ w("div", {
1092
+ style: Yt,
1093
+ children: /* @__PURE__ */ w(re, {
1094
+ columns: B,
1095
+ dataSource: z,
1053
1096
  fullWidth: !0
1054
1097
  })
1055
1098
  }),
1056
- V.length > 0 ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(C, {
1099
+ $e.length > 0 ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(S, {
1057
1100
  component: "h3",
1058
- style: Gt,
1101
+ style: Xt,
1059
1102
  variant: "h3",
1060
1103
  children: "待生效的臨時設定"
1061
- }), /* @__PURE__ */ T("div", {
1062
- style: Wt,
1063
- children: /* @__PURE__ */ T(S, {
1064
- columns: $e,
1065
- dataSource: Qe,
1104
+ }), /* @__PURE__ */ w("div", {
1105
+ style: Yt,
1106
+ children: /* @__PURE__ */ w(re, {
1107
+ columns: V,
1108
+ dataSource: tt,
1066
1109
  fullWidth: !0
1067
1110
  })
1068
1111
  })] }) : null,
1069
- /* @__PURE__ */ E(_, {
1112
+ /* @__PURE__ */ T(_, {
1070
1113
  cancelText: "取消",
1071
1114
  confirmText: "送出同意",
1072
- loading: l,
1115
+ loading: u,
1073
1116
  modalType: "standard",
1074
- onCancel: tt,
1075
- onClose: tt,
1076
- onConfirm: () => void rt(),
1117
+ onCancel: rt,
1118
+ onClose: rt,
1119
+ onConfirm: () => void it(),
1077
1120
  open: x,
1078
1121
  showModalFooter: !0,
1079
1122
  showModalHeader: !0,
1080
1123
  size: "regular",
1081
1124
  supportingText: "可以留下同意的說明,內容會記錄在簽核歷程;不填也可以直接送出。",
1082
1125
  title: "簽核意見",
1083
- children: [h ? /* @__PURE__ */ T(C, {
1126
+ children: [h ? /* @__PURE__ */ w(S, {
1084
1127
  color: "text-error",
1085
1128
  role: "alert",
1086
1129
  variant: "body",
1087
1130
  children: h
1088
- }) : null, /* @__PURE__ */ T("div", {
1089
- style: Vt,
1090
- children: /* @__PURE__ */ T(n, {
1131
+ }) : null, /* @__PURE__ */ w("div", {
1132
+ style: Kt,
1133
+ children: /* @__PURE__ */ w(n, {
1091
1134
  label: "簽核意見",
1092
1135
  name: "approveComment",
1093
- children: /* @__PURE__ */ T(ne, {
1136
+ children: /* @__PURE__ */ w(ie, {
1094
1137
  autoFocus: !0,
1095
- onChange: (e) => te(e.target.value),
1138
+ onChange: (e) => ne(e.target.value),
1096
1139
  placeholder: "選填,例如補充核准的條件或提醒事項",
1097
- ref: Kt,
1140
+ ref: Zt,
1098
1141
  resize: "vertical",
1099
1142
  rows: 4,
1100
- style: Ht,
1143
+ style: qt,
1101
1144
  value: y
1102
1145
  })
1103
1146
  })
1104
1147
  })]
1105
1148
  }),
1106
- /* @__PURE__ */ T(_, {
1149
+ /* @__PURE__ */ w(_, {
1107
1150
  cancelText: "取消",
1108
1151
  confirmButtonProps: {
1109
- disabled: !F,
1152
+ disabled: !qe,
1110
1153
  variant: "destructive-primary"
1111
1154
  },
1112
1155
  confirmText: "送出拒絕",
1113
- loading: l,
1156
+ loading: u,
1114
1157
  modalStatusType: "error",
1115
1158
  modalType: "standard",
1116
- onCancel: J,
1117
- onClose: J,
1118
- onConfirm: () => void X(),
1119
- open: ue,
1159
+ onCancel: W,
1160
+ onClose: W,
1161
+ onConfirm: () => void _t(),
1162
+ open: pe,
1120
1163
  showModalFooter: !0,
1121
1164
  showModalHeader: !0,
1122
1165
  size: "regular",
1123
1166
  supportingText: "拒絕案件時必須留下原因,供發起人與後續追蹤查看。",
1124
1167
  title: "拒絕原因",
1125
- children: /* @__PURE__ */ E("div", {
1126
- style: Vt,
1127
- children: [/* @__PURE__ */ T(n, {
1168
+ children: /* @__PURE__ */ T("div", {
1169
+ style: Kt,
1170
+ children: [/* @__PURE__ */ w(n, {
1128
1171
  label: "拒絕原因",
1129
1172
  name: "rejectReason",
1130
1173
  required: !0,
1131
- children: /* @__PURE__ */ T(ne, {
1174
+ children: /* @__PURE__ */ w(ie, {
1132
1175
  autoFocus: !0,
1133
1176
  onChange: (e) => {
1134
- ce(e.target.value), O(null);
1177
+ ue(e.target.value), fe(null);
1135
1178
  },
1136
1179
  placeholder: "請說明拒絕原因",
1137
- ref: Kt,
1180
+ ref: Zt,
1138
1181
  resize: "vertical",
1139
1182
  rows: 4,
1140
- style: Ht,
1141
- type: le ? "error" : "default",
1142
- value: ae
1183
+ style: qt,
1184
+ type: de ? "error" : "default",
1185
+ value: oe
1143
1186
  })
1144
- }), le ? /* @__PURE__ */ T(C, {
1187
+ }), de ? /* @__PURE__ */ w(S, {
1145
1188
  color: "text-error",
1146
1189
  variant: "body",
1147
- children: le
1190
+ children: de
1148
1191
  }) : null]
1149
1192
  })
1150
1193
  }),
1151
- /* @__PURE__ */ T(_, {
1194
+ /* @__PURE__ */ w(_, {
1152
1195
  cancelText: "取消",
1153
- confirmButtonProps: { disabled: !Ce },
1196
+ confirmButtonProps: { disabled: !Ee },
1154
1197
  confirmText: "送出轉派",
1155
- loading: l,
1198
+ loading: u,
1156
1199
  modalType: "standard",
1157
- onCancel: mt,
1158
- onClose: mt,
1159
- onConfirm: () => void gt(),
1160
- open: Oe,
1200
+ onCancel: gt,
1201
+ onClose: gt,
1202
+ onConfirm: () => void X(),
1203
+ open: Ae,
1161
1204
  showModalFooter: !0,
1162
1205
  showModalHeader: !0,
1163
1206
  size: "regular",
1164
1207
  supportingText: "轉派後,原任務會保留轉派紀錄,新的待簽任務會指派給指定成員。",
1165
1208
  title: "轉派簽核",
1166
- children: /* @__PURE__ */ E("div", {
1167
- style: Ut,
1168
- children: [/* @__PURE__ */ T(n, {
1209
+ children: /* @__PURE__ */ T("div", {
1210
+ style: Jt,
1211
+ children: [/* @__PURE__ */ w(n, {
1169
1212
  label: "轉派對象",
1170
1213
  name: "transferToMemberId",
1171
1214
  required: !0,
1172
- children: /* @__PURE__ */ T(m, {
1215
+ children: /* @__PURE__ */ w(ee, {
1173
1216
  asyncData: !0,
1174
1217
  disabledOptionsFilter: !0,
1175
1218
  emptyText: "沒有符合的成員",
@@ -1179,147 +1222,147 @@ var qt = {
1179
1222
  name: "transfer-member-search",
1180
1223
  spellCheck: !1
1181
1224
  },
1182
- loading: we,
1225
+ loading: De,
1183
1226
  loadingText: "搜尋成員中...",
1184
1227
  mode: "single",
1185
- onChange: (e) => k(ut(e)),
1186
- onSearch: ht,
1187
- onSearchTextChange: (e) => k(dt(e, Ee)),
1228
+ onChange: (e) => D(pt(e)),
1229
+ onSearch: Y,
1230
+ onSearchTextChange: (e) => D(mt(e, ke)),
1188
1231
  onVisibilityChange: (e) => {
1189
- e && ht("");
1232
+ e && Y("");
1190
1233
  },
1191
- options: [...Ee],
1234
+ options: [...ke],
1192
1235
  placeholder: "搜尋姓名或信箱",
1193
1236
  searchDebounceTime: 300,
1194
- value: Ce
1237
+ value: Ee
1195
1238
  })
1196
- }), /* @__PURE__ */ T(n, {
1239
+ }), /* @__PURE__ */ w(n, {
1197
1240
  label: "轉派說明",
1198
1241
  name: "transferComment",
1199
- children: /* @__PURE__ */ T(ne, {
1200
- onChange: (e) => Se(e.target.value),
1242
+ children: /* @__PURE__ */ w(ie, {
1243
+ onChange: (e) => Te(e.target.value),
1201
1244
  placeholder: "可補充轉派原因",
1202
- ref: Kt,
1245
+ ref: Zt,
1203
1246
  resize: "vertical",
1204
1247
  rows: 4,
1205
- style: Ht,
1206
- value: xe
1248
+ style: qt,
1249
+ value: we
1207
1250
  })
1208
1251
  })]
1209
1252
  })
1210
1253
  }),
1211
- /* @__PURE__ */ T(_, {
1254
+ /* @__PURE__ */ w(_, {
1212
1255
  cancelText: "取消",
1213
- confirmButtonProps: { disabled: !Xe || B && !Ge },
1256
+ confirmButtonProps: { disabled: !et || R && !Je },
1214
1257
  confirmText: "送出退回",
1215
- loading: l,
1258
+ loading: u,
1216
1259
  modalType: "standard",
1217
- onCancel: pt,
1218
- onClose: pt,
1219
- onConfirm: () => void _t(),
1220
- open: me,
1260
+ onCancel: J,
1261
+ onClose: J,
1262
+ onConfirm: () => void vt(),
1263
+ open: _e,
1221
1264
  showModalFooter: !0,
1222
1265
  showModalHeader: !0,
1223
1266
  size: "regular",
1224
1267
  supportingText: "退回後,流程會回到指定節點並等待重新處理。",
1225
1268
  title: "退回簽核",
1226
- children: /* @__PURE__ */ E("div", {
1227
- style: Ut,
1228
- children: [/* @__PURE__ */ T(n, {
1269
+ children: /* @__PURE__ */ T("div", {
1270
+ style: Jt,
1271
+ children: [/* @__PURE__ */ w(n, {
1229
1272
  label: "退回節點",
1230
1273
  name: "returnTargetNodeId",
1231
1274
  required: !0,
1232
- children: /* @__PURE__ */ T(b, {
1275
+ children: /* @__PURE__ */ w(b, {
1233
1276
  clearable: !1,
1234
1277
  fullWidth: !0,
1235
- onChange: (e) => ye(e?.id ?? null),
1236
- options: [...qe],
1278
+ onChange: (e) => Se(e?.id ?? null),
1279
+ options: [...I],
1237
1280
  placeholder: "選擇退回節點",
1238
- value: Xe
1281
+ value: et
1239
1282
  })
1240
- }), /* @__PURE__ */ T(n, {
1241
- hintText: B ? "此關卡設定退回時必須填寫意見。" : void 0,
1283
+ }), /* @__PURE__ */ w(n, {
1284
+ hintText: R ? "此關卡設定退回時必須填寫意見。" : void 0,
1242
1285
  label: "退回說明",
1243
1286
  name: "returnComment",
1244
- required: B,
1245
- children: /* @__PURE__ */ T(ne, {
1246
- onChange: (e) => pe(e.target.value),
1247
- placeholder: B ? "請說明退回原因" : "可補充需要修改的內容",
1248
- ref: Kt,
1287
+ required: R,
1288
+ children: /* @__PURE__ */ w(ie, {
1289
+ onChange: (e) => ge(e.target.value),
1290
+ placeholder: R ? "請說明退回原因" : "可補充需要修改的內容",
1291
+ ref: Zt,
1249
1292
  resize: "vertical",
1250
1293
  rows: 4,
1251
- style: Ht,
1252
- value: fe
1294
+ style: qt,
1295
+ value: he
1253
1296
  })
1254
1297
  })]
1255
1298
  })
1256
1299
  }),
1257
- /* @__PURE__ */ T(_, {
1300
+ /* @__PURE__ */ w(_, {
1258
1301
  cancelText: "取消",
1259
- confirmButtonProps: { disabled: Ct },
1302
+ confirmButtonProps: { disabled: wt },
1260
1303
  confirmText: "送出",
1261
- loading: He,
1304
+ loading: We,
1262
1305
  modalType: "standard",
1263
- onCancel: yt,
1264
- onClose: yt,
1265
- onConfirm: () => void xt(),
1266
- open: Le,
1306
+ onCancel: Z,
1307
+ onClose: Z,
1308
+ onConfirm: () => void St(),
1309
+ open: Be,
1267
1310
  showModalFooter: !0,
1268
1311
  showModalHeader: !0,
1269
1312
  size: "regular",
1270
- supportingText: Jt[j],
1271
- title: qt[j],
1272
- children: /* @__PURE__ */ E("div", {
1273
- style: Ut,
1313
+ supportingText: $t[k],
1314
+ title: Qt[k],
1315
+ children: /* @__PURE__ */ T("div", {
1316
+ style: Jt,
1274
1317
  children: [
1275
- Q ? /* @__PURE__ */ T(n, {
1318
+ Q ? /* @__PURE__ */ w(n, {
1276
1319
  label: "通知時機",
1277
1320
  name: "adhocNotifyMode",
1278
1321
  required: !0,
1279
- children: /* @__PURE__ */ T(b, {
1322
+ children: /* @__PURE__ */ w(b, {
1280
1323
  clearable: !1,
1281
1324
  fullWidth: !0,
1282
- onChange: (e) => ze(e?.id === "COMPLETION_NOTIFY" ? "COMPLETION_NOTIFY" : "STAGE_NOTIFY"),
1325
+ onChange: (e) => He(e?.id === "COMPLETION_NOTIFY" ? "COMPLETION_NOTIFY" : "STAGE_NOTIFY"),
1283
1326
  options: [{
1284
1327
  id: "STAGE_NOTIFY",
1285
- name: qt.STAGE_NOTIFY
1328
+ name: Qt.STAGE_NOTIFY
1286
1329
  }, {
1287
1330
  id: "COMPLETION_NOTIFY",
1288
- name: qt.COMPLETION_NOTIFY
1331
+ name: Qt.COMPLETION_NOTIFY
1289
1332
  }],
1290
1333
  value: {
1291
- id: j,
1292
- name: qt[j]
1334
+ id: k,
1335
+ name: Qt[k]
1293
1336
  }
1294
1337
  })
1295
1338
  }) : null,
1296
- Q ? /* @__PURE__ */ T(n, {
1339
+ Q ? /* @__PURE__ */ w(n, {
1297
1340
  label: "通知對象類型",
1298
1341
  name: "adhocTargetKind",
1299
1342
  required: !0,
1300
- children: /* @__PURE__ */ T(b, {
1343
+ children: /* @__PURE__ */ w(b, {
1301
1344
  clearable: !1,
1302
1345
  fullWidth: !0,
1303
- onChange: (e) => We(e?.id === "WEBHOOK" ? "WEBHOOK" : "MEMBER"),
1304
- options: [...Xt],
1305
- value: Tt
1346
+ onChange: (e) => Ke(e?.id === "WEBHOOK" ? "WEBHOOK" : "MEMBER"),
1347
+ options: [...tn],
1348
+ value: Et
1306
1349
  })
1307
1350
  }) : null,
1308
- Q && M === "WEBHOOK" ? /* @__PURE__ */ T(n, {
1351
+ Q && Ge === "WEBHOOK" ? /* @__PURE__ */ w(n, {
1309
1352
  label: "Webhook URL",
1310
1353
  name: "adhocWebhookUrl",
1311
1354
  required: !0,
1312
- children: /* @__PURE__ */ T(ee, {
1355
+ children: /* @__PURE__ */ w(te, {
1313
1356
  fullWidth: !0,
1314
- onChange: (e) => P(e.target.value),
1357
+ onChange: (e) => N(e.target.value),
1315
1358
  placeholder: "https://example.com/webhook",
1316
- value: N
1359
+ value: M
1317
1360
  })
1318
- }) : /* @__PURE__ */ T(n, {
1361
+ }) : /* @__PURE__ */ w(n, {
1319
1362
  label: Q ? "通知對象" : "簽核對象",
1320
1363
  name: "adhocMemberId",
1321
1364
  required: !0,
1322
- children: /* @__PURE__ */ T(m, {
1365
+ children: /* @__PURE__ */ w(ee, {
1323
1366
  asyncData: !0,
1324
1367
  disabledOptionsFilter: !0,
1325
1368
  emptyText: "沒有符合的成員",
@@ -1329,45 +1372,45 @@ var qt = {
1329
1372
  name: "adhoc-member-search",
1330
1373
  spellCheck: !1
1331
1374
  },
1332
- loading: Ne,
1375
+ loading: Ie,
1333
1376
  loadingText: "搜尋成員中...",
1334
1377
  menuMaxHeight: 320,
1335
1378
  mode: "multiple",
1336
- onChange: (e) => Me(e.map(ut).filter(lt)),
1337
- onSearch: bt,
1379
+ onChange: (e) => Fe(e.map(pt).filter(ft)),
1380
+ onSearch: xt,
1338
1381
  onVisibilityChange: (e) => {
1339
- e && bt("");
1382
+ e && xt("");
1340
1383
  },
1341
- options: [...Fe],
1384
+ options: [...Re],
1342
1385
  overflowStrategy: "wrap",
1343
1386
  placeholder: "搜尋姓名或信箱,可加入多位",
1344
1387
  searchDebounceTime: 300,
1345
- value: [...je]
1388
+ value: [...Pe]
1346
1389
  })
1347
1390
  }),
1348
- j === "PRE_APPROVAL" ? /* @__PURE__ */ T(n, {
1391
+ k === "PRE_APPROVAL" ? /* @__PURE__ */ w(n, {
1349
1392
  label: "拒簽處理方式",
1350
1393
  name: "adhocOnReject",
1351
1394
  required: !0,
1352
- children: /* @__PURE__ */ T(b, {
1395
+ children: /* @__PURE__ */ w(b, {
1353
1396
  clearable: !1,
1354
1397
  fullWidth: !0,
1355
- onChange: (e) => Ve(e?.id === "RETURN_TO_ORIGIN" ? "RETURN_TO_ORIGIN" : "REJECT_INSTANCE"),
1356
- options: [...Yt],
1357
- value: wt
1398
+ onChange: (e) => A(e?.id === "RETURN_TO_ORIGIN" ? "RETURN_TO_ORIGIN" : "REJECT_INSTANCE"),
1399
+ options: [...en],
1400
+ value: Tt
1358
1401
  })
1359
1402
  }) : null,
1360
- Q ? null : /* @__PURE__ */ T(n, {
1403
+ Q ? null : /* @__PURE__ */ w(n, {
1361
1404
  label: "說明",
1362
1405
  name: "adhocComment",
1363
- children: /* @__PURE__ */ T(ne, {
1364
- onChange: (e) => A(e.target.value),
1406
+ children: /* @__PURE__ */ w(ie, {
1407
+ onChange: (e) => Ne(e.target.value),
1365
1408
  placeholder: "可補充原因",
1366
- ref: Kt,
1409
+ ref: Zt,
1367
1410
  resize: "vertical",
1368
1411
  rows: 3,
1369
- style: Ht,
1370
- value: Ae
1412
+ style: qt,
1413
+ value: Me
1371
1414
  })
1372
1415
  })
1373
1416
  ]
@@ -1375,7 +1418,7 @@ var qt = {
1375
1418
  })
1376
1419
  ] });
1377
1420
  });
1378
- function Qt(e, t) {
1421
+ function rn(e, t) {
1379
1422
  try {
1380
1423
  let n = JSON.parse(e.targetValueJson);
1381
1424
  if (n.memberIds?.length) return n.memberIds.map((e) => K(e, t)).join("、");
@@ -1387,19 +1430,19 @@ function Qt(e, t) {
1387
1430
  }
1388
1431
  //#endregion
1389
1432
  //#region src/views/instances/detail/sections/InstanceSignaturesSection.tsx
1390
- var $t = {
1433
+ var an = {
1391
1434
  display: "grid",
1392
1435
  gap: 16
1393
1436
  };
1394
- function en({ signatureVerification: e, signatures: n }) {
1395
- let r = d(() => n.map((e) => ({
1437
+ function on({ signatureVerification: e, signatures: n }) {
1438
+ let r = f(() => n.map((e) => ({
1396
1439
  algorithm: e.algorithm,
1397
- hashLabel: et(e.signedPayloadHash),
1440
+ hashLabel: it(e.signedPayloadHash),
1398
1441
  key: e.id,
1399
1442
  keyVersion: e.keyVersion,
1400
1443
  signedAtLabel: t(e.signedAt),
1401
1444
  signerMemberId: e.signerMemberId
1402
- })), [n]), i = d(() => [
1445
+ })), [n]), i = f(() => [
1403
1446
  {
1404
1447
  dataIndex: "signerMemberId",
1405
1448
  key: "signerMemberId",
@@ -1431,20 +1474,20 @@ function en({ signatureVerification: e, signatures: n }) {
1431
1474
  width: 220
1432
1475
  }
1433
1476
  ], []);
1434
- return /* @__PURE__ */ E("div", {
1435
- style: $t,
1477
+ return /* @__PURE__ */ T("div", {
1478
+ style: an,
1436
1479
  children: [
1437
- /* @__PURE__ */ T(C, {
1480
+ /* @__PURE__ */ w(S, {
1438
1481
  component: "h2",
1439
1482
  variant: "h3",
1440
1483
  children: "簽章"
1441
1484
  }),
1442
- /* @__PURE__ */ T(C, {
1485
+ /* @__PURE__ */ w(S, {
1443
1486
  color: e?.valid ? "text-success" : "text-error",
1444
1487
  variant: "body",
1445
1488
  children: e ? e.valid ? `簽章鏈已驗證,共 ${e.checkedCount} 筆。` : `簽章鏈驗證失敗:${e.errors.join("、")}` : "尚無簽章紀錄。"
1446
1489
  }),
1447
- r.length > 0 ? /* @__PURE__ */ T(S, {
1490
+ r.length > 0 ? /* @__PURE__ */ w(re, {
1448
1491
  columns: i,
1449
1492
  dataSource: r,
1450
1493
  fullWidth: !0
@@ -1454,55 +1497,55 @@ function en({ signatureVerification: e, signatures: n }) {
1454
1497
  }
1455
1498
  //#endregion
1456
1499
  //#region src/views/instances/detail/sections/InstanceHistorySection.tsx
1457
- var tn = {
1500
+ var sn = {
1458
1501
  display: "grid",
1459
1502
  gap: 16
1460
- }, nn = {
1503
+ }, cn = {
1461
1504
  cursor: "help",
1462
1505
  textDecoration: "underline dotted",
1463
1506
  textUnderlineOffset: 3
1464
- }, rn = {
1507
+ }, ln = {
1465
1508
  borderLeftColor: "var(--mzn-color-border)",
1466
1509
  borderLeftStyle: "solid",
1467
1510
  borderLeftWidth: 2,
1468
1511
  marginTop: 4,
1469
1512
  paddingLeft: 8,
1470
1513
  whiteSpace: "pre-wrap"
1471
- }, an = { color: "var(--mzn-color-text-secondary)" }, on = {
1472
- ...rn,
1514
+ }, un = { color: "var(--mzn-color-text-secondary)" }, dn = {
1515
+ ...ln,
1473
1516
  borderLeftColor: "var(--mzn-color-text-error)",
1474
1517
  color: "var(--mzn-color-text-error)"
1475
1518
  };
1476
- function sn(...e) {
1477
- return e.filter((e) => H(e ?? null)).join(" ");
1519
+ function fn(...e) {
1520
+ return e.filter((e) => V(e ?? null)).join(" ");
1478
1521
  }
1479
- var cn = s(function({ className: e, descriptionParts: t, error: n, forcePending: r = !1, index: i = 0, orientation: a, status: s = "pending", title: c, type: l = "number", ...u }, d) {
1480
- let f = r ? "pending" : s, p = t.filter((e) => e.type !== "comment"), m = t.filter((e) => e.type === "comment");
1481
- return /* @__PURE__ */ E("div", {
1522
+ var pn = c(function({ className: e, descriptionParts: t, error: n, forcePending: r = !1, index: i = 0, orientation: a, status: o = "pending", title: c, type: l = "number", ...u }, d) {
1523
+ let f = r ? "pending" : o, p = t.filter((e) => e.type !== "comment"), m = t.filter((e) => e.type === "comment");
1524
+ return /* @__PURE__ */ T("div", {
1482
1525
  ...u,
1483
- className: sn(N.host, l === "dot" ? N.dot : null, n && f !== "processing" ? N.error : null, a === "horizontal" ? N.horizontal : null, l === "number" ? N.number : null, f === "pending" ? N.pending : null, f === "processing" ? N.processing : null, n && f === "processing" ? N.processingError : null, !n && f === "succeeded" ? N.succeeded : null, a === "vertical" ? N.vertical : null, e),
1526
+ className: fn(M.host, l === "dot" ? M.dot : null, n && f !== "processing" ? M.error : null, a === "horizontal" ? M.horizontal : null, l === "number" ? M.number : null, f === "pending" ? M.pending : null, f === "processing" ? M.processing : null, n && f === "processing" ? M.processingError : null, !n && f === "succeeded" ? M.succeeded : null, a === "vertical" ? M.vertical : null, e),
1484
1527
  ref: d,
1485
- children: [l === "dot" ? /* @__PURE__ */ T("span", { className: sn(N.statusIndicator, N.statusIndicatorDot) }) : /* @__PURE__ */ T("span", {
1486
- className: N.statusIndicator,
1528
+ children: [l === "dot" ? /* @__PURE__ */ w("span", { className: fn(M.statusIndicator, M.statusIndicatorDot) }) : /* @__PURE__ */ w("span", {
1529
+ className: M.statusIndicator,
1487
1530
  children: i + 1
1488
- }), /* @__PURE__ */ E("div", {
1489
- className: N.textContainer,
1531
+ }), /* @__PURE__ */ T("div", {
1532
+ className: M.textContainer,
1490
1533
  children: [
1491
- /* @__PURE__ */ E(C, {
1492
- className: N.title,
1534
+ /* @__PURE__ */ T(S, {
1535
+ className: M.title,
1493
1536
  variant: "label-primary-highlight",
1494
- children: [c, /* @__PURE__ */ T("span", { className: N.titleConnectLine })]
1537
+ children: [c, /* @__PURE__ */ w("span", { className: M.titleConnectLine })]
1495
1538
  }),
1496
- p.length > 0 ? /* @__PURE__ */ T(C, {
1497
- className: N.description,
1539
+ p.length > 0 ? /* @__PURE__ */ w(S, {
1540
+ className: M.description,
1498
1541
  variant: "caption",
1499
- children: p.map((e, t) => /* @__PURE__ */ E(o, { children: [t > 0 ? " · " : null, ln(e)] }, `${e.type}-${t}`))
1542
+ children: p.map((e, t) => /* @__PURE__ */ T(s, { children: [t > 0 ? " · " : null, mn(e)] }, `${e.type}-${t}`))
1500
1543
  }) : null,
1501
- m.map((e, t) => /* @__PURE__ */ E(C, {
1502
- style: e.tone === "danger" ? on : rn,
1544
+ m.map((e, t) => /* @__PURE__ */ T(S, {
1545
+ style: e.tone === "danger" ? dn : ln,
1503
1546
  variant: "body",
1504
- children: [/* @__PURE__ */ E("span", {
1505
- style: e.tone === "danger" ? void 0 : an,
1547
+ children: [/* @__PURE__ */ T("span", {
1548
+ style: e.tone === "danger" ? void 0 : un,
1506
1549
  children: [e.label, ":"]
1507
1550
  }), e.text]
1508
1551
  }, `comment-${t}`))
@@ -1510,44 +1553,44 @@ var cn = s(function({ className: e, descriptionParts: t, error: n, forcePending:
1510
1553
  })]
1511
1554
  });
1512
1555
  });
1513
- function ln(e) {
1514
- return e.type === "text" ? e.text : e.email ? /* @__PURE__ */ E(w, { children: [
1556
+ function mn(e) {
1557
+ return e.type === "text" ? e.text : e.email ? /* @__PURE__ */ T(C, { children: [
1515
1558
  e.prefix,
1516
1559
  ":",
1517
- /* @__PURE__ */ T(re, {
1560
+ /* @__PURE__ */ w(ae, {
1518
1561
  title: e.email,
1519
- children: ({ ref: t, ...n }) => /* @__PURE__ */ T("span", {
1562
+ children: ({ ref: t, ...n }) => /* @__PURE__ */ w("span", {
1520
1563
  ...n,
1521
1564
  "data-testid": e.memberId ? `member-tooltip-${e.memberId}` : void 0,
1522
1565
  ref: t,
1523
- style: nn,
1566
+ style: cn,
1524
1567
  children: e.label
1525
1568
  })
1526
1569
  })
1527
1570
  ] }) : `${e.prefix}:${e.label}`;
1528
1571
  }
1529
- function un({ activityLogs: e, instanceState: t, memberProfilesById: n, signatureVerification: r, signaturesById: i, taskDecisionsByTaskId: a, tasks: o, workflowSnapshot: s, workflowTokens: c }) {
1530
- let l = At(e, o, c, s, t, n, a, i, r), u = mt(l), d = l.map((e) => ({
1572
+ function hn({ activityLogs: e, instanceState: t, memberProfilesById: n, signatureVerification: r, signaturesById: i, taskDecisionsByTaskId: a, tasks: o, workflowSnapshot: s, workflowTokens: c }) {
1573
+ let l = Ft(e, o, c, s, t, n, a, i, r), u = _t(l), d = l.map((e) => ({
1531
1574
  ...e,
1532
1575
  descriptionParts: e.descriptionParts.filter(Y)
1533
1576
  }));
1534
- return /* @__PURE__ */ E("div", {
1535
- style: tn,
1536
- children: [/* @__PURE__ */ T(C, {
1577
+ return /* @__PURE__ */ T("div", {
1578
+ style: sn,
1579
+ children: [/* @__PURE__ */ w(S, {
1537
1580
  component: "h2",
1538
1581
  variant: "h3",
1539
1582
  children: "歷程"
1540
- }), d.length > 0 ? /* @__PURE__ */ T(x, {
1583
+ }), d.length > 0 ? /* @__PURE__ */ w(x, {
1541
1584
  currentStep: u,
1542
1585
  orientation: "vertical",
1543
1586
  type: "dot",
1544
- children: d.map((e) => /* @__PURE__ */ T(cn, {
1587
+ children: d.map((e) => /* @__PURE__ */ w(pn, {
1545
1588
  descriptionParts: e.descriptionParts,
1546
1589
  error: e.error,
1547
1590
  forcePending: e.forcePending,
1548
1591
  title: e.title
1549
1592
  }, e.id))
1550
- }) : /* @__PURE__ */ T(C, {
1593
+ }) : /* @__PURE__ */ w(S, {
1551
1594
  color: "text-neutral",
1552
1595
  variant: "body",
1553
1596
  children: "尚無歷程紀錄。"
@@ -1556,30 +1599,30 @@ function un({ activityLogs: e, instanceState: t, memberProfilesById: n, signatur
1556
1599
  }
1557
1600
  //#endregion
1558
1601
  //#region src/views/instances/detail/sections/InstanceWebhookDeliveriesSection.tsx
1559
- var dn = {
1602
+ var gn = {
1560
1603
  display: "grid",
1561
1604
  gap: 16
1562
- }, fn = {
1605
+ }, _n = {
1563
1606
  display: "grid",
1564
1607
  gap: 2
1565
- }, pn = {
1608
+ }, vn = {
1566
1609
  overflowWrap: "anywhere",
1567
1610
  whiteSpace: "pre-wrap"
1568
1611
  };
1569
- function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1570
- let [r, i] = p(null), [a, o] = p(!1), [s, c] = p(null), l = d(() => e.map((e) => ({
1612
+ function yn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1613
+ let [r, i] = m(null), [a, o] = m(!1), [s, c] = m(null), l = f(() => e.map((e) => ({
1571
1614
  delivery: e,
1572
1615
  key: e.id
1573
- })), [e]), u = d(() => [
1616
+ })), [e]), u = f(() => [
1574
1617
  {
1575
1618
  key: "endpoint",
1576
- render: ({ delivery: e }) => /* @__PURE__ */ E("div", {
1577
- style: fn,
1578
- children: [/* @__PURE__ */ T(C, {
1619
+ render: ({ delivery: e }) => /* @__PURE__ */ T("div", {
1620
+ style: _n,
1621
+ children: [/* @__PURE__ */ w(S, {
1579
1622
  component: "span",
1580
1623
  variant: "body",
1581
1624
  children: e.endpointLabel ?? e.endpointKey
1582
- }), /* @__PURE__ */ E(C, {
1625
+ }), /* @__PURE__ */ T(S, {
1583
1626
  color: "text-neutral",
1584
1627
  component: "span",
1585
1628
  variant: "caption",
@@ -1598,13 +1641,13 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1598
1641
  },
1599
1642
  {
1600
1643
  key: "status",
1601
- render: ({ delivery: e }) => /* @__PURE__ */ T(hn, { status: e.status }),
1644
+ render: ({ delivery: e }) => /* @__PURE__ */ w(bn, { status: e.status }),
1602
1645
  title: "狀態",
1603
1646
  width: 120
1604
1647
  },
1605
1648
  {
1606
1649
  key: "attemptCount",
1607
- render: ({ delivery: e }) => /* @__PURE__ */ T(C, {
1650
+ render: ({ delivery: e }) => /* @__PURE__ */ w(S, {
1608
1651
  component: "span",
1609
1652
  variant: "body",
1610
1653
  children: e.attemptCount
@@ -1614,21 +1657,21 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1614
1657
  },
1615
1658
  {
1616
1659
  key: "lastError",
1617
- render: ({ delivery: e }) => e.lastErrorCode && e.status !== "SENT" ? /* @__PURE__ */ E("div", {
1618
- style: fn,
1619
- children: [/* @__PURE__ */ T(C, {
1660
+ render: ({ delivery: e }) => e.lastErrorCode && e.status !== "SENT" ? /* @__PURE__ */ T("div", {
1661
+ style: _n,
1662
+ children: [/* @__PURE__ */ w(S, {
1620
1663
  color: "text-error",
1621
1664
  component: "span",
1622
1665
  variant: "body",
1623
1666
  children: e.lastErrorCode
1624
- }), e.lastErrorDetail ? /* @__PURE__ */ T(C, {
1667
+ }), e.lastErrorDetail ? /* @__PURE__ */ w(S, {
1625
1668
  color: "text-neutral",
1626
1669
  component: "span",
1627
- style: pn,
1670
+ style: vn,
1628
1671
  variant: "caption",
1629
1672
  children: e.lastErrorDetail
1630
1673
  }) : null]
1631
- }) : /* @__PURE__ */ T(C, {
1674
+ }) : /* @__PURE__ */ w(S, {
1632
1675
  color: "text-neutral",
1633
1676
  component: "span",
1634
1677
  variant: "body",
@@ -1639,18 +1682,18 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1639
1682
  },
1640
1683
  {
1641
1684
  key: "time",
1642
- render: ({ delivery: e }) => /* @__PURE__ */ T(C, {
1685
+ render: ({ delivery: e }) => /* @__PURE__ */ w(S, {
1643
1686
  component: "span",
1644
1687
  variant: "body",
1645
- children: gn(e)
1688
+ children: xn(e)
1646
1689
  }),
1647
1690
  title: "時間",
1648
1691
  width: 220
1649
1692
  }
1650
- ], [n]), f = d(() => ({
1693
+ ], [n]), d = f(() => ({
1651
1694
  render: ({ delivery: e }) => e.status === "FAILED" && e.attemptCount > 0 ? [{
1652
1695
  disabled: () => a,
1653
- icon: A,
1696
+ icon: Ne,
1654
1697
  iconType: "leading",
1655
1698
  name: "重新傳送",
1656
1699
  onClick: () => {
@@ -1660,7 +1703,7 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1660
1703
  variant: "base-secondary",
1661
1704
  width: 140
1662
1705
  }), [a]);
1663
- async function m() {
1706
+ async function p() {
1664
1707
  if (r) {
1665
1708
  o(!0), c(null);
1666
1709
  try {
@@ -1672,30 +1715,30 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1672
1715
  }
1673
1716
  }
1674
1717
  }
1675
- return /* @__PURE__ */ E("div", {
1676
- style: dn,
1718
+ return /* @__PURE__ */ T("div", {
1719
+ style: gn,
1677
1720
  children: [
1678
- /* @__PURE__ */ T(C, {
1721
+ /* @__PURE__ */ w(S, {
1679
1722
  component: "h2",
1680
1723
  variant: "h3",
1681
1724
  children: "外部系統通知"
1682
1725
  }),
1683
- s ? /* @__PURE__ */ T(C, {
1726
+ s ? /* @__PURE__ */ w(S, {
1684
1727
  color: "text-error",
1685
1728
  variant: "body",
1686
1729
  children: s
1687
1730
  }) : null,
1688
- l.length > 0 ? /* @__PURE__ */ T(S, {
1689
- actions: f,
1731
+ l.length > 0 ? /* @__PURE__ */ w(re, {
1732
+ actions: d,
1690
1733
  columns: u,
1691
1734
  dataSource: l,
1692
1735
  fullWidth: !0
1693
- }) : /* @__PURE__ */ T(C, {
1736
+ }) : /* @__PURE__ */ w(S, {
1694
1737
  color: "text-neutral",
1695
1738
  variant: "body",
1696
1739
  children: "此案件沒有外部系統通知。"
1697
1740
  }),
1698
- /* @__PURE__ */ T(_, {
1741
+ /* @__PURE__ */ w(_, {
1699
1742
  cancelText: "取消",
1700
1743
  confirmText: "重新傳送",
1701
1744
  loading: a,
@@ -1703,13 +1746,13 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1703
1746
  modalType: "standard",
1704
1747
  onCancel: () => i(null),
1705
1748
  onClose: () => i(null),
1706
- onConfirm: () => void m(),
1749
+ onConfirm: () => void p(),
1707
1750
  open: !!r,
1708
1751
  showModalFooter: !0,
1709
1752
  showModalHeader: !0,
1710
1753
  supportingText: "會以相同的投遞編號重新送出,接收端可據此避免重複處理。",
1711
1754
  title: "重新傳送通知",
1712
- children: /* @__PURE__ */ E(C, {
1755
+ children: /* @__PURE__ */ T(S, {
1713
1756
  variant: "body",
1714
1757
  children: [
1715
1758
  "確定要重新通知「",
@@ -1721,30 +1764,30 @@ function mn({ deliveries: e, onRetry: t, readNodeLabel: n }) {
1721
1764
  ]
1722
1765
  });
1723
1766
  }
1724
- function hn({ status: e }) {
1725
- return e === "SENT" ? /* @__PURE__ */ T(h, {
1767
+ function bn({ status: e }) {
1768
+ return e === "SENT" ? /* @__PURE__ */ w(h, {
1726
1769
  size: "sub",
1727
1770
  text: "已送達",
1728
1771
  variant: "dot-success"
1729
- }) : e === "FAILED" ? /* @__PURE__ */ T(h, {
1772
+ }) : e === "FAILED" ? /* @__PURE__ */ w(h, {
1730
1773
  size: "sub",
1731
1774
  text: "失敗",
1732
1775
  variant: "dot-error"
1733
- }) : /* @__PURE__ */ T(h, {
1776
+ }) : /* @__PURE__ */ w(h, {
1734
1777
  size: "sub",
1735
1778
  text: e === "PENDING" ? "等待傳送" : "傳送中",
1736
1779
  variant: "dot-info"
1737
1780
  });
1738
1781
  }
1739
- function gn(e) {
1782
+ function xn(e) {
1740
1783
  return e.sentAt ? `送達:${t(e.sentAt)}` : e.status === "PENDING" && e.nextRetryAt ? `下次重試:${t(e.nextRetryAt)}` : e.lastAttemptAt ? `最後嘗試:${t(e.lastAttemptAt)}` : `建立:${t(e.createdAt)}`;
1741
1784
  }
1742
1785
  //#endregion
1743
1786
  //#region src/views/instances/detail/InstanceDetailView.tsx
1744
- var _n = 3e3, vn = 40, yn = 184, bn = 96, xn = {
1787
+ var Sn = 3e3, Cn = 40, wn = 184, Tn = 96, En = {
1745
1788
  display: "grid",
1746
1789
  gap: 16
1747
- }, Sn = {
1790
+ }, Dn = {
1748
1791
  background: "#f8fafc",
1749
1792
  border: "1px solid #e2e8f0",
1750
1793
  borderRadius: 8,
@@ -1752,7 +1795,7 @@ var _n = 3e3, vn = 40, yn = 184, bn = 96, xn = {
1752
1795
  minHeight: 440,
1753
1796
  overflow: "hidden",
1754
1797
  width: "min(80vw, 1040px)"
1755
- }, Cn = {
1798
+ }, On = {
1756
1799
  background: "#ffffff",
1757
1800
  border: "1px solid #cbd5e1",
1758
1801
  borderRadius: 8,
@@ -1762,24 +1805,24 @@ var _n = 3e3, vn = 40, yn = 184, bn = 96, xn = {
1762
1805
  minHeight: 82,
1763
1806
  padding: 12,
1764
1807
  width: 184
1765
- }, wn = {
1808
+ }, kn = {
1766
1809
  borderRadius: 999,
1767
1810
  fontSize: 12,
1768
1811
  fontWeight: 600,
1769
1812
  justifySelf: "start",
1770
1813
  lineHeight: "18px",
1771
1814
  padding: "0 8px"
1772
- }, Tn = {
1815
+ }, An = {
1773
1816
  color: "#64748b",
1774
1817
  fontSize: 12,
1775
1818
  overflow: "hidden",
1776
1819
  textOverflow: "ellipsis",
1777
1820
  whiteSpace: "nowrap"
1778
- }, En = { opacity: 0 }, Dn = {
1821
+ }, jn = { opacity: 0 }, Mn = {
1779
1822
  display: "flex",
1780
1823
  flexWrap: "wrap",
1781
1824
  gap: 8
1782
- }, On = {
1825
+ }, Nn = {
1783
1826
  alignItems: "center",
1784
1827
  background: "#ffffff",
1785
1828
  border: "1px solid #cbd5e1",
@@ -1791,29 +1834,29 @@ var _n = 3e3, vn = 40, yn = 184, bn = 96, xn = {
1791
1834
  gap: 6,
1792
1835
  lineHeight: "20px",
1793
1836
  padding: "4px 8px"
1794
- }, kn = {
1837
+ }, Pn = {
1795
1838
  display: "grid",
1796
1839
  gap: 16
1797
- }, An = { workflowRuntime: Bn };
1798
- function jn({ instanceId: a, showAttachments: o = !0, showForm: s = !0, showHistory: u = !0, showSignatures: m = !0, showTasks: h = !0, showWebhookDeliveries: ee = !0 }) {
1799
- let { member: b } = e(), x = b?.memberId ?? null, S = ee && r(b), [re, ie] = p([]), [D, oe] = p(null), [se, O] = p([]), [he, ge] = p([]), [_e, be] = p([]), [k, we] = p([]), [Ee, De] = p(null), [A, Ne] = p([]), [Pe, Le] = p([]), [Be, Ve] = p([]), [Ue, M] = p(null), [We, N] = p(!0), [P, F] = p(!1), [Ge, Ke] = p(!1), [I, L] = p(""), [qe, R] = p(!1), [z, B] = p({}), [Ye, V] = p({}), [Xe, Ze] = p({}), [H, Qe] = p(null), [$e, W] = p(null), [et, nt] = p([]), rt = I.trim(), G = f(null), K = f(0), at = k.some((e) => e.status === "PENDING" || e.status === "DELIVERY_IN_PROGRESS");
1800
- l(() => {
1840
+ }, Fn = { workflowRuntime: Gn };
1841
+ function In({ instanceId: i, showAttachments: o = !0, showForm: s = !0, showHistory: c = !0, showSignatures: d = !0, showTasks: ee = !0, showWebhookDeliveries: h = !0 }) {
1842
+ let { member: te } = e(), b = te?.memberId ?? null, x = h && r(te), [re, ae] = m([]), [E, se] = m(null), [ce, le] = m([]), [fe, ve] = m([]), [ye, be] = m([]), [Ce, D] = m([]), [De, ke] = m(null), [O, Ne] = m([]), [Ie, Le] = m([]), [Be, Ue] = m([]), [A, j] = m(null), [Ge, Ke] = m(!0), [M, N] = m(!1), [qe, Je] = m(!1), [Ye, P] = m(""), [F, I] = m(!1), [Xe, L] = m({}), [R, $e] = m({}), [et, z] = m({}), [B, tt] = m(null), [H, nt] = m(null), [rt, it] = m([]), ot = Ye.trim(), W = p(null), G = p(0), K = Ce.some((e) => e.status === "PENDING" || e.status === "DELIVERY_IN_PROGRESS");
1843
+ u(() => {
1801
1844
  Z();
1802
- }, [x, a]), l(() => {
1803
- if (!S || !at || K.current >= vn) return;
1845
+ }, [b, i]), u(() => {
1846
+ if (!x || !K || G.current >= Cn) return;
1804
1847
  let e = setTimeout(() => {
1805
- K.current += 1, xt();
1806
- }, _n);
1848
+ G.current += 1, Ct();
1849
+ }, Sn);
1807
1850
  return () => clearTimeout(e);
1808
1851
  }, [
1809
- S,
1810
- at,
1811
- k
1812
- ]), l(() => {
1813
- V(D?.formData ?? {}), Ze({});
1814
- }, [D]);
1815
- let st = c((e, t) => {
1816
- Ze((n) => {
1852
+ x,
1853
+ K,
1854
+ Ce
1855
+ ]), u(() => {
1856
+ $e(E?.formData ?? {}), z({});
1857
+ }, [E]);
1858
+ let ct = l((e, t) => {
1859
+ z((n) => {
1817
1860
  let r = n[e];
1818
1861
  return r?.hasValue === t.hasValue && r.status === t.status ? n : {
1819
1862
  ...n,
@@ -1823,356 +1866,360 @@ function jn({ instanceId: a, showAttachments: o = !0, showForm: s = !0, showHist
1823
1866
  }
1824
1867
  };
1825
1868
  });
1826
- }, []), ct = d(() => A.find((e) => ot(e, x) && (e.status === "PENDING" || e.status === "IN_PROGRESS")) ?? null, [x, A]), q = d(() => ct && D ? D.workflowSnapshot.nodes.find((e) => e.id === ct.nodeId) ?? null : null, [ct, D]), lt = q?.type === "userTask" && q.data.returnBehavior.allowReturn, ut = q?.type === "userTask" && q.data.allowReject !== !1, dt = q?.type === "userTask" && q.data.allowTransfer !== !1, J = q?.type === "userTask" && q.data.allowAddSigner, ft = !(!D || D.initiatorMemberId !== x || D.state !== "RUNNING" && D.state !== "RETURNED"), pt = !!(D && D.initiatorMemberId === x && D.state === "RETURNED"), Y = d(() => new Map(Be.map((e) => [e.memberId, e])), [Be]), mt = d(() => Ft(se), [se]), ht = d(() => new Map(_e.map((e) => [e.id, e])), [_e]), X = d(() => D ? In(D.workflowSnapshot) : null, [D]), gt = d(() => D && X ? Fn(X, A, Pe, D.state) : [], [
1827
- D,
1869
+ }, []), ut = f(() => O.find((e) => lt(e, b) && (e.status === "PENDING" || e.status === "IN_PROGRESS")) ?? null, [b, O]), q = f(() => ut && E ? E.workflowSnapshot.nodes.find((e) => e.id === ut.nodeId) ?? null : null, [ut, E]), dt = q?.type === "userTask" && q.data.returnBehavior.allowReturn, ft = q?.type === "userTask" && q.data.allowReject !== !1, pt = q?.type === "userTask" && q.data.allowTransfer !== !1, mt = q?.type === "userTask" && q.data.allowAddSigner, J = !(!E || E.initiatorMemberId !== b || E.state !== "RUNNING" && E.state !== "RETURNED"), ht = !!(E && E.initiatorMemberId === b && E.state === "RETURNED"), gt = f(() => new Map(Be.map((e) => [e.memberId, e])), [Be]), Y = f(() => Bt(ce), [ce]), _t = f(() => new Map(ye.map((e) => [e.id, e])), [ye]), X = f(() => E ? Vn(E.workflowSnapshot) : null, [E]), vt = f(() => E && X ? Bn(X, O, Ie, E.state) : [], [
1870
+ E,
1828
1871
  X,
1829
- A,
1830
- Pe
1831
- ]), _t = d(() => X ? Ln(X) : [], [X]), vt = d(() => D ? Nn(D.workflowSnapshot) : [], [D]);
1872
+ O,
1873
+ Ie
1874
+ ]), yt = f(() => X ? Hn(X) : [], [X]), bt = f(() => E ? Rn(E.workflowSnapshot) : [], [E]);
1832
1875
  async function Z() {
1833
- N(!0), M(null);
1876
+ Ke(!0), j(null);
1834
1877
  try {
1835
- let e = await de(a);
1836
- ie(e.activityLogs), oe(e.instance), Ne(e.tasks), Le(e.workflowTokens);
1837
- let t = await ce(e.instance.id), [n, r, i, o, s] = await Promise.all([
1838
- Pt(e.tasks),
1839
- Mt({
1878
+ let e = await me(i);
1879
+ ae(e.activityLogs), se(e.instance), Ne(e.tasks), Le(e.workflowTokens);
1880
+ let t = await ue(e.instance.id), [n, r, a, o, s] = await Promise.all([
1881
+ zt(e.tasks),
1882
+ Lt({
1840
1883
  ...e,
1841
1884
  adhocDirectives: t
1842
1885
  }),
1843
- le(e.instance.id),
1844
- me(e.instance.id),
1845
- yt(e.instance.id)
1886
+ de(e.instance.id),
1887
+ _e(e.instance.id),
1888
+ xt(e.instance.id)
1846
1889
  ]);
1847
- O(n), Ve(r), ge(i), be(o.signatures), De(o.verification), nt(t), we(s);
1890
+ le(n), Ue(r), ve(a), be(o.signatures), ke(o.verification), it(t), D(s);
1848
1891
  } catch (e) {
1849
- M(U(e));
1892
+ j(U(e));
1850
1893
  } finally {
1851
- N(!1);
1894
+ Ke(!1);
1852
1895
  }
1853
1896
  }
1854
- async function yt(e) {
1855
- return S ? ue(e).catch(() => []) : [];
1897
+ async function xt(e) {
1898
+ return x ? pe(e).catch(() => []) : [];
1856
1899
  }
1857
- async function bt(e) {
1858
- await ye(e.id), K.current = 0, await Z();
1900
+ async function St(e) {
1901
+ await Se(e.id), G.current = 0, await Z();
1859
1902
  }
1860
- async function xt() {
1861
- let e = await yt(a);
1903
+ async function Ct() {
1904
+ let e = await xt(i);
1862
1905
  if (!e.some((e) => e.status === "PENDING" || e.status === "DELIVERY_IN_PROGRESS")) {
1863
1906
  await Z();
1864
1907
  return;
1865
1908
  }
1866
- we(e);
1909
+ D(e);
1867
1910
  }
1868
- async function St(e, t) {
1869
- if (!x) throw Error("尚未登入,無法上傳附件");
1870
- return { id: (await xe({
1911
+ async function Q(e, t) {
1912
+ if (!b) throw Error("尚未登入,無法上傳附件");
1913
+ return { id: (await we({
1871
1914
  file: t,
1872
1915
  formFieldPath: `form.${e.fieldKey}`
1873
1916
  })).id };
1874
1917
  }
1875
- async function Q(e) {
1876
- if (!x) return;
1877
- let t = await fe({ id: e.id });
1918
+ async function wt(e) {
1919
+ if (!b) return;
1920
+ let t = await he({ id: e.id });
1878
1921
  window.open(t, "_blank", "noopener,noreferrer");
1879
1922
  }
1880
- async function Ct(e) {
1881
- if (!x) return;
1882
- let t = await pe({ id: e.id });
1883
- Qe(e), W(t);
1923
+ async function Tt(e) {
1924
+ if (!b) return;
1925
+ let t = await ge({ id: e.id });
1926
+ tt(e), nt(t);
1884
1927
  }
1885
- async function wt() {
1886
- if (x && D && ft) {
1887
- F(!0), M(null), B({});
1928
+ async function Et() {
1929
+ if (b && E && J) {
1930
+ N(!0), j(null), L({});
1888
1931
  try {
1889
- await ae({
1890
- cancelledByMemberId: x,
1891
- comment: rt || null,
1892
- instanceId: D.id
1893
- }), L(""), R(!1), await Z();
1932
+ await oe({
1933
+ cancelledByMemberId: b,
1934
+ comment: ot || null,
1935
+ instanceId: E.id
1936
+ }), P(""), I(!1), await Z();
1894
1937
  } catch (e) {
1895
- M(U(e));
1938
+ j(U(e));
1896
1939
  } finally {
1897
- F(!1);
1940
+ N(!1);
1898
1941
  }
1899
1942
  }
1900
1943
  }
1901
- async function Tt() {
1902
- if (!x || !D || !pt) return;
1903
- F(!0), M(null), B({});
1904
- let e = i(Object.values(Xe));
1944
+ async function Dt() {
1945
+ if (!b || !E || !ht) return;
1946
+ N(!0), j(null), L({});
1947
+ let e = a(Object.values(et));
1905
1948
  if (e) {
1906
- M(e), F(!1);
1949
+ j(e), N(!1);
1907
1950
  return;
1908
1951
  }
1909
- let t = D.formDefinitionSnapshot.schema ? Fe(D.formDefinitionSnapshot.schema.fields, Ye) : Ye;
1910
- if (D.formDefinitionSnapshot.schema && D.formDefinitionSnapshot.uiSchema) {
1911
- let e = Re({
1912
- schema: D.formDefinitionSnapshot.schema,
1913
- uiSchema: D.formDefinitionSnapshot.uiSchema,
1952
+ let t = E.formDefinitionSnapshot.schema ? Re(E.formDefinitionSnapshot.schema.fields, R) : R;
1953
+ if (E.formDefinitionSnapshot.schema && E.formDefinitionSnapshot.uiSchema) {
1954
+ let e = Ve({
1955
+ schema: E.formDefinitionSnapshot.schema,
1956
+ uiSchema: E.formDefinitionSnapshot.uiSchema,
1914
1957
  values: t
1915
1958
  });
1916
1959
  if (!e.valid) {
1917
- B(e.errors), M("請先補齊必填欄位。"), e.firstInvalidFieldKey && Ie(e.firstInvalidFieldKey), F(!1);
1960
+ L(e.errors), j("請先補齊必填欄位。"), e.firstInvalidFieldKey && ze(e.firstInvalidFieldKey), N(!1);
1918
1961
  return;
1919
1962
  }
1920
1963
  }
1921
1964
  try {
1922
- await ve({
1965
+ await xe({
1923
1966
  formData: t,
1924
- initiatorMemberId: x,
1925
- instanceId: D.id,
1926
- title: D.title
1967
+ initiatorMemberId: b,
1968
+ instanceId: E.id,
1969
+ title: E.title
1927
1970
  }), await Z();
1928
1971
  } catch (e) {
1929
- M(U(e));
1972
+ j(U(e));
1930
1973
  } finally {
1931
- F(!1);
1974
+ N(!1);
1932
1975
  }
1933
1976
  }
1934
- let Et = G.current?.deciding ?? !1, $ = P || Et;
1935
- return /* @__PURE__ */ E(w, { children: [
1936
- /* @__PURE__ */ T(v, { children: /* @__PURE__ */ E(Se, {
1937
- description: D ? `${tt(D.state)} · ${t(D.startedAt)}` : "載入案件內容。",
1938
- title: D?.title ?? "簽核案件",
1977
+ let Ot = W.current?.deciding ?? !1, $ = M || Ot;
1978
+ return /* @__PURE__ */ T(C, { children: [
1979
+ /* @__PURE__ */ w(v, { children: /* @__PURE__ */ T(Te, {
1980
+ description: E ? [
1981
+ at(E.state),
1982
+ t(E.startedAt),
1983
+ Qe(E, gt)
1984
+ ].filter(V).join(" · ") : "載入案件內容。",
1985
+ title: E?.title ?? "簽核案件",
1939
1986
  children: [
1940
- D ? /* @__PURE__ */ T(g, {
1987
+ E ? /* @__PURE__ */ w(g, {
1941
1988
  "aria-label": "查看流程圖",
1942
- icon: je,
1989
+ icon: Pe,
1943
1990
  iconType: "icon-only",
1944
- onClick: () => Ke(!0),
1991
+ onClick: () => Je(!0),
1945
1992
  title: "查看流程圖",
1946
1993
  variant: "base-secondary",
1947
1994
  children: "流程圖"
1948
1995
  }) : null,
1949
- ft ? /* @__PURE__ */ T(g, {
1996
+ J ? /* @__PURE__ */ w(g, {
1950
1997
  disabled: $,
1951
- icon: Te,
1998
+ icon: Oe,
1952
1999
  iconType: "leading",
1953
- onClick: () => R(!0),
2000
+ onClick: () => I(!0),
1954
2001
  variant: "destructive-secondary",
1955
2002
  children: "取消案件"
1956
2003
  }) : null,
1957
- ct ? /* @__PURE__ */ E(w, { children: [
1958
- J ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(g, {
2004
+ ut ? /* @__PURE__ */ T(C, { children: [
2005
+ mt ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(g, {
1959
2006
  disabled: $,
1960
- icon: ke,
2007
+ icon: je,
1961
2008
  iconType: "leading",
1962
- onClick: () => G.current?.openAdhocModal("COUNTERSIGN"),
2009
+ onClick: () => W.current?.openAdhocModal("COUNTERSIGN"),
1963
2010
  variant: "base-secondary",
1964
2011
  children: "會簽"
1965
- }, "adhoc-countersign"), /* @__PURE__ */ T(g, {
2012
+ }, "adhoc-countersign"), /* @__PURE__ */ w(g, {
1966
2013
  disabled: $,
1967
- icon: ke,
2014
+ icon: je,
1968
2015
  iconType: "leading",
1969
- onClick: () => G.current?.openAdhocModal("PRE_APPROVAL"),
2016
+ onClick: () => W.current?.openAdhocModal("PRE_APPROVAL"),
1970
2017
  variant: "base-secondary",
1971
2018
  children: "加簽"
1972
2019
  }, "adhoc-pre-approval")] }) : null,
1973
- /* @__PURE__ */ T(g, {
2020
+ /* @__PURE__ */ w(g, {
1974
2021
  disabled: $,
1975
- icon: Oe,
2022
+ icon: Ae,
1976
2023
  iconType: "leading",
1977
- onClick: () => G.current?.openAdhocModal("STAGE_NOTIFY"),
2024
+ onClick: () => W.current?.openAdhocModal("STAGE_NOTIFY"),
1978
2025
  variant: "base-secondary",
1979
2026
  children: "通知設定"
1980
2027
  }, "adhoc-notify"),
1981
- lt ? /* @__PURE__ */ T(g, {
2028
+ dt ? /* @__PURE__ */ w(g, {
1982
2029
  disabled: $,
1983
- icon: Ae,
2030
+ icon: Me,
1984
2031
  iconType: "leading",
1985
- onClick: () => G.current?.openReturnModal(),
2032
+ onClick: () => W.current?.openReturnModal(),
1986
2033
  variant: "base-secondary",
1987
2034
  children: "退回"
1988
2035
  }, "task-return") : null,
1989
- dt ? /* @__PURE__ */ T(g, {
2036
+ pt ? /* @__PURE__ */ w(g, {
1990
2037
  disabled: $,
1991
- icon: Me,
2038
+ icon: Fe,
1992
2039
  iconType: "leading",
1993
- onClick: () => G.current?.openTransferModal(),
2040
+ onClick: () => W.current?.openTransferModal(),
1994
2041
  variant: "base-secondary",
1995
2042
  children: "轉派"
1996
2043
  }, "task-transfer") : null,
1997
- ut ? /* @__PURE__ */ T(g, {
2044
+ ft ? /* @__PURE__ */ w(g, {
1998
2045
  disabled: $,
1999
- icon: Te,
2046
+ icon: Oe,
2000
2047
  iconType: "leading",
2001
- onClick: () => G.current?.openRejectModal(),
2048
+ onClick: () => W.current?.openRejectModal(),
2002
2049
  variant: "destructive-secondary",
2003
2050
  children: "拒絕"
2004
2051
  }, "task-reject") : null,
2005
- /* @__PURE__ */ T(g, {
2052
+ /* @__PURE__ */ w(g, {
2006
2053
  disabled: $,
2007
- icon: Ce,
2054
+ icon: Ee,
2008
2055
  iconType: "leading",
2009
- onClick: () => G.current?.handleApprove(),
2056
+ onClick: () => W.current?.handleApprove(),
2010
2057
  variant: "base-primary",
2011
2058
  children: "同意"
2012
2059
  }, "task-approve")
2013
2060
  ] }) : null
2014
2061
  ]
2015
2062
  }) }),
2016
- /* @__PURE__ */ E(te, { children: [
2017
- s ? /* @__PURE__ */ T(y, { children: /* @__PURE__ */ T(Rt, {
2018
- canResubmitInstance: pt,
2019
- deciding: P,
2020
- error: Ue,
2021
- instance: D,
2022
- loading: We,
2023
- onDataSourceStateChange: st,
2063
+ /* @__PURE__ */ T(ne, { children: [
2064
+ s ? /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(Ut, {
2065
+ canResubmitInstance: ht,
2066
+ deciding: M,
2067
+ error: A,
2068
+ instance: E,
2069
+ loading: Ge,
2070
+ onDataSourceStateChange: ct,
2024
2071
  onResubmitFormChange: (e) => {
2025
- V(e), B({});
2072
+ $e(e), L({});
2026
2073
  },
2027
- onResubmitInstance: () => void Tt(),
2028
- onUploadAttachment: St,
2029
- resubmitFormData: Ye,
2030
- resubmitFormErrors: z
2074
+ onResubmitInstance: () => void Dt(),
2075
+ onUploadAttachment: Q,
2076
+ resubmitFormData: R,
2077
+ resubmitFormErrors: Xe
2031
2078
  }) }) : null,
2032
- o ? /* @__PURE__ */ T(y, { children: /* @__PURE__ */ T(Bt, {
2033
- attachments: he,
2079
+ o ? /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(Gt, {
2080
+ attachments: fe,
2034
2081
  onDownload: (e) => {
2035
- Q(e);
2082
+ wt(e);
2036
2083
  },
2037
2084
  onPreview: (e) => {
2038
- Ct(e);
2085
+ Tt(e);
2039
2086
  }
2040
2087
  }) }) : null,
2041
- h ? /* @__PURE__ */ T(y, { children: /* @__PURE__ */ T(Zt, {
2042
- adhocDirectives: et,
2043
- currentMemberId: x,
2044
- instance: D,
2045
- memberProfilesById: Y,
2088
+ ee ? /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(nn, {
2089
+ adhocDirectives: rt,
2090
+ currentMemberId: b,
2091
+ instance: E,
2092
+ memberProfilesById: gt,
2046
2093
  onChanged: Z,
2047
- ref: G,
2048
- tasks: A
2094
+ ref: W,
2095
+ tasks: O
2049
2096
  }) }) : null,
2050
- m ? /* @__PURE__ */ T(y, { children: /* @__PURE__ */ T(en, {
2051
- signatureVerification: Ee,
2052
- signatures: _e
2097
+ d ? /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(on, {
2098
+ signatureVerification: De,
2099
+ signatures: ye
2053
2100
  }) }) : null,
2054
- S && k.length > 0 ? /* @__PURE__ */ T(y, { children: /* @__PURE__ */ T(mn, {
2055
- deliveries: k,
2056
- onRetry: bt,
2057
- readNodeLabel: (e) => it(e, D?.workflowSnapshot ?? null)
2101
+ x && Ce.length > 0 ? /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(yn, {
2102
+ deliveries: Ce,
2103
+ onRetry: St,
2104
+ readNodeLabel: (e) => st(e, E?.workflowSnapshot ?? null)
2058
2105
  }) }) : null,
2059
- u ? /* @__PURE__ */ T(y, { children: /* @__PURE__ */ T(un, {
2106
+ c ? /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(hn, {
2060
2107
  activityLogs: re,
2061
- instanceState: D?.state ?? "RUNNING",
2062
- memberProfilesById: Y,
2063
- signatureVerification: Ee,
2064
- signaturesById: ht,
2065
- taskDecisionsByTaskId: mt,
2066
- tasks: A,
2067
- workflowSnapshot: D?.workflowSnapshot ?? null,
2068
- workflowTokens: Pe
2108
+ instanceState: E?.state ?? "RUNNING",
2109
+ memberProfilesById: gt,
2110
+ signatureVerification: De,
2111
+ signaturesById: _t,
2112
+ taskDecisionsByTaskId: Y,
2113
+ tasks: O,
2114
+ workflowSnapshot: E?.workflowSnapshot ?? null,
2115
+ workflowTokens: Ie
2069
2116
  }) }) : null
2070
2117
  ] }),
2071
- D ? /* @__PURE__ */ T(_, {
2118
+ E ? /* @__PURE__ */ w(_, {
2072
2119
  modalType: "standard",
2073
- onClose: () => Ke(!1),
2074
- open: Ge,
2120
+ onClose: () => Je(!1),
2121
+ open: qe,
2075
2122
  showModalHeader: !0,
2076
2123
  size: "wide",
2077
- supportingText: `${tt(D.state)} · ${t(D.startedAt)}`,
2124
+ supportingText: `${at(E.state)} · ${t(E.startedAt)}`,
2078
2125
  title: "流程圖",
2079
- children: /* @__PURE__ */ E("div", {
2080
- style: xn,
2081
- children: [/* @__PURE__ */ T("div", {
2082
- style: Sn,
2083
- children: /* @__PURE__ */ E(He, {
2084
- edges: _t,
2126
+ children: /* @__PURE__ */ T("div", {
2127
+ style: En,
2128
+ children: [/* @__PURE__ */ w("div", {
2129
+ style: Dn,
2130
+ children: /* @__PURE__ */ T(We, {
2131
+ edges: yt,
2085
2132
  fitView: !0,
2086
2133
  fitViewOptions: { padding: .18 },
2087
2134
  maxZoom: 1.2,
2088
2135
  minZoom: .2,
2089
- nodes: gt,
2136
+ nodes: vt,
2090
2137
  nodesDraggable: !1,
2091
2138
  nodesFocusable: !1,
2092
- nodeTypes: An,
2139
+ nodeTypes: Fn,
2093
2140
  panOnDrag: !0,
2094
2141
  proOptions: { hideAttribution: !0 },
2095
- children: [/* @__PURE__ */ T(j, {}), /* @__PURE__ */ T(ze, { showInteractive: !1 })]
2142
+ children: [/* @__PURE__ */ w(k, {}), /* @__PURE__ */ w(He, { showInteractive: !1 })]
2096
2143
  })
2097
- }), vt.length > 0 ? /* @__PURE__ */ T("div", {
2098
- style: Dn,
2099
- children: vt.map((e) => /* @__PURE__ */ T("span", {
2100
- style: On,
2144
+ }), bt.length > 0 ? /* @__PURE__ */ w("div", {
2145
+ style: Mn,
2146
+ children: bt.map((e) => /* @__PURE__ */ w("span", {
2147
+ style: Nn,
2101
2148
  children: e
2102
2149
  }, e))
2103
2150
  }) : null]
2104
2151
  })
2105
2152
  }) : null,
2106
- /* @__PURE__ */ T(_, {
2153
+ /* @__PURE__ */ w(_, {
2107
2154
  modalType: "standard",
2108
2155
  onClose: () => {
2109
- Qe(null), W(null);
2156
+ tt(null), nt(null);
2110
2157
  },
2111
- open: !!(H && $e),
2158
+ open: !!(B && H),
2112
2159
  showModalHeader: !0,
2113
2160
  size: "wide",
2114
- supportingText: H?.filename ?? void 0,
2161
+ supportingText: B?.filename ?? void 0,
2115
2162
  title: "PDF 預覽",
2116
- children: $e ? /* @__PURE__ */ T(Je, {
2117
- filename: H?.filename ?? "PDF 預覽",
2118
- fileUrl: $e,
2119
- onDownload: H ? () => void Q(H) : void 0
2163
+ children: H ? /* @__PURE__ */ w(Ze, {
2164
+ filename: B?.filename ?? "PDF 預覽",
2165
+ fileUrl: H,
2166
+ onDownload: B ? () => void wt(B) : void 0
2120
2167
  }) : null
2121
2168
  }),
2122
- /* @__PURE__ */ T(_, {
2169
+ /* @__PURE__ */ w(_, {
2123
2170
  cancelText: "保留案件",
2124
2171
  confirmButtonProps: { variant: "destructive-primary" },
2125
2172
  confirmText: "確認取消",
2126
- loading: P,
2173
+ loading: M,
2127
2174
  modalStatusType: "error",
2128
2175
  modalType: "standard",
2129
- onCancel: () => R(!1),
2130
- onClose: () => R(!1),
2131
- onConfirm: () => void wt(),
2132
- open: qe,
2176
+ onCancel: () => I(!1),
2177
+ onClose: () => I(!1),
2178
+ onConfirm: () => void Et(),
2179
+ open: F,
2133
2180
  showModalFooter: !0,
2134
2181
  showModalHeader: !0,
2135
2182
  supportingText: "取消後會關閉目前待簽任務與候選簽核人。",
2136
2183
  title: "取消案件",
2137
- children: /* @__PURE__ */ E("div", {
2138
- style: kn,
2139
- children: [/* @__PURE__ */ E(C, {
2184
+ children: /* @__PURE__ */ T("div", {
2185
+ style: Pn,
2186
+ children: [/* @__PURE__ */ T(S, {
2140
2187
  variant: "body",
2141
2188
  children: [
2142
2189
  "確定要取消「",
2143
- D?.title ?? "",
2190
+ E?.title ?? "",
2144
2191
  "」嗎?"
2145
2192
  ]
2146
- }), /* @__PURE__ */ T(n, {
2193
+ }), /* @__PURE__ */ w(n, {
2147
2194
  label: "取消原因",
2148
2195
  name: "cancelComment",
2149
- children: /* @__PURE__ */ T(ne, {
2150
- onChange: (e) => L(e.target.value),
2196
+ children: /* @__PURE__ */ w(ie, {
2197
+ onChange: (e) => P(e.target.value),
2151
2198
  placeholder: "可填寫取消原因",
2152
2199
  resize: "vertical",
2153
2200
  rows: 3,
2154
- value: I
2201
+ value: Ye
2155
2202
  })
2156
2203
  })]
2157
2204
  })
2158
2205
  })
2159
2206
  ] });
2160
2207
  }
2161
- function Mn(e) {
2208
+ function Ln(e) {
2162
2209
  return e.data.label ? e.data.label : e.data.isDefault ? "其他情況" : e.data.condition ?? "";
2163
2210
  }
2164
- function Nn(e) {
2165
- return e.edges.map(Mn).filter((e) => e.trim().length > 0);
2211
+ function Rn(e) {
2212
+ return e.edges.map(Ln).filter((e) => e.trim().length > 0);
2166
2213
  }
2167
- function Pn(e) {
2214
+ function zn(e) {
2168
2215
  return e === "startEvent" ? "開始" : e === "endEvent" ? "完成" : e === "userTask" ? "簽核節點" : e === "serviceTask" ? "知會節點" : e === "exclusiveGateway" ? "條件分流" : "平行處理";
2169
2216
  }
2170
- function Fn(e, t, n, r) {
2217
+ function Bn(e, t, n, r) {
2171
2218
  return e.nodes.map((e) => {
2172
- let i = jt(e, t, n, r);
2219
+ let i = It(e, t, n, r);
2173
2220
  return {
2174
2221
  data: {
2175
- kindLabel: Pn(e.type),
2222
+ kindLabel: zn(e.type),
2176
2223
  label: e.data.label,
2177
2224
  secondaryLabel: i.secondaryLabel,
2178
2225
  statusLabel: i.statusLabel,
@@ -2180,42 +2227,42 @@ function Fn(e, t, n, r) {
2180
2227
  },
2181
2228
  id: e.id,
2182
2229
  position: e.position,
2183
- sourcePosition: Ve.Right,
2184
- targetPosition: Ve.Left,
2230
+ sourcePosition: A.Right,
2231
+ targetPosition: A.Left,
2185
2232
  type: "workflowRuntime"
2186
2233
  };
2187
2234
  });
2188
2235
  }
2189
- function In(e) {
2190
- let t = new Ue.graphlib.Graph();
2236
+ function Vn(e) {
2237
+ let t = new j.graphlib.Graph();
2191
2238
  return t.setDefaultEdgeLabel(() => ({})), t.setGraph({
2192
2239
  nodesep: 56,
2193
2240
  rankdir: "LR",
2194
2241
  ranksep: 120
2195
2242
  }), e.nodes.forEach((e) => {
2196
2243
  t.setNode(e.id, {
2197
- height: bn,
2198
- width: yn
2244
+ height: Tn,
2245
+ width: wn
2199
2246
  });
2200
2247
  }), e.edges.forEach((e) => {
2201
2248
  t.setEdge(e.source, e.target);
2202
- }), Ue.layout(t), {
2249
+ }), j.layout(t), {
2203
2250
  ...e,
2204
2251
  nodes: e.nodes.map((e) => {
2205
2252
  let n = t.node(e.id);
2206
2253
  return n ? {
2207
2254
  ...e,
2208
2255
  position: {
2209
- x: n.x - yn / 2,
2210
- y: n.y - bn / 2
2256
+ x: n.x - wn / 2,
2257
+ y: n.y - Tn / 2
2211
2258
  }
2212
2259
  } : e;
2213
2260
  })
2214
2261
  };
2215
2262
  }
2216
- function Ln(e) {
2263
+ function Hn(e) {
2217
2264
  return e.edges.map((e) => {
2218
- let t = Mn(e);
2265
+ let t = Ln(e);
2219
2266
  return {
2220
2267
  animated: !1,
2221
2268
  id: e.id,
@@ -2243,25 +2290,25 @@ function Ln(e) {
2243
2290
  };
2244
2291
  });
2245
2292
  }
2246
- function Rn(e) {
2293
+ function Un(e) {
2247
2294
  return e === "current" ? {
2248
- ...Cn,
2295
+ ...On,
2249
2296
  border: "1px solid var(--mzn-color-primary, #0057ff)",
2250
2297
  boxShadow: "0 0 0 3px rgba(0, 87, 255, 0.14)"
2251
2298
  } : e === "completed" ? {
2252
- ...Cn,
2299
+ ...On,
2253
2300
  border: "1px solid #16a34a"
2254
2301
  } : e === "cancelled" ? {
2255
- ...Cn,
2302
+ ...On,
2256
2303
  border: "1px solid #dc2626",
2257
2304
  opacity: .72
2258
2305
  } : e === "waiting" ? {
2259
- ...Cn,
2306
+ ...On,
2260
2307
  border: "1px dashed #64748b"
2261
- } : Cn;
2308
+ } : On;
2262
2309
  }
2263
- function zn(e) {
2264
- let t = wn;
2310
+ function Wn(e) {
2311
+ let t = kn;
2265
2312
  return e === "current" ? {
2266
2313
  ...t,
2267
2314
  background: "#eff6ff",
@@ -2284,42 +2331,42 @@ function zn(e) {
2284
2331
  color: "#64748b"
2285
2332
  };
2286
2333
  }
2287
- function Bn({ data: e }) {
2288
- return /* @__PURE__ */ E("div", {
2289
- style: Rn(e.tone),
2334
+ function Gn({ data: e }) {
2335
+ return /* @__PURE__ */ T("div", {
2336
+ style: Un(e.tone),
2290
2337
  children: [
2291
- /* @__PURE__ */ T(Be, {
2338
+ /* @__PURE__ */ w(Ue, {
2292
2339
  isConnectable: !1,
2293
- position: Ve.Left,
2294
- style: En,
2340
+ position: A.Left,
2341
+ style: jn,
2295
2342
  type: "target"
2296
2343
  }),
2297
- /* @__PURE__ */ T(C, {
2344
+ /* @__PURE__ */ w(S, {
2298
2345
  component: "span",
2299
2346
  ellipsis: !0,
2300
2347
  title: e.label,
2301
2348
  variant: "label-primary",
2302
2349
  children: e.label
2303
2350
  }),
2304
- /* @__PURE__ */ T("span", {
2305
- style: zn(e.tone),
2351
+ /* @__PURE__ */ w("span", {
2352
+ style: Wn(e.tone),
2306
2353
  children: e.statusLabel
2307
2354
  }),
2308
- /* @__PURE__ */ T("span", {
2355
+ /* @__PURE__ */ w("span", {
2309
2356
  title: e.secondaryLabel,
2310
- style: Tn,
2357
+ style: An,
2311
2358
  children: e.secondaryLabel || e.kindLabel
2312
2359
  }),
2313
- /* @__PURE__ */ T(Be, {
2360
+ /* @__PURE__ */ w(Ue, {
2314
2361
  isConnectable: !1,
2315
- position: Ve.Right,
2316
- style: En,
2362
+ position: A.Right,
2363
+ style: jn,
2317
2364
  type: "source"
2318
2365
  })
2319
2366
  ]
2320
2367
  });
2321
2368
  }
2322
2369
  //#endregion
2323
- export { Zt as a, en as i, mn as n, Bt as o, un as r, Rt as s, jn as t };
2370
+ export { nn as a, on as i, yn as n, Gt as o, hn as r, Ut as s, In as t };
2324
2371
 
2325
- //# sourceMappingURL=detail-pYEIk-jW.js.map
2372
+ //# sourceMappingURL=detail-_c21WQla.js.map