@rytass/bpm-core-react 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +13 -1
  2. package/dist/chunks/{app-navigation-BRRFCkxZ.cjs → app-navigation-C_mbz7jx.cjs} +2 -2
  3. package/dist/chunks/app-navigation-C_mbz7jx.cjs.map +1 -0
  4. package/dist/chunks/{app-navigation-rxhpHCch.js → app-navigation-uwbNEw9P.js} +65 -65
  5. package/dist/chunks/app-navigation-uwbNEw9P.js.map +1 -0
  6. package/dist/chunks/approval-instance-list-page-Mo6wpDPb.cjs +2 -0
  7. package/dist/chunks/approval-instance-list-page-Mo6wpDPb.cjs.map +1 -0
  8. package/dist/chunks/approval-instance-list-page-nmzMrj0b.js +281 -0
  9. package/dist/chunks/approval-instance-list-page-nmzMrj0b.js.map +1 -0
  10. package/dist/chunks/builder-DPhAH381.cjs +3 -0
  11. package/dist/chunks/builder-DPhAH381.cjs.map +1 -0
  12. package/dist/chunks/{builder-Du_0apkh.js → builder-DqZskyXC.js} +333 -330
  13. package/dist/chunks/builder-DqZskyXC.js.map +1 -0
  14. package/dist/chunks/categories-DEijUOnw.cjs +2 -0
  15. package/dist/chunks/categories-DEijUOnw.cjs.map +1 -0
  16. package/dist/chunks/{categories-DG4k7S8V.js → categories-DTEl182t.js} +129 -126
  17. package/dist/chunks/categories-DTEl182t.js.map +1 -0
  18. package/dist/chunks/{dashboard-page-DcDiWQp2.cjs → dashboard-page-DCmuB0Rw.cjs} +2 -2
  19. package/dist/chunks/dashboard-page-DCmuB0Rw.cjs.map +1 -0
  20. package/dist/chunks/dashboard-page-Dx5PeEeN.js +117 -0
  21. package/dist/chunks/dashboard-page-Dx5PeEeN.js.map +1 -0
  22. package/dist/chunks/delegations-C-ZrwzvU.js +572 -0
  23. package/dist/chunks/delegations-C-ZrwzvU.js.map +1 -0
  24. package/dist/chunks/delegations-C5PzZ5Kn.js +645 -0
  25. package/dist/chunks/delegations-C5PzZ5Kn.js.map +1 -0
  26. package/dist/chunks/delegations-DOGDvybX.cjs +2 -0
  27. package/dist/chunks/delegations-DOGDvybX.cjs.map +1 -0
  28. package/dist/chunks/delegations-DkDBWOQ7.cjs +2 -0
  29. package/dist/chunks/delegations-DkDBWOQ7.cjs.map +1 -0
  30. package/dist/chunks/detail-B2gcOPkd.cjs +2 -0
  31. package/dist/chunks/detail-B2gcOPkd.cjs.map +1 -0
  32. package/dist/chunks/{detail-DilI0PPe.js → detail-CfFyU5zC.js} +667 -664
  33. package/dist/chunks/detail-CfFyU5zC.js.map +1 -0
  34. package/dist/chunks/{format-date-time-hKLVMxq4.cjs → format-date-time-isOa3e9q.cjs} +2 -2
  35. package/dist/chunks/{format-date-time-hKLVMxq4.cjs.map → format-date-time-isOa3e9q.cjs.map} +1 -1
  36. package/dist/chunks/notifications-CPQ-nVar.cjs +2 -0
  37. package/dist/chunks/notifications-CPQ-nVar.cjs.map +1 -0
  38. package/dist/chunks/notifications-DweexUVy.js +197 -0
  39. package/dist/chunks/notifications-DweexUVy.js.map +1 -0
  40. package/dist/chunks/orgs-DgZ0DQ3-.cjs +2 -0
  41. package/dist/chunks/orgs-DgZ0DQ3-.cjs.map +1 -0
  42. package/dist/chunks/{orgs-c29y74w2.js → orgs-xrdhb3hS.js} +668 -665
  43. package/dist/chunks/orgs-xrdhb3hS.js.map +1 -0
  44. package/dist/chunks/templates-PK_VYvcy.js +383 -0
  45. package/dist/chunks/templates-PK_VYvcy.js.map +1 -0
  46. package/dist/chunks/{templates-Cd0WFheA.cjs → templates-x1OJZmsG.cjs} +2 -2
  47. package/dist/chunks/templates-x1OJZmsG.cjs.map +1 -0
  48. package/dist/chunks/users-CY4-NK3j.js +218 -0
  49. package/dist/chunks/users-CY4-NK3j.js.map +1 -0
  50. package/dist/chunks/users-DHnu_056.cjs +2 -0
  51. package/dist/chunks/users-DHnu_056.cjs.map +1 -0
  52. package/dist/components/app-navigation.d.ts +17 -10
  53. package/dist/index.cjs +1 -1
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.js +4 -4
  56. package/dist/index.js.map +1 -1
  57. package/dist/lib/notification-drawer-provider.d.ts +1 -1
  58. package/dist/lib/notification-unread-provider.d.ts +1 -1
  59. package/dist/lib/providers.d.ts +1 -1
  60. package/dist/pages/admin/delegations/index.cjs +1 -1
  61. package/dist/pages/admin/delegations/index.js +1 -1
  62. package/dist/pages/admin/orgs/index.cjs +1 -1
  63. package/dist/pages/admin/orgs/index.js +1 -1
  64. package/dist/pages/admin/users/index.cjs +1 -1
  65. package/dist/pages/admin/users/index.js +1 -1
  66. package/dist/pages/delegations/index.cjs +1 -1
  67. package/dist/pages/delegations/index.js +1 -1
  68. package/dist/pages/forms/builder/index.cjs +1 -1
  69. package/dist/pages/forms/builder/index.js +1 -1
  70. package/dist/pages/instances/detail/index.cjs +1 -1
  71. package/dist/pages/instances/detail/index.js +1 -1
  72. package/dist/pages/settings/notifications/index.cjs +1 -1
  73. package/dist/pages/settings/notifications/index.js +1 -1
  74. package/dist/pages/templates/categories/index.cjs +1 -1
  75. package/dist/pages/templates/categories/index.js +1 -1
  76. package/dist/pages/templates/index.cjs +1 -1
  77. package/dist/pages/templates/index.js +1 -1
  78. package/dist/views/admin/delegations/index.cjs +1 -1
  79. package/dist/views/admin/delegations/index.js +1 -1
  80. package/dist/views/admin/index.cjs +1 -1
  81. package/dist/views/admin/index.js +3 -3
  82. package/dist/views/admin/orgs/index.cjs +1 -1
  83. package/dist/views/admin/orgs/index.js +1 -1
  84. package/dist/views/admin/users/index.cjs +1 -1
  85. package/dist/views/admin/users/index.js +1 -1
  86. package/dist/views/cc/index.cjs +1 -1
  87. package/dist/views/cc/index.js +1 -1
  88. package/dist/views/dashboard/index.cjs +1 -1
  89. package/dist/views/dashboard/index.js +1 -1
  90. package/dist/views/delegations/index.cjs +1 -1
  91. package/dist/views/delegations/index.js +1 -1
  92. package/dist/views/forms/builder/index.cjs +1 -1
  93. package/dist/views/forms/builder/index.js +1 -1
  94. package/dist/views/forms/index.cjs +1 -1
  95. package/dist/views/forms/index.cjs.map +1 -1
  96. package/dist/views/forms/index.js +93 -90
  97. package/dist/views/forms/index.js.map +1 -1
  98. package/dist/views/inbox/index.cjs +1 -1
  99. package/dist/views/inbox/index.cjs.map +1 -1
  100. package/dist/views/inbox/index.js +127 -124
  101. package/dist/views/inbox/index.js.map +1 -1
  102. package/dist/views/instances/detail/index.cjs +1 -1
  103. package/dist/views/instances/detail/index.js +1 -1
  104. package/dist/views/instances/new/index.cjs +1 -1
  105. package/dist/views/instances/new/index.cjs.map +1 -1
  106. package/dist/views/instances/new/index.js +120 -114
  107. package/dist/views/instances/new/index.js.map +1 -1
  108. package/dist/views/search/index.cjs +1 -1
  109. package/dist/views/search/index.js +1 -1
  110. package/dist/views/sent/index.cjs +1 -1
  111. package/dist/views/sent/index.js +1 -1
  112. package/dist/views/settings/index.cjs +1 -1
  113. package/dist/views/settings/index.js +1 -1
  114. package/dist/views/settings/notifications/index.cjs +1 -1
  115. package/dist/views/settings/notifications/index.js +1 -1
  116. package/dist/views/templates/categories/index.cjs +1 -1
  117. package/dist/views/templates/categories/index.js +1 -1
  118. package/dist/views/templates/designer/index.cjs +2 -2
  119. package/dist/views/templates/designer/index.cjs.map +1 -1
  120. package/dist/views/templates/designer/index.js +573 -570
  121. package/dist/views/templates/designer/index.js.map +1 -1
  122. package/dist/views/templates/index.cjs +1 -1
  123. package/dist/views/templates/index.js +2 -2
  124. package/dist/views/templates/versions/index.cjs +1 -1
  125. package/dist/views/templates/versions/index.cjs.map +1 -1
  126. package/dist/views/templates/versions/index.js +50 -47
  127. package/dist/views/templates/versions/index.js.map +1 -1
  128. package/package.json +1 -1
  129. package/dist/chunks/app-navigation-BRRFCkxZ.cjs.map +0 -1
  130. package/dist/chunks/app-navigation-rxhpHCch.js.map +0 -1
  131. package/dist/chunks/approval-instance-list-page-2vUWc5-c.cjs +0 -2
  132. package/dist/chunks/approval-instance-list-page-2vUWc5-c.cjs.map +0 -1
  133. package/dist/chunks/approval-instance-list-page-BgE4vQw8.js +0 -278
  134. package/dist/chunks/approval-instance-list-page-BgE4vQw8.js.map +0 -1
  135. package/dist/chunks/builder-B8X-m6C5.cjs +0 -3
  136. package/dist/chunks/builder-B8X-m6C5.cjs.map +0 -1
  137. package/dist/chunks/builder-Du_0apkh.js.map +0 -1
  138. package/dist/chunks/categories-DG4k7S8V.js.map +0 -1
  139. package/dist/chunks/categories-DshBQG33.cjs +0 -2
  140. package/dist/chunks/categories-DshBQG33.cjs.map +0 -1
  141. package/dist/chunks/dashboard-page-CTBwpu_D.js +0 -114
  142. package/dist/chunks/dashboard-page-CTBwpu_D.js.map +0 -1
  143. package/dist/chunks/dashboard-page-DcDiWQp2.cjs.map +0 -1
  144. package/dist/chunks/delegations-BAZQbElH.js +0 -642
  145. package/dist/chunks/delegations-BAZQbElH.js.map +0 -1
  146. package/dist/chunks/delegations-DzrckrPp.js +0 -569
  147. package/dist/chunks/delegations-DzrckrPp.js.map +0 -1
  148. package/dist/chunks/delegations-Z8hTajLj.cjs +0 -2
  149. package/dist/chunks/delegations-Z8hTajLj.cjs.map +0 -1
  150. package/dist/chunks/delegations-hb9JoVZe.cjs +0 -2
  151. package/dist/chunks/delegations-hb9JoVZe.cjs.map +0 -1
  152. package/dist/chunks/detail-DilI0PPe.js.map +0 -1
  153. package/dist/chunks/detail-DuRg3Y7b.cjs +0 -2
  154. package/dist/chunks/detail-DuRg3Y7b.cjs.map +0 -1
  155. package/dist/chunks/notifications-B2Lk3grg.js +0 -194
  156. package/dist/chunks/notifications-B2Lk3grg.js.map +0 -1
  157. package/dist/chunks/notifications-C8ADhnxF.cjs +0 -2
  158. package/dist/chunks/notifications-C8ADhnxF.cjs.map +0 -1
  159. package/dist/chunks/orgs-CGv3VNDR.cjs +0 -2
  160. package/dist/chunks/orgs-CGv3VNDR.cjs.map +0 -1
  161. package/dist/chunks/orgs-c29y74w2.js.map +0 -1
  162. package/dist/chunks/templates-Cd0WFheA.cjs.map +0 -1
  163. package/dist/chunks/templates-Dn9QHFSy.js +0 -380
  164. package/dist/chunks/templates-Dn9QHFSy.js.map +0 -1
  165. package/dist/chunks/users-B-trMu0E.cjs +0 -2
  166. package/dist/chunks/users-B-trMu0E.cjs.map +0 -1
  167. package/dist/chunks/users-itVXXRj7.js +0 -215
  168. package/dist/chunks/users-itVXXRj7.js.map +0 -1
