@rytass/bpm-core-react 0.4.0 → 0.4.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.
- package/CHANGELOG.md +49 -0
- package/dist/chunks/{approval-instance-list-page-BtEc8Cs3.js → approval-instance-list-page-BF2r5D2-.js} +2 -2
- package/dist/chunks/{approval-instance-list-page-BtEc8Cs3.js.map → approval-instance-list-page-BF2r5D2-.js.map} +1 -1
- package/dist/chunks/{approval-instance-list-page-UNIIgUZy.cjs → approval-instance-list-page-C5ZKPHdA.cjs} +2 -2
- package/dist/chunks/{approval-instance-list-page-UNIIgUZy.cjs.map → approval-instance-list-page-C5ZKPHdA.cjs.map} +1 -1
- package/dist/chunks/{auth-provider-D2P-qWmY.cjs → auth-provider-4BeCw7cI.cjs} +2 -2
- package/dist/chunks/{auth-provider-D2P-qWmY.cjs.map → auth-provider-4BeCw7cI.cjs.map} +1 -1
- package/dist/chunks/{auth-provider-TTO9eNZV.js → auth-provider-B5oPmvk2.js} +2 -2
- package/dist/chunks/{auth-provider-TTO9eNZV.js.map → auth-provider-B5oPmvk2.js.map} +1 -1
- package/dist/chunks/{builder-C3E-8OJu.js → builder-BLVnnpnP.js} +2 -2
- package/dist/chunks/{builder-C3E-8OJu.js.map → builder-BLVnnpnP.js.map} +1 -1
- package/dist/chunks/{builder-f-Q_0NUs.cjs → builder-DVE9zIKH.cjs} +2 -2
- package/dist/chunks/{builder-f-Q_0NUs.cjs.map → builder-DVE9zIKH.cjs.map} +1 -1
- package/dist/chunks/{dashboard-page-DrDChhg1.cjs → dashboard-page-CddG1MnK.cjs} +2 -2
- package/dist/chunks/{dashboard-page-DrDChhg1.cjs.map → dashboard-page-CddG1MnK.cjs.map} +1 -1
- package/dist/chunks/{dashboard-page-CQRBJxze.js → dashboard-page-Ib8srCMy.js} +3 -3
- package/dist/chunks/{dashboard-page-CQRBJxze.js.map → dashboard-page-Ib8srCMy.js.map} +1 -1
- package/dist/chunks/{delegations-CFXaJrdX.cjs → delegations-C2wLWsDQ.cjs} +2 -2
- package/dist/chunks/{delegations-CFXaJrdX.cjs.map → delegations-C2wLWsDQ.cjs.map} +1 -1
- package/dist/chunks/{delegations-DwbYkNUg.cjs → delegations-DDEk-WI6.cjs} +2 -2
- package/dist/chunks/{delegations-DwbYkNUg.cjs.map → delegations-DDEk-WI6.cjs.map} +1 -1
- package/dist/chunks/{delegations-FTLaWo1Y.js → delegations-ZNtodFaD.js} +2 -2
- package/dist/chunks/{delegations-FTLaWo1Y.js.map → delegations-ZNtodFaD.js.map} +1 -1
- package/dist/chunks/{delegations-D5pPEWsP.js → delegations-iVnRi3QE.js} +2 -2
- package/dist/chunks/{delegations-D5pPEWsP.js.map → delegations-iVnRi3QE.js.map} +1 -1
- package/dist/chunks/{detail-B9JkYNHc.cjs → detail-Dcr5mM8g.cjs} +2 -2
- package/dist/chunks/{detail-B9JkYNHc.cjs.map → detail-Dcr5mM8g.cjs.map} +1 -1
- package/dist/chunks/{detail-CSxI04gB.js → detail-u9DdLhDW.js} +2 -2
- package/dist/chunks/{detail-CSxI04gB.js.map → detail-u9DdLhDW.js.map} +1 -1
- package/dist/chunks/{login-BfmfCclF.cjs → login-9bCXyjbX.cjs} +2 -2
- package/dist/chunks/{login-BfmfCclF.cjs.map → login-9bCXyjbX.cjs.map} +1 -1
- package/dist/chunks/{login-xgI4wLHe.js → login-BKxpLibd.js} +3 -3
- package/dist/chunks/{login-xgI4wLHe.js.map → login-BKxpLibd.js.map} +1 -1
- package/dist/chunks/{notifications-a-FCxV02.cjs → notifications-BKs4--96.cjs} +2 -2
- package/dist/chunks/{notifications-a-FCxV02.cjs.map → notifications-BKs4--96.cjs.map} +1 -1
- package/dist/chunks/{notifications-BoNa1BXD.js → notifications-CSulztkU.js} +2 -2
- package/dist/chunks/{notifications-BoNa1BXD.js.map → notifications-CSulztkU.js.map} +1 -1
- package/dist/chunks/router-adapter--gYs13E8.cjs +2 -0
- package/dist/chunks/{router-adapter-BybHrCNP.cjs.map → router-adapter--gYs13E8.cjs.map} +1 -1
- package/dist/chunks/{router-adapter-BdHZXLS3.js → router-adapter-DftlFTOd.js} +2 -2
- package/dist/chunks/{router-adapter-BdHZXLS3.js.map → router-adapter-DftlFTOd.js.map} +1 -1
- package/dist/chunks/{templates-DNfDOPGm.js → templates-D44FSB46.js} +2 -2
- package/dist/chunks/{templates-DNfDOPGm.js.map → templates-D44FSB46.js.map} +1 -1
- package/dist/chunks/{templates-CL8bPvgn.cjs → templates-w96t83N-.cjs} +2 -2
- package/dist/chunks/{templates-CL8bPvgn.cjs.map → templates-w96t83N-.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +4 -4
- package/dist/next/BPMNextProviders.d.ts +1 -1
- package/dist/next/index.cjs +1 -1
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.js +13 -23
- package/dist/next/index.js.map +1 -1
- package/dist/pages/admin/delegations/index.cjs +1 -1
- package/dist/pages/admin/delegations/index.js +1 -1
- package/dist/pages/delegations/index.cjs +1 -1
- package/dist/pages/delegations/index.js +1 -1
- package/dist/pages/forms/builder/index.cjs +1 -1
- package/dist/pages/forms/builder/index.js +1 -1
- package/dist/pages/instances/detail/index.cjs +1 -1
- package/dist/pages/instances/detail/index.js +1 -1
- package/dist/pages/login/index.cjs +1 -1
- package/dist/pages/login/index.js +1 -1
- package/dist/pages/settings/notifications/index.cjs +1 -1
- package/dist/pages/settings/notifications/index.js +1 -1
- package/dist/pages/templates/index.cjs +1 -1
- package/dist/pages/templates/index.js +1 -1
- package/dist/views/admin/delegations/index.cjs +1 -1
- package/dist/views/admin/delegations/index.js +1 -1
- package/dist/views/admin/index.cjs +1 -1
- package/dist/views/admin/index.js +1 -1
- package/dist/views/cc/index.cjs +1 -1
- package/dist/views/cc/index.js +1 -1
- package/dist/views/dashboard/index.cjs +1 -1
- package/dist/views/dashboard/index.js +1 -1
- package/dist/views/delegations/index.cjs +1 -1
- package/dist/views/delegations/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/index.cjs +1 -1
- package/dist/views/forms/index.js +1 -1
- package/dist/views/inbox/index.cjs +1 -1
- package/dist/views/inbox/index.js +2 -2
- package/dist/views/instances/detail/index.cjs +1 -1
- package/dist/views/instances/detail/index.js +1 -1
- package/dist/views/instances/new/index.cjs +1 -1
- package/dist/views/instances/new/index.js +2 -2
- package/dist/views/login/index.cjs +1 -1
- package/dist/views/login/index.js +1 -1
- package/dist/views/search/index.cjs +1 -1
- package/dist/views/search/index.js +1 -1
- package/dist/views/sent/index.cjs +1 -1
- package/dist/views/sent/index.js +1 -1
- package/dist/views/settings/index.cjs +1 -1
- package/dist/views/settings/index.js +1 -1
- package/dist/views/settings/notifications/index.cjs +1 -1
- package/dist/views/settings/notifications/index.js +1 -1
- package/dist/views/templates/designer/index.cjs +1 -1
- package/dist/views/templates/designer/index.js +1 -1
- package/dist/views/templates/index.cjs +1 -1
- package/dist/views/templates/index.js +1 -1
- package/dist/views/templates/versions/index.cjs +1 -1
- package/dist/views/templates/versions/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/router-adapter-BybHrCNP.cjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";require('../detail.css');const e=require("./chunk-CMqjfN_6.cjs"),t=require("./auth-provider-D2P-qWmY.cjs"),n=require("./format-date-time-XxBzF0F5.cjs"),r=require("./bpm-form-field-Bc6k4ZEO.cjs"),i=require("./FormRendererView-BwVsH2eX.cjs");let a=require("react"),o=require("@mezzanine-ui/react"),s=require("react/jsx-runtime"),c=require("@rytass/bpm-core-client/workflow"),l=require("@mezzanine-ui/react/ContentHeader");l=e.t(l,1);let u=require("@mezzanine-ui/icons"),d=require("@rytass/bpm-core-client/form"),f=require("@xyflow/react"),p=require("dagre");p=e.t(p,1);let m=require("@mezzanine-ui/core/stepper"),h=require("react-pdf");var g={root:`bpm_root_ehm7w`,toolbar:`bpm_toolbar_R-tis`,pageControls:`bpm_pageControls_jM-rC`,zoomControls:`bpm_zoomControls_7RAbJ`,counter:`bpm_counter_ILUsD`,viewport:`bpm_viewport_DQXms`,page:`bpm_page_Cv5Rg`,state:`bpm_state_bpgp3`},_=760,ee=920,te=320,ne=32,re=.75,ie=1.75,v=.25;function ae({filename:e,fileUrl:t,onDownload:n}){let r=(0,a.useRef)(null),[i,c]=(0,a.useState)(null),[l,d]=(0,a.useState)(1),[f,p]=(0,a.useState)(1),[m,ae]=(0,a.useState)(_);(0,a.useEffect)(()=>{let e=r.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e=>{let t=e[0]?.contentRect.width;t&&ae(t)});return t.observe(e),()=>t.disconnect()},[]),(0,a.useEffect)(()=>{c(null),d(1),p(1)},[t]);let b=(0,a.useMemo)(()=>{let e=Math.max(te,m-ne);return Math.round(Math.min(ee,e)*f)},[f,m]),oe=(0,a.useCallback)(e=>{c(e.numPages),d(1)},[]),x=l>1,se=i!==null&&l<i,ce=f>re,le=f<ie,ue=i===null?`第 ${l} 頁`:`第 ${l} / ${i} 頁`,de=`${Math.round(f*100)}%`;return(0,s.jsxs)(`section`,{"aria-label":`${e} PDF 預覽`,className:g.root,children:[(0,s.jsxs)(`div`,{className:g.toolbar,children:[(0,s.jsxs)(`div`,{className:g.pageControls,"aria-label":`頁面切換`,children:[(0,s.jsx)(o.Button,{"aria-label":`上一頁`,disabled:!x,icon:u.ChevronLeftIcon,onClick:()=>{d(e=>Math.max(1,e-1))},size:`minor`,variant:`base-secondary`}),(0,s.jsx)(o.Typography,{className:g.counter,component:`span`,variant:`body`,children:ue}),(0,s.jsx)(o.Button,{"aria-label":`下一頁`,disabled:!se,icon:u.ChevronRightIcon,onClick:()=>{d(e=>i===null?e:Math.min(i,e+1))},size:`minor`,variant:`base-secondary`})]}),(0,s.jsxs)(`div`,{className:g.zoomControls,"aria-label":`縮放`,children:[(0,s.jsx)(o.Button,{"aria-label":`縮小`,disabled:!ce,icon:u.ZoomOutIcon,onClick:()=>{p(e=>Math.max(re,e-v))},size:`minor`,variant:`base-secondary`}),(0,s.jsx)(o.Typography,{className:g.counter,component:`span`,variant:`body`,children:de}),(0,s.jsx)(o.Button,{"aria-label":`放大`,disabled:!le,icon:u.ZoomInIcon,onClick:()=>{p(e=>Math.min(ie,e+v))},size:`minor`,variant:`base-secondary`})]}),n?(0,s.jsx)(o.Button,{icon:u.DownloadIcon,iconType:`leading`,onClick:n,size:`minor`,variant:`base-primary`,children:`下載`}):null]}),(0,s.jsx)(`div`,{className:g.viewport,ref:r,children:(0,s.jsx)(h.Document,{error:(0,s.jsx)(y,{message:`PDF 無法載入。`}),file:t,loading:(0,s.jsx)(y,{message:`正在載入 PDF...`}),noData:(0,s.jsx)(y,{message:`沒有可預覽的 PDF。`}),onLoadSuccess:oe,children:(0,s.jsx)(h.Page,{className:g.page,loading:(0,s.jsx)(y,{message:`正在載入頁面...`}),pageNumber:l,renderAnnotationLayer:!0,renderTextLayer:!0,width:b})})})]})}function y({message:e}){return(0,s.jsx)(`div`,{className:g.state,children:(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:e})})}var b={display:`grid`,gap:16},oe={display:`flex`,flexWrap:`wrap`,gap:8},x=184,se=96,ce={display:`grid`,gap:16},le={display:`grid`,gap:12,width:`100%`},ue={minWidth:`100%`,width:`100%`},de={display:`grid`,gap:12,width:`100%`},fe={background:`#f8fafc`,border:`1px solid #e2e8f0`,borderRadius:8,height:`min(64vh, 620px)`,minHeight:440,overflow:`hidden`,width:`min(80vw, 1040px)`},S={background:`#ffffff`,border:`1px solid #cbd5e1`,borderRadius:8,boxShadow:`0 8px 18px rgba(15, 23, 42, 0.08)`,display:`grid`,gap:6,minHeight:82,padding:12,width:184},pe={borderRadius:999,fontSize:12,fontWeight:600,justifySelf:`start`,lineHeight:`18px`,padding:`0 8px`},C={color:`#64748b`,fontSize:12,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},me={opacity:0},he={display:`flex`,flexWrap:`wrap`,gap:8},ge={alignItems:`center`,background:`#ffffff`,border:`1px solid #cbd5e1`,borderRadius:8,color:`#334155`,display:`inline-flex`,fontSize:12,fontWeight:600,gap:6,lineHeight:`20px`,padding:`4px 8px`},_e={cursor:`help`,textDecoration:`underline dotted`,textUnderlineOffset:3},ve={color:`var(--mzn-color-text-error)`};function ye(e){e&&(e.style.width=`100%`)}var be={workflowRuntime:Xe};function xe({instanceId:e}){let{member:p}=t.n(),m=p?.memberId??null,[h,g]=(0,a.useState)([]),[_,ee]=(0,a.useState)(null),[te,ne]=(0,a.useState)([]),[re,ie]=(0,a.useState)([]),[v,y]=(0,a.useState)([]),[x,se]=(0,a.useState)(null),[S,pe]=(0,a.useState)([]),[C,me]=(0,a.useState)([]),[_e,ve]=(0,a.useState)([]),[xe,T]=(0,a.useState)(null),[Te,E]=(0,a.useState)(!0),[D,O]=(0,a.useState)(!1),[k,A]=(0,a.useState)(!1),[je,Me]=(0,a.useState)(``),[Ne,j]=(0,a.useState)(!1),[Pe,M]=(0,a.useState)(``),[N,P]=(0,a.useState)(null),[Fe,Ie]=(0,a.useState)(!1),[Le,F]=(0,a.useState)(``),[Re,I]=(0,a.useState)(!1),[ze,R]=(0,a.useState)(null),[We,B]=(0,a.useState)(``),[V,H]=(0,a.useState)(null),[Je,Ye]=(0,a.useState)(!1),[U,W]=(0,a.useState)([]),[G,K]=(0,a.useState)(!1),[Xe,q]=(0,a.useState)({}),[J,et]=(0,a.useState)({}),[Y,tt]=(0,a.useState)(null),[rt,it]=(0,a.useState)(null),at=Pe.trim(),ot=je.trim(),st=Le.trim(),ct=We.trim();(0,a.useEffect)(()=>{Ot()},[m,e]),(0,a.useEffect)(()=>{et(_?.formData??{})},[_]);let X=(0,a.useMemo)(()=>S.find(e=>He(e,m)&&(e.status===`PENDING`||e.status===`IN_PROGRESS`))??null,[m,S]),Z=(0,a.useMemo)(()=>X&&_?_.workflowSnapshot.nodes.find(e=>e.id===X.nodeId)??null:null,[X,_]),lt=(0,a.useMemo)(()=>Z&&_?Be(_.workflowSnapshot,Z):[],[Z,_]),ut=Z?.type===`userTask`&&Z.data.returnBehavior.allowReturn,dt=lt.find(e=>e.id===ze)??lt[0]??null,ft=!!(_&&_.initiatorMemberId===m&&(_.state===`RUNNING`||_.state===`RETURNED`)),Q=!!(_&&_.initiatorMemberId===m&&_.state===`RETURNED`),pt=(0,a.useMemo)(()=>new Map(_e.map(e=>[e.memberId,e])),[_e]),mt=(0,a.useMemo)(()=>S.map(e=>({...e,assigneeLabel:z(e,pt),key:e.id,nodeLabel:L(e.nodeId,_?.workflowSnapshot??null),statusLabel:Ve(e.status)})),[_,pt,S]),ht=(0,a.useMemo)(()=>Oe(te),[te]),gt=(0,a.useMemo)(()=>new Map(v.map(e=>[e.id,e])),[v]),_t=(0,a.useMemo)(()=>ke(h,S,C,_?.workflowSnapshot??null,_?.state??`RUNNING`,pt,ht,gt,x),[h,_,pt,x,gt,ht,S,C]),vt=(0,a.useMemo)(()=>Ae(_t),[_t]),$=(0,a.useMemo)(()=>_?Qe(_.workflowSnapshot):null,[_]),yt=(0,a.useMemo)(()=>_&&$?Ze($,S,C,_.state):[],[_,$,S,C]),bt=(0,a.useMemo)(()=>$?$e($):[],[$]),xt=(0,a.useMemo)(()=>_?nt(_.workflowSnapshot):[],[_]),St=(0,a.useMemo)(()=>[{dataIndex:`nodeLabel`,key:`nodeLabel`,title:`節點`,width:180},{key:`assigneeMemberId`,title:`處理者`,render:e=>(0,s.jsx)(o.Typography,{component:`span`,variant:`body`,children:e.assigneeLabel}),width:180},{dataIndex:`statusLabel`,key:`statusLabel`,title:`狀態`,width:120},{key:`createdAt`,render:e=>(0,s.jsx)(o.Typography,{component:`span`,variant:`body`,children:n.t(e.createdAt)}),title:`建立時間`,width:220}],[]),Ct=(0,a.useMemo)(()=>re.map(e=>({attachment:e,createdAt:e.createdAt,filename:e.filename,id:e.id,key:e.id,mimeType:e.mimeType,sizeLabel:Se(Number(e.sizeBytes))})),[re]),wt=(0,a.useMemo)(()=>[{dataIndex:`filename`,key:`filename`,title:`檔名`,width:260},{dataIndex:`mimeType`,key:`mimeType`,title:`類型`,width:180},{dataIndex:`sizeLabel`,key:`sizeLabel`,title:`大小`,width:120},{key:`createdAt`,render:e=>(0,s.jsx)(o.Typography,{component:`span`,variant:`body`,children:n.t(e.createdAt)}),title:`上傳時間`,width:220}],[]),Tt=(0,a.useMemo)(()=>({render:e=>[...e.mimeType===`application/pdf`?[{icon:u.FileSearchIcon,iconType:`leading`,name:`預覽`,onClick:()=>{jt(e.attachment)}}]:[],{icon:u.DownloadIcon,iconType:`leading`,name:`下載`,onClick:()=>{At(e.attachment)}}],variant:`base-secondary`,width:160}),[]),Et=(0,a.useMemo)(()=>v.map(e=>({algorithm:e.algorithm,hashLabel:Ce(e.signedPayloadHash),key:e.id,keyVersion:e.keyVersion,signedAtLabel:n.t(e.signedAt),signerMemberId:e.signerMemberId})),[v]),Dt=(0,a.useMemo)(()=>[{dataIndex:`signerMemberId`,key:`signerMemberId`,title:`簽章者`,width:160},{dataIndex:`algorithm`,key:`algorithm`,title:`演算法`,width:150},{dataIndex:`keyVersion`,key:`keyVersion`,title:`Key 版本`,width:100},{dataIndex:`hashLabel`,key:`hashLabel`,title:`Payload Hash`,width:180},{dataIndex:`signedAtLabel`,key:`signedAtLabel`,title:`簽章時間`,width:220}],[]);async function Ot(){E(!0),T(null);try{let t=await(0,c.readApprovalInstance)(e);g(t.activityLogs),ee(t.instance),pe(t.tasks),me(t.workflowTokens);let[n,r,i,a]=await Promise.all([De(t.tasks),Ee(t),(0,c.listAttachments)(t.instance.id),(0,c.readInstanceSignatures)(t.instance.id)]);ne(n),ve(r),ie(i),y(a.signatures),se(a.verification)}catch(e){T(w(e))}finally{E(!1)}}async function kt(e,t){if(!m)throw Error(`尚未登入,無法上傳附件`);return{id:(await(0,c.uploadAttachment)({file:t,formFieldPath:`form.${e.fieldKey}`})).id}}async function At(e){if(!m)return;let t=await(0,c.readAttachmentDownloadUrl)({id:e.id});window.open(t,`_blank`,`noopener,noreferrer`)}async function jt(e){if(!m)return;let t=await(0,c.readAttachmentPreviewUrl)({id:e.id});tt(e),it(t)}async function Mt({action:e,comment:t,returnToNodeId:n=null,transferToMemberId:r=null}){if(!(!m||!X)){O(!0),T(null);try{await(0,c.decideTask)({action:e,comment:t,decidedByMemberId:m,returnToNodeId:n,taskId:X.id,transferToMemberId:r}),Ie(!1),I(!1),K(!1),M(``),F(``),B(``),H(null),R(null),P(null),await Ot()}catch(e){T(w(e))}finally{O(!1)}}}function Nt(){M(``),P(null),Ie(!0)}function Pt(){D||(Ie(!1),M(``),P(null))}function Ft(){F(``),R(lt[0]?.id??null),I(!0)}function It(){D||(I(!1),F(``),R(null))}function Lt(){B(``),H(null),K(!0),zt(``)}function Rt(){D||(K(!1),B(``),H(null))}async function zt(e){Ye(!0);try{W((await(0,c.searchMembers)(e)).filter(e=>e.memberId!==m).map(Ge))}catch(e){T(w(e))}finally{Ye(!1)}}async function Bt(){if(!at){P(`請輸入拒絕原因`);return}await Mt({action:`REJECTED`,comment:at})}async function Vt(){if(!V){T(`請選擇轉派對象`);return}await Mt({action:`TRANSFERRED`,comment:ct||null,transferToMemberId:V.id})}async function Ht(){await Mt({action:`RETURNED`,comment:st||null,returnToNodeId:dt?.id??null})}async function Ut(){if(!(!m||!_||!ft)){if(O(!0),T(null),q({}),_.formDefinitionSnapshot.schema&&_.formDefinitionSnapshot.uiSchema){let e=(0,d.validateFormRendererValues)({schema:_.formDefinitionSnapshot.schema,uiSchema:_.formDefinitionSnapshot.uiSchema,values:J});if(!e.valid){q(e.errors),T(`請先補齊必填欄位。`),e.firstInvalidFieldKey&&(0,d.focusFormRendererField)(e.firstInvalidFieldKey),O(!1);return}}try{await(0,c.cancelApprovalInstance)({cancelledByMemberId:m,comment:ot||null,instanceId:_.id}),Me(``),j(!1),await Ot()}catch(e){T(w(e))}finally{O(!1)}}}async function Wt(){if(!(!m||!_||!Q)){O(!0),T(null);try{await(0,c.resubmitApprovalInstance)({formData:J,initiatorMemberId:m,instanceId:_.id,title:_.title}),await Ot()}catch(e){T(w(e))}finally{O(!1)}}}return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.PageHeader,{children:(0,s.jsxs)(l.default,{description:_?`${Ue(_.state)} · ${n.t(_.startedAt)}`:`載入案件內容。`,title:_?.title??`簽核案件`,children:[_?(0,s.jsx)(o.Button,{"aria-label":`查看流程圖`,icon:u.ShareIcon,iconType:`icon-only`,onClick:()=>A(!0),title:`查看流程圖`,variant:`base-secondary`,children:`流程圖`}):null,ft?(0,s.jsx)(o.Button,{disabled:D,icon:u.DangerousOutlineIcon,iconType:`leading`,onClick:()=>j(!0),variant:`destructive-secondary`,children:`取消案件`}):null,X?(0,s.jsxs)(s.Fragment,{children:[ut?(0,s.jsx)(o.Button,{disabled:D,icon:u.RefreshCcwIcon,iconType:`leading`,onClick:Ft,variant:`base-secondary`,children:`退回`}):null,(0,s.jsx)(o.Button,{disabled:D,icon:u.UserIcon,iconType:`leading`,onClick:Lt,variant:`base-secondary`,children:`轉派`}),(0,s.jsx)(o.Button,{disabled:D,icon:u.DangerousOutlineIcon,iconType:`leading`,onClick:Nt,variant:`destructive-secondary`,children:`拒絕`}),(0,s.jsx)(o.Button,{disabled:D,icon:u.CheckedIcon,iconType:`leading`,onClick:()=>void Mt({action:`APPROVED`,comment:null}),variant:`base-primary`,children:`同意`})]}):null]})}),(0,s.jsxs)(o.SectionGroup,{children:[(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[xe?(0,s.jsx)(o.Typography,{color:`text-error`,variant:`body`,children:xe}):null,Te?(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`載入中...`}):null,_?.formDefinitionSnapshot.schema&&_.formDefinitionSnapshot.uiSchema?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.t,{errors:Xe,onChange:e=>{et(e),q({})},onUploadAttachment:Q?kt:void 0,readonly:!Q,schema:_.formDefinitionSnapshot.schema,uiSchema:_.formDefinitionSnapshot.uiSchema,value:Q?J:_.formData}),Q?(0,s.jsx)(`div`,{style:oe,children:(0,s.jsx)(o.Button,{disabled:D,icon:u.RefreshCcwIcon,iconType:`leading`,onClick:()=>void Wt(),variant:`base-primary`,children:`重新送出`})}):null]}):(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`此案件沒有可顯示的表單快照。`})]})}),(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`附件`}),Ct.length>0?(0,s.jsx)(o.Table,{actions:Tt,columns:wt,dataSource:Ct,fullWidth:!0}):(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`此案件沒有附件。`})]})}),(0,s.jsxs)(o.Section,{children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`任務`}),(0,s.jsx)(o.Table,{columns:St,dataSource:mt,fullWidth:!0})]}),(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`簽章`}),(0,s.jsx)(o.Typography,{color:x?.valid?`text-success`:`text-error`,variant:`body`,children:x?x.valid?`簽章鏈已驗證,共 ${x.checkedCount} 筆。`:`簽章鏈驗證失敗:${x.errors.join(`、`)}`:`尚無簽章紀錄。`}),Et.length>0?(0,s.jsx)(o.Table,{columns:Dt,dataSource:Et,fullWidth:!0}):null]})}),(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`歷程`}),_t.length>0?(0,s.jsx)(o.Stepper,{currentStep:vt,orientation:`vertical`,type:`dot`,children:_t.map(e=>(0,s.jsx)(we,{descriptionParts:e.descriptionParts,error:e.error,forcePending:e.forcePending,title:e.title},e.id))}):(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`尚無歷程紀錄。`})]})})]}),_?(0,s.jsx)(o.Modal,{modalType:`standard`,onClose:()=>A(!1),open:k,showModalHeader:!0,size:`wide`,supportingText:`${Ue(_.state)} · ${n.t(_.startedAt)}`,title:`流程圖`,children:(0,s.jsxs)(`div`,{style:ce,children:[(0,s.jsx)(`div`,{style:fe,children:(0,s.jsxs)(f.ReactFlow,{edges:bt,fitView:!0,fitViewOptions:{padding:.18},maxZoom:1.2,minZoom:.2,nodes:yt,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:be,panOnDrag:!0,proOptions:{hideAttribution:!0},children:[(0,s.jsx)(f.Background,{}),(0,s.jsx)(f.Controls,{showInteractive:!1})]})}),xt.length>0?(0,s.jsx)(`div`,{style:he,children:xt.map(e=>(0,s.jsx)(`span`,{style:ge,children:e},e))}):null]})}):null,(0,s.jsx)(o.Modal,{modalType:`standard`,onClose:()=>{tt(null),it(null)},open:!!(Y&&rt),showModalHeader:!0,size:`wide`,supportingText:Y?.filename??void 0,title:`PDF 預覽`,children:rt?(0,s.jsx)(ae,{filename:Y?.filename??`PDF 預覽`,fileUrl:rt,onDownload:Y?()=>void At(Y):void 0}):null}),(0,s.jsx)(o.Modal,{cancelText:`保留案件`,confirmButtonProps:{variant:`destructive-primary`},confirmText:`確認取消`,loading:D,modalStatusType:`error`,modalType:`standard`,onCancel:()=>j(!1),onClose:()=>j(!1),onConfirm:()=>void Ut(),open:Ne,showModalFooter:!0,showModalHeader:!0,supportingText:`取消後會關閉目前待簽任務與候選簽核人。`,title:`取消案件`,children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsxs)(o.Typography,{variant:`body`,children:[`確定要取消「`,_?.title??``,`」嗎?`]}),(0,s.jsx)(r.t,{label:`取消原因`,name:`cancelComment`,children:(0,s.jsx)(o.Textarea,{onChange:e=>Me(e.target.value),placeholder:`可填寫取消原因`,resize:`vertical`,rows:3,value:je})})]})}),(0,s.jsx)(o.Modal,{cancelText:`取消`,confirmButtonProps:{disabled:!at,variant:`destructive-primary`},confirmText:`送出拒絕`,loading:D,modalStatusType:`error`,modalType:`standard`,onCancel:Pt,onClose:Pt,onConfirm:()=>void Bt(),open:Fe,showModalFooter:!0,showModalHeader:!0,size:`regular`,supportingText:`拒絕案件時必須留下原因,供發起人與後續追蹤查看。`,title:`拒絕原因`,children:(0,s.jsxs)(`div`,{style:le,children:[(0,s.jsx)(r.t,{label:`拒絕原因`,name:`rejectReason`,required:!0,children:(0,s.jsx)(o.Textarea,{autoFocus:!0,onChange:e=>{M(e.target.value),P(null)},placeholder:`請說明拒絕原因`,ref:ye,resize:`vertical`,rows:4,style:ue,type:N?`error`:`default`,value:Pe})}),N?(0,s.jsx)(o.Typography,{color:`text-error`,variant:`body`,children:N}):null]})}),(0,s.jsx)(o.Modal,{cancelText:`取消`,confirmButtonProps:{disabled:!V},confirmText:`送出轉派`,loading:D,modalType:`standard`,onCancel:Rt,onClose:Rt,onConfirm:()=>void Vt(),open:G,showModalFooter:!0,showModalHeader:!0,size:`regular`,supportingText:`轉派後,原任務會保留轉派紀錄,新的待簽任務會指派給指定成員。`,title:`轉派簽核`,children:(0,s.jsxs)(`div`,{style:de,children:[(0,s.jsx)(r.t,{label:`轉派對象`,name:`transferToMemberId`,required:!0,children:(0,s.jsx)(o.AutoComplete,{asyncData:!0,disabledOptionsFilter:!0,emptyText:`沒有符合的成員`,inputProps:{autoCapitalize:`none`,autoCorrect:`off`,name:`transfer-member-search`,spellCheck:!1},loading:Je,loadingText:`搜尋成員中...`,mode:`single`,onChange:e=>H(Ke(e)),onSearch:zt,onSearchTextChange:e=>H(qe(e,U)),onVisibilityChange:e=>{e&&zt(``)},options:[...U],placeholder:`搜尋姓名或信箱`,searchDebounceTime:300,value:V})}),(0,s.jsx)(r.t,{label:`轉派說明`,name:`transferComment`,children:(0,s.jsx)(o.Textarea,{onChange:e=>B(e.target.value),placeholder:`可補充轉派原因`,ref:ye,resize:`vertical`,rows:4,style:ue,value:We})})]})}),(0,s.jsx)(o.Modal,{cancelText:`取消`,confirmButtonProps:{disabled:!dt},confirmText:`送出退回`,loading:D,modalType:`standard`,onCancel:It,onClose:It,onConfirm:()=>void Ht(),open:Re,showModalFooter:!0,showModalHeader:!0,size:`regular`,supportingText:`退回後,流程會回到指定節點並等待重新處理。`,title:`退回簽核`,children:(0,s.jsxs)(`div`,{style:de,children:[(0,s.jsx)(r.t,{label:`退回節點`,name:`returnTargetNodeId`,required:!0,children:(0,s.jsx)(o.Select,{clearable:!1,fullWidth:!0,onChange:e=>R(e?.id??null),options:[...lt],placeholder:`選擇退回節點`,value:dt})}),(0,s.jsx)(r.t,{label:`退回說明`,name:`returnComment`,children:(0,s.jsx)(o.Textarea,{onChange:e=>F(e.target.value),placeholder:`可補充需要修改的內容`,ref:ye,resize:`vertical`,rows:4,style:ue,value:Le})})]})})]})}function w(e){return e instanceof Error?e.message:`發生未知錯誤`}function Se(e){return!Number.isFinite(e)||e<=0?`-`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Ce(e){return e.length>16?`${e.slice(0,12)}...`:e}function T(...e){return e.filter(e=>W(e??null)).join(` `)}var we=(0,a.forwardRef)(function({className:e,descriptionParts:t,error:n,forcePending:r=!1,index:i=0,orientation:c,status:l=`pending`,title:u,type:d=`number`,...f},p){let h=r?`pending`:l;return(0,s.jsxs)(`div`,{...f,className:T(m.stepClasses.host,d===`dot`?m.stepClasses.dot:null,n&&h!==`processing`?m.stepClasses.error:null,c===`horizontal`?m.stepClasses.horizontal:null,d===`number`?m.stepClasses.number:null,h===`pending`?m.stepClasses.pending:null,h===`processing`?m.stepClasses.processing:null,n&&h===`processing`?m.stepClasses.processingError:null,!n&&h===`succeeded`?m.stepClasses.succeeded:null,c===`vertical`?m.stepClasses.vertical:null,e),ref:p,children:[d===`dot`?(0,s.jsx)(`span`,{className:T(m.stepClasses.statusIndicator,m.stepClasses.statusIndicatorDot)}):(0,s.jsx)(`span`,{className:m.stepClasses.statusIndicator,children:i+1}),(0,s.jsxs)(`div`,{className:m.stepClasses.textContainer,children:[(0,s.jsxs)(o.Typography,{className:m.stepClasses.title,variant:`label-primary-highlight`,children:[u,(0,s.jsx)(`span`,{className:m.stepClasses.titleConnectLine})]}),t.length>0?(0,s.jsx)(o.Typography,{className:m.stepClasses.description,variant:`caption`,children:t.map((e,t)=>(0,s.jsxs)(a.Fragment,{children:[t>0?` · `:null,Te(e)]},`${e.type}-${t}`))}):null]})]})});function Te(e){return e.type===`text`?e.text:e.type===`dangerText`?(0,s.jsx)(`span`,{style:ve,children:e.text}):e.email?(0,s.jsxs)(s.Fragment,{children:[e.prefix,`:`,(0,s.jsx)(o.Tooltip,{title:e.email,children:({onMouseEnter:t,onMouseLeave:n,ref:r})=>(0,s.jsx)(`span`,{"data-testid":e.memberId?`member-tooltip-${e.memberId}`:void 0,onMouseEnter:t,onMouseLeave:n,ref:r,style:_e,children:e.label})})]}):`${e.prefix}:${e.label}`}async function Ee({activityLogs:e,tasks:t}){let n=[...new Set([...e.map(e=>e.actorMemberId),...t.map(e=>e.assigneeMemberId),...t.map(e=>e.originalAssigneeMemberId),...t.flatMap(e=>e.candidateMemberIds),...t.flatMap(e=>Je(e.delegationChainJson).flatMap(e=>[e.from,e.to]))].filter(W))];try{return await(0,c.resolveMemberProfiles)(n)}catch{return[]}}async function De(e){return(await Promise.all(e.map(e=>(0,c.listTaskDecisions)(e.id)))).flat()}function Oe(e){return e.reduce((e,t)=>{let n=e.get(t.taskId),r=!n||new Date(t.decidedAt).getTime()>new Date(n.decidedAt).getTime()?t:n;return new Map(e).set(t.taskId,r)},new Map)}function ke(e,t,n,r,i,a,o,s,c){let l=e.filter(je).map(e=>{let t=Ie(e),n=ze(e.nodeId,r);return{descriptionParts:[E(n?`節點:${n}`:`節點:全流程`),O(`操作者`,e.actorMemberId,a,`系統`),E(`時間:${B(e.createdAt)}`),...I(e,t,r,o,s,c,a)].filter(A),error:We(e,t),id:e.id,title:Le(e.eventType,t)}}),u=t.filter(K).map(e=>({descriptionParts:[E(`節點:${L(e.nodeId,r)}`),O(`處理者`,e.assigneeMemberId,a,`未指定`),E(`建立時間:${B(e.createdAt)}`)].filter(A),error:!1,id:`pending-task-${e.id}`,title:e.status===`IN_PROGRESS`?`簽核處理中`:`等待簽核處理`})),d=new Set([...e.filter(je).map(e=>e.nodeId),...t.map(e=>e.nodeId)].filter(W)),f=r?Ne(r,t,n,i,d).map(e=>({descriptionParts:[E(`${J(e.type)} · 尚未抵達`)].filter(A),error:!1,forcePending:!0,id:`future-node-${e.id}`,title:Fe(e)})):[];return[...l,...u,...f]}function E(e){return W(e)?{text:e,type:`text`}:null}function D(e){return W(e)?{text:e,type:`dangerText`}:null}function O(e,t,n,r){let i=t?n.get(t):null;return{email:i?.email??null,label:i?.name??r,memberId:t,prefix:e,type:`member`}}function k(e,t){if(!e)return`-`;let n=t.get(e);return n?`${n.name}(${n.email})`:e}function A(e){return!!e}function Ae(e){let t=e.findIndex(e=>e.id.startsWith(`pending-task-`)||e.id.startsWith(`future-node-`));return t===-1?e.length:t}function je(e){return e.eventType===`INSTANCE_STARTED`||e.eventType===`TASK_DECIDED`||e.eventType===`SLA_TRIGGERED`}function Me(e,t,n,r,i){if(e.type===`startEvent`||i.has(e.id))return!1;if(r===`REJECTED`)return!0;let a=q(e,t,n,r);return a.tone===`neutral`||a.tone===`waiting`}function Ne(e,t,n,r,i){if(r!==`RUNNING`&&r!==`REJECTED`)return[];let a=e.nodes.filter(e=>Me(e,t,n,r,i)),o=j(e,a,t,n,i),s=new Map(e.nodes.map((e,t)=>[e.id,t]));return a.filter(e=>o.has(e.id)).sort((e,t)=>{let n=o.get(e.id)??0,r=o.get(t.id)??0;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})}function j(e,t,n,r,i){let a=new Set(t.map(e=>e.id)),o=e.edges.reduce((e,t)=>{let n=[...e.get(t.source)??[],t.target];return new Map(e).set(t.source,n)},new Map);return Pe(e,n,r,i).reduce((e,t)=>P(e,M(t,o,a)),new Map)}function Pe(e,t,n,r){let i=n.filter(e=>e.status===`ACTIVE`||e.status===`WAITING`).map(e=>e.currentNodeId),a=t.filter(K).map(e=>e.nodeId),o=e.nodes.filter(e=>r.has(e.id)).map(e=>e.id),s=[...new Set([...i,...a,...o])],c=e.nodes.filter(e=>e.type===`startEvent`).map(e=>e.id);return s.length>0?s:c}function M(e,t,n){return N([{distance:0,nodeId:e}],t,n)}function N(e,t,n,r=new Set,i=new Map){let[a,...o]=e;if(!a)return i;if(r.has(a.nodeId))return N(o,t,n,r,i);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;return N([...o,...(t.get(a.nodeId)??[]).map(e=>({distance:a.distance+1,nodeId:e}))],t,n,s,c)}function P(e,t){return[...t.entries()].reduce((e,[t,n])=>new Map(e).set(t,Math.min(e.get(t)??n,n)),e)}function Fe(e){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}`}function Ie(e){try{let t=JSON.parse(e.payloadJson);return G(t)?t:{}}catch{return{}}}function Le(e,t){return e===`INSTANCE_STARTED`?`案件已發起`:e===`TOKEN_CREATED`?`流程路徑已建立`:e===`ENGINE_PROCESS_REQUESTED`?`流程引擎已處理`:e===`TOKEN_ADVANCED`?`流程已前進`:e===`TASK_CREATED`?`待簽任務已建立`:e===`TASK_DECIDED`?F(V(t,`action`)):e===`SLA_TRIGGERED`?`時限提醒已觸發`:e}function F(e){return e===`APPROVED`?`已同意`:e===`REJECTED`?`已拒絕`:e===`RETURNED`?`已退回`:e===`TRANSFERRED`?`已轉派`:`簽核已決議`}function Re(e,t,n,r){if(e.eventType===`TASK_CREATED`){let e=V(t,`assigneeMemberId`),n=V(t,`originalAssigneeMemberId`);if(!e){let e=H(t,`candidateMemberIds`);return e.length?`候選簽核人:${e.map(e=>k(e,r)).join(`、`)}`:null}let i=k(e,r),a=k(n,r);return n&&n!==e?`待簽人:${i}(原簽核人:${a})`:`待簽人:${i}`}if(e.eventType===`TASK_DECIDED`){let e=V(t,`action`),n=V(t,`comment`),i=e?`決議:${R(e)}`:null,a=V(t,`transferToMemberId`);return e===`REJECTED`&&n?[i,`拒絕原因:${n}`].filter(W).join(` · `):e===`TRANSFERRED`?[i,`轉派給:${k(a,r)}`].filter(W).join(` · `):i}if(e.eventType===`TOKEN_ADVANCED`){let e=V(t,`action`);if(e)return`流程結果:${R(e)}`;let r=U(t,`arrivedCount`),i=U(t,`requiredCount`);if(r!==null&&i!==null)return`等待匯合:${r}/${i}`;let a=V(t,`fromNodeId`),o=V(t,`toNodeId`);if(a&&o)return`由 ${L(a,n)} 前進至 ${L(o,n)}`}if(e.eventType===`ENGINE_PROCESS_REQUESTED`){let e=V(t,`state`);return e?`案件狀態:${Ue(e)}`:null}return null}function I(e,t,n,r,i,a,o){if(e.eventType!==`TASK_DECIDED`)return[E(Re(e,t,n,o))].filter(A);let s=e.taskId?r.get(e.taskId):null,c=V(t,`action`)??s?.action??null,l=V(t,`comment`)??s?.comment??null,u=V(t,`transferToMemberId`)??s?.transferToMemberId??null,d=V(t,`signatureId`)??s?.signatureId??null,f=d?i.get(d):null;return[E(c?`決議:${R(c)}`:null),c===`REJECTED`?D(`拒絕原因:${l??`-`}`):null,c===`RETURNED`?E(`退回說明:${l??`-`}`):null,c===`TRANSFERRED`?E(`轉派給:${k(u,o)}`):null,c===`TRANSFERRED`?E(`轉派說明:${l??`-`}`):null,f?E(a?.valid?`簽章:已驗證(${Ce(f.signedPayloadHash)})`:`簽章:待檢查(${Ce(f.signedPayloadHash)})`):null].filter(A)}function ze(e,t){return e?L(e,t):null}function L(e,t){return t?.nodes.find(t=>t.id===e)?.data.label??e}function Be(e,t){if(t.type!==`userTask`||!t.data.returnBehavior.allowReturn)return[];if(t.data.returnBehavior.allowedTargets===`ANY`)return e.nodes.filter(e=>e.id!==t.id).map(e=>({id:e.id,name:`${e.data.label}(${J(e.type)})`}));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);return r?[{id:r.id,name:`${r.data.label}(${J(r.type)})`}]:[]}function R(e){return e===`APPROVED`?`同意`:e===`REJECTED`?`拒絕`:e===`RETURNED`?`退回`:e===`TRANSFERRED`?`轉派`:e}function Ve(e){return e===`PENDING`?`待處理`:e===`IN_PROGRESS`?`處理中`:e===`COMPLETED`?`已完成`:e===`CANCELLED`?`已取消`:e===`TRANSFERRED`?`已轉派`:e}function z(e,t=new Map){let n=Je(e.delegationChainJson);if(!e.assigneeMemberId)return e.candidateMemberIds.length?`候選 ${e.candidateMemberIds.map(e=>k(e,t)).join(`、`)}`:`未指定`;let r=k(e.assigneeMemberId,t),i=k(e.originalAssigneeMemberId,t);return n.length===0||e.originalAssigneeMemberId===e.assigneeMemberId?r:`${r}(原:${i})`}function He(e,t){return t?e.assigneeMemberId===t||e.candidateMemberIds.includes(t):!1}function Ue(e){return e===`APPROVED`?`已同意`:e===`CANCELLED`?`已取消`:e===`DRAFT`?`草稿`:e===`EXPIRED`?`已逾期`:e===`REJECTED`?`已拒絕`:e===`RETURNED`?`已退回`:e===`RUNNING`?`進行中`:e}function We(e,t){return e.eventType===`SLA_TRIGGERED`||V(t,`action`)===`REJECTED`||V(t,`instanceState`)===`REJECTED`}function B(e){return n.t(e)}function V(e,t){let n=e[t];return typeof n==`string`?n:null}function H(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function Ge(e){return{email:e.email,id:e.memberId,name:`${e.name} · ${e.email}`}}function Ke(e){if(!G(e))return null;let t=e.email,n=e.id,r=e.name;return typeof n==`string`&&typeof r==`string`?{email:typeof t==`string`?t:null,id:n,name:r}:null}function qe(e,t){let n=e.trim().toLocaleLowerCase();if(!n)return null;let r=t.filter(e=>[e.id,e.name,e.email??``].some(e=>e.toLocaleLowerCase().includes(n)));return r.length===1?r[0]??null:null}function Je(e){try{let t=JSON.parse(e);return Array.isArray(t)?t.map(e=>G(e)?Ye(e):null).filter(e=>e!==null):[]}catch{return[]}}function Ye(e){let t=V(e,`from`),n=V(e,`to`),r=V(e,`reason`);return!t||!n||!r?null:{from:t,reason:r,ruleId:V(e,`ruleId`),to:n}}function U(e,t){let n=e[t];return typeof n==`number`?n:null}function W(e){return typeof e==`string`&&e.trim().length>0}function G(e){return typeof e==`object`&&!!e}function K(e){return e.status===`PENDING`||e.status===`IN_PROGRESS`}function Xe({data:e}){return(0,s.jsxs)(`div`,{style:et(e.tone),children:[(0,s.jsx)(f.Handle,{isConnectable:!1,position:f.Position.Left,style:me,type:`target`}),(0,s.jsx)(o.Typography,{component:`span`,ellipsis:!0,title:e.label,variant:`label-primary`,children:e.label}),(0,s.jsx)(`span`,{style:Y(e.tone),children:e.statusLabel}),(0,s.jsx)(`span`,{title:e.secondaryLabel,style:C,children:e.secondaryLabel||e.kindLabel}),(0,s.jsx)(f.Handle,{isConnectable:!1,position:f.Position.Right,style:me,type:`source`})]})}function Ze(e,t,n,r){return e.nodes.map(e=>{let i=q(e,t,n,r);return{data:{kindLabel:J(e.type),label:e.data.label,secondaryLabel:i.secondaryLabel,statusLabel:i.statusLabel,tone:i.tone},id:e.id,position:e.position,sourcePosition:f.Position.Right,targetPosition:f.Position.Left,type:`workflowRuntime`}})}function Qe(e){let t=new p.graphlib.Graph;return t.setDefaultEdgeLabel(()=>({})),t.setGraph({nodesep:56,rankdir:`LR`,ranksep:120}),e.nodes.forEach(e=>{t.setNode(e.id,{height:se,width:x})}),e.edges.forEach(e=>{t.setEdge(e.source,e.target)}),p.layout(t),{...e,nodes:e.nodes.map(e=>{let n=t.node(e.id);return n?{...e,position:{x:n.x-x/2,y:n.y-se/2}}:e})}}function $e(e){return e.edges.map(e=>{let t=tt(e);return{animated:!1,id:e.id,label:t,labelBgBorderRadius:6,labelBgPadding:[8,4],labelBgStyle:{fill:e.data.isDefault?`#f8fafc`:`#eff6ff`,stroke:e.data.isDefault?`#64748b`:`#2563eb`,strokeWidth:1},labelShowBg:!!t,labelStyle:{fill:e.data.isDefault?`#475569`:`#2563eb`,fontSize:12,fontWeight:600},source:e.source,style:{stroke:`#475569`,strokeWidth:1.5},target:e.target,type:e.type??`smoothstep`}})}function q(e,t,n,r){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`);return a?{secondaryLabel:`處理者 ${z(a)}`,statusLabel:`待處理`,tone:`current`}:o?{secondaryLabel:`已取消 ${z(o)}`,statusLabel:`已取消`,tone:`cancelled`}:s?{secondaryLabel:`已完成 ${z(s)}`,statusLabel:`已完成`,tone:`completed`}:l?{secondaryLabel:`token ${l.id}`,statusLabel:`執行中`,tone:`current`}:u?{secondaryLabel:`token ${u.id}`,statusLabel:`等待前置`,tone:`waiting`}:e.type===`startEvent`?{secondaryLabel:`流程已發起`,statusLabel:`已發起`,tone:`completed`}:e.type===`endEvent`&&r!==`RUNNING`?{secondaryLabel:r,statusLabel:r===`REJECTED`?`已拒絕`:`已完成`,tone:r===`REJECTED`?`cancelled`:`completed`}:{secondaryLabel:J(e.type),statusLabel:`未抵達`,tone:`neutral`}}function J(e){return e===`startEvent`?`開始`:e===`endEvent`?`完成`:e===`userTask`?`簽核節點`:e===`serviceTask`?`知會節點`:e===`exclusiveGateway`?`條件分流`:`平行處理`}function et(e){return e===`current`?{...S,border:`1px solid var(--mzn-color-primary, #0057ff)`,boxShadow:`0 0 0 3px rgba(0, 87, 255, 0.14)`}:e===`completed`?{...S,border:`1px solid #16a34a`}:e===`cancelled`?{...S,border:`1px solid #dc2626`,opacity:.72}:e===`waiting`?{...S,border:`1px dashed #64748b`}:S}function Y(e){let t=pe;return e===`current`?{...t,background:`#eff6ff`,color:`#2563eb`}:e===`completed`?{...t,background:`#f0fdf4`,color:`#15803d`}:e===`cancelled`?{...t,background:`#fef2f2`,color:`#dc2626`}:e===`waiting`?{...t,background:`#f8fafc`,color:`#475569`}:{...t,background:`#f1f5f9`,color:`#64748b`}}function tt(e){return e.data.label?e.data.label:e.data.isDefault?`其他情況`:e.data.condition??``}function nt(e){return e.edges.map(tt).filter(e=>e.trim().length>0)}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return xe}});
|
|
2
|
-
//# sourceMappingURL=detail-
|
|
1
|
+
"use client";require('../detail.css');const e=require("./chunk-CMqjfN_6.cjs"),t=require("./auth-provider-4BeCw7cI.cjs"),n=require("./format-date-time-XxBzF0F5.cjs"),r=require("./bpm-form-field-Bc6k4ZEO.cjs"),i=require("./FormRendererView-BwVsH2eX.cjs");let a=require("react"),o=require("@mezzanine-ui/react"),s=require("react/jsx-runtime"),c=require("@rytass/bpm-core-client/workflow"),l=require("@mezzanine-ui/react/ContentHeader");l=e.t(l,1);let u=require("@mezzanine-ui/icons"),d=require("@rytass/bpm-core-client/form"),f=require("@xyflow/react"),p=require("dagre");p=e.t(p,1);let m=require("@mezzanine-ui/core/stepper"),h=require("react-pdf");var g={root:`bpm_root_ehm7w`,toolbar:`bpm_toolbar_R-tis`,pageControls:`bpm_pageControls_jM-rC`,zoomControls:`bpm_zoomControls_7RAbJ`,counter:`bpm_counter_ILUsD`,viewport:`bpm_viewport_DQXms`,page:`bpm_page_Cv5Rg`,state:`bpm_state_bpgp3`},_=760,ee=920,te=320,ne=32,re=.75,ie=1.75,v=.25;function ae({filename:e,fileUrl:t,onDownload:n}){let r=(0,a.useRef)(null),[i,c]=(0,a.useState)(null),[l,d]=(0,a.useState)(1),[f,p]=(0,a.useState)(1),[m,ae]=(0,a.useState)(_);(0,a.useEffect)(()=>{let e=r.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e=>{let t=e[0]?.contentRect.width;t&&ae(t)});return t.observe(e),()=>t.disconnect()},[]),(0,a.useEffect)(()=>{c(null),d(1),p(1)},[t]);let b=(0,a.useMemo)(()=>{let e=Math.max(te,m-ne);return Math.round(Math.min(ee,e)*f)},[f,m]),oe=(0,a.useCallback)(e=>{c(e.numPages),d(1)},[]),x=l>1,se=i!==null&&l<i,ce=f>re,le=f<ie,ue=i===null?`第 ${l} 頁`:`第 ${l} / ${i} 頁`,de=`${Math.round(f*100)}%`;return(0,s.jsxs)(`section`,{"aria-label":`${e} PDF 預覽`,className:g.root,children:[(0,s.jsxs)(`div`,{className:g.toolbar,children:[(0,s.jsxs)(`div`,{className:g.pageControls,"aria-label":`頁面切換`,children:[(0,s.jsx)(o.Button,{"aria-label":`上一頁`,disabled:!x,icon:u.ChevronLeftIcon,onClick:()=>{d(e=>Math.max(1,e-1))},size:`minor`,variant:`base-secondary`}),(0,s.jsx)(o.Typography,{className:g.counter,component:`span`,variant:`body`,children:ue}),(0,s.jsx)(o.Button,{"aria-label":`下一頁`,disabled:!se,icon:u.ChevronRightIcon,onClick:()=>{d(e=>i===null?e:Math.min(i,e+1))},size:`minor`,variant:`base-secondary`})]}),(0,s.jsxs)(`div`,{className:g.zoomControls,"aria-label":`縮放`,children:[(0,s.jsx)(o.Button,{"aria-label":`縮小`,disabled:!ce,icon:u.ZoomOutIcon,onClick:()=>{p(e=>Math.max(re,e-v))},size:`minor`,variant:`base-secondary`}),(0,s.jsx)(o.Typography,{className:g.counter,component:`span`,variant:`body`,children:de}),(0,s.jsx)(o.Button,{"aria-label":`放大`,disabled:!le,icon:u.ZoomInIcon,onClick:()=>{p(e=>Math.min(ie,e+v))},size:`minor`,variant:`base-secondary`})]}),n?(0,s.jsx)(o.Button,{icon:u.DownloadIcon,iconType:`leading`,onClick:n,size:`minor`,variant:`base-primary`,children:`下載`}):null]}),(0,s.jsx)(`div`,{className:g.viewport,ref:r,children:(0,s.jsx)(h.Document,{error:(0,s.jsx)(y,{message:`PDF 無法載入。`}),file:t,loading:(0,s.jsx)(y,{message:`正在載入 PDF...`}),noData:(0,s.jsx)(y,{message:`沒有可預覽的 PDF。`}),onLoadSuccess:oe,children:(0,s.jsx)(h.Page,{className:g.page,loading:(0,s.jsx)(y,{message:`正在載入頁面...`}),pageNumber:l,renderAnnotationLayer:!0,renderTextLayer:!0,width:b})})})]})}function y({message:e}){return(0,s.jsx)(`div`,{className:g.state,children:(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:e})})}var b={display:`grid`,gap:16},oe={display:`flex`,flexWrap:`wrap`,gap:8},x=184,se=96,ce={display:`grid`,gap:16},le={display:`grid`,gap:12,width:`100%`},ue={minWidth:`100%`,width:`100%`},de={display:`grid`,gap:12,width:`100%`},fe={background:`#f8fafc`,border:`1px solid #e2e8f0`,borderRadius:8,height:`min(64vh, 620px)`,minHeight:440,overflow:`hidden`,width:`min(80vw, 1040px)`},S={background:`#ffffff`,border:`1px solid #cbd5e1`,borderRadius:8,boxShadow:`0 8px 18px rgba(15, 23, 42, 0.08)`,display:`grid`,gap:6,minHeight:82,padding:12,width:184},pe={borderRadius:999,fontSize:12,fontWeight:600,justifySelf:`start`,lineHeight:`18px`,padding:`0 8px`},C={color:`#64748b`,fontSize:12,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},me={opacity:0},he={display:`flex`,flexWrap:`wrap`,gap:8},ge={alignItems:`center`,background:`#ffffff`,border:`1px solid #cbd5e1`,borderRadius:8,color:`#334155`,display:`inline-flex`,fontSize:12,fontWeight:600,gap:6,lineHeight:`20px`,padding:`4px 8px`},_e={cursor:`help`,textDecoration:`underline dotted`,textUnderlineOffset:3},ve={color:`var(--mzn-color-text-error)`};function ye(e){e&&(e.style.width=`100%`)}var be={workflowRuntime:Xe};function xe({instanceId:e}){let{member:p}=t.n(),m=p?.memberId??null,[h,g]=(0,a.useState)([]),[_,ee]=(0,a.useState)(null),[te,ne]=(0,a.useState)([]),[re,ie]=(0,a.useState)([]),[v,y]=(0,a.useState)([]),[x,se]=(0,a.useState)(null),[S,pe]=(0,a.useState)([]),[C,me]=(0,a.useState)([]),[_e,ve]=(0,a.useState)([]),[xe,T]=(0,a.useState)(null),[Te,E]=(0,a.useState)(!0),[D,O]=(0,a.useState)(!1),[k,A]=(0,a.useState)(!1),[je,Me]=(0,a.useState)(``),[Ne,j]=(0,a.useState)(!1),[Pe,M]=(0,a.useState)(``),[N,P]=(0,a.useState)(null),[Fe,Ie]=(0,a.useState)(!1),[Le,F]=(0,a.useState)(``),[Re,I]=(0,a.useState)(!1),[ze,R]=(0,a.useState)(null),[We,B]=(0,a.useState)(``),[V,H]=(0,a.useState)(null),[Je,Ye]=(0,a.useState)(!1),[U,W]=(0,a.useState)([]),[G,K]=(0,a.useState)(!1),[Xe,q]=(0,a.useState)({}),[J,et]=(0,a.useState)({}),[Y,tt]=(0,a.useState)(null),[rt,it]=(0,a.useState)(null),at=Pe.trim(),ot=je.trim(),st=Le.trim(),ct=We.trim();(0,a.useEffect)(()=>{Ot()},[m,e]),(0,a.useEffect)(()=>{et(_?.formData??{})},[_]);let X=(0,a.useMemo)(()=>S.find(e=>He(e,m)&&(e.status===`PENDING`||e.status===`IN_PROGRESS`))??null,[m,S]),Z=(0,a.useMemo)(()=>X&&_?_.workflowSnapshot.nodes.find(e=>e.id===X.nodeId)??null:null,[X,_]),lt=(0,a.useMemo)(()=>Z&&_?Be(_.workflowSnapshot,Z):[],[Z,_]),ut=Z?.type===`userTask`&&Z.data.returnBehavior.allowReturn,dt=lt.find(e=>e.id===ze)??lt[0]??null,ft=!!(_&&_.initiatorMemberId===m&&(_.state===`RUNNING`||_.state===`RETURNED`)),Q=!!(_&&_.initiatorMemberId===m&&_.state===`RETURNED`),pt=(0,a.useMemo)(()=>new Map(_e.map(e=>[e.memberId,e])),[_e]),mt=(0,a.useMemo)(()=>S.map(e=>({...e,assigneeLabel:z(e,pt),key:e.id,nodeLabel:L(e.nodeId,_?.workflowSnapshot??null),statusLabel:Ve(e.status)})),[_,pt,S]),ht=(0,a.useMemo)(()=>Oe(te),[te]),gt=(0,a.useMemo)(()=>new Map(v.map(e=>[e.id,e])),[v]),_t=(0,a.useMemo)(()=>ke(h,S,C,_?.workflowSnapshot??null,_?.state??`RUNNING`,pt,ht,gt,x),[h,_,pt,x,gt,ht,S,C]),vt=(0,a.useMemo)(()=>Ae(_t),[_t]),$=(0,a.useMemo)(()=>_?Qe(_.workflowSnapshot):null,[_]),yt=(0,a.useMemo)(()=>_&&$?Ze($,S,C,_.state):[],[_,$,S,C]),bt=(0,a.useMemo)(()=>$?$e($):[],[$]),xt=(0,a.useMemo)(()=>_?nt(_.workflowSnapshot):[],[_]),St=(0,a.useMemo)(()=>[{dataIndex:`nodeLabel`,key:`nodeLabel`,title:`節點`,width:180},{key:`assigneeMemberId`,title:`處理者`,render:e=>(0,s.jsx)(o.Typography,{component:`span`,variant:`body`,children:e.assigneeLabel}),width:180},{dataIndex:`statusLabel`,key:`statusLabel`,title:`狀態`,width:120},{key:`createdAt`,render:e=>(0,s.jsx)(o.Typography,{component:`span`,variant:`body`,children:n.t(e.createdAt)}),title:`建立時間`,width:220}],[]),Ct=(0,a.useMemo)(()=>re.map(e=>({attachment:e,createdAt:e.createdAt,filename:e.filename,id:e.id,key:e.id,mimeType:e.mimeType,sizeLabel:Se(Number(e.sizeBytes))})),[re]),wt=(0,a.useMemo)(()=>[{dataIndex:`filename`,key:`filename`,title:`檔名`,width:260},{dataIndex:`mimeType`,key:`mimeType`,title:`類型`,width:180},{dataIndex:`sizeLabel`,key:`sizeLabel`,title:`大小`,width:120},{key:`createdAt`,render:e=>(0,s.jsx)(o.Typography,{component:`span`,variant:`body`,children:n.t(e.createdAt)}),title:`上傳時間`,width:220}],[]),Tt=(0,a.useMemo)(()=>({render:e=>[...e.mimeType===`application/pdf`?[{icon:u.FileSearchIcon,iconType:`leading`,name:`預覽`,onClick:()=>{jt(e.attachment)}}]:[],{icon:u.DownloadIcon,iconType:`leading`,name:`下載`,onClick:()=>{At(e.attachment)}}],variant:`base-secondary`,width:160}),[]),Et=(0,a.useMemo)(()=>v.map(e=>({algorithm:e.algorithm,hashLabel:Ce(e.signedPayloadHash),key:e.id,keyVersion:e.keyVersion,signedAtLabel:n.t(e.signedAt),signerMemberId:e.signerMemberId})),[v]),Dt=(0,a.useMemo)(()=>[{dataIndex:`signerMemberId`,key:`signerMemberId`,title:`簽章者`,width:160},{dataIndex:`algorithm`,key:`algorithm`,title:`演算法`,width:150},{dataIndex:`keyVersion`,key:`keyVersion`,title:`Key 版本`,width:100},{dataIndex:`hashLabel`,key:`hashLabel`,title:`Payload Hash`,width:180},{dataIndex:`signedAtLabel`,key:`signedAtLabel`,title:`簽章時間`,width:220}],[]);async function Ot(){E(!0),T(null);try{let t=await(0,c.readApprovalInstance)(e);g(t.activityLogs),ee(t.instance),pe(t.tasks),me(t.workflowTokens);let[n,r,i,a]=await Promise.all([De(t.tasks),Ee(t),(0,c.listAttachments)(t.instance.id),(0,c.readInstanceSignatures)(t.instance.id)]);ne(n),ve(r),ie(i),y(a.signatures),se(a.verification)}catch(e){T(w(e))}finally{E(!1)}}async function kt(e,t){if(!m)throw Error(`尚未登入,無法上傳附件`);return{id:(await(0,c.uploadAttachment)({file:t,formFieldPath:`form.${e.fieldKey}`})).id}}async function At(e){if(!m)return;let t=await(0,c.readAttachmentDownloadUrl)({id:e.id});window.open(t,`_blank`,`noopener,noreferrer`)}async function jt(e){if(!m)return;let t=await(0,c.readAttachmentPreviewUrl)({id:e.id});tt(e),it(t)}async function Mt({action:e,comment:t,returnToNodeId:n=null,transferToMemberId:r=null}){if(!(!m||!X)){O(!0),T(null);try{await(0,c.decideTask)({action:e,comment:t,decidedByMemberId:m,returnToNodeId:n,taskId:X.id,transferToMemberId:r}),Ie(!1),I(!1),K(!1),M(``),F(``),B(``),H(null),R(null),P(null),await Ot()}catch(e){T(w(e))}finally{O(!1)}}}function Nt(){M(``),P(null),Ie(!0)}function Pt(){D||(Ie(!1),M(``),P(null))}function Ft(){F(``),R(lt[0]?.id??null),I(!0)}function It(){D||(I(!1),F(``),R(null))}function Lt(){B(``),H(null),K(!0),zt(``)}function Rt(){D||(K(!1),B(``),H(null))}async function zt(e){Ye(!0);try{W((await(0,c.searchMembers)(e)).filter(e=>e.memberId!==m).map(Ge))}catch(e){T(w(e))}finally{Ye(!1)}}async function Bt(){if(!at){P(`請輸入拒絕原因`);return}await Mt({action:`REJECTED`,comment:at})}async function Vt(){if(!V){T(`請選擇轉派對象`);return}await Mt({action:`TRANSFERRED`,comment:ct||null,transferToMemberId:V.id})}async function Ht(){await Mt({action:`RETURNED`,comment:st||null,returnToNodeId:dt?.id??null})}async function Ut(){if(!(!m||!_||!ft)){if(O(!0),T(null),q({}),_.formDefinitionSnapshot.schema&&_.formDefinitionSnapshot.uiSchema){let e=(0,d.validateFormRendererValues)({schema:_.formDefinitionSnapshot.schema,uiSchema:_.formDefinitionSnapshot.uiSchema,values:J});if(!e.valid){q(e.errors),T(`請先補齊必填欄位。`),e.firstInvalidFieldKey&&(0,d.focusFormRendererField)(e.firstInvalidFieldKey),O(!1);return}}try{await(0,c.cancelApprovalInstance)({cancelledByMemberId:m,comment:ot||null,instanceId:_.id}),Me(``),j(!1),await Ot()}catch(e){T(w(e))}finally{O(!1)}}}async function Wt(){if(!(!m||!_||!Q)){O(!0),T(null);try{await(0,c.resubmitApprovalInstance)({formData:J,initiatorMemberId:m,instanceId:_.id,title:_.title}),await Ot()}catch(e){T(w(e))}finally{O(!1)}}}return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.PageHeader,{children:(0,s.jsxs)(l.default,{description:_?`${Ue(_.state)} · ${n.t(_.startedAt)}`:`載入案件內容。`,title:_?.title??`簽核案件`,children:[_?(0,s.jsx)(o.Button,{"aria-label":`查看流程圖`,icon:u.ShareIcon,iconType:`icon-only`,onClick:()=>A(!0),title:`查看流程圖`,variant:`base-secondary`,children:`流程圖`}):null,ft?(0,s.jsx)(o.Button,{disabled:D,icon:u.DangerousOutlineIcon,iconType:`leading`,onClick:()=>j(!0),variant:`destructive-secondary`,children:`取消案件`}):null,X?(0,s.jsxs)(s.Fragment,{children:[ut?(0,s.jsx)(o.Button,{disabled:D,icon:u.RefreshCcwIcon,iconType:`leading`,onClick:Ft,variant:`base-secondary`,children:`退回`}):null,(0,s.jsx)(o.Button,{disabled:D,icon:u.UserIcon,iconType:`leading`,onClick:Lt,variant:`base-secondary`,children:`轉派`}),(0,s.jsx)(o.Button,{disabled:D,icon:u.DangerousOutlineIcon,iconType:`leading`,onClick:Nt,variant:`destructive-secondary`,children:`拒絕`}),(0,s.jsx)(o.Button,{disabled:D,icon:u.CheckedIcon,iconType:`leading`,onClick:()=>void Mt({action:`APPROVED`,comment:null}),variant:`base-primary`,children:`同意`})]}):null]})}),(0,s.jsxs)(o.SectionGroup,{children:[(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[xe?(0,s.jsx)(o.Typography,{color:`text-error`,variant:`body`,children:xe}):null,Te?(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`載入中...`}):null,_?.formDefinitionSnapshot.schema&&_.formDefinitionSnapshot.uiSchema?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.t,{errors:Xe,onChange:e=>{et(e),q({})},onUploadAttachment:Q?kt:void 0,readonly:!Q,schema:_.formDefinitionSnapshot.schema,uiSchema:_.formDefinitionSnapshot.uiSchema,value:Q?J:_.formData}),Q?(0,s.jsx)(`div`,{style:oe,children:(0,s.jsx)(o.Button,{disabled:D,icon:u.RefreshCcwIcon,iconType:`leading`,onClick:()=>void Wt(),variant:`base-primary`,children:`重新送出`})}):null]}):(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`此案件沒有可顯示的表單快照。`})]})}),(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`附件`}),Ct.length>0?(0,s.jsx)(o.Table,{actions:Tt,columns:wt,dataSource:Ct,fullWidth:!0}):(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`此案件沒有附件。`})]})}),(0,s.jsxs)(o.Section,{children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`任務`}),(0,s.jsx)(o.Table,{columns:St,dataSource:mt,fullWidth:!0})]}),(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`簽章`}),(0,s.jsx)(o.Typography,{color:x?.valid?`text-success`:`text-error`,variant:`body`,children:x?x.valid?`簽章鏈已驗證,共 ${x.checkedCount} 筆。`:`簽章鏈驗證失敗:${x.errors.join(`、`)}`:`尚無簽章紀錄。`}),Et.length>0?(0,s.jsx)(o.Table,{columns:Dt,dataSource:Et,fullWidth:!0}):null]})}),(0,s.jsx)(o.Section,{children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsx)(o.Typography,{component:`h2`,variant:`h3`,children:`歷程`}),_t.length>0?(0,s.jsx)(o.Stepper,{currentStep:vt,orientation:`vertical`,type:`dot`,children:_t.map(e=>(0,s.jsx)(we,{descriptionParts:e.descriptionParts,error:e.error,forcePending:e.forcePending,title:e.title},e.id))}):(0,s.jsx)(o.Typography,{color:`text-neutral`,variant:`body`,children:`尚無歷程紀錄。`})]})})]}),_?(0,s.jsx)(o.Modal,{modalType:`standard`,onClose:()=>A(!1),open:k,showModalHeader:!0,size:`wide`,supportingText:`${Ue(_.state)} · ${n.t(_.startedAt)}`,title:`流程圖`,children:(0,s.jsxs)(`div`,{style:ce,children:[(0,s.jsx)(`div`,{style:fe,children:(0,s.jsxs)(f.ReactFlow,{edges:bt,fitView:!0,fitViewOptions:{padding:.18},maxZoom:1.2,minZoom:.2,nodes:yt,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:be,panOnDrag:!0,proOptions:{hideAttribution:!0},children:[(0,s.jsx)(f.Background,{}),(0,s.jsx)(f.Controls,{showInteractive:!1})]})}),xt.length>0?(0,s.jsx)(`div`,{style:he,children:xt.map(e=>(0,s.jsx)(`span`,{style:ge,children:e},e))}):null]})}):null,(0,s.jsx)(o.Modal,{modalType:`standard`,onClose:()=>{tt(null),it(null)},open:!!(Y&&rt),showModalHeader:!0,size:`wide`,supportingText:Y?.filename??void 0,title:`PDF 預覽`,children:rt?(0,s.jsx)(ae,{filename:Y?.filename??`PDF 預覽`,fileUrl:rt,onDownload:Y?()=>void At(Y):void 0}):null}),(0,s.jsx)(o.Modal,{cancelText:`保留案件`,confirmButtonProps:{variant:`destructive-primary`},confirmText:`確認取消`,loading:D,modalStatusType:`error`,modalType:`standard`,onCancel:()=>j(!1),onClose:()=>j(!1),onConfirm:()=>void Ut(),open:Ne,showModalFooter:!0,showModalHeader:!0,supportingText:`取消後會關閉目前待簽任務與候選簽核人。`,title:`取消案件`,children:(0,s.jsxs)(`div`,{style:b,children:[(0,s.jsxs)(o.Typography,{variant:`body`,children:[`確定要取消「`,_?.title??``,`」嗎?`]}),(0,s.jsx)(r.t,{label:`取消原因`,name:`cancelComment`,children:(0,s.jsx)(o.Textarea,{onChange:e=>Me(e.target.value),placeholder:`可填寫取消原因`,resize:`vertical`,rows:3,value:je})})]})}),(0,s.jsx)(o.Modal,{cancelText:`取消`,confirmButtonProps:{disabled:!at,variant:`destructive-primary`},confirmText:`送出拒絕`,loading:D,modalStatusType:`error`,modalType:`standard`,onCancel:Pt,onClose:Pt,onConfirm:()=>void Bt(),open:Fe,showModalFooter:!0,showModalHeader:!0,size:`regular`,supportingText:`拒絕案件時必須留下原因,供發起人與後續追蹤查看。`,title:`拒絕原因`,children:(0,s.jsxs)(`div`,{style:le,children:[(0,s.jsx)(r.t,{label:`拒絕原因`,name:`rejectReason`,required:!0,children:(0,s.jsx)(o.Textarea,{autoFocus:!0,onChange:e=>{M(e.target.value),P(null)},placeholder:`請說明拒絕原因`,ref:ye,resize:`vertical`,rows:4,style:ue,type:N?`error`:`default`,value:Pe})}),N?(0,s.jsx)(o.Typography,{color:`text-error`,variant:`body`,children:N}):null]})}),(0,s.jsx)(o.Modal,{cancelText:`取消`,confirmButtonProps:{disabled:!V},confirmText:`送出轉派`,loading:D,modalType:`standard`,onCancel:Rt,onClose:Rt,onConfirm:()=>void Vt(),open:G,showModalFooter:!0,showModalHeader:!0,size:`regular`,supportingText:`轉派後,原任務會保留轉派紀錄,新的待簽任務會指派給指定成員。`,title:`轉派簽核`,children:(0,s.jsxs)(`div`,{style:de,children:[(0,s.jsx)(r.t,{label:`轉派對象`,name:`transferToMemberId`,required:!0,children:(0,s.jsx)(o.AutoComplete,{asyncData:!0,disabledOptionsFilter:!0,emptyText:`沒有符合的成員`,inputProps:{autoCapitalize:`none`,autoCorrect:`off`,name:`transfer-member-search`,spellCheck:!1},loading:Je,loadingText:`搜尋成員中...`,mode:`single`,onChange:e=>H(Ke(e)),onSearch:zt,onSearchTextChange:e=>H(qe(e,U)),onVisibilityChange:e=>{e&&zt(``)},options:[...U],placeholder:`搜尋姓名或信箱`,searchDebounceTime:300,value:V})}),(0,s.jsx)(r.t,{label:`轉派說明`,name:`transferComment`,children:(0,s.jsx)(o.Textarea,{onChange:e=>B(e.target.value),placeholder:`可補充轉派原因`,ref:ye,resize:`vertical`,rows:4,style:ue,value:We})})]})}),(0,s.jsx)(o.Modal,{cancelText:`取消`,confirmButtonProps:{disabled:!dt},confirmText:`送出退回`,loading:D,modalType:`standard`,onCancel:It,onClose:It,onConfirm:()=>void Ht(),open:Re,showModalFooter:!0,showModalHeader:!0,size:`regular`,supportingText:`退回後,流程會回到指定節點並等待重新處理。`,title:`退回簽核`,children:(0,s.jsxs)(`div`,{style:de,children:[(0,s.jsx)(r.t,{label:`退回節點`,name:`returnTargetNodeId`,required:!0,children:(0,s.jsx)(o.Select,{clearable:!1,fullWidth:!0,onChange:e=>R(e?.id??null),options:[...lt],placeholder:`選擇退回節點`,value:dt})}),(0,s.jsx)(r.t,{label:`退回說明`,name:`returnComment`,children:(0,s.jsx)(o.Textarea,{onChange:e=>F(e.target.value),placeholder:`可補充需要修改的內容`,ref:ye,resize:`vertical`,rows:4,style:ue,value:Le})})]})})]})}function w(e){return e instanceof Error?e.message:`發生未知錯誤`}function Se(e){return!Number.isFinite(e)||e<=0?`-`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Ce(e){return e.length>16?`${e.slice(0,12)}...`:e}function T(...e){return e.filter(e=>W(e??null)).join(` `)}var we=(0,a.forwardRef)(function({className:e,descriptionParts:t,error:n,forcePending:r=!1,index:i=0,orientation:c,status:l=`pending`,title:u,type:d=`number`,...f},p){let h=r?`pending`:l;return(0,s.jsxs)(`div`,{...f,className:T(m.stepClasses.host,d===`dot`?m.stepClasses.dot:null,n&&h!==`processing`?m.stepClasses.error:null,c===`horizontal`?m.stepClasses.horizontal:null,d===`number`?m.stepClasses.number:null,h===`pending`?m.stepClasses.pending:null,h===`processing`?m.stepClasses.processing:null,n&&h===`processing`?m.stepClasses.processingError:null,!n&&h===`succeeded`?m.stepClasses.succeeded:null,c===`vertical`?m.stepClasses.vertical:null,e),ref:p,children:[d===`dot`?(0,s.jsx)(`span`,{className:T(m.stepClasses.statusIndicator,m.stepClasses.statusIndicatorDot)}):(0,s.jsx)(`span`,{className:m.stepClasses.statusIndicator,children:i+1}),(0,s.jsxs)(`div`,{className:m.stepClasses.textContainer,children:[(0,s.jsxs)(o.Typography,{className:m.stepClasses.title,variant:`label-primary-highlight`,children:[u,(0,s.jsx)(`span`,{className:m.stepClasses.titleConnectLine})]}),t.length>0?(0,s.jsx)(o.Typography,{className:m.stepClasses.description,variant:`caption`,children:t.map((e,t)=>(0,s.jsxs)(a.Fragment,{children:[t>0?` · `:null,Te(e)]},`${e.type}-${t}`))}):null]})]})});function Te(e){return e.type===`text`?e.text:e.type===`dangerText`?(0,s.jsx)(`span`,{style:ve,children:e.text}):e.email?(0,s.jsxs)(s.Fragment,{children:[e.prefix,`:`,(0,s.jsx)(o.Tooltip,{title:e.email,children:({onMouseEnter:t,onMouseLeave:n,ref:r})=>(0,s.jsx)(`span`,{"data-testid":e.memberId?`member-tooltip-${e.memberId}`:void 0,onMouseEnter:t,onMouseLeave:n,ref:r,style:_e,children:e.label})})]}):`${e.prefix}:${e.label}`}async function Ee({activityLogs:e,tasks:t}){let n=[...new Set([...e.map(e=>e.actorMemberId),...t.map(e=>e.assigneeMemberId),...t.map(e=>e.originalAssigneeMemberId),...t.flatMap(e=>e.candidateMemberIds),...t.flatMap(e=>Je(e.delegationChainJson).flatMap(e=>[e.from,e.to]))].filter(W))];try{return await(0,c.resolveMemberProfiles)(n)}catch{return[]}}async function De(e){return(await Promise.all(e.map(e=>(0,c.listTaskDecisions)(e.id)))).flat()}function Oe(e){return e.reduce((e,t)=>{let n=e.get(t.taskId),r=!n||new Date(t.decidedAt).getTime()>new Date(n.decidedAt).getTime()?t:n;return new Map(e).set(t.taskId,r)},new Map)}function ke(e,t,n,r,i,a,o,s,c){let l=e.filter(je).map(e=>{let t=Ie(e),n=ze(e.nodeId,r);return{descriptionParts:[E(n?`節點:${n}`:`節點:全流程`),O(`操作者`,e.actorMemberId,a,`系統`),E(`時間:${B(e.createdAt)}`),...I(e,t,r,o,s,c,a)].filter(A),error:We(e,t),id:e.id,title:Le(e.eventType,t)}}),u=t.filter(K).map(e=>({descriptionParts:[E(`節點:${L(e.nodeId,r)}`),O(`處理者`,e.assigneeMemberId,a,`未指定`),E(`建立時間:${B(e.createdAt)}`)].filter(A),error:!1,id:`pending-task-${e.id}`,title:e.status===`IN_PROGRESS`?`簽核處理中`:`等待簽核處理`})),d=new Set([...e.filter(je).map(e=>e.nodeId),...t.map(e=>e.nodeId)].filter(W)),f=r?Ne(r,t,n,i,d).map(e=>({descriptionParts:[E(`${J(e.type)} · 尚未抵達`)].filter(A),error:!1,forcePending:!0,id:`future-node-${e.id}`,title:Fe(e)})):[];return[...l,...u,...f]}function E(e){return W(e)?{text:e,type:`text`}:null}function D(e){return W(e)?{text:e,type:`dangerText`}:null}function O(e,t,n,r){let i=t?n.get(t):null;return{email:i?.email??null,label:i?.name??r,memberId:t,prefix:e,type:`member`}}function k(e,t){if(!e)return`-`;let n=t.get(e);return n?`${n.name}(${n.email})`:e}function A(e){return!!e}function Ae(e){let t=e.findIndex(e=>e.id.startsWith(`pending-task-`)||e.id.startsWith(`future-node-`));return t===-1?e.length:t}function je(e){return e.eventType===`INSTANCE_STARTED`||e.eventType===`TASK_DECIDED`||e.eventType===`SLA_TRIGGERED`}function Me(e,t,n,r,i){if(e.type===`startEvent`||i.has(e.id))return!1;if(r===`REJECTED`)return!0;let a=q(e,t,n,r);return a.tone===`neutral`||a.tone===`waiting`}function Ne(e,t,n,r,i){if(r!==`RUNNING`&&r!==`REJECTED`)return[];let a=e.nodes.filter(e=>Me(e,t,n,r,i)),o=j(e,a,t,n,i),s=new Map(e.nodes.map((e,t)=>[e.id,t]));return a.filter(e=>o.has(e.id)).sort((e,t)=>{let n=o.get(e.id)??0,r=o.get(t.id)??0;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})}function j(e,t,n,r,i){let a=new Set(t.map(e=>e.id)),o=e.edges.reduce((e,t)=>{let n=[...e.get(t.source)??[],t.target];return new Map(e).set(t.source,n)},new Map);return Pe(e,n,r,i).reduce((e,t)=>P(e,M(t,o,a)),new Map)}function Pe(e,t,n,r){let i=n.filter(e=>e.status===`ACTIVE`||e.status===`WAITING`).map(e=>e.currentNodeId),a=t.filter(K).map(e=>e.nodeId),o=e.nodes.filter(e=>r.has(e.id)).map(e=>e.id),s=[...new Set([...i,...a,...o])],c=e.nodes.filter(e=>e.type===`startEvent`).map(e=>e.id);return s.length>0?s:c}function M(e,t,n){return N([{distance:0,nodeId:e}],t,n)}function N(e,t,n,r=new Set,i=new Map){let[a,...o]=e;if(!a)return i;if(r.has(a.nodeId))return N(o,t,n,r,i);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;return N([...o,...(t.get(a.nodeId)??[]).map(e=>({distance:a.distance+1,nodeId:e}))],t,n,s,c)}function P(e,t){return[...t.entries()].reduce((e,[t,n])=>new Map(e).set(t,Math.min(e.get(t)??n,n)),e)}function Fe(e){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}`}function Ie(e){try{let t=JSON.parse(e.payloadJson);return G(t)?t:{}}catch{return{}}}function Le(e,t){return e===`INSTANCE_STARTED`?`案件已發起`:e===`TOKEN_CREATED`?`流程路徑已建立`:e===`ENGINE_PROCESS_REQUESTED`?`流程引擎已處理`:e===`TOKEN_ADVANCED`?`流程已前進`:e===`TASK_CREATED`?`待簽任務已建立`:e===`TASK_DECIDED`?F(V(t,`action`)):e===`SLA_TRIGGERED`?`時限提醒已觸發`:e}function F(e){return e===`APPROVED`?`已同意`:e===`REJECTED`?`已拒絕`:e===`RETURNED`?`已退回`:e===`TRANSFERRED`?`已轉派`:`簽核已決議`}function Re(e,t,n,r){if(e.eventType===`TASK_CREATED`){let e=V(t,`assigneeMemberId`),n=V(t,`originalAssigneeMemberId`);if(!e){let e=H(t,`candidateMemberIds`);return e.length?`候選簽核人:${e.map(e=>k(e,r)).join(`、`)}`:null}let i=k(e,r),a=k(n,r);return n&&n!==e?`待簽人:${i}(原簽核人:${a})`:`待簽人:${i}`}if(e.eventType===`TASK_DECIDED`){let e=V(t,`action`),n=V(t,`comment`),i=e?`決議:${R(e)}`:null,a=V(t,`transferToMemberId`);return e===`REJECTED`&&n?[i,`拒絕原因:${n}`].filter(W).join(` · `):e===`TRANSFERRED`?[i,`轉派給:${k(a,r)}`].filter(W).join(` · `):i}if(e.eventType===`TOKEN_ADVANCED`){let e=V(t,`action`);if(e)return`流程結果:${R(e)}`;let r=U(t,`arrivedCount`),i=U(t,`requiredCount`);if(r!==null&&i!==null)return`等待匯合:${r}/${i}`;let a=V(t,`fromNodeId`),o=V(t,`toNodeId`);if(a&&o)return`由 ${L(a,n)} 前進至 ${L(o,n)}`}if(e.eventType===`ENGINE_PROCESS_REQUESTED`){let e=V(t,`state`);return e?`案件狀態:${Ue(e)}`:null}return null}function I(e,t,n,r,i,a,o){if(e.eventType!==`TASK_DECIDED`)return[E(Re(e,t,n,o))].filter(A);let s=e.taskId?r.get(e.taskId):null,c=V(t,`action`)??s?.action??null,l=V(t,`comment`)??s?.comment??null,u=V(t,`transferToMemberId`)??s?.transferToMemberId??null,d=V(t,`signatureId`)??s?.signatureId??null,f=d?i.get(d):null;return[E(c?`決議:${R(c)}`:null),c===`REJECTED`?D(`拒絕原因:${l??`-`}`):null,c===`RETURNED`?E(`退回說明:${l??`-`}`):null,c===`TRANSFERRED`?E(`轉派給:${k(u,o)}`):null,c===`TRANSFERRED`?E(`轉派說明:${l??`-`}`):null,f?E(a?.valid?`簽章:已驗證(${Ce(f.signedPayloadHash)})`:`簽章:待檢查(${Ce(f.signedPayloadHash)})`):null].filter(A)}function ze(e,t){return e?L(e,t):null}function L(e,t){return t?.nodes.find(t=>t.id===e)?.data.label??e}function Be(e,t){if(t.type!==`userTask`||!t.data.returnBehavior.allowReturn)return[];if(t.data.returnBehavior.allowedTargets===`ANY`)return e.nodes.filter(e=>e.id!==t.id).map(e=>({id:e.id,name:`${e.data.label}(${J(e.type)})`}));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);return r?[{id:r.id,name:`${r.data.label}(${J(r.type)})`}]:[]}function R(e){return e===`APPROVED`?`同意`:e===`REJECTED`?`拒絕`:e===`RETURNED`?`退回`:e===`TRANSFERRED`?`轉派`:e}function Ve(e){return e===`PENDING`?`待處理`:e===`IN_PROGRESS`?`處理中`:e===`COMPLETED`?`已完成`:e===`CANCELLED`?`已取消`:e===`TRANSFERRED`?`已轉派`:e}function z(e,t=new Map){let n=Je(e.delegationChainJson);if(!e.assigneeMemberId)return e.candidateMemberIds.length?`候選 ${e.candidateMemberIds.map(e=>k(e,t)).join(`、`)}`:`未指定`;let r=k(e.assigneeMemberId,t),i=k(e.originalAssigneeMemberId,t);return n.length===0||e.originalAssigneeMemberId===e.assigneeMemberId?r:`${r}(原:${i})`}function He(e,t){return t?e.assigneeMemberId===t||e.candidateMemberIds.includes(t):!1}function Ue(e){return e===`APPROVED`?`已同意`:e===`CANCELLED`?`已取消`:e===`DRAFT`?`草稿`:e===`EXPIRED`?`已逾期`:e===`REJECTED`?`已拒絕`:e===`RETURNED`?`已退回`:e===`RUNNING`?`進行中`:e}function We(e,t){return e.eventType===`SLA_TRIGGERED`||V(t,`action`)===`REJECTED`||V(t,`instanceState`)===`REJECTED`}function B(e){return n.t(e)}function V(e,t){let n=e[t];return typeof n==`string`?n:null}function H(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function Ge(e){return{email:e.email,id:e.memberId,name:`${e.name} · ${e.email}`}}function Ke(e){if(!G(e))return null;let t=e.email,n=e.id,r=e.name;return typeof n==`string`&&typeof r==`string`?{email:typeof t==`string`?t:null,id:n,name:r}:null}function qe(e,t){let n=e.trim().toLocaleLowerCase();if(!n)return null;let r=t.filter(e=>[e.id,e.name,e.email??``].some(e=>e.toLocaleLowerCase().includes(n)));return r.length===1?r[0]??null:null}function Je(e){try{let t=JSON.parse(e);return Array.isArray(t)?t.map(e=>G(e)?Ye(e):null).filter(e=>e!==null):[]}catch{return[]}}function Ye(e){let t=V(e,`from`),n=V(e,`to`),r=V(e,`reason`);return!t||!n||!r?null:{from:t,reason:r,ruleId:V(e,`ruleId`),to:n}}function U(e,t){let n=e[t];return typeof n==`number`?n:null}function W(e){return typeof e==`string`&&e.trim().length>0}function G(e){return typeof e==`object`&&!!e}function K(e){return e.status===`PENDING`||e.status===`IN_PROGRESS`}function Xe({data:e}){return(0,s.jsxs)(`div`,{style:et(e.tone),children:[(0,s.jsx)(f.Handle,{isConnectable:!1,position:f.Position.Left,style:me,type:`target`}),(0,s.jsx)(o.Typography,{component:`span`,ellipsis:!0,title:e.label,variant:`label-primary`,children:e.label}),(0,s.jsx)(`span`,{style:Y(e.tone),children:e.statusLabel}),(0,s.jsx)(`span`,{title:e.secondaryLabel,style:C,children:e.secondaryLabel||e.kindLabel}),(0,s.jsx)(f.Handle,{isConnectable:!1,position:f.Position.Right,style:me,type:`source`})]})}function Ze(e,t,n,r){return e.nodes.map(e=>{let i=q(e,t,n,r);return{data:{kindLabel:J(e.type),label:e.data.label,secondaryLabel:i.secondaryLabel,statusLabel:i.statusLabel,tone:i.tone},id:e.id,position:e.position,sourcePosition:f.Position.Right,targetPosition:f.Position.Left,type:`workflowRuntime`}})}function Qe(e){let t=new p.graphlib.Graph;return t.setDefaultEdgeLabel(()=>({})),t.setGraph({nodesep:56,rankdir:`LR`,ranksep:120}),e.nodes.forEach(e=>{t.setNode(e.id,{height:se,width:x})}),e.edges.forEach(e=>{t.setEdge(e.source,e.target)}),p.layout(t),{...e,nodes:e.nodes.map(e=>{let n=t.node(e.id);return n?{...e,position:{x:n.x-x/2,y:n.y-se/2}}:e})}}function $e(e){return e.edges.map(e=>{let t=tt(e);return{animated:!1,id:e.id,label:t,labelBgBorderRadius:6,labelBgPadding:[8,4],labelBgStyle:{fill:e.data.isDefault?`#f8fafc`:`#eff6ff`,stroke:e.data.isDefault?`#64748b`:`#2563eb`,strokeWidth:1},labelShowBg:!!t,labelStyle:{fill:e.data.isDefault?`#475569`:`#2563eb`,fontSize:12,fontWeight:600},source:e.source,style:{stroke:`#475569`,strokeWidth:1.5},target:e.target,type:e.type??`smoothstep`}})}function q(e,t,n,r){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`);return a?{secondaryLabel:`處理者 ${z(a)}`,statusLabel:`待處理`,tone:`current`}:o?{secondaryLabel:`已取消 ${z(o)}`,statusLabel:`已取消`,tone:`cancelled`}:s?{secondaryLabel:`已完成 ${z(s)}`,statusLabel:`已完成`,tone:`completed`}:l?{secondaryLabel:`token ${l.id}`,statusLabel:`執行中`,tone:`current`}:u?{secondaryLabel:`token ${u.id}`,statusLabel:`等待前置`,tone:`waiting`}:e.type===`startEvent`?{secondaryLabel:`流程已發起`,statusLabel:`已發起`,tone:`completed`}:e.type===`endEvent`&&r!==`RUNNING`?{secondaryLabel:r,statusLabel:r===`REJECTED`?`已拒絕`:`已完成`,tone:r===`REJECTED`?`cancelled`:`completed`}:{secondaryLabel:J(e.type),statusLabel:`未抵達`,tone:`neutral`}}function J(e){return e===`startEvent`?`開始`:e===`endEvent`?`完成`:e===`userTask`?`簽核節點`:e===`serviceTask`?`知會節點`:e===`exclusiveGateway`?`條件分流`:`平行處理`}function et(e){return e===`current`?{...S,border:`1px solid var(--mzn-color-primary, #0057ff)`,boxShadow:`0 0 0 3px rgba(0, 87, 255, 0.14)`}:e===`completed`?{...S,border:`1px solid #16a34a`}:e===`cancelled`?{...S,border:`1px solid #dc2626`,opacity:.72}:e===`waiting`?{...S,border:`1px dashed #64748b`}:S}function Y(e){let t=pe;return e===`current`?{...t,background:`#eff6ff`,color:`#2563eb`}:e===`completed`?{...t,background:`#f0fdf4`,color:`#15803d`}:e===`cancelled`?{...t,background:`#fef2f2`,color:`#dc2626`}:e===`waiting`?{...t,background:`#f8fafc`,color:`#475569`}:{...t,background:`#f1f5f9`,color:`#64748b`}}function tt(e){return e.data.label?e.data.label:e.data.isDefault?`其他情況`:e.data.condition??``}function nt(e){return e.edges.map(tt).filter(e=>e.trim().length>0)}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return xe}});
|
|
2
|
+
//# sourceMappingURL=detail-Dcr5mM8g.cjs.map
|