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