@@ -1,642 +0,0 @@
1
- "use client";
2
- import { n as e } from "./auth-provider-Bnox5gsx.js";
3
- import { t } from "./format-date-time-CB-LxzqT.js";
4
- import { t as n } from "./app-navigation-rxhpHCch.js";
5
- import { t as r } from "./bpm-form-field-Cao0rMol.js";
6
- import { useCallback as i, useEffect as a, useMemo as o, useState as s } from "react";
7
- import { AutoComplete as c, Badge as l, Button as ee, DateTimePicker as u, Filter as d, FilterArea as f, FilterLine as te, FormField as ne, Input as re, Layout as ie, Modal as ae, PageHeader as oe, Section as se, SectionGroup as ce, Select as le, Tab as ue, TabItem as de, Table as fe, Tooltip as pe, Typography as p } from "@mezzanine-ui/react";
8
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
9
- import { createDelegationRule as me, listDelegationRulesPage as he, revokeDelegationRule as ge, searchMembers as _e } from "@rytass/bpm-core-client/workflow";
10
- import { PlusIcon as ve } from "@mezzanine-ui/icons";
11
- import ye from "@mezzanine-ui/react/ContentHeader";
12
- import { FormFieldLayout as g } from "@mezzanine-ui/core/form";
13
- import { listApprovalTemplates as be } from "@rytass/bpm-core-client/template";
14
- import '../delegations.css';var _ = {
15
- delegationModalFields: "bpm_delegationModalFields_gUlCQ",
16
- delegationFilterArea: "bpm_delegationFilterArea_QDZkw",
17
- memberNameWithTooltip: "bpm_memberNameWithTooltip_RggTW"
18
- }, v = g.HORIZONTAL, xe = [
19
- 10,
20
- 20,
21
- 50
22
- ], Se = [
23
- {
24
- key: "ALL",
25
- label: "全部"
26
- },
27
- {
28
- key: "ACTIVE",
29
- label: "啟用中"
30
- },
31
- {
32
- key: "REVOKED",
33
- label: "已撤銷"
34
- },
35
- {
36
- key: "EXPIRED",
37
- label: "已過期"
38
- }
39
- ], y = [{
40
- id: "ALL",
41
- name: "全部簽核"
42
- }, {
43
- id: "TEMPLATE_LIST",
44
- name: "指定模板"
45
- }], b = [
46
- {
47
- id: "ALL_SCOPES",
48
- name: "全部範圍",
49
- scopeType: null
50
- },
51
- {
52
- id: "ALL",
53
- name: "全部簽核",
54
- scopeType: "ALL"
55
- },
56
- {
57
- id: "TEMPLATE_LIST",
58
- name: "指定模板",
59
- scopeType: "TEMPLATE_LIST"
60
- }
61
- ];
62
- function x({ activeHref: l = "/admin/delegations" } = {}) {
63
- let { member: pe } = e(), v = pe?.memberId ?? null, [x, C] = s(null), [w, E] = s(""), [O, k] = s(null), [A, M] = s(!0), [N, Fe] = s(!1), [P, Ie] = s([]), [F, Le] = s(null), [I, Re] = s(null), [ze, L] = s(!1), [R, Be] = s(null), [Ve, He] = s("100"), [z, B] = s(1), [V, Ue] = s(10), [H, We] = s("ALL"), [Ge, Ke] = s(0), [qe, Je] = s([]), [Ye, Xe] = s(!1), [U, Ze] = s([]), [W, Qe] = s(b[0]), [$e, et] = s(y[0]), [G, tt] = s(""), [nt, rt] = s(!1), [it, K] = s([]), q = i(async () => {
64
- M(!0), k(null);
65
- try {
66
- let [e, t] = await Promise.all([he({
67
- agentMemberId: I?.id ?? null,
68
- includeInactive: !0,
69
- page: z,
70
- pageSize: V,
71
- principalMemberId: F?.id ?? null,
72
- scopeType: W.scopeType,
73
- status: H === "ALL" ? null : H
74
- }), _e("")]);
75
- Je(e.rules), Ke(e.totalCount), Ie(t.map(Ce));
76
- } catch (e) {
77
- k(j(e));
78
- } finally {
79
- M(!1);
80
- }
81
- }, [
82
- I,
83
- F,
84
- z,
85
- V,
86
- H,
87
- W
88
- ]);
89
- a(() => {
90
- q();
91
- }, [q]);
92
- let J = o(() => new Map(P.map((e) => [e.id, e])), [P]), at = o(() => qe.map((e) => ({
93
- ...e,
94
- agentEmail: J.get(e.agentMemberId)?.email ?? null,
95
- agentName: J.get(e.agentMemberId)?.displayName ?? e.agentMemberId,
96
- key: e.id,
97
- principalEmail: J.get(e.principalMemberId)?.email ?? null,
98
- principalName: J.get(e.principalMemberId)?.displayName ?? e.principalMemberId,
99
- scopeLabel: Ae(e)
100
- })), [J, qe]), Y = y.find((e) => e.id === $e.id) ?? y[0], ot = o(() => [
101
- {
102
- key: "principal",
103
- render: (e) => /* @__PURE__ */ m(we, {
104
- email: e.principalEmail,
105
- name: e.principalName
106
- }),
107
- title: "原簽核人",
108
- width: 220
109
- },
110
- {
111
- key: "agent",
112
- render: (e) => /* @__PURE__ */ m(we, {
113
- email: e.agentEmail,
114
- name: e.agentName
115
- }),
116
- title: "代理人",
117
- width: 220
118
- },
119
- {
120
- dataIndex: "scopeLabel",
121
- key: "scope",
122
- title: "代理範圍",
123
- width: 220
124
- },
125
- {
126
- key: "status",
127
- render: (e) => /* @__PURE__ */ m(je, { status: e.status }),
128
- title: "狀態",
129
- width: 120
130
- },
131
- {
132
- dataIndex: "priority",
133
- key: "priority",
134
- title: "優先序",
135
- width: 100
136
- },
137
- {
138
- key: "startAt",
139
- render: (e) => /* @__PURE__ */ m(p, {
140
- component: "span",
141
- variant: "body",
142
- children: t(e.startAt)
143
- }),
144
- title: "開始時間",
145
- width: 220
146
- },
147
- {
148
- key: "endAt",
149
- render: (e) => /* @__PURE__ */ m(p, {
150
- component: "span",
151
- variant: "body",
152
- children: e.endAt ? t(e.endAt) : "-"
153
- }),
154
- title: "結束時間",
155
- width: 220
156
- }
157
- ], []), X = i(async (e) => {
158
- if (v) {
159
- k(null);
160
- try {
161
- await ge({
162
- id: e,
163
- revokedByMemberId: v
164
- }), await q();
165
- } catch (e) {
166
- k(j(e));
167
- }
168
- }
169
- }, [v, q]), st = o(() => ({
170
- render: (e) => e.status === "ACTIVE" ? [{
171
- name: "撤銷",
172
- onClick: () => void X(e.id)
173
- }] : [],
174
- variant: "destructive-secondary",
175
- width: 88
176
- }), [X]);
177
- async function Z(e) {
178
- Fe(!0);
179
- try {
180
- Ie((await _e(e)).map(Ce));
181
- } catch (e) {
182
- k(j(e));
183
- } finally {
184
- Fe(!1);
185
- }
186
- }
187
- async function Q(e, t = U) {
188
- rt(!0);
189
- try {
190
- K(T(t, De((await be()).map(Te), e)));
191
- } catch (e) {
192
- k(j(e));
193
- } finally {
194
- rt(!1);
195
- }
196
- }
197
- function ct() {
198
- C(null), E(""), Be(null), He("100"), Ze([]), et(y[0]), tt(""), K([]), Q("", []), L(!0);
199
- }
200
- function $() {
201
- Ye || L(!1);
202
- }
203
- async function lt() {
204
- if (v) {
205
- if (!R || !x) {
206
- k("請選擇原簽核人與代理人");
207
- return;
208
- }
209
- if (Y.id === "TEMPLATE_LIST" && U.length < 1) {
210
- k("請選擇至少一個簽核模板");
211
- return;
212
- }
213
- if (Pe(G, w)) {
214
- k("結束時間必須晚於起始時間");
215
- return;
216
- }
217
- Xe(!0), k(null);
218
- try {
219
- await me({
220
- agentMemberId: x.id,
221
- createdByMemberId: v,
222
- endAt: w || null,
223
- principalMemberId: R.id,
224
- priority: Number(Ve) || 100,
225
- requiresConfirmation: !1,
226
- scopeConditionCel: null,
227
- scopeTemplateIds: Y.id === "TEMPLATE_LIST" ? U.map((e) => e.id) : [],
228
- scopeType: Y.id,
229
- startAt: G || null
230
- }), L(!1), z === 1 ? await q() : B(1);
231
- } catch (e) {
232
- k(j(e));
233
- } finally {
234
- Xe(!1);
235
- }
236
- }
237
- }
238
- return /* @__PURE__ */ h(ie, { children: [/* @__PURE__ */ m(n, { activeHref: l }), /* @__PURE__ */ h(ie.Main, { children: [
239
- /* @__PURE__ */ m(oe, { children: /* @__PURE__ */ m(ye, {
240
- description: "設定簽核代理規則,讓符合範圍的待簽任務自動改派給代理人。",
241
- title: "代理設定",
242
- children: /* @__PURE__ */ m(ee, {
243
- icon: ve,
244
- iconType: "leading",
245
- onClick: ct,
246
- variant: "base-primary",
247
- children: "建立代理"
248
- })
249
- }) }),
250
- /* @__PURE__ */ m(ce, { children: /* @__PURE__ */ h(se, {
251
- filterArea: /* @__PURE__ */ m(f, {
252
- className: _.delegationFilterArea,
253
- children: /* @__PURE__ */ h(te, { children: [
254
- /* @__PURE__ */ m(d, {
255
- span: 2,
256
- children: /* @__PURE__ */ m(S, {
257
- hideLabel: !0,
258
- label: "原簽核人",
259
- loading: N,
260
- name: "principalFilterMemberId",
261
- onChange: (e) => {
262
- Le(e), B(1);
263
- },
264
- onSearch: Z,
265
- options: P,
266
- required: !1,
267
- layout: g.VERTICAL,
268
- size: "sub",
269
- value: F
270
- })
271
- }),
272
- /* @__PURE__ */ m(d, {
273
- span: 2,
274
- children: /* @__PURE__ */ m(S, {
275
- hideLabel: !0,
276
- label: "代理人",
277
- loading: N,
278
- name: "agentFilterMemberId",
279
- onChange: (e) => {
280
- Re(e), B(1);
281
- },
282
- onSearch: Z,
283
- options: P,
284
- required: !1,
285
- layout: g.VERTICAL,
286
- size: "sub",
287
- value: I
288
- })
289
- }),
290
- /* @__PURE__ */ m(d, {
291
- span: 2,
292
- children: /* @__PURE__ */ m(ne, {
293
- fullWidth: !0,
294
- layout: g.VERTICAL,
295
- name: "scopeFilterType",
296
- children: /* @__PURE__ */ m(le, {
297
- clearable: !1,
298
- fullWidth: !0,
299
- onChange: (e) => {
300
- Qe(ke(e)), B(1);
301
- },
302
- options: [...b],
303
- placeholder: "代理範圍",
304
- size: "sub",
305
- value: W
306
- })
307
- })
308
- })
309
- ] })
310
- }),
311
- tab: /* @__PURE__ */ m(ue, {
312
- activeKey: H,
313
- onChange: (e) => {
314
- We(Me(e)), B(1);
315
- },
316
- children: Se.map((e) => /* @__PURE__ */ m(de, { children: e.label }, e.key))
317
- }),
318
- children: [O ? /* @__PURE__ */ m(p, {
319
- color: "text-error",
320
- variant: "body",
321
- children: O
322
- }) : null, /* @__PURE__ */ m(fe, {
323
- actions: st,
324
- columns: ot,
325
- dataSource: at,
326
- fullWidth: !0,
327
- loading: A,
328
- pagination: {
329
- current: z,
330
- onChange: (e) => {
331
- B(e);
332
- },
333
- onChangePageSize: (e) => {
334
- B(1), Ue(e);
335
- },
336
- pageSize: V,
337
- pageSizeLabel: "每頁筆數",
338
- pageSizeOptions: xe,
339
- renderResultSummary: (e, t, n) => `顯示 ${e}-${t} 筆,共 ${n} 筆`,
340
- showPageSizeOptions: !0,
341
- total: Ge
342
- }
343
- })]
344
- }) }),
345
- /* @__PURE__ */ m(ae, {
346
- cancelText: "取消",
347
- confirmButtonProps: { disabled: !R || !x },
348
- confirmText: "建立代理",
349
- loading: Ye,
350
- modalType: "standard",
351
- onCancel: $,
352
- onClose: $,
353
- onConfirm: () => void lt(),
354
- open: ze,
355
- showModalFooter: !0,
356
- showModalHeader: !0,
357
- size: "regular",
358
- supportingText: "代理生效後,後續建立的待簽任務會依範圍自動指派。",
359
- title: "建立代理",
360
- children: /* @__PURE__ */ h("div", {
361
- className: _.delegationModalFields,
362
- children: [
363
- /* @__PURE__ */ m(S, {
364
- label: "原簽核人",
365
- loading: N,
366
- name: "principalMemberId",
367
- onChange: Be,
368
- onSearch: Z,
369
- options: P,
370
- value: R
371
- }),
372
- /* @__PURE__ */ m(S, {
373
- label: "代理人",
374
- loading: N,
375
- name: "agentMemberId",
376
- onChange: C,
377
- onSearch: Z,
378
- options: P,
379
- value: x
380
- }),
381
- /* @__PURE__ */ m(r, {
382
- label: "代理範圍",
383
- name: "scopeType",
384
- required: !0,
385
- children: /* @__PURE__ */ m(le, {
386
- clearable: !1,
387
- fullWidth: !0,
388
- onChange: (e) => et(Oe(e)),
389
- options: [...y],
390
- value: Y
391
- })
392
- }),
393
- Y.id === "TEMPLATE_LIST" ? /* @__PURE__ */ m(r, {
394
- label: "簽核模板",
395
- name: "scopeTemplateIds",
396
- required: !0,
397
- children: /* @__PURE__ */ m(c, {
398
- asyncData: !0,
399
- disabledOptionsFilter: !0,
400
- emptyText: "沒有符合的模板",
401
- inputProps: {
402
- autoCapitalize: "none",
403
- autoCorrect: "off",
404
- name: "scopeTemplateIds",
405
- spellCheck: !1
406
- },
407
- loading: nt,
408
- loadingText: "搜尋模板中...",
409
- mode: "multiple",
410
- onChange: (e) => {
411
- let t = Ee(e);
412
- Ze(t), K((e) => T(t, e));
413
- },
414
- onSearch: Q,
415
- onVisibilityChange: (e) => {
416
- e && Q("");
417
- },
418
- options: [...it],
419
- overflowStrategy: "wrap",
420
- placeholder: "搜尋並選取簽核模板",
421
- searchDebounceTime: 300,
422
- value: [...U]
423
- })
424
- }) : null,
425
- /* @__PURE__ */ m(r, {
426
- label: "優先序",
427
- name: "priority",
428
- children: /* @__PURE__ */ m(re, {
429
- fullWidth: !0,
430
- onChange: (e) => He(e.target.value),
431
- value: Ve,
432
- variant: "base"
433
- })
434
- }),
435
- /* @__PURE__ */ m(r, {
436
- label: "起始時間",
437
- name: "startAt",
438
- children: /* @__PURE__ */ m(u, {
439
- formatDate: "YYYY-MM-DD",
440
- formatTime: "HH:mm",
441
- fullWidth: !0,
442
- hideSecond: !0,
443
- onChange: (e) => tt(Ne(e)),
444
- placeholderLeft: "留空立即生效",
445
- placeholderRight: "選擇時間",
446
- value: D(G)
447
- })
448
- }),
449
- /* @__PURE__ */ m(r, {
450
- label: "結束時間",
451
- name: "endAt",
452
- children: /* @__PURE__ */ m(u, {
453
- formatDate: "YYYY-MM-DD",
454
- formatTime: "HH:mm",
455
- fullWidth: !0,
456
- hideSecond: !0,
457
- onChange: (e) => E(Ne(e)),
458
- placeholderLeft: "可留空",
459
- placeholderRight: "選擇時間",
460
- value: D(w)
461
- })
462
- })
463
- ]
464
- })
465
- })
466
- ] })] });
467
- }
468
- function S({ hideLabel: e = !1, label: t, layout: n = v, loading: i, name: a, onChange: o, onSearch: s, options: l, required: ee = !0, size: u, value: d }) {
469
- let f = /* @__PURE__ */ m(c, {
470
- asyncData: !0,
471
- disabledOptionsFilter: !0,
472
- emptyText: "沒有符合的成員",
473
- inputProps: {
474
- autoCapitalize: "none",
475
- autoCorrect: "off",
476
- name: a,
477
- spellCheck: !1
478
- },
479
- loading: i,
480
- loadingText: "搜尋成員中...",
481
- mode: "single",
482
- onChange: (e) => o(C(e)),
483
- onSearch: s,
484
- onSearchTextChange: (e) => o(w(e, l)),
485
- onVisibilityChange: (e) => {
486
- e && s("");
487
- },
488
- options: [...l],
489
- placeholder: e ? t : "搜尋姓名或信箱",
490
- searchDebounceTime: 300,
491
- size: u,
492
- value: d
493
- });
494
- return e ? /* @__PURE__ */ m(ne, {
495
- fullWidth: !0,
496
- layout: n,
497
- name: a,
498
- children: f
499
- }) : /* @__PURE__ */ m(r, {
500
- label: t,
501
- layout: n,
502
- name: a,
503
- required: ee,
504
- children: f
505
- });
506
- }
507
- function Ce(e) {
508
- return {
509
- displayName: e.name,
510
- email: e.email,
511
- id: e.memberId,
512
- name: `${e.name} · ${e.email}`
513
- };
514
- }
515
- function C(e) {
516
- if (!M(e)) return null;
517
- let t = e.id, n = e.name, r = e.email, i = e.displayName;
518
- return typeof t == "string" && typeof n == "string" ? {
519
- displayName: typeof i == "string" ? i : n,
520
- email: typeof r == "string" ? r : null,
521
- id: t,
522
- name: n
523
- } : null;
524
- }
525
- function we({ email: e, name: t }) {
526
- return e ? /* @__PURE__ */ m(pe, {
527
- title: e,
528
- children: ({ onMouseEnter: e, onMouseLeave: n, ref: r }) => /* @__PURE__ */ m("span", {
529
- className: _.memberNameWithTooltip,
530
- onMouseEnter: e,
531
- onMouseLeave: n,
532
- ref: r,
533
- children: t
534
- })
535
- }) : /* @__PURE__ */ m("span", { children: t });
536
- }
537
- function w(e, t) {
538
- let n = e.trim().toLocaleLowerCase();
539
- if (!n) return null;
540
- let r = t.filter((e) => [
541
- e.id,
542
- e.name,
543
- e.email ?? ""
544
- ].some((e) => e.toLocaleLowerCase().includes(n)));
545
- return r.length === 1 ? r[0] ?? null : null;
546
- }
547
- function Te(e) {
548
- return {
549
- id: e.id,
550
- name: e.name
551
- };
552
- }
553
- function Ee(e) {
554
- return e.flatMap((e) => {
555
- if (!M(e)) return [];
556
- let t = e.id, n = e.name;
557
- return typeof t == "string" && typeof n == "string" ? [{
558
- id: t,
559
- name: n
560
- }] : [];
561
- });
562
- }
563
- function De(e, t) {
564
- let n = t.trim().toLocaleLowerCase();
565
- return n ? e.filter((e) => [e.id, e.name].some((e) => e.toLocaleLowerCase().includes(n))) : e;
566
- }
567
- function T(e, t) {
568
- return [...e, ...t].reduce((e, t) => e.some((e) => e.id === t.id) ? e : [...e, t], []);
569
- }
570
- function Oe(e) {
571
- return !M(e) || !E(e.id) ? y[0] : y.find((t) => t.id === e.id) ?? y[0];
572
- }
573
- function ke(e) {
574
- if (!M(e)) return b[0];
575
- let t = e.id;
576
- return b.find((e) => e.id === t) ?? b[0];
577
- }
578
- function E(e) {
579
- return e === "ALL" || e === "TEMPLATE_LIST";
580
- }
581
- function Ae(e) {
582
- return e.scopeType === "ALL" ? "全部簽核" : e.scopeType === "TEMPLATE_LIST" ? `指定模板:${e.scopeTemplateIds.length}` : e.scopeConditionCel ? `條件:${e.scopeConditionCel}` : "條件式";
583
- }
584
- function je({ status: e }) {
585
- return e === "ACTIVE" ? /* @__PURE__ */ m(l, {
586
- size: "sub",
587
- text: "啟用中",
588
- variant: "dot-success"
589
- }) : e === "REVOKED" ? /* @__PURE__ */ m(l, {
590
- size: "sub",
591
- text: "已撤銷",
592
- variant: "dot-inactive"
593
- }) : e === "EXPIRED" ? /* @__PURE__ */ m(l, {
594
- size: "sub",
595
- text: "已過期",
596
- variant: "dot-warning"
597
- }) : /* @__PURE__ */ m(l, {
598
- size: "sub",
599
- text: e,
600
- variant: "dot-info"
601
- });
602
- }
603
- function Me(e) {
604
- return e === "ACTIVE" || e === "REVOKED" || e === "EXPIRED" ? e : "ALL";
605
- }
606
- function D(e) {
607
- let t = e ? O(e) : null;
608
- return t ? `${k(t)}T${A(t.getHours())}:${A(t.getMinutes())}` : void 0;
609
- }
610
- function Ne(e) {
611
- let t = e ? O(e) : null;
612
- return t ? t.toISOString() : "";
613
- }
614
- function Pe(e, t) {
615
- if (!e || !t) return !1;
616
- let n = O(e), r = O(t);
617
- return !!n && !!r && r.getTime() <= n.getTime();
618
- }
619
- function O(e) {
620
- if (e.endsWith("Z") || /[+-]\d{2}:\d{2}$/.test(e)) {
621
- let t = new Date(e);
622
- return Number.isNaN(t.getTime()) ? null : t;
623
- }
624
- let [t = "", n = "00:00"] = e.split("T"), [r = 0, i = 1, a = 1] = t.split("-").map(Number), [o = 0, s = 0] = n.split(":").map(Number), c = new Date(r, i - 1, a, o, s);
625
- return Number.isNaN(c.getTime()) ? null : c;
626
- }
627
- function k(e) {
628
- return `${e.getFullYear()}-${A(e.getMonth() + 1)}-${A(e.getDate())}`;
629
- }
630
- function A(e) {
631
- return String(e).padStart(2, "0");
632
- }
633
- function j(e) {
634
- return e instanceof Error ? e.message : "發生未知錯誤";
635
- }
636
- function M(e) {
637
- return typeof e == "object" && !!e;
638
- }
639
- //#endregion
640
- export { x as t };
641
-
642
- //# sourceMappingURL=delegations-BAZQbElH.js.map