@yinuo-ngm/server 1.0.20 → 1.0.22
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/lib/app.js +0 -4
- package/lib/env.js +5 -1
- package/lib/plugins/success-handle.plugin.js +1 -1
- package/lib/plugins/ws/topics/nginx.ws.js +1 -1
- package/lib/plugins/ws/ws.context.js +3 -1
- package/lib/plugins/ws/ws.plugin.js +14 -2
- package/lib/routes/api-client/collection.routes.js +35 -35
- package/lib/routes/api-client/env.routes.js +12 -8
- package/lib/routes/api-client/history.routes.js +10 -5
- package/lib/routes/api-client/request.routes.js +14 -8
- package/lib/routes/api-client/route-mappers.d.ts +7 -0
- package/lib/routes/api-client/route-mappers.js +78 -0
- package/lib/routes/api-client/send.routes.js +12 -8
- package/lib/routes/config.routes.js +73 -49
- package/lib/routes/deps.route.js +47 -5
- package/lib/routes/index.js +5 -3
- package/lib/routes/nginx/nginx-config.routes.js +3 -3
- package/lib/routes/nginx/nginx-lifecycle.routes.js +14 -13
- package/lib/routes/nginx/nginx-module.routes.js +6 -6
- package/lib/routes/nginx/nginx-route.context.d.ts +16 -1
- package/lib/routes/nginx/nginx-route.context.js +136 -1
- package/lib/routes/nginx/nginx-server.routes.js +5 -5
- package/lib/routes/node-runtime.routes.d.ts +2 -0
- package/lib/routes/node-runtime.routes.js +69 -0
- package/lib/routes/project.routes.js +117 -13
- package/lib/routes/sprite/sprite-browse.routes.d.ts +2 -0
- package/lib/routes/sprite/sprite-browse.routes.js +137 -0
- package/lib/routes/sprite/sprite-quick.utils.d.ts +19 -0
- package/lib/routes/sprite/sprite-quick.utils.js +247 -0
- package/lib/routes/sprite/sprite.routes.d.ts +2 -0
- package/lib/routes/sprite/sprite.routes.js +212 -0
- package/lib/routes/sprite-browse.routes.js +17 -11
- package/lib/routes/sprite.routes.d.ts +1 -1
- package/lib/routes/sprite.routes.js +68 -11
- package/lib/routes/svn.routes.js +48 -14
- package/lib/routes/task.routes.js +99 -7
- package/package.json +7 -7
- package/www/3rdpartylicenses.txt +5 -5
- package/www/browser/{chunk-OZCK4XVV.js → chunk-2VJVGBXG.js} +1 -1
- package/www/browser/{chunk-FL6GDGHW.js → chunk-3ODVU46S.js} +1 -1
- package/www/browser/chunk-442QFABJ.js +1 -0
- package/www/browser/{chunk-WD2EKZQC.js → chunk-6J6G7JEP.js} +1 -1
- package/www/browser/{chunk-7U44RF5F.js → chunk-6UFDNETG.js} +1 -1
- package/www/browser/{chunk-75W3GVSO.js → chunk-7AKVG375.js} +1 -1
- package/www/browser/chunk-7GLWEFTM.js +1 -0
- package/www/browser/{chunk-DIJPUYIA.js → chunk-7QR6RHLA.js} +1 -1
- package/www/browser/{chunk-HJTXXSMC.js → chunk-CO3CQHKV.js} +1 -1
- package/www/browser/{chunk-3XNNQFWR.js → chunk-CPJTSA6E.js} +1 -1
- package/www/browser/chunk-DENFXXOY.js +1 -0
- package/www/browser/{chunk-HDNG236Q.js → chunk-HC5KLPHD.js} +1 -1
- package/www/browser/chunk-HJAP6WBI.js +1 -0
- package/www/browser/{chunk-N2PELLMM.js → chunk-JM6DCZP6.js} +7 -7
- package/www/browser/chunk-K6C5ZIV2.js +20 -0
- package/www/browser/chunk-M6NZ6C2R.js +2 -0
- package/www/browser/{chunk-RGOYDY7H.js → chunk-MBPB43C6.js} +1 -1
- package/www/browser/chunk-MPLGMTLT.js +3 -0
- package/www/browser/chunk-NNOWADVM.js +1 -0
- package/www/browser/{chunk-M4QRBV3K.js → chunk-NREWZQVN.js} +1 -1
- package/www/browser/{chunk-6YYNHZ2A.js → chunk-OUGN4APK.js} +1 -1
- package/www/browser/chunk-PB2LGZNW.js +1 -0
- package/www/browser/chunk-PDI3HSSH.js +4 -0
- package/www/browser/chunk-PUG3VNTI.js +3 -0
- package/www/browser/{chunk-QJP5F735.js → chunk-PY3AUTHC.js} +1 -1
- package/www/browser/{chunk-3M56F2S2.js → chunk-R4HSZU2J.js} +1 -1
- package/www/browser/{chunk-DE6E23ET.js → chunk-RKK4I2RT.js} +1 -1
- package/www/browser/chunk-RMIYLAEM.js +1 -0
- package/www/browser/chunk-RZA3IFQV.js +2 -0
- package/www/browser/{chunk-K7PESFPY.js → chunk-SD2HFD54.js} +1 -1
- package/www/browser/{chunk-BTQIUVTQ.js → chunk-SEJGGBE2.js} +1 -1
- package/www/browser/chunk-SSCUT2GF.js +1 -0
- package/www/browser/chunk-TCBOC5FF.js +1 -0
- package/www/browser/{chunk-AZ6SIMYH.js → chunk-TS5ZQYYY.js} +1 -1
- package/www/browser/chunk-TVJHI463.js +1 -0
- package/www/browser/{chunk-YNW4HEJO.js → chunk-TXAXE73U.js} +17 -17
- package/www/browser/{chunk-4X42HB6N.js → chunk-U2YWR3HF.js} +1 -1
- package/www/browser/{chunk-D2ODDESN.js → chunk-U3EUR236.js} +1 -1
- package/www/browser/chunk-UKCMUTYL.js +1 -0
- package/www/browser/{chunk-DLGJD6YU.js → chunk-UPOORT3S.js} +1 -1
- package/www/browser/chunk-VW3S7C2Z.js +1 -0
- package/www/browser/chunk-VZYJ3MSW.js +15 -0
- package/www/browser/{chunk-AELTP6YN.js → chunk-WCHN62X6.js} +1 -1
- package/www/browser/chunk-WWIPELAV.js +1 -0
- package/www/browser/{chunk-B3C35ET3.js → chunk-WYNERG74.js} +1 -1
- package/www/browser/{chunk-ZTDLWBW5.js → chunk-XJDJL3TQ.js} +1 -1
- package/www/browser/{chunk-EEDA5U4V.js → chunk-YV6QPLF5.js} +1 -1
- package/www/browser/{chunk-ONXBYGIG.js → chunk-YVRGRFK2.js} +1 -1
- package/www/browser/index.html +1 -1
- package/www/browser/main-7GYUOEJY.js +38 -0
- package/lib/plugins/api-client.plugin.d.ts +0 -3
- package/lib/plugins/api-client.plugin.js +0 -55
- package/lib/plugins/nginx.binding.store.d.ts +0 -4
- package/lib/plugins/nginx.binding.store.js +0 -39
- package/lib/plugins/nginx.plugin.d.ts +0 -3
- package/lib/plugins/nginx.plugin.js +0 -23
- package/www/browser/chunk-2L7NUOMX.js +0 -2
- package/www/browser/chunk-2NZJ7CN2.js +0 -20
- package/www/browser/chunk-3CM4SKDO.js +0 -15
- package/www/browser/chunk-3OHBKMAA.js +0 -1
- package/www/browser/chunk-4LBSLURA.js +0 -1
- package/www/browser/chunk-5DYX4DUX.js +0 -11
- package/www/browser/chunk-6SYVDN5L.js +0 -1
- package/www/browser/chunk-AMXRL4GR.js +0 -1
- package/www/browser/chunk-AV2ZODEH.js +0 -1
- package/www/browser/chunk-CN5J4WNO.js +0 -1
- package/www/browser/chunk-FK6Z4HLL.js +0 -1
- package/www/browser/chunk-FXCG34QS.js +0 -1
- package/www/browser/chunk-H5HGMOE6.js +0 -1
- package/www/browser/chunk-HB3HECPD.js +0 -1
- package/www/browser/chunk-HUMCWAKJ.js +0 -3
- package/www/browser/chunk-IKB3EQCP.js +0 -2
- package/www/browser/chunk-OSBDR36P.js +0 -1
- package/www/browser/chunk-XLFHB7RS.js +0 -3
- package/www/browser/main-N64WJCHX.js +0 -34
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as ut,b as gt}from"./chunk-3M56F2S2.js";import{C as bt,a as pi,b as ci,c as ft,d as ui,e as gi,f as ht,m as fi,n as X,o as ue,p as yt,q as Q,r as _t,s as hi,t as vt,u as De,v as yi,w as we,x as _i,y as Ct,z as vi}from"./chunk-2L7NUOMX.js";import"./chunk-DE6E23ET.js";import"./chunk-7U44RF5F.js";import{a as Gn,b as Yn,c as Xn,d as Zn,e as ei,f as ti,g as ni,h as ii,i as ri,j as pt}from"./chunk-AMXRL4GR.js";import{a as qn,b as dt}from"./chunk-HDNG236Q.js";import{a as Re,b as ce,c as oi,d as ai,e as si}from"./chunk-HUMCWAKJ.js";import{a as li,b as di,c as mi,e as ct}from"./chunk-DIJPUYIA.js";import{a as wn,b as En,c as Tn}from"./chunk-WD2EKZQC.js";import{a as Wn,b as Qn,c as mt}from"./chunk-75W3GVSO.js";import"./chunk-OZCK4XVV.js";import{a as Jn,b as Kn}from"./chunk-AELTP6YN.js";import{a as K,b as H}from"./chunk-HJTXXSMC.js";import"./chunk-FXCG34QS.js";import{a as Dn,b as ze}from"./chunk-RGOYDY7H.js";import{a as $n,c as ot,d as at,e as st,f as Pe}from"./chunk-3XNNQFWR.js";import{b as Nn,c as On,e as Ln,g as Hn}from"./chunk-YNW4HEJO.js";import{a as Un,b as lt}from"./chunk-K7PESFPY.js";import{h as ve,i as Je,j as Ke,k as Ce,l as be}from"./chunk-4X42HB6N.js";import"./chunk-AV2ZODEH.js";import{k as it,m as rt,n as Se}from"./chunk-2NZJ7CN2.js";import{Cb as An,Fb as Ie,Ga as he,Ha as Y,Hb as me,Ib as Xe,Kb as kn,L as ke,Lb as pe,Mb as Ze,Pa as de,Pb as Fn,Qa as ye,Qb as Bn,Sa as _e,T as Mn,Ta as B,Ub as et,V as xn,Vb as L,Wb as tt,Y as Ye,_b as Vn,a as zn,aa as Xt,ac as Me,ba as Sn,c as In,cc as jn,dc as J,ea as Pn,fa as Rn,ga as Fe,gc as xe,ic as nt}from"./chunk-3CM4SKDO.js";import"./chunk-HFZLJHYR.js";import{c as Cn,e as bn,h as Kt}from"./chunk-WUA5JFDD.js";import{g as vn,h as Ge,m as W,n as N}from"./chunk-KRYMOHYF.js";import{$b as D,Ac as Ue,B as Ne,Da as dn,Ec as U,Fb as z,Fc as se,Gb as re,Gc as ee,Ha as I,Hc as Oe,I as Ve,Jc as d,Kc as v,L as je,Lb as A,Lc as b,M as Wt,Mc as gn,Oa as fe,Oc as qe,Pc as We,Q as an,Qc as Qe,Ra as mn,V as Qt,Wb as M,Xc as fn,Yb as x,Yc as hn,Zc as Ae,_c as yn,a as V,ac as w,ad as k,b as ge,bc as p,cc as a,cd as F,dc as o,dd as q,ec as g,fa as sn,ha as Gt,hc as Le,ic as oe,id as y,jb as pn,jc as ae,jd as le,kb as Yt,lc as E,ma as ln,mc as un,na as ne,nb as s,nd as P,oa as ie,od as c,rc as _,sa as S,sb as cn,sd as _n,t as qt,uc as u,ud as Jt,ya as f,yc as He,yd as O,za as h,zc as $e,zd as te}from"./chunk-4BRW6LCZ.js";var Ci=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=re({type:i});static \u0275inj=ie({})}return i})();var Oi=(i,t)=>t.id;function Ai(i,t){if(i&1&&g(0,"nz-option",4),i&2){let e=t.$implicit;p("nzLabel",e.name)("nzValue",e.id)}}function ki(i,t){i&1&&(a(0,"p",5),d(1,"\u63D0\u793A\uFF1A\u5F53\u524D\u9879\u76EE\u6CA1\u6709\u53EF\u63A8\u8FDB\u7684\u540E\u7EED\u9636\u6BB5\u3002"),o())}function Fi(i,t){if(i&1){let e=E();a(0,"p",2),d(1," \u5F53\u524D\u7814\u53D1\u9879\uFF1A"),a(2,"strong"),d(3),o()(),a(4,"nz-select",3),_("ngModelChange",function(r){f(e);let l=u(2);return h(l.selectedStageId.set(r||""))}),D(5,Ai,1,2,"nz-option",4,Oi),o(),M(7,ki,2,0,"p",5)}if(i&2){let e=u(2);s(3),v(t.title),s(),p("ngModel",e.selectedStageId()),s(),w(e.candidateStages()),s(2),x(e.candidateStages().length===0?7:-1)}}function Bi(i,t){if(i&1&&(oe(0),M(1,Fi,8,3),ae()),i&2){let e,n=u();s(),x((e=n.item())?1:-1,e)}}var zt=class i{open=c(!1);busy=c(!1);item=c(null);stages=c([]);confirm=P();cancel=P();selectedStageId=I("");candidateStages=y(()=>{let t=this.item(),e=[...this.stages()].sort((r,l)=>r.sort-l.sort);if(!t)return[];if(!t.stageId)return e;let n=e.find(r=>r.id===t.stageId);return n?e.filter(r=>r.sort>n.sort):e});constructor(){le(()=>{if(!this.open()){this.selectedStageId.set("");return}let t=this.candidateStages()[0];this.selectedStageId.set(t?.id??"")})}confirmSelection(){let t=this.selectedStageId().trim();t&&this.confirm.emit({stageId:t})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-advance-stage-dialog"]],inputs:{open:[1,"open"],busy:[1,"busy"],item:[1,"item"],stages:[1,"stages"]},outputs:{confirm:"confirm",cancel:"cancel"},decls:2,vars:6,consts:[[3,"nzOnCancel","nzOnOk","nzVisible","nzTitle","nzOkText","nzCancelText","nzOkLoading","nzOkDisabled"],[4,"nzModalContent"],[1,"hint"],["nzShowSearch","","nzPlaceHolder","\u9009\u62E9\u4E0B\u4E00\u9636\u6BB5",1,"stage-select",3,"ngModelChange","ngModel"],[3,"nzLabel","nzValue"],[1,"empty"]],template:function(e,n){e&1&&(a(0,"nz-modal",0),_("nzOnCancel",function(){return n.cancel.emit()})("nzOnOk",function(){return n.confirmSelection()}),A(1,Bi,2,1,"ng-container",1),o()),e&2&&p("nzVisible",n.open())("nzTitle","\u8FDB\u5165\u4E0B\u4E00\u9636\u6BB5")("nzOkText","\u786E\u8BA4\u63A8\u8FDB")("nzCancelText","\u53D6\u6D88")("nzOkLoading",n.busy())("nzOkDisabled",n.busy()||!n.selectedStageId())},dependencies:[be,Ce,ve,Pe,at,st,B,L,me,pe],styles:[".stage-select[_ngcontent-%COMP%]{width:100%}.empty[_ngcontent-%COMP%]{font-size:.8rem;color:gray;text-align:right}"]})};function Vi(i,t){if(i&1&&(a(0,"div")(1,"div",4)(2,"span"),d(3,"\u6807\u8BB0\u4E3A\u963B\u585E"),o(),a(4,"div",5),d(5),o()()()),i&2){let e=u();s(5),b(" ",e.item()?e.item().title:"\u8BB0\u5F55\u5F53\u524D\u7814\u53D1\u9879\u7684\u963B\u585E\u539F\u56E0\u3002"," ")}}function ji(i,t){if(i&1){let e=E();oe(0),a(1,"form",6),_("ngSubmit",function(){f(e);let r=u();return h(r.submitForm())}),a(2,"textarea",7),_("ngModelChange",function(r){f(e);let l=u();return h(l.reason.set(r))}),o()(),ae()}if(i&2){let e=u();s(2),p("ngModel",e.reason())}}function Li(i,t){if(i&1){let e=E();oe(0),a(1,"button",8),_("click",function(){f(e);let r=u();return h(r.cancel.emit())}),d(2,"\u53D6\u6D88"),o(),a(3,"button",9),_("click",function(){f(e);let r=u();return h(r.submitForm())}),d(4," \u786E\u8BA4\u963B\u585E "),o(),ae()}if(i&2){let e=u();s(3),p("disabled",!e.reason().trim())("nzLoading",e.busy())}}var It=class i{open=c(!0);busy=c(!1);item=c(null);confirm=P();cancel=P();reason=I("");constructor(){le(()=>{this.open()&&this.reason.set(this.item()?.blockerReason??"")})}submitForm(){let t=this.reason().trim();t&&this.confirm.emit({blockerReason:t})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-block-dialog"]],inputs:{open:[1,"open"],busy:[1,"busy"],item:[1,"item"]},outputs:{confirm:"confirm",cancel:"cancel"},decls:4,vars:5,consts:[["nzTitle","\u6807\u8BB0\u4E3A\u963B\u585E",3,"nzOnCancel","nzOnOk","nzVisible","nzWidth","nzClosable","nzMaskClosable","nzOkLoading"],[4,"nzModalTitle"],[4,"nzModalContent"],[4,"nzModalFooter"],[1,"modal-title"],[1,"modal-subtitle"],[1,"block-form",3,"ngSubmit"],["nz-input","","rows","6","placeholder","\u8BF7\u8F93\u5165\u963B\u585E\u539F\u56E0\u3002\u4F8B\u5982\uFF1A\u4F9D\u8D56\u7684\u63A5\u53E3\u5B9A\u4E49\u5C1A\u672A\u51BB\u7ED3\uFF0C\u65E0\u6CD5\u7EE7\u7EED\u8054\u8C03\u3002","name","reason",1,"block-input",3,"ngModelChange","ngModel"],["nz-button","","type","button",3,"click"],["nz-button","","nzType","primary",3,"click","disabled","nzLoading"]],template:function(e,n){e&1&&(a(0,"nz-modal",0),_("nzOnCancel",function(){return n.cancel.emit()})("nzOnOk",function(){return n.submitForm()}),A(1,Vi,6,1,"div",1)(2,ji,3,1,"ng-container",2)(3,Li,5,2,"ng-container",3),o()),e&2&&p("nzVisible",n.open())("nzWidth",640)("nzClosable",!0)("nzMaskClosable",!1)("nzOkLoading",n.busy())},dependencies:[be,Ce,Je,ve,Ke,L,Ze,Ie,me,Xe,pe,kn,B,_e,de,ye,J,Me],styles:[".modal-title[_ngcontent-%COMP%]{display:flex;flex-direction:column}.modal-subtitle[_ngcontent-%COMP%]{color:#999;font-size:14px;line-height:20px}.block-input[_ngcontent-%COMP%]{border-radius:8px}"]})};var Ee=class i{canEditProgress(t,e){return!!t&&!!e&&!!t.assigneeId&&t.assigneeId===e}canStart(t,e){return this.canEditProgress(t,e)}canComplete(t,e){return this.canEditProgress(t,e)}canEditBasic(t,e,n){return!t||!e?!1:t.creatorId===e||t.assigneeId===e?!0:this.isProjectAdmin(e,n)}canDelete(t,e,n){return!t||!e?!1:t.creatorId===e?!0:this.isProjectAdmin(e,n)}canBlock(t,e,n){return!t||!e?!1:t.assigneeId===e?!0:this.isProjectAdmin(e,n)}canResume(t,e,n){return this.canBlock(t,e,n)}canAdvance(t,e,n){return!t||t.status!=="done"&&t.status!=="accepted"?!1:this.canEditBasic(t,e,n)}hasPermissionToRead(t){return!!t&&(t.scopes?.includes("rd:read")??!1)}hasPermissionToTransition(t){return!!t&&(t.scopes?.includes("rd:transition:write")??!1)}hasPermissionToEdit(t){return!!t&&(t.scopes?.includes("rd:edit:write")??!1)}hasPermissionToDelete(t){return!!t&&(t.scopes?.includes("rd:delete:write")??!1)}isProjectAdmin(t,e){let n=e.find(r=>r.userId===t);return!!n&&(n.roleCode==="project_admin"||n.isOwner)}static \u0275fac=function(e){return new(e||i)};static \u0275prov=ne({token:i,factory:i.\u0275fac,providedIn:"root"})};var $i=["handle"],Ui=i=>({$implicit:i}),nn=(i,t)=>t.value;function qi(i,t){if(i&1&&Le(0,"span",1),i&2){let e=t.$implicit;Oe(e.style),ee("ant-slider-mark-active",e.active),un("innerHTML",e.label,pn)}}function Wi(i,t){if(i&1&&Le(0,"span",1),i&2){let e=t.$implicit;Oe(e.style),ee("ant-slider-dot-active",e.active)}}function Qi(i,t){if(i&1&&g(0,"nz-slider-step",2),i&2){let e=u();p("vertical",e.nzVertical)("min",e.nzMin)("max",e.nzMax)("lowerBound",e.bounds.lower)("upperBound",e.bounds.upper)("marksArray",e.marksArray)("included",e.nzIncluded)("reverse",e.nzReverse)}}function Gi(i,t){if(i&1){let e=E();a(0,"nz-slider-handle",4),_("focusin",function(){let r=f(e).$index,l=u();return h(l.onHandleFocusIn(r))}),o()}if(i&2){let e=t.$implicit,n=u();p("vertical",n.nzVertical)("reverse",n.nzReverse)("offset",e.offset)("value",e.value)("active",e.active)("tooltipFormatter",n.nzTipFormatter)("tooltipVisible",n.nzTooltipVisible)("tooltipPlacement",n.nzTooltipPlacement)("dragging",n.dragging())("dir",n.dir)}}function Yi(i,t){if(i&1&&g(0,"nz-slider-marks",2),i&2){let e=u();p("vertical",e.nzVertical)("min",e.nzMin)("max",e.nzMax)("lowerBound",e.bounds.lower)("upperBound",e.bounds.upper)("marksArray",e.marksArray)("included",e.nzIncluded)("reverse",e.nzReverse)}}var tn=(()=>{class i{cdr=S(Jt);handleEl;tooltip;vertical;reverse;offset;value;tooltipVisible="default";tooltipPlacement;tooltipFormatter;active=!1;dir="ltr";dragging;tooltipTitle;style={};ngOnChanges(e){let{offset:n,value:r,active:l,tooltipVisible:m,reverse:C,dir:R}=e;(n||C||R)&&this.updateStyle(),r&&(this.updateTooltipTitle(),this.updateTooltipPosition()),l&&(l.currentValue?this.toggleTooltip(!0):this.toggleTooltip(!1)),m?.currentValue==="always"&&Promise.resolve().then(()=>this.toggleTooltip(!0,!0))}enterHandle=()=>{this.dragging||(this.toggleTooltip(!0),this.updateTooltipPosition(),this.cdr.detectChanges())};leaveHandle=()=>{this.dragging||(this.toggleTooltip(!1),this.cdr.detectChanges())};focus(){this.handleEl?.nativeElement.focus()}toggleTooltip(e,n=!1){!n&&(this.tooltipVisible!=="default"||!this.tooltip)||(e?this.tooltip?.show():this.tooltip?.hide())}updateTooltipTitle(){this.tooltipFormatter?this.tooltipTitle=typeof this.tooltipFormatter=="function"?this.tooltipFormatter(this.value):this.tooltipFormatter:this.tooltipTitle=`${this.value}`}updateTooltipPosition(){this.tooltip&&Promise.resolve().then(()=>this.tooltip?.updatePosition())}updateStyle(){this.vertical?this.style={[this.reverse?"top":"bottom"]:`${this.offset}%`,[this.reverse?"bottom":"top"]:"auto",transform:this.reverse?null:"translateY(+50%)"}:this.style=ge(V({},this.getHorizontalStylePosition()),{transform:`translateX(${this.reverse?this.dir==="rtl"?"-":"+":this.dir==="rtl"?"+":"-"}50%)`}),this.cdr.markForCheck()}getHorizontalStylePosition(){let e=this.reverse?"auto":`${this.offset}%`,n=this.reverse?`${this.offset}%`:"auto";return this.dir==="rtl"&&([e,n]=[n,e]),{left:e,right:n}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=z({type:i,selectors:[["nz-slider-handle"]],viewQuery:function(n,r){if(n&1&&(He($i,5),He(xe,5)),n&2){let l;$e(l=Ue())&&(r.handleEl=l.first),$e(l=Ue())&&(r.tooltip=l.first)}},hostBindings:function(n,r){n&1&&_("mouseenter",function(){return r.enterHandle()})("mouseleave",function(){return r.leaveHandle()})},inputs:{vertical:[2,"vertical","vertical",O],reverse:[2,"reverse","reverse",O],offset:[2,"offset","offset",Ye],value:[2,"value","value",Ye],tooltipVisible:"tooltipVisible",tooltipPlacement:"tooltipPlacement",tooltipFormatter:"tooltipFormatter",active:[2,"active","active",O],dir:"dir",dragging:"dragging"},exportAs:["nzSliderHandle"],features:[fe],decls:2,vars:8,consts:[["handle",""],["tabindex","0","nz-tooltip","",1,"ant-slider-handle",3,"nzTooltipTitle","nzTooltipTitleContext","nzTooltipTrigger","nzTooltipPlacement"]],template:function(n,r){n&1&&g(0,"div",1,0),n&2&&(Oe(r.style),p("nzTooltipTitle",r.tooltipFormatter===null||r.tooltipVisible==="never"?null:r.tooltipTitle)("nzTooltipTitleContext",Ae(6,Ui,r.value))("nzTooltipTrigger",null)("nzTooltipPlacement",r.tooltipPlacement))},dependencies:[nt,xe],encapsulation:2,changeDetection:0})}return i})(),Ji=(()=>{class i{lowerBound=null;upperBound=null;marksArray=[];min;max;vertical=!1;included=!1;reverse;marks=[];ngOnChanges(e){let{marksArray:n,lowerBound:r,upperBound:l,reverse:m}=e;(n||m)&&this.buildMarks(),(n||r||l||m)&&this.togglePointActive()}buildMarks(){let e=this.max-this.min;this.marks=this.marksArray.map(n=>{let{value:r,offset:l,config:m}=n,C=this.getMarkStyles(r,e,m);return{label:xi(m)?m.label:m,offset:l,style:C,value:r,config:m,active:!1}})}getMarkStyles(e,n,r){let l,m=this.reverse?this.max+this.min-e:e;return this.vertical?l={marginBottom:"-50%",bottom:`${(m-this.min)/n*100}%`}:l={transform:"translate3d(-50%, 0, 0)",left:`${(m-this.min)/n*100}%`},xi(r)&&r.style&&(l=V(V({},l),r.style)),l}togglePointActive(){this.marks&&this.lowerBound!==null&&this.upperBound!==null&&this.marks.forEach(e=>{let n=e.value;e.active=this.included?n<=this.upperBound&&n>=this.lowerBound:n===this.upperBound})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=z({type:i,selectors:[["nz-slider-marks"]],hostAttrs:[1,"ant-slider-mark"],inputs:{lowerBound:"lowerBound",upperBound:"upperBound",marksArray:"marksArray",min:[2,"min","min",te],max:[2,"max","max",te],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O],reverse:[2,"reverse","reverse",O]},exportAs:["nzSliderMarks"],features:[fe],decls:2,vars:0,consts:[[1,"ant-slider-mark-text",3,"ant-slider-mark-active","style","innerHTML"],[1,"ant-slider-mark-text",3,"innerHTML"]],template:function(n,r){n&1&&D(0,qi,1,5,"span",0,nn),n&2&&w(r.marks)},encapsulation:2,changeDetection:0})}return i})();function xi(i){return typeof i!="string"}var Ki=(()=>{class i{lowerBound=null;upperBound=null;marksArray=[];min;max;vertical=!1;included=!1;reverse;steps=[];ngOnChanges(e){let{marksArray:n,lowerBound:r,upperBound:l,reverse:m}=e;(n||m)&&this.buildSteps(),(n||r||l||m)&&this.togglePointActive()}buildSteps(){let e=this.vertical?"bottom":"left";this.steps=this.marksArray.map(n=>{let{value:r,config:l}=n,m=n.offset,C=this.max-this.min;return this.reverse&&(m=(this.max-r)/C*100),{value:r,offset:m,config:l,active:!1,style:{[e]:`${m}%`,transform:this.vertical?"translateY(50%)":"translateX(-50%)"}}})}togglePointActive(){this.steps&&this.lowerBound!==null&&this.upperBound!==null&&this.steps.forEach(e=>{let n=e.value;e.active=this.included?n<=this.upperBound&&n>=this.lowerBound:n===this.upperBound})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=z({type:i,selectors:[["nz-slider-step"]],hostAttrs:[1,"ant-slider-step"],inputs:{lowerBound:"lowerBound",upperBound:"upperBound",marksArray:"marksArray",min:[2,"min","min",te],max:[2,"max","max",te],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O],reverse:[2,"reverse","reverse",O]},exportAs:["nzSliderStep"],features:[fe],decls:2,vars:0,consts:[[1,"ant-slider-dot",3,"ant-slider-dot-active","style"],[1,"ant-slider-dot"]],template:function(n,r){n&1&&D(0,Wi,1,4,"span",0,nn),n&2&&w(r.steps)},encapsulation:2,changeDetection:0})}return i})(),Xi=(()=>{class i{offset=0;reverse=!1;dir="ltr";length=0;vertical=!1;included=!1;style={};ngOnChanges(){let e=this.included?"visible":"hidden";this.vertical?this.style={[this.reverse?"top":"bottom"]:`${this.offset}%`,[this.reverse?"bottom":"top"]:"auto",height:`${this.length}%`,visibility:e}:this.style=ge(V({},this.getHorizontalStylePosition()),{width:`${this.length}%`,visibility:e})}getHorizontalStylePosition(){let e=this.reverse?"auto":`${this.offset}%`,n=this.reverse?`${this.offset}%`:"auto";return this.dir==="rtl"&&([e,n]=[n,e]),{left:e,right:n}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=z({type:i,selectors:[["nz-slider-track"]],inputs:{offset:[2,"offset","offset",te],reverse:[2,"reverse","reverse",O],dir:"dir",length:[2,"length","length",te],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O]},exportAs:["nzSliderTrack"],features:[fe],decls:1,vars:2,consts:[[1,"ant-slider-track"]],template:function(n,r){n&1&&Le(0,"div",0),n&2&&Oe(r.style)},encapsulation:2,changeDetection:0})}return i})(),rn=(()=>{class i{slider=S(mn);destroyRef=S(dn);cdr=S(Jt);platform=S(In);directionality=S(zn);handlerComponents;nzDisabled=!1;nzDots=!1;nzIncluded=!0;nzRange=!1;nzVertical=!1;nzReverse=!1;nzDefaultValue;nzMarks=null;nzMax=100;nzMin=0;nzStep=1;nzTooltipVisible="default";nzTooltipPlacement="top";nzTipFormatter;nzOnAfterChange=new cn;value=null;cacheSliderStart=null;cacheSliderLength=null;activeValueIndex=void 0;track={offset:null,length:null};handles=[];marksArray=null;bounds={lower:null,upper:null};dir="ltr";dragging=I(!1);dragStart$;dragMove$;dragEnd$;dragStart_;dragMove_;dragEnd_;isNzDisableFirstChange=!0;ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(ke(this.destroyRef)).subscribe(e=>{this.dir=e,this.cdr.detectChanges(),this.updateTrackAndHandles(),this.onValueChange(this.getValue(!0))}),this.handles=Si(this.nzRange?2:1),this.marksArray=this.nzMarks?this.generateMarkItems(this.nzMarks):null,this.bindDraggingHandlers(),this.toggleDragDisabled(this.nzDisabled),this.getValue()===null&&this.setValue(this.formatValue(null))}ngOnChanges(e){let{nzDisabled:n,nzMarks:r,nzRange:l}=e;n&&!n.firstChange?this.toggleDragDisabled(n.currentValue):r&&!r.firstChange?this.marksArray=this.nzMarks?this.generateMarkItems(this.nzMarks):null:l&&!l.firstChange&&(this.handles=Si(l.currentValue?2:1),this.setValue(this.formatValue(null)))}writeValue(e){this.setValue(e,!0)}onValueChange(e){}onTouched(){}registerOnChange(e){this.onValueChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.toggleDragDisabled(this.nzDisabled),this.cdr.markForCheck()}onKeyDown(e){if(this.nzDisabled)return;let n=e.keyCode,r=n===39||n===38,l=n===37||n===40;if(!(r||l))return;e.preventDefault();let m=(l?-this.nzStep:this.nzStep)*(this.nzReverse?-1:1)*(this.dir==="rtl"?-1:1),C=this.nzRange?this.value[this.activeValueIndex]+m:this.value+m;this.setActiveValue(Fe(C,this.nzMin,this.nzMax)),this.nzOnAfterChange.emit(this.getValue(!0))}onHandleFocusIn(e){this.activeValueIndex=e}setValue(e,n=!1){n?(this.value=this.formatValue(e),this.updateTrackAndHandles()):nr(this.value,e)||(this.value=e,this.updateTrackAndHandles(),this.onValueChange(this.getValue(!0)))}getValue(e=!1){return e&&this.value&&$(this.value)?[...this.value].sort((n,r)=>n-r):this.value}getValueToOffset(e){let n=e;return typeof n>"u"&&(n=this.getValue(!0)),$(n)?n.map(r=>this.valueToOffset(r)):this.valueToOffset(n)}setActiveValueIndex(e){let n=this.getValue();if($(n)){let r=null,l,m=-1;n.forEach((C,R)=>{l=Math.abs(e-C),(r===null||l<r)&&(r=l,m=R)}),this.activeValueIndex=m,this.handlerComponents.toArray()[m].focus()}else this.handlerComponents.toArray()[0].focus()}setActiveValue(e){if($(this.value)){let n=[...this.value];n[this.activeValueIndex]=e,this.setValue(n)}else this.setValue(e)}updateTrackAndHandles(){let e=this.getValue(),n=this.getValueToOffset(e),r=this.getValue(!0),l=this.getValueToOffset(r),m=$(r)?r:[0,r],C=$(l)?[l[0],l[1]-l[0]]:[0,l];this.handles.forEach((R,G)=>{R.offset=$(n)?n[G]:n,R.value=$(e)?e[G]:e||0}),[this.bounds.lower,this.bounds.upper]=m,[this.track.offset,this.track.length]=C,this.cdr.markForCheck()}onDragStart(e){this.toggleDragMoving(!0),this.cacheSliderProperty(),this.setActiveValueIndex(this.getLogicalValue(e)),this.setActiveValue(this.getLogicalValue(e)),this.showHandleTooltip(this.nzRange?this.activeValueIndex:0)}onDragMove(e){this.setActiveValue(this.getLogicalValue(e)),this.cdr.markForCheck()}getLogicalValue(e){return this.nzReverse?!this.nzVertical&&this.dir==="rtl"?e:this.nzMax-e+this.nzMin:!this.nzVertical&&this.dir==="rtl"?this.nzMax-e+this.nzMin:e}onDragEnd(){this.nzOnAfterChange.emit(this.getValue(!0)),this.toggleDragMoving(!1),this.cacheSliderProperty(!0),this.hideAllHandleTooltip(),this.cdr.markForCheck()}bindDraggingHandlers(){if(!this.platform.isBrowser)return;let e=C=>R=>C.reduce((G,Z)=>G[Z]||G,R),n=this.slider.nativeElement,r=this.nzVertical?"pageY":"pageX",l={start:"mousedown",move:"mousemove",end:"mouseup",pluckKey:[r]},m={start:"touchstart",move:"touchmove",end:"touchend",pluckKey:["touches","0",r],filter:C=>C instanceof TouchEvent};[l,m].forEach(C=>{let{start:R,move:G,end:Z,pluckKey:Be,filter:on=()=>!0}=C;C.startPlucked$=Ve(n,R).pipe(Wt(on),Gt(Xt),Ne(e(Be)),Ne(Ut=>this.findClosestValue(Ut))),C.end$=Ve(document,Z),C.moveResolved$=Ve(document,G).pipe(Wt(on),Gt(Xt),Ne(e(Be)),Qt(),Ne(Ut=>this.findClosestValue(Ut)),Qt(),sn(C.end$))}),this.dragStart$=je(l.startPlucked$,m.startPlucked$),this.dragMove$=je(l.moveResolved$,m.moveResolved$),this.dragEnd$=je(l.end$,m.end$)}subscribeDrag(e=["start","move","end"]){e.indexOf("start")!==-1&&this.dragStart$&&!this.dragStart_&&(this.dragStart_=this.dragStart$.pipe(ke(this.destroyRef)).subscribe(this.onDragStart.bind(this))),e.indexOf("move")!==-1&&this.dragMove$&&!this.dragMove_&&(this.dragMove_=this.dragMove$.pipe(ke(this.destroyRef)).subscribe(this.onDragMove.bind(this))),e.indexOf("end")!==-1&&this.dragEnd$&&!this.dragEnd_&&(this.dragEnd_=this.dragEnd$.pipe(ke(this.destroyRef)).subscribe(this.onDragEnd.bind(this)))}unsubscribeDrag(e=["start","move","end"]){e.includes("start")&&(this.dragStart_?.unsubscribe(),this.dragStart_=null),e.includes("move")&&(this.dragMove_?.unsubscribe(),this.dragMove_=null),e.includes("end")&&(this.dragEnd_?.unsubscribe(),this.dragEnd_=null)}toggleDragMoving(e){let n=["move","end"];e?(this.dragging.set(!0),this.subscribeDrag(n)):(this.dragging.set(!1),this.unsubscribeDrag(n))}toggleDragDisabled(e){e?this.unsubscribeDrag():this.subscribeDrag(["start"])}findClosestValue(e){let n=this.getSliderStartPosition(),r=this.getSliderLength(),l=Fe((e-n)/r,0,1),m=(this.nzMax-this.nzMin)*(this.nzVertical?1-l:l)+this.nzMin,C=this.nzMarks===null?[]:Object.keys(this.nzMarks).map(parseFloat).sort((Z,Be)=>Z-Be);if(this.nzStep!==0&&!this.nzDots){let Z=Math.round(m/this.nzStep)*this.nzStep;C.push(Z)}let R=C.map(Z=>Math.abs(m-Z)),G=C[R.indexOf(Math.min(...R))];return this.nzStep===0?G:parseFloat(G.toFixed(Rn(this.nzStep)))}valueToOffset(e){return Pn(this.nzMin,this.nzMax,e)}getSliderStartPosition(){if(this.cacheSliderStart!==null)return this.cacheSliderStart;let e=Sn(this.slider.nativeElement);return this.nzVertical?e.top:e.left}getSliderLength(){if(this.cacheSliderLength!==null)return this.cacheSliderLength;let e=this.slider.nativeElement;return this.nzVertical?e.clientHeight:e.clientWidth}cacheSliderProperty(e=!1){this.cacheSliderStart=e?null:this.getSliderStartPosition(),this.cacheSliderLength=e?null:this.getSliderLength()}formatValue(e){return xn(e)?this.nzRange?[this.nzMin,this.nzMax]:this.nzMin:er(e,this.nzRange)?$(e)?e.map(n=>Fe(n,this.nzMin,this.nzMax)):Fe(e,this.nzMin,this.nzMax):this.nzDefaultValue?this.nzDefaultValue:this.nzRange?[this.nzMin,this.nzMax]:this.nzMin}showHandleTooltip(e=0){this.handles.forEach((n,r)=>n.active=r===e)}hideAllHandleTooltip(){this.handles.forEach(e=>e.active=!1)}generateMarkItems(e){let n=[];for(let r in e)if(e.hasOwnProperty(r)){let l=e[r],m=typeof r=="number"?r:parseFloat(r);m>=this.nzMin&&m<=this.nzMax&&n.push({value:m,offset:this.valueToOffset(m),config:l})}return n.length?n:null}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=z({type:i,selectors:[["nz-slider"]],viewQuery:function(n,r){if(n&1&&He(tn,5),n&2){let l;$e(l=Ue())&&(r.handlerComponents=l)}},hostAttrs:[1,"ant-slider"],hostVars:8,hostBindings:function(n,r){n&1&&_("keydown",function(m){return r.onKeyDown(m)}),n&2&&ee("ant-slider-rtl",r.dir==="rtl")("ant-slider-disabled",r.nzDisabled)("ant-slider-vertical",r.nzVertical)("ant-slider-with-marks",r.marksArray)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O],nzDots:[2,"nzDots","nzDots",O],nzIncluded:[2,"nzIncluded","nzIncluded",O],nzRange:[2,"nzRange","nzRange",O],nzVertical:[2,"nzVertical","nzVertical",O],nzReverse:[2,"nzReverse","nzReverse",O],nzDefaultValue:"nzDefaultValue",nzMarks:"nzMarks",nzMax:[2,"nzMax","nzMax",te],nzMin:[2,"nzMin","nzMin",te],nzStep:[2,"nzStep","nzStep",Ye],nzTooltipVisible:"nzTooltipVisible",nzTooltipPlacement:"nzTooltipPlacement",nzTipFormatter:"nzTipFormatter"},outputs:{nzOnAfterChange:"nzOnAfterChange"},exportAs:["nzSlider"],features:[fn([{provide:An,useExisting:ln(()=>i),multi:!0}]),fe],decls:6,vars:8,consts:[[1,"ant-slider-rail"],[3,"vertical","included","offset","length","reverse","dir"],[3,"vertical","min","max","lowerBound","upperBound","marksArray","included","reverse"],[3,"vertical","reverse","offset","value","active","tooltipFormatter","tooltipVisible","tooltipPlacement","dragging","dir"],[3,"focusin","vertical","reverse","offset","value","active","tooltipFormatter","tooltipVisible","tooltipPlacement","dragging","dir"]],template:function(n,r){n&1&&(g(0,"div",0)(1,"nz-slider-track",1),M(2,Qi,1,8,"nz-slider-step",2),D(3,Gi,1,10,"nz-slider-handle",3,nn),M(5,Yi,1,8,"nz-slider-marks",2)),n&2&&(s(),p("vertical",r.nzVertical)("included",r.nzIncluded)("offset",r.track.offset)("length",r.track.length)("reverse",r.nzReverse)("dir",r.dir),s(),x(r.marksArray?2:-1),s(),w(r.handles),s(2),x(r.marksArray?5:-1))},dependencies:[Xi,Ki,tn,Ji],encapsulation:2,changeDetection:0})}return i})();function Zi(){return new Error(`The "nzRange" can't match the "ngModel"'s type, please check these properties: "nzRange", "ngModel", "nzDefaultValue".`)}function $(i){return i instanceof Array?i.length===2:!1}function Si(i){return Array(i).fill(0).map(()=>({offset:null,value:null,active:!1}))}function er(i,t){return!$(i)&&isNaN(i)||$(i)&&i.some(e=>isNaN(e))?!1:tr(i,t)}function tr(i,t=!1){if($(i)!==t)throw Zi();return!0}function nr(i,t){return typeof i!=typeof t?!1:$(i)&&$(t)?Mn(i,t):i===t}var Mt=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=re({type:i});static \u0275inj=ie({imports:[rn,tn]})}return i})();var rr=(i,t)=>t.value;function or(i,t){if(i&1&&g(0,"nz-step",5),i&2){let e=u().$implicit,n=u();p("nzTitle",e.label)("nzStatus",n.excutedStatus().has(e.value)?"finish":"wait")}}function ar(i,t){if(i&1&&g(0,"nz-step",6),i&2){let e=u().$implicit;p("nzTitle",e.label)}}function sr(i,t){if(i&1&&M(0,or,1,2,"nz-step",5)(1,ar,1,1,"nz-step",6),i&2){let e=u();x(e.item().status==="closed"?0:1)}}var xt=class i{rdPermission=S(Ee);userStore=S(Se);item=c.required();stages=c([]);busy=c();actionClick=P();deleteClick=P();progressChange=P();members=c([]);currentUser=y(()=>this.userStore.currentUser());currentUserId=y(()=>this.userStore.currentUserId());currentStageName=y(()=>{let t=this.item();return t?this.stages().find(e=>e.id===t.stageId)?.name??"-":"-"});currentStatusName=y(()=>{let t=this.item()?.status;return t==="blocked"?"\u5904\u7406\u4E2D\uFF08\u963B\u585E\u4E2D\uFF09":X[t]??"_ _"});excutedStatus=y(()=>{let t=new Set;return this.item().status!=="closed"||(t.add("todo"),t.add("closed"),this.item().progress>0&&t.add("doing"),this.item().progress>=100&&t.add("done")),t});progressDraft=I(0);constructor(){le(()=>{this.item()?.progress&&this.progressDraft.set(this.item()?.progress)})}stepsOptions=yt.filter(t=>!(t.value==="blocked"||t.value===""));getStepIndex(t){return t==="blocked"?1:t==="done"?2:t==="closed"||t==="accepted"?3:t==="reopened"?1:fi.findIndex(n=>n===t)??-1}getRdStatusColor(t){return ue[t]??"default"}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-flow-area"]],inputs:{item:[1,"item"],stages:[1,"stages"],busy:[1,"busy"],members:[1,"members"]},outputs:{actionClick:"actionClick",deleteClick:"deleteClick",progressChange:"progressChange"},decls:10,vars:4,consts:[[1,"steps"],[1,"flow-card__meta"],[1,"stage"],[3,"nzColor"],["nzSize","small",3,"nzCurrent"],[3,"nzTitle","nzStatus"],[3,"nzTitle"]],template:function(e,n){e&1&&(a(0,"app-detail-item-card")(1,"div",0)(2,"div",1)(3,"span",2),d(4),o(),a(5,"nz-tag",3),d(6),o()(),a(7,"nz-steps",4),D(8,sr,2,1,null,null,rr),o()()()),e&2&&(s(4),b("\u5F53\u524D\u9636\u6BB5\uFF1A",n.currentStageName()),s(),p("nzColor",n.getRdStatusColor(n.item().status)),s(),v(n.currentStatusName()),s(),p("nzCurrent",n.getStepIndex(n.item().status)),s(),w(n.stepsOptions))},dependencies:[B,dt,Mt,si,ai,oi,H,K,L,Q],styles:[".flow-card__meta[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:.875rem;margin-bottom:1rem;font-weight:600}.flow-card__meta[_ngcontent-%COMP%] .stage[_ngcontent-%COMP%]{margin-right:auto}.action-empty[_ngcontent-%COMP%]{color:gray;font-size:.9rem}.delete-btn[_ngcontent-%COMP%]{margin-left:auto}.progress-wrap[_ngcontent-%COMP%]{width:100%;margin-top:8px;padding:1rem;border:1px solid #f0f0f0;border-radius:10px}.progress-wrap[_ngcontent-%COMP%] .progress-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.progress-wrap[_ngcontent-%COMP%] .progress-actions[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;justify-content:end;gap:1rem}[_nghost-%COMP%] .ant-steps-item-title:after{background-color:#d3d3d3!important}"]})};var dr=()=>({"0%":"#108ee9","100%":"#87d068"}),mr=(i,t)=>t.id;function pr(i,t){i&1&&d(0," (\u6211) ")}function cr(i,t){if(i&1&&(a(0,"div",18)(1,"span",20),d(2,"\u8FDB\u5EA6\u8BF4\u660E\uFF1A"),o(),a(3,"span",21),d(4),o()()),i&2){let e=u().$implicit;s(4),v(e.note)}}function ur(i,t){if(i&1){let e=E();a(0,"button",24),_("nzOnConfirm",function(){f(e);let r=u(2).$implicit,l=u();return h(l.onStartProgress(r))}),d(1," \u5F00\u59CB "),o()}}function gr(i,t){if(i&1){let e=E();a(0,"button",25),_("click",function(){f(e);let r=u(2).$implicit,l=u();return h(l.onUpdateProgress(r))}),d(1," \u66F4\u65B0 "),o()}}function fr(i,t){if(i&1&&M(0,ur,2,0,"button",22)(1,gr,2,0,"button",23),i&2){let e=u().$implicit;x(e.progress<=0?0:1)}}function hr(i,t){if(i&1&&(a(0,"div",9)(1,"div",11),g(2,"nz-avatar",12),a(3,"div",13)(4,"span",14),d(5),M(6,pr,1,0),o(),a(7,"span",15),d(8),k(9,"date"),o()(),g(10,"nz-progress",16),o(),a(11,"div",17),M(12,cr,5,1,"div",18),a(13,"div",19),M(14,fr,2,1),o()()()),i&2){let e=t.$implicit,n=u();s(2),se("background-color","#1890ff"),p("nzSize","small")("nzText",e.userName==null?null:e.userName.charAt(0)),s(3),b(" ",e.userName," "),s(),x(e.userId===n.currentUserId()?6:-1),s(2),b(" \u6700\u540E\u66F4\u65B0\uFF1A",F(9,10,e.updatedAt,"MM:dd hh:mm")," "),s(2),p("nzPercent",e.progress),s(2),x(e.note?12:-1),s(2),x(n.canUpdateProgress(e)&&!n.isProgressLocked()?14:-1)}}function yr(i,t){i&1&&(a(0,"div",10),d(1,"\u6682\u65E0\u6210\u5458\u8FDB\u5EA6\u6570\u636E"),o())}var Pt=class i{rdPermission=S(Ee);userStore=S(Se);item=c(null);progressList=c([]);members=c([]);updateProgressClick=P();currentUserId=y(()=>this.userStore.currentUserId());normalizedProgressList=y(()=>{let t=this.item();if(!t)return[];let e=t.memberIds??[],n=new Map(this.members().map(C=>[C.userId,C.displayName])),r=new Map(this.progressList().map(C=>[C.userId,C])),l=[];if(e.length){let C=e.map(R=>({id:R,itemId:r.get(R)?.itemId??t.id,userId:R,userName:r.get(R)?.userName??n.get(R)??R,progress:r.get(R)?.progress??0,note:r.get(R)?.note??"",updatedAt:t.updatedAt}));l.push(...C)}else{if(!t.assigneeId)return[];l.push({id:"",itemId:t.id,userId:t.assigneeId,userName:t.assigneeName??n.get(t.assigneeId)??t.assigneeId,progress:t.progress,note:"",updatedAt:t.updatedAt})}let m=this.currentUserId();return l.sort((C,R)=>C.userId===m?-1:R.userId===m?1:0)});mainProgress=y(()=>this.item()?.progress??0);isClosed(){return this.item()?.status==="closed"}getAvatarLetter(t){return t?t.charAt(0).toUpperCase():"?"}isProgressLocked(){let t=this.item()?.status;return t==="accepted"||t==="closed"}onUpdateProgress(t){this.updateProgressClick.emit(t)}onStartProgress(t){this.updateProgressClick.emit(t)}canUpdateProgress(t){return t.userId===this.currentUserId()&&this.rdPermission.hasPermissionToTransition(this.userStore.currentUser())}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-progress-area"]],inputs:{item:[1,"item"],progressList:[1,"progressList"],members:[1,"members"]},outputs:{updateProgressClick:"updateProgressClick"},decls:15,vars:6,consts:[["title","\u6210\u5458\u8FDB\u5EA6"],[1,"main-progress-header"],[1,"main-progress-info"],[1,"main-progress-label"],[1,"main-progress-hint"],[1,"main-progress-data"],[1,"progress-bar"],[3,"nzPercent","nzShowInfo","nzStrokeColor"],[1,"progress-list"],[1,"progress-item"],[1,"empty"],[1,"progress-item-header"],[3,"nzSize","nzText"],[1,"member-info"],[1,"member-name"],[1,"member-hint"],[3,"nzPercent"],[1,"progress-item-footer"],[1,"note-row"],[1,"progress-item-actions"],[1,"note-label"],[1,"note"],["nz-button","","nzType","default","nzSize","small","nz-popconfirm","","nzPopconfirmTitle","\u786E\u8BA4\u5F00\u59CB\u5904\u7406\u5417\uFF1F","nzPopconfirmPlacement","topRight"],["nz-button","","nzType","default","nzSize","small"],["nz-button","","nzType","default","nzSize","small","nz-popconfirm","","nzPopconfirmTitle","\u786E\u8BA4\u5F00\u59CB\u5904\u7406\u5417\uFF1F","nzPopconfirmPlacement","topRight",3,"nzOnConfirm"],["nz-button","","nzType","default","nzSize","small",3,"click"]],template:function(e,n){e&1&&(a(0,"app-detail-item-card",0)(1,"div",1)(2,"div",2)(3,"span",3),d(4,"\u6574\u4F53\u8FDB\u5EA6"),o(),a(5,"span",4),d(6,"\u81EA\u52A8\u53D6\u6210\u5458\u5E73\u5747\u503C"),o()(),a(7,"div",5),d(8),o()(),a(9,"div",6),g(10,"nz-progress",7),o(),a(11,"div",8),D(12,hr,15,13,"div",9,mr,!1,yr,2,0,"div",10),o()()),e&2&&(s(8),b("",n.mainProgress(),"%"),s(2),p("nzPercent",n.mainProgress())("nzShowInfo",!1)("nzStrokeColor",hn(5,dr)),s(2),w(n.normalizedProgressList()))},dependencies:[vt,_t,B,_e,de,ye,ce,Re,Hn,dt,qn,Q,N,W],styles:["[_nghost-%COMP%]{display:block}.main-progress-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.main-progress-header[_ngcontent-%COMP%] .main-progress-info[_ngcontent-%COMP%]{margin-left:4px;display:flex;flex-direction:column}.main-progress-header[_ngcontent-%COMP%] .main-progress-info[_ngcontent-%COMP%] .main-progress-label[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#262626}.main-progress-header[_ngcontent-%COMP%] .main-progress-info[_ngcontent-%COMP%] .main-progress-hint[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c}.main-progress-header[_ngcontent-%COMP%] .main-progress-data[_ngcontent-%COMP%]{font-size:28px;font-weight:600;color:#262626}.progress-bar[_ngcontent-%COMP%]{margin-bottom:16px}.progress-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.progress-item[_ngcontent-%COMP%]{background:#fafafa;border-radius:8px;padding:12px 16px;transition:all .2s ease;border:1px solid transparent}.progress-item[_ngcontent-%COMP%]:hover{background:#f5faff;border-color:#d6e4ff}.progress-item-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.member-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:120px;margin-right:50px}.member-name[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#262626}.member-hint[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c}.progress-item-header[_ngcontent-%COMP%] nz-progress[_ngcontent-%COMP%]{flex:1;margin-left:12px}.progress-item-footer[_ngcontent-%COMP%]{margin-top:8px;display:flex;justify-content:space-between;align-items:center}.progress-item-footer[_ngcontent-%COMP%] .note-row[_ngcontent-%COMP%]{font-size:12px;color:#595959}.progress-item-footer[_ngcontent-%COMP%] .note-label[_ngcontent-%COMP%]{color:#8c8c8c}.progress-item-footer[_ngcontent-%COMP%] .note[_ngcontent-%COMP%]{margin-left:4px}.progress-item-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:8px}.progress-item-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:6px}.empty[_ngcontent-%COMP%]{text-align:center;color:#bfbfbf;padding:24px 0}"]})};var vr=(i,t)=>t.id;function Cr(i,t){if(i&1&&g(0,"nz-alert",14),i&2){let e=u().$implicit;p("nzMessage","\u963B\u585E\u539F\u56E0\uFF1A"+e.snapshot.blockerReason)}}function br(i,t){if(i&1&&(a(0,"div",2)(1,"div",3)(2,"div")(3,"div",4),d(4),o(),a(5,"div",5),d(6),k(7,"date"),o()(),a(8,"div",6)(9,"nz-tag",7),d(10),o(),a(11,"nz-tag",8),d(12),o()()(),a(13,"div",9)(14,"div",10)(15,"div",11),d(16,"\u64CD\u4F5C\u4EBA"),o(),a(17,"div",12),d(18),o()(),a(19,"div",10)(20,"div",11),d(21,"\u9A8C\u8BC1\u4EBA"),o(),a(22,"div",12),d(23),o()(),a(24,"div",13)(25,"div",11),d(26,"\u6267\u884C\u4EBA"),o(),a(27,"div",12),d(28),o()(),a(29,"div",10)(30,"div",11),d(31,"\u8BA1\u5212\u5468\u671F"),o(),a(32,"div",12),d(33),o()(),a(34,"div",10)(35,"div",11),d(36,"\u5B9E\u9645\u5468\u671F"),o(),a(37,"div",12),d(38),o()()(),M(39,Cr,1,1,"nz-alert",14),o()),i&2){let e=t.$implicit,n=u();s(4),v(e.fromStageName),s(2),v(F(7,11,e.createdAt,"MM:dd HH:mm")),s(3),p("nzColor",n.statusColor(e.snapshot.status)),s(),b(" ",n.statusLabel(e.snapshot.status)," "),s(2),b(" \u8FDB\u5EA6 ",n.clampProgress(e.snapshot.progress),"% "),s(6),b(" ",e.operatorName||e.operatorId||"\u7CFB\u7EDF"," "),s(5),b(" ",e.snapshot.verifierName||"\u672A\u6307\u5B9A"," "),s(5),b(" ",e.snapshot.memberNames.length?e.snapshot.memberNames.join("\u3001"):"\u672A\u6307\u5B9A"," "),s(5),b(" ",n.formatDateRange(e.snapshot.planStartAt,e.snapshot.planEndAt)," "),s(5),b(" ",n.formatDateRange(e.snapshot.actualStartAt,e.snapshot.actualEndAt)," "),s(),x(e.snapshot.blockerReason?39:-1)}}var Rt=class i{entries=c([]);parsedEntries=y(()=>this.entries().map(t=>ge(V({},t),{snapshot:this.parseSnapshot(t.snapshotJson)})));statusLabel(t){return X[t]??t}statusColor(t){return ue[t]??t}clampProgress(t){let e=Number.isFinite(t)?t:0;return Math.max(0,Math.min(100,Math.round(e)))}formatDateRange(t,e){return`${this.formatDate(t)} ~ ${this.formatDate(e)}`}formatDate(t){return t?new Intl.DateTimeFormat("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date(t)):"-"}parseSnapshot(t){try{let e=JSON.parse(t);return{stageId:e.stageId??null,stageName:e.stageName??"-",status:e.status??"todo",progress:e.progress??0,assigneeId:e.assigneeId??null,assigneeName:e.assigneeName??null,verifierId:e.verifierId??null,verifierName:e.verifierName??null,memberIds:e.memberIds??[],memberNames:e.memberNames??[],planStartAt:e.planStartAt??null,planEndAt:e.planEndAt??null,actualStartAt:e.actualStartAt??null,actualEndAt:e.actualEndAt??null,blockerReason:e.blockerReason??null}}catch{return{stageId:null,stageName:"-",status:"todo",progress:0,assigneeId:null,assigneeName:null,verifierId:null,verifierName:null,memberIds:[],memberNames:[],planStartAt:null,planEndAt:null,actualStartAt:null,actualEndAt:null,blockerReason:null}}}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-stage-history"]],inputs:{entries:[1,"entries"]},decls:4,vars:1,consts:[["title","\u7814\u53D1\u9636\u6BB5\u5386\u53F2","emptyText","\u6682\u65E0\u7814\u53D1\u9636\u6BB5\u5386\u53F2",3,"emptyStatus"],[1,"history-list"],[1,"history-item"],[1,"history-header"],[1,"title"],[1,"time"],[1,"tags"],[3,"nzColor"],["nzColor","blue"],[1,"meta-grid"],[1,"meta-item"],[1,"label"],[1,"value"],[1,"meta-item","full"],["nzType","warning","nzShowIcon","",1,"mt",3,"nzMessage"]],template:function(e,n){e&1&&(a(0,"app-detail-item-card",0)(1,"div",1),D(2,br,40,14,"div",2,vr),o()()),e&2&&(p("emptyStatus",n.parsedEntries().length===0),s(2),w(n.parsedEntries()))},dependencies:[Q,H,K,gt,ut,N,W],styles:['.history-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.history-item[_ngcontent-%COMP%]{position:relative;border:1px solid #f0f0f0;border-radius:10px;padding:12px;background:#fff}.history-item[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:#1890ff}.history-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#262626}.time[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c;margin-top:2px}.tags[_ngcontent-%COMP%]{display:flex;gap:8px}.meta-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.meta-item[_ngcontent-%COMP%]{background:#fafafa;border-radius:8px;padding:8px 10px}.meta-item.full[_ngcontent-%COMP%]{grid-column:1 / -1}.label[_ngcontent-%COMP%]{font-size:11px;color:#8c8c8c}.value[_ngcontent-%COMP%]{font-size:13px;color:#262626;font-weight:500;margin-top:2px}.mt[_ngcontent-%COMP%]{margin-top:10px}@media (max-width: 768px){.meta-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}']})};function zr(i,t){if(i&1&&(a(0,"nz-descriptions",2)(1,"nz-descriptions-item",4),d(2),o(),a(3,"nz-descriptions-item",5),d(4),o(),a(5,"nz-descriptions-item",6),d(6),o(),a(7,"nz-descriptions-item",7)(8,"nz-tag",8),d(9),o()(),a(10,"nz-descriptions-item",9)(11,"nz-tag",8),d(12),o()(),a(13,"nz-descriptions-item",10),d(14),o(),a(15,"nz-descriptions-item",11),d(16),o()()),i&2){let e=t,n=u();p("nzColumn",1),s(2),b(" ",e.creatorName," "),s(2),b(" ",n.memberNames()," "),s(2),b(" ",e.creatorName," "),s(2),p("nzColor",n.getStatusColor(e.status)),s(),b(" ",n.getStatusLabel(e.status)," "),s(2),p("nzColor",n.getPriorityColor(e.priority)),s(),b(" ",n.getPriorityLabel(e.priority)," "),s(2),b(" ",n.getStagesName(e.stageId)," "),s(2),b(" ",e.progress," % ")}}function Ir(i,t){if(i&1&&(a(0,"div",12)(1,"div",13)(2,"div",14),d(3,"\u8BA1\u5212\u5F00\u59CB"),o(),a(4,"div",15),d(5),k(6,"date"),o()(),a(7,"div",13)(8,"div",14),d(9,"\u8BA1\u5212\u7ED3\u675F"),o(),a(10,"div",15),d(11),k(12,"date"),o()(),a(13,"div",13)(14,"div",14),d(15,"\u5B9E\u9645\u5F00\u59CB"),o(),a(16,"div",15),d(17),k(18,"date"),o()(),a(19,"div",13)(20,"div",14),d(21,"\u5B9E\u9645\u7ED3\u675F"),o(),a(22,"div",15),d(23),k(24,"date"),o()(),a(25,"div",13)(26,"div",14),d(27,"\u8BA1\u5212\u5DE5\u671F"),o(),a(28,"div",15),d(29),o()(),a(30,"div",13)(31,"div",14),d(32,"\u5B9E\u9645\u5DE5\u671F"),o(),a(33,"div",15),d(34),o()(),a(35,"div",13)(36,"div",14),d(37,"\u5F53\u524D\u9636\u6BB5\u5DE5\u671F"),o(),a(38,"div",15),d(39),o()(),a(40,"div",16)(41,"div",14),d(42,"\u521B\u5EFA\u65F6\u95F4"),o(),a(43,"div",15),d(44),k(45,"date"),o()()(),a(46,"div",17),d(47),o()),i&2){let e=t,n=u();s(5),v(F(6,10,e.planStartAt,"yyyy-MM-dd")||"\u672A\u8BBE\u7F6E"),s(6),v(F(12,13,e.planEndAt,"yyyy-MM-dd")||"\u672A\u8BBE\u7F6E"),s(6),v(F(18,16,e.actualStartAt,"yyyy-MM-dd")||"-"),s(6),v(F(24,19,e.actualEndAt,"yyyy-MM-dd")||"-"),s(6),v(n.getPlannedDuration()),s(5),v(n.getActualDuration()),s(5),v(n.getCurrentStageDuration()),s(5),v(F(45,22,e.createdAt,"yyyy-MM-dd HH:mm")),s(3),gn("\u65F6\u95F4\u72B6\u6001\uFF1A",n.getTimeStatus(),"\u3002",n.getTimeStatusHint())}}var Dt=class i{rdItem=c.required();stages=c([]);stageHistory=c([]);members=c([]);memberNames=y(()=>this.rdItem().memberIds.length<=0||this.members().length<=0?this.rdItem().assigneeName:this.rdItem().memberIds.map(t=>this.members().find(n=>n.userId===t)?.displayName).join("\uFF0C"));getStatusLabel(t){return X[t]}getStatusColor(t){return ue[t]}getPriorityLabel(t){return De[t]}getPriorityColor(t){return we[t]}getStagesName(t){return t?this.stages().find(n=>n.id===t)?.name??"":""}getPlannedDuration(){let t=this.rdItem().planStartAt,e=this.rdItem().planEndAt;return!t||!e?"-":this.formatDuration(this.diffDurationDays(t,e))}getActualDuration(){let t=this.rdItem(),e=this.stageHistory().map(l=>this.parseSnapshot(l.snapshotJson)).reduce((l,m)=>!m?.actualStartAt||!m.actualEndAt?l:l+this.diffDurationDays(m.actualStartAt,m.actualEndAt),0),n=this.getCurrentStageDurationDays(t),r=e+n;return r<=0?"-":this.formatDuration(r)}getCurrentStageDuration(){let t=this.getCurrentStageDurationDays(this.rdItem());return t<=0?"-":this.formatDuration(t)}getTimeStatus(){let t=this.rdItem();if(!t.actualStartAt)return"\u672A\u5F00\u59CB";if(t.status!=="done"&&t.status!=="accepted"&&t.status!=="closed")return"\u8FDB\u884C\u4E2D";if(!t.actualEndAt||!t.planEndAt)return"\u5DF2\u5B8C\u6210";let e=new Date(t.actualEndAt),n=new Date(t.planEndAt),r=Math.round((n.getTime()-e.getTime())/(1e3*60*60*24)*2)/2;return r>0?`\u63D0\u524D ${this.formatDuration(r)}`:r===0?"\u6309\u65F6\u5B8C\u6210":`\u5EF6\u671F ${this.formatDuration(Math.abs(r))}`}getTimeStatusHint(){let t=this.getTimeStatus();return t==="\u672A\u5F00\u59CB"?"\u5F00\u59CB\u540E\u5C06\u81EA\u52A8\u7EDF\u8BA1\u5B9E\u9645\u5DE5\u671F\u3002":t==="\u8FDB\u884C\u4E2D"?"\u5B8C\u6210\u540E\u81EA\u52A8\u8BA1\u7B97\u201C\u63D0\u524D / \u6309\u65F6 / \u5EF6\u671F\u201D\u3002":"\u65F6\u95F4\u7EDF\u8BA1\u5DF2\u6309\u8BA1\u5212\u4E0E\u5B9E\u9645\u7ED3\u675F\u65F6\u95F4\u81EA\u52A8\u8BA1\u7B97\u3002"}parseSnapshot(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}getCurrentStageDurationDays(t){if(!t.actualStartAt)return 0;let e=t.actualEndAt??(t.status==="done"||t.status==="accepted"||t.status==="closed"?t.updatedAt:new Date().toISOString());return this.diffDurationDays(t.actualStartAt,e)}formatDuration(t){let e=Math.round(Math.max(0,t)*2)/2;return e<=0?"-":`${Number.isInteger(e)?e.toFixed(0):e.toFixed(1)} \u5929`}parseDateTime(t,e){if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let n=e==="start"?"T00:00:00.000":"T23:59:59.999";return new Date(`${t}${n}`)}return new Date(t)}diffDurationDays(t,e){let n=this.parseDateTime(t,"start"),r=this.parseDateTime(e,"end");if(Number.isNaN(n.getTime())||Number.isNaN(r.getTime()))return 0;let l=Math.max(0,r.getTime()-n.getTime()),m=l/(1e3*60*60*24),C=Math.round(m*2)/2;return l>0&&C===0||l===0?.5:C}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-base-info"]],inputs:{rdItem:[1,"rdItem"],stages:[1,"stages"],stageHistory:[1,"stageHistory"],members:[1,"members"]},decls:5,vars:2,consts:[[1,"base-info-container"],["title","\u57FA\u7840\u4FE1\u606F"],["nzBordered","","nzSize","small",3,"nzColumn"],["title","\u65F6\u95F4\u4FE1\u606F"],["nzTitle","\u521B\u5EFA\u4EBA"],["nzTitle","\u6267\u884C\u4EBA"],["nzTitle","\u9A8C\u6536\u4EBA"],["nzTitle","\u72B6\u6001"],[3,"nzColor"],["nzTitle","\u4F18\u5148\u7EA7"],["nzTitle","\u9636\u6BB5"],["nzTitle","\u8FDB\u5EA6"],[1,"time-grid"],[1,"time-item"],[1,"label"],[1,"value"],[1,"time-item","full"],[1,"time-status"]],template:function(e,n){if(e&1&&(a(0,"div",0)(1,"app-detail-item-card",1),M(2,zr,17,10,"nz-descriptions",2),o(),a(3,"app-detail-item-card",3),M(4,Ir,48,25),o()()),e&2){let r,l;s(2),x((r=n.rdItem())?2:-1,r),s(2),x((l=n.rdItem())?4:-1,l)}},dependencies:[ft,ci,pi,Q,H,K,N,W],styles:[".base-info-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.time-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.time-item[_ngcontent-%COMP%]{background:#f5f7fa;border-radius:8px;padding:12px}.time-item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c;margin-bottom:4px}.time-item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#262626}.time-item.full[_ngcontent-%COMP%]{grid-column:span 2}.time-status[_ngcontent-%COMP%]{margin-top:12px;padding:10px 12px;border-radius:6px;background:#fff7e6;color:#d46b08;border:1px solid #ffd591;font-size:13px}"]})};var Mr=(i,t)=>t.id;function xr(i,t){if(i&1&&(a(0,"nz-timeline-item")(1,"div",1)(2,"div",2)(3,"span",3),d(4),o(),a(5,"span",4),d(6),o(),a(7,"span",5),d(8),k(9,"date"),o()()()()),i&2){let e=t.$implicit;s(4),v(e.operatorName||"\u7CFB\u7EDF"),s(2),v(e.content||e.actionType),s(2),v(F(9,3,e.createdAt,"MM/dd HH:mm"))}}var wt=class i{logs=c([]);static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-logs-area"]],inputs:{logs:[1,"logs"]},decls:4,vars:2,consts:[["title","\u7814\u53D1\u52A8\u6001","maxHeight","600px",3,"emptyStatus","emptyText"],[1,"rd-log-item"],[1,"meta"],[1,"operator"],[1,"content"],[1,"time"]],template:function(e,n){e&1&&(a(0,"app-detail-item-card",0)(1,"nz-timeline"),D(2,xr,10,6,"nz-timeline-item",null,Mr),o()()),e&2&&(p("emptyStatus",n.logs().length===0)("emptyText","\u6682\u65E0\u52A8\u6001"),s(2),w(n.logs()))},dependencies:[Q,ht,ui,gi,N,W],styles:[".rd-log-item[_ngcontent-%COMP%]{padding:4px 0 0}.rd-log-item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.875rem;color:#000000a6;font-size:1rem;margin-bottom:4px}.rd-log-item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .operator[_ngcontent-%COMP%]{font-weight:700;white-space:nowrap;flex-shrink:0}.rd-log-item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{color:#000000d9;font-size:.875rem}.rd-log-item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{margin-right:15px;font-size:.875rem;font-weight:300;color:#bbb;margin-left:auto;white-space:nowrap;flex-shrink:0}"]})};var Sr=(i,t)=>t.id;function Pr(i,t){i&1&&(a(0,"div",3),d(1,"\u6682\u65E0\u7814\u53D1\u9879\u63CF\u8FF0"),o())}function Rr(i,t){if(i&1&&(a(0,"div",4)(1,"div",5),d(2),o(),a(3,"div",6),d(4),o()()),i&2){let e=t.$implicit;s(2),v(e.label),s(2),v(e.content)}}var Et=class i{rdItem=c.required();projectId=c.required();logs=c([]);mdContent=y(()=>{let t=this.rdItem();return t?vi(t.description||"",this.projectId(),t.id,"rd-items"):""});detailNotes=y(()=>{let t=[...this.logs()].reverse(),e=[];for(let n of t){let r=n.content?.trim()||"";if(r){if(n.actionType==="advance_stage"){let m=r.match(/(?:^|;)\s*说明[::]\s*(.+)$/)?.[1]?.trim();if(!m)continue;let R=r.match(/推进阶段[::]\s*.+?\s*->\s*([^;]+)/)?.[1]?.trim()||"\u8BE5";e.push({id:`advance-${n.id}`,label:`${R}\u9636\u6BB5\u63CF\u8FF0`,content:m});continue}if(n.actionType==="close"){let m=r.match(/关闭研发项[::]\s*(.+)$/)?.[1]?.trim();if(!m)continue;e.push({id:`close-${n.id}`,label:"\u5173\u95ED\u539F\u56E0",content:m})}}}return e});static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-description-area"]],inputs:{rdItem:[1,"rdItem"],projectId:[1,"projectId"],logs:[1,"logs"]},decls:6,vars:6,consts:[[3,"title"],[1,"description-container"],[3,"content","showToc","tocVariant","tocCollapsedByDefault"],[1,"empty"],[1,"note"],[1,"note-label"],[1,"note-content"]],template:function(e,n){e&1&&(a(0,"app-detail-item-card",0)(1,"div",1),g(2,"app-markdown-viewer",2),M(3,Pr,2,0,"div",3),o(),D(4,Rr,5,2,"div",4,Sr),o()),e&2&&(p("title","\u7814\u53D1\u9879\u63CF\u8FF0"),s(2),p("content",n.mdContent())("showToc",!0)("tocVariant","floating")("tocCollapsedByDefault",!0),s(),x(n.mdContent()?-1:3),s(),w(n.detailNotes()))},dependencies:[_i,Q],styles:[".description-container[_ngcontent-%COMP%]{margin-bottom:10px;max-height:500px;overflow-y:auto}.description-container[_ngcontent-%COMP%] .empty[_ngcontent-%COMP%]{width:100%;text-align:center;font-size:.875rem;color:gray}.note[_ngcontent-%COMP%]{padding:1rem 0;border-top:1px solid #ebedf0}.note[_ngcontent-%COMP%] .note-label[_ngcontent-%COMP%]{margin-bottom:4px;font-size:.8rem;font-weight:700;color:gray}.note[_ngcontent-%COMP%] .note-content[_ngcontent-%COMP%]{font-size:.8rem;text-indent:.8rem}"]})};function Dr(i,t){i&1&&(a(0,"span",5),d(1),o()),i&2&&(s(),v(t))}function wr(i,t){if(i&1&&(a(0,"div",3)(1,"div",4),M(2,Dr,2,1,"span",5),a(3,"strong"),d(4),o()()()),i&2){let e,n=u();s(2),x((e=n.subtitleText())?2:-1,e),s(2),v(n.titleText())}}function Er(i,t){i&1&&g(0,"nz-spin",6)}function Tr(i,t){if(i&1){let e=E();a(0,"div",7)(1,"div",8)(2,"app-rd-flow-area",9),_("actionClick",function(r){f(e);let l=u(2);return h(l.actionClick.emit(r))})("deleteClick",function(){f(e);let r=u(2);return h(r.deleteClick.emit())}),o(),a(3,"app-rd-progress-area",10),_("updateProgressClick",function(r){f(e);let l=u(2);return h(l.updateProgressClick.emit(r))}),o(),g(4,"app-rd-description-area",11)(5,"app-rd-logs-area",12)(6,"app-rd-stage-history",13),o(),a(7,"div",14),g(8,"app-rd-base-info",15),o()()}if(i&2){let e=t,n=u(2);s(2),p("item",e)("members",n.members())("stages",n.stages())("busy",n.busy()),s(),p("item",e)("progressList",n.progressList())("members",n.members()),s(),p("projectId",n.projectId())("rdItem",e)("logs",n.logs()),s(),p("logs",n.logs()),s(),p("entries",n.stageHistory()),s(2),p("rdItem",e)("stages",n.stages())("stageHistory",n.stageHistory())("members",n.members())}}function Nr(i,t){if(i&1&&M(0,Er,1,0,"nz-spin",6)(1,Tr,9,16,"div",7),i&2){let e,n=u();x(n.loading()&&!n.rdItem()?0:(e=n.rdItem())?1:-1,e)}}var Tt=class i{rdItem=c();loading=c(!1);open=c(!1);busy=c(!1);logs=c([]);members=c([]);stages=c([]);progressList=c([]);stageHistory=c([]);projectId=c("");close=P();actionClick=P();updateProgressClick=P();deleteClick=P();subtitleText=y(()=>this.rdItem()?.rdNo||"");titleText=y(()=>this.rdItem()?.title||"\u7814\u53D1\u9879\u8BE6\u60C5");closeDetaile(){this.close.emit()}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-detail"]],inputs:{rdItem:[1,"rdItem"],loading:[1,"loading"],open:[1,"open"],busy:[1,"busy"],logs:[1,"logs"],members:[1,"members"],stages:[1,"stages"],progressList:[1,"progressList"],stageHistory:[1,"stageHistory"],projectId:[1,"projectId"]},outputs:{close:"close",actionClick:"actionClick",updateProgressClick:"updateProgressClick",deleteClick:"deleteClick"},decls:4,vars:7,consts:[["drawerTitleTpl",""],[3,"nzOnClose","nzVisible","nzClosable","nzMaskClosable","nzWidth","nzWrapClassName","nzMask","nzTitle"],["nzDrawerContent",""],[1,"title-wrap"],[1,"title-main"],[1,"subtitle"],["nzSize","large","nzTip","\u6B63\u5728\u52A0\u8F7D\u7814\u53D1\u9879....",1,"loading"],[1,"detail-wrap"],[1,"left-column"],[3,"actionClick","deleteClick","item","members","stages","busy"],[3,"updateProgressClick","item","progressList","members"],[3,"projectId","rdItem","logs"],[3,"logs"],[3,"entries"],[1,"right-column"],[3,"rdItem","stages","stageHistory","members"]],template:function(e,n){if(e&1){let r=E();a(0,"nz-drawer",1),_("nzOnClose",function(){return f(r),h(n.closeDetaile())}),A(1,wr,5,2,"ng-template",null,0,q)(3,Nr,2,1,"ng-template",2),o()}if(e&2){let r=U(2);p("nzVisible",n.open())("nzClosable",!0)("nzMaskClosable",!0)("nzWidth",900)("nzWrapClassName","rd-detail-drawer")("nzMask",!1)("nzTitle",r)}},dependencies:[Tn,En,wn,Y,ze,ft,ht,N,J,ot,L,xt,Et,wt,Dt,Pt,Kn,Jn,Rt],styles:[".ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{min-width:75px}.loading[_ngcontent-%COMP%]{margin-top:40%}.title-wrap[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.title-wrap[_ngcontent-%COMP%] .subtitle[_ngcontent-%COMP%]{margin-right:1rem;font-size:12px;line-height:1.4;padding:3px 8px;border-radius:4px;white-space:nowrap;background:#fafafa;color:#64748b}.wrap-title[_ngcontent-%COMP%]{width:100%;margin-bottom:12px;font-size:18px;font-weight:700;border-bottom:1px solid #bbbbbb}.detail-wrap[_ngcontent-%COMP%]{display:flex;align-items:start;gap:1rem}.detail-wrap[_ngcontent-%COMP%] .left-column[_ngcontent-%COMP%]{width:65%;display:flex;flex-direction:column;gap:1rem}.detail-wrap[_ngcontent-%COMP%] .right-column[_ngcontent-%COMP%]{width:35%;display:flex;flex-direction:column;gap:1rem}.detail-wrap[_ngcontent-%COMP%] .edit-bar[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:end}.detail-wrap[_ngcontent-%COMP%] .edit-bar[_ngcontent-%COMP%] .edit-btn[_ngcontent-%COMP%]{margin-top:10px}.detail-wrap[_ngcontent-%COMP%] .edit-area[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px} .ant-descriptions-item-content, .ant-descriptions-item-label{font-size:.875rem}"]})};var Or=(i,t)=>t.id,Ri=(i,t)=>t.value;function Ar(i,t){if(i&1&&g(0,"nz-option",11),i&2){let e=t.$implicit;p("nzLabel",e.name)("nzValue",e.id)("nzDisabled",!e.enabled)}}function kr(i,t){i&1&&g(0,"nz-icon",20)}function Fr(i,t){if(i&1&&g(0,"nz-option",21),i&2){let e=u().$implicit;p("nzLabel",e.label)("nzValue",e.value)}}function Br(i,t){if(i&1&&M(0,Fr,1,2,"nz-option",21),i&2){let e=t.$implicit;x(e.value!==""?0:-1)}}function Vr(i,t){i&1&&g(0,"nz-icon",22)}function jr(i,t){if(i&1&&g(0,"nz-option",21),i&2){let e=u().$implicit;p("nzLabel",e.label)("nzValue",e.value)}}function Lr(i,t){if(i&1&&M(0,jr,1,2,"nz-option",21),i&2){let e=t.$implicit;x(e.value!==""?0:-1)}}function Hr(i,t){i&1&&g(0,"nz-icon",23)}var Nt=class i{fb=S(et);statusOptions=yt;priorityOptions=yi;query=c.required();stages=c([]);viewType=_n();valueChange=P();openCreateDialog=P();constructor(){this.form.valueChanges.pipe(an(500)).subscribe(t=>{this.valueChange.emit(t)})}ngOnInit(){this.form.patchValue(this.query(),{emitEvent:!1})}form=this.fb.group({keyword:this.fb.control(""),stageIds:this.fb.control([]),status:this.fb.control([]),priority:this.fb.control([])});static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-filter-bar"]],inputs:{query:[1,"query"],stages:[1,"stages"],viewType:[1,"viewType"]},outputs:{viewType:"viewTypeChange",valueChange:"valueChange",openCreateDialog:"openCreateDialog"},decls:35,vars:8,consts:[["stageIconTpl",""],["statusIconTpl",""],["priorityIconTpl",""],[1,"toolbar"],["nz-form","",1,"search-form",3,"formGroup"],[1,"search-row"],[1,"search-box"],["nzInputPrefix","","nzType","search","nzTheme","outline"],["nz-input","","type","text","formControlName","keyword","placeholder","\u641C\u7D22 RD \u7F16\u53F7\u3001\u6807\u9898\u6216\u63CF\u8FF0"],[1,"form-item"],["formControlName","stageIds","nzPlaceHolder","\u9009\u62E9\u9636\u6BB5","nzMode","multiple","nzAllowClear","",3,"nzPrefix","nzMaxTagCount"],[3,"nzLabel","nzValue","nzDisabled"],["formControlName","status","nzPlaceHolder","\u9009\u62E9\u72B6\u6001","nzMode","multiple","nzAllowClear","",3,"nzPrefix","nzMaxTagCount"],["formControlName","priority","nzPlaceHolder","\u9009\u62E9\u4F18\u5148\u7EA7","nzMode","multiple","nzAllowClear","",3,"nzPrefix","nzMaxTagCount"],[1,"right-col"],[1,"view-type",3,"ngModelChange","ngModel"],["nz-radio-button","","nzValue","list"],["nzType","unordered-list","nzTheme","outline"],["nz-radio-button","","nzValue","board"],["nzType","book","nzTheme","outline"],["nzType","stock","nzTheme","outline"],[3,"nzLabel","nzValue"],["nzType","thunderbolt","nzTheme","outline"],["nzType","tags","nzTheme","outline"]],template:function(e,n){if(e&1){let r=E();a(0,"div",3)(1,"form",4)(2,"div",5)(3,"nz-form-item",6)(4,"nz-form-control")(5,"nz-input-wrapper"),g(6,"nz-icon",7)(7,"input",8),o()()()(),a(8,"nz-form-item",9)(9,"nz-form-control")(10,"nz-select",10),D(11,Ar,1,3,"nz-option",11,Or),o()(),A(13,kr,1,0,"ng-template",null,0,q),o(),a(15,"nz-form-item",9)(16,"nz-form-control")(17,"nz-select",12),D(18,Br,1,1,null,null,Ri),o()(),A(20,Vr,1,0,"ng-template",null,1,q),o(),a(22,"nz-form-item",9)(23,"nz-form-control")(24,"nz-select",13),D(25,Lr,1,1,null,null,Ri),o()(),A(27,Hr,1,0,"ng-template",null,2,q),o()(),a(29,"div",14)(30,"nz-radio-group",15),Qe("ngModelChange",function(m){return f(r),We(n.viewType,m)||(n.viewType=m),h(m)}),a(31,"label",16),g(32,"nz-icon",17),o(),a(33,"label",18),g(34,"nz-icon",19),o()()()()}if(e&2){let r=U(14),l=U(21),m=U(28);s(),p("formGroup",n.form),s(9),p("nzPrefix",r)("nzMaxTagCount",2),s(),w(n.stages()),s(6),p("nzPrefix",l)("nzMaxTagCount",2),s(),w(n.statusOptions),s(6),p("nzPrefix",m)("nzMaxTagCount",2),s(),w(n.priorityOptions),s(5),qe("ngModel",n.viewType)}},dependencies:[ct,On,Nn,di,li,mi,B,de,Pe,at,st,J,Me,jn,Vn,L,Ze,Ie,me,Xe,pe,tt,Fn,Bn,mt,Qn,Wn,Y,he],styles:[".toolbar[_ngcontent-%COMP%]{border:1px solid rgba(0,0,0,.12);border-radius:8px;display:flex;justify-content:space-between;margin-top:16px;padding:16px}.toolbar[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%]{flex:1;margin-right:50px;display:flex;flex-wrap:wrap;gap:10px}.toolbar[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] .form-item[_ngcontent-%COMP%]{width:285px;min-width:285px;margin-bottom:0}.toolbar[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] .search-row[_ngcontent-%COMP%]{width:100%}.toolbar[_ngcontent-%COMP%] .search-form[_ngcontent-%COMP%] .search-row[_ngcontent-%COMP%] .search-box[_ngcontent-%COMP%]{width:380px}.toolbar[_ngcontent-%COMP%] .right-col[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:end;justify-content:end}.toolbar[_ngcontent-%COMP%] .right-col[_ngcontent-%COMP%] .view-type[_ngcontent-%COMP%]{margin-top:auto;display:flex;justify-content:end}"]})};var $r=i=>({"task-card-active":i}),Ur=i=>({"background-color":i}),qr=(i,t)=>t.name;function Wr(i,t){if(i&1&&g(0,"nz-avatar",14),i&2){let e=t.$implicit;p("nzText",e.text)("ngStyle",Ae(2,Ur,e.color))}}var Ot=class i{rdItem=c.required();stages=c([]);projectMembers=c([]);selected=c(!1);projectId=c(null);selectItem=P();rdItemPreview=y(()=>Ct(this.rdItem().description,this.projectId(),this.rdItem().id,"rd-items")||"\u6682\u65E0\u8BE6\u7EC6\u63CF\u8FF0");itemMembersMap=y(()=>{let t=this.rdItem().memberIds||[];return t.length===0&&this.rdItem().assigneeName?new Map([[this.rdItem().assigneeName,this.rdItem().assigneeName]]):t.length===0&&!this.rdItem().assigneeName?new Map:new Map(this.projectMembers().filter(e=>t.includes(e.userId)).map(e=>[e.userId,e.displayName]))});memberAvatarList=y(()=>{let t=this.itemMembersMap(),e=Array.from(t.values());return e.map((n,r)=>({name:n,text:n?.charAt(0)?.toUpperCase()||"?",color:this.generateBlue(r,e.length)}))});generateBlue(t,e){if(e<=1)return"hsl(210, 70%, 55%)";let n=65;return`hsl(210, 70%, ${n-t/(e-1)*(n-35)}%)`}getPriorityColor(t){return we[t]}getPriorityLabel(t){return De[t]}getStatusLabel(t){return X[t]}getStageName(t){let e=this.stages().find(n=>n.id===t);return e?e.name:"-"}getStagesName(t){return t?this.stages().find(n=>n.id===t)?.name??"":""}memberNamesText(t){let e=this.itemMembersMap();return e.size===0?"":Array.from(e.values()).join("\u3001")}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-item-card"]],inputs:{rdItem:[1,"rdItem"],stages:[1,"stages"],projectMembers:[1,"projectMembers"],selected:[1,"selected"],projectId:[1,"projectId"]},outputs:{selectItem:"selectItem"},decls:30,vars:24,consts:[[1,"task-card",3,"click","ngClass"],[1,"priority-left-bar"],[1,"card-content"],[1,"card-header"],[1,"task-id"],[1,"badge-row"],[1,"tag",3,"nzColor"],[1,"task-title"],[1,"des-text"],[3,"lines","enableToggle"],[1,"progress-section"],["nzSize","small",3,"nzPercent"],[1,"meta-row"],[1,"assignee"],[3,"nzText","ngStyle"],[1,"assignee-name"],[1,"due-date"],["nzType","calendar","nzTheme","outline"]],template:function(e,n){e&1&&(a(0,"div",0),_("click",function(){return n.selectItem.emit(n.rdItem())}),g(1,"div",1),a(2,"div",2)(3,"div",3)(4,"span",4),d(5),o(),a(6,"div",5)(7,"nz-tag",6),d(8),o(),a(9,"nz-tag",6),d(10),o()()(),a(11,"div",7),d(12),o(),a(13,"div",8)(14,"app-ellipsis-text",9),d(15),o()(),a(16,"div",10),g(17,"nz-progress",11),o(),a(18,"div",12)(19,"div",13)(20,"nz-avatar-group"),D(21,Wr,1,4,"nz-avatar",14,qr),o(),a(23,"span",15)(24,"app-ellipsis-text",9),d(25),o()()(),a(26,"div",16),g(27,"nz-icon",17),d(28),k(29,"date"),o()()()()),e&2&&(p("ngClass",Ae(22,$r,n.selected())),s(),se("background","#1890ff"),ee("priority-left-bar",n.selected()),s(4),v(n.rdItem().rdNo),s(2),p("nzColor","blue"),s(),v(n.getStageName(n.rdItem().stageId)),s(),p("nzColor",n.getPriorityColor(n.rdItem().priority)),s(),v(n.getPriorityLabel(n.rdItem().priority)),s(2),v(n.rdItem().title),s(2),p("lines",2)("enableToggle",!1),s(),b(" ",n.rdItemPreview().summary," "),s(2),p("nzPercent",n.rdItem().progress),s(4),w(n.memberAvatarList()),s(3),p("lines",1)("enableToggle",!1),s(),b(" ",n.memberNamesText(n.rdItem())," "),s(3),b(" ",F(29,19,n.rdItem().planEndAt,"yyyy-MM-dd")," "))},dependencies:[ce,Re,H,K,vt,_t,hi,Y,he,bt,N,vn,Ge,W],styles:[".task-card[_ngcontent-%COMP%]{width:100%;background:#fff;border-radius:8px;box-shadow:0 2px 18px #41414107,0 0 0 1px #3f3f3f05,0 4px 6px #00000008;transition:all .25s ease;overflow:hidden;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);cursor:pointer}.task-card[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 32px -12px #00000026,0 0 0 1px #00000008}.task-card-active[_ngcontent-%COMP%]{transform:translateY(2px);box-shadow:0 4px 12px -4px #00000026,0 0 0 1px #00000008;border:1px solid #188fff75}.priority-left-bar[_ngcontent-%COMP%]{position:absolute;left:0;top:0;bottom:0;width:4px}.card-content[_ngcontent-%COMP%]{padding:10px}.card-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.task-id[_ngcontent-%COMP%]{font-size:12px;font-weight:500;letter-spacing:.3px;background:#f3f4f8;padding:2px 10px;border-radius:40px;color:#94a3b8;font-family:SF Mono,Fira Code,monospace;background:#f1f5f9;display:inline-block}.task-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600;line-height:1.4;color:#0f172a;letter-spacing:-.2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.des-text[_ngcontent-%COMP%]{font-size:12px;color:#999;margin-top:2px}.progress-section[_ngcontent-%COMP%]{margin-bottom:0}.meta-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.assignee[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.assignee-name[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#1e293b}.due-date[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:6px;background:#f8fafc;padding:4px 10px;border-radius:40px;font-size:12px;color:#334155;font-weight:500}.footer-note[_ngcontent-%COMP%]{font-size:11px;color:#94a3b8;display:flex;justify-content:flex-end;margin-top:8px}@media (max-width: 480px){.demo-grid[_ngcontent-%COMP%]{gap:16px}.task-card[_ngcontent-%COMP%]{width:100%;max-width:380px}}[_nghost-%COMP%] .progress-section{margin:0}"]})};var Ei=(i,t)=>t.id;function Qr(i,t){if(i&1){let e=E();a(0,"app-rd-item-card",4),_("selectItem",function(r){f(e);let l=u(3);return h(l.select(r))}),o()}if(i&2){let e,n=t.$implicit,r=u(3);p("rdItem",n)("stages",r.stages())("selected",((e=r.selectedItem())==null?null:e.id)===n.id)("projectId",r.projectId())("projectMembers",r.members())}}function Gr(i,t){i&1&&g(0,"nz-empty")}function Yr(i,t){if(i&1&&(a(0,"div",5)(1,"span"),d(2),o(),g(3,"nz-badge",6),o()),i&2){let e,n=u().$implicit,r=u(2);s(2),v(r.getStagesName(n.id)),s(),p("nzColor","#eee")("nzCount",((e=r.itemGroupByStages().get(n.id))==null?null:e.length)??0)}}function Jr(i,t){if(i&1&&(a(0,"nz-card",2),D(1,Qr,1,5,"app-rd-item-card",3,Ei,!1,Gr,1,0,"nz-empty"),o(),A(4,Yr,4,3,"ng-template",null,0,q)),i&2){let e=t.$implicit,n=U(5),r=u(2);p("nzTitle",n),s(),w(r.itemGroupByStages().get(e.id))}}function Kr(i,t){if(i&1&&D(0,Jr,6,2,null,null,Ei),i&2){let e=u();w(e.stages())}}var wi={critical:4,high:3,medium:2,low:1},At=class i{rdItems=c([]);stages=c([]);selectedItem=c(null);projectId=c(null);members=c([]);selectItem=P();itemGroupByStages=y(()=>{let t=new Map;for(let e of this.rdItems()){let n=e.stageId;n&&(t.has(n)||t.set(n,[]),t.get(n).push(e))}for(let e of t.values())e.sort((n,r)=>wi[r.priority]-wi[n.priority]);return t});select(t){this.selectItem.emit(t)}getStagesName(t){return t?this.stages().find(n=>n.id===t)?.name??"":""}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-list-board"]],inputs:{rdItems:[1,"rdItems"],stages:[1,"stages"],selectedItem:[1,"selectedItem"],projectId:[1,"projectId"],members:[1,"members"]},outputs:{selectItem:"selectItem"},decls:2,vars:1,consts:[["cardTitleTpl",""],[1,"cards-list"],[1,"items-card",3,"nzTitle"],[3,"rdItem","stages","selected","projectId","projectMembers"],[3,"selectItem","rdItem","stages","selected","projectId","projectMembers"],[1,"card-title"],["nzStandalone","","nzShowZero","",3,"nzColor","nzCount"]],template:function(e,n){e&1&&(a(0,"div",1),M(1,Kr,2,0),o()),e&2&&(s(),x(n.rdItems().length>0?1:-1))},dependencies:[ze,Dn,lt,Un,H,Ot,ot,$n],styles:[".cards-list[_ngcontent-%COMP%]{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.cards-list[_ngcontent-%COMP%] .items-card[_ngcontent-%COMP%]{flex-grow:1;overflow:hidden}.cards-list[_ngcontent-%COMP%] .card-title[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center}.cards-list[_ngcontent-%COMP%] .card-title[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-right:auto}.rd-title[_ngcontent-%COMP%]{color:#1677ff;font-weight:500;cursor:pointer}[_nghost-%COMP%] .ant-card-head{height:48px;padding:0 12px}[_nghost-%COMP%] .ant-card-head-title{padding:10px 0}[_nghost-%COMP%] .ant-card-body{display:flex;flex-direction:column;gap:10px;overflow:auto;padding:0 12px}[_nghost-%COMP%] .ant-card-bordered{border:1px solid #e7e7e7;border-radius:8px}"]})};var Xr=(i,t)=>({width:i,height:t});function Zr(i,t){if(i&1&&(a(0,"div",3),g(1,"img",4),o()),i&2){let e=u();se("left",e.hoveredPreview().left,"px")("top",e.hoveredPreview().top,"px"),s(),p("src",e.hoveredPreview().src,Yt)("alt",e.hoveredPreview().alt)}}var kt=class i{width=c("60px");height=c("60px");src=c(null);alt=c("");previewSrc=c(null);previewAlt=c("");hasError=I(!1);hoveredPreview=I(null);showPreview(t){if(!this.previewSrc()||this.hasError()){this.hoveredPreview.set(null);return}let e=this.calcPosition(t);this.hoveredPreview.set(V({src:this.previewSrc(),alt:this.previewAlt()||this.alt()},e))}movePreview(t){this.hoveredPreview()&&this.showPreview(t)}hidePreview(){this.hoveredPreview.set(null)}markError(){this.hasError.set(!0),this.hoveredPreview.set(null)}calcPosition(t){let l=t.clientX+16,m=t.clientY+16;return l+320>window.innerWidth&&(l=t.clientX-320-16),m+200>window.innerHeight&&(m=window.innerHeight-200-12),{left:l,top:m}}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-image-hover-preview"]],inputs:{width:[1,"width"],height:[1,"height"],src:[1,"src"],alt:[1,"alt"],previewSrc:[1,"previewSrc"],previewAlt:[1,"previewAlt"]},decls:3,vars:9,consts:[[1,"item-img",3,"ngStyle"],[3,"error","mouseenter","mousemove","mouseleave","src","alt"],[1,"preview-float",3,"left","top"],[1,"preview-float"],[3,"src","alt"]],template:function(e,n){e&1&&(a(0,"div",0)(1,"img",1),_("error",function(){return n.markError()})("mouseenter",function(l){return n.showPreview(l)})("mousemove",function(l){return n.movePreview(l)})("mouseleave",function(){return n.hidePreview()})("error",function(){return n.markError()}),o()(),M(2,Zr,2,6,"div",2)),e&2&&(se("display",!n.src()||n.hasError()?"none":"block"),p("ngStyle",yn(6,Xr,n.width(),n.height())),s(),p("src",n.src(),Yt)("alt",n.alt()),s(),x(n.hoveredPreview()?2:-1))},dependencies:[N,Ge],styles:[".item-img[_ngcontent-%COMP%]{flex-shrink:0;margin-left:auto;overflow:hidden;border-radius:8px;border:1px solid #f0f0f0}.item-img[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;object-position:center}.preview-float[_ngcontent-%COMP%]{padding:6px;position:fixed;z-index:1000;pointer-events:none;width:320px;height:200px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 4px 16px #0003}.preview-float[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;max-width:100%;max-height:100%;object-fit:contain}"]})};var eo=(i,t)=>t.id;function to(i,t){if(i&1&&(a(0,"app-ellipsis-text",11)(1,"span",19),d(2),o()()),i&2){let e=t;p("lines",1)("enableToggle",!1),s(),p("nz-tooltip",e),s(),v(e)}}function no(i,t){i&1&&(a(0,"span",17),d(1,"\u672A\u6307\u6D3E"),o())}function io(i,t){if(i&1){let e=E();a(0,"tr",7),_("click",function(){let r=f(e).$implicit,l=u();return h(l.selectItem.emit(r))}),a(1,"td"),d(2),o(),a(3,"td",8)(4,"div",9)(5,"div",10)(6,"app-ellipsis-text",11)(7,"span",12),d(8),o(),a(9,"span",13),d(10),o()(),a(11,"nz-tag",14),d(12),o(),a(13,"nz-tag",14),d(14),o()(),a(15,"div",15)(16,"app-ellipsis-text",11),d(17),o()()(),g(18,"app-image-hover-preview",16),o(),a(19,"td"),d(20),o(),a(21,"td"),d(22),o(),a(23,"td"),M(24,to,3,4,"app-ellipsis-text",11)(25,no,2,0,"span",17),o(),a(26,"td"),g(27,"nz-progress",18),o(),a(28,"td"),d(29),k(30,"date"),o()()}if(i&2){let e,n,r=t.$implicit,l=t.$index,m=u();ee("selected-row",r.id===((e=m.selectedItem())==null?null:e.id)),s(2),v(l+1+m.query().pageSize*(m.query().page-1)),s(4),p("lines",1)("enableToggle",!1),s(2),b("[",r.rdNo,"]"),s(2),b(" ",r.title," "),s(),p("nzColor",m.getStatusColor(r.status)),s(),b(" ",m.getStatusLabel(r.status)," "),s(),p("nzColor",m.getPriorityColor(r.priority)),s(),b(" ",m.getPriorityLabel(r.priority)," "),s(2),p("lines",2)("enableToggle",!1),s(),b(" ",m.previewSummary(r)," "),s(),p("src",m.previewImageUrl(r))("previewSrc",m.previewImageUrl(r)),s(2),v(m.getStagesName(r.stageId)||"-"),s(2),v(r.creatorName||"-"),s(2),x((n=m.memberNamesText(r))?24:25,n),s(3),p("nzPercent",r.progress),s(2),v(F(30,21,r.updatedAt,"MM-dd HH:mm"))}}var Ft=class i{rdItems=c.required();query=c.required();projectId=c(null);selectedItem=c(null);stages=c([]);selectItem=P();members=c([]);previewMap=y(()=>{let t=new Map;for(let e of this.rdItems())t.set(e.id,Ct(e.description,this.projectId(),e.id,"rd-items"));return t});getPriorityColor(t){return we[t]}getPriorityLabel(t){return De[t]}getStatusLabel(t){return X[t]}getStatusColor(t){return ue[t]}getStagesName(t){return t?this.stages().find(n=>n.id===t)?.name??"":""}previewSummary(t){return this.previewMap().get(t.id)?.summary||"\u6682\u65E0\u8BE6\u7EC6\u63CF\u8FF0"}previewImageUrl(t){return this.previewMap().get(t.id)?.imageUrl??null}memberNamesText(t){let e=t.memberIds||[];if(e.length===0&&!t.assigneeName)return"";if(e.length===0&&t.assigneeName)return t.assigneeName;let n=new Map(this.members().map(r=>[r.userId,r.displayName]));return e.map(r=>n.get(r)||r).join("\u3001")}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-list-table"]],inputs:{rdItems:[1,"rdItems"],query:[1,"query"],projectId:[1,"projectId"],selectedItem:[1,"selectedItem"],stages:[1,"stages"],members:[1,"members"]},outputs:{selectItem:"selectItem"},decls:20,vars:5,consts:[[1,"rd-list",3,"nzData","nzFrontPagination","nzShowPagination","nzShowSizeChanger"],["nzWidth","66px"],[3,"nzEllipsis"],["nzWidth","100px"],["nzWidth","140px"],["nzWidth","150px"],[1,"rd-item-row",3,"selected-row"],[1,"rd-item-row",3,"click"],[1,"title-col"],[1,"rd-title-wrap"],[1,"title-text"],[3,"lines","enableToggle"],[1,"rd-no"],[1,"rd-title"],[3,"nzColor"],[1,"des-text"],[3,"src","previewSrc"],[1,"no-member"],["nzSize","small",3,"nzPercent"],[1,"rd-member-text",3,"nz-tooltip"]],template:function(e,n){e&1&&(a(0,"nz-table",0)(1,"thead")(2,"tr")(3,"th",1),d(4,"\u5E8F\u53F7"),o(),a(5,"th",2),d(6,"\u7814\u53D1\u9879"),o(),a(7,"th",3),d(8,"\u9636\u6BB5"),o(),a(9,"th",3),d(10,"\u521B\u5EFA\u4EBA"),o(),a(11,"th",4),d(12,"\u6267\u884C\u4EBA"),o(),a(13,"th",5),d(14,"\u8FDB\u5EA6"),o(),a(15,"th",4),d(16,"\u66F4\u65B0\u65F6\u95F4"),o()()(),a(17,"tbody"),D(18,io,31,24,"tr",6,eo),o()()),e&2&&(p("nzData",n.rdItems())("nzFrontPagination",!1)("nzShowPagination",!1)("nzShowSizeChanger",!0),s(5),p("nzEllipsis",!0),s(13),w(n.rdItems()))},dependencies:[pt,ni,Xn,Zn,ri,ti,ii,ei,B,ce,Re,H,K,nt,xe,N,bt,kt,W],styles:[".title-col[_ngcontent-%COMP%]{display:flex}.title-col[_ngcontent-%COMP%] .rd-title-wrap[_ngcontent-%COMP%]{margin-right:auto}.title-col[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{display:flex;align-items:center}.title-col[_ngcontent-%COMP%] .rd-title[_ngcontent-%COMP%]{margin-right:8px;font-weight:600;font-size:1rem;cursor:pointer}.title-col[_ngcontent-%COMP%] .rd-no[_ngcontent-%COMP%]{font-weight:600;color:#1890ff}.title-col[_ngcontent-%COMP%] .des-text[_ngcontent-%COMP%]{font-size:12px;color:#999;margin-top:2px}.title-col[_ngcontent-%COMP%] .rd-img-wrap[_ngcontent-%COMP%]{width:100px;margin-left:auto}.rd-item-row[_ngcontent-%COMP%]{cursor:pointer}.rd-item-row.selected-row[_ngcontent-%COMP%] > td[_ngcontent-%COMP%]:first-child{border-left:4px solid #91d5ff}.rd-item-row.selected-row[_ngcontent-%COMP%] > td[_ngcontent-%COMP%]{background-color:#e6f7ff}.rd-item-row.selected-row[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%]{background-color:#e6f7ff}"]})};var Bt=class i{apiClient=S(it);projectContext=S(rt);async rdPostReqWithPK(t){let e=this.projectContext.currentProjectId();return this.apiClient.hubRequestWithPersonalToken({projectId:e,method:"POST",path:`/rd-items/${t.rdId}/${t.action}`,payload:t.payload})}async rdDeleteReqWithPK(t){let e=this.projectContext.currentProjectId();return this.apiClient.hubRequestWithPersonalToken({projectId:e,method:"DELETE",path:`/rd-items/${t.rdId}`,payload:t.payload})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=ne({token:i,factory:i.\u0275fac,providedIn:"root"})};var Vt=class i{apiClient=S(it);rdTokenApi=S(Bt);async delete(t,e){return await this.rdTokenApi.rdDeleteReqWithPK({rdId:e,payload:{}})}async close(t,e,n){return await this.rdTokenApi.rdPostReqWithPK({rdId:e,action:"close",payload:{summary:n}})}async accept(t,e){return await this.rdTokenApi.rdPostReqWithPK({rdId:e,action:"accept",payload:{}})}async resolve(t,e,n){return await this.rdTokenApi.rdPostReqWithPK({rdId:e,action:"complete",payload:{summary:n}})}async resume(t,e){return await this.rdTokenApi.rdPostReqWithPK({rdId:e,action:"resume",payload:{}})}async block(t,e,n){return await this.rdTokenApi.rdPostReqWithPK({rdId:e,action:"block",payload:n})}async start(t,e){return await this.rdTokenApi.rdPostReqWithPK({action:"start",rdId:e,payload:{}})}async updateProgress(t,e){return await this.rdTokenApi.rdPostReqWithPK({rdId:t,action:"progress",payload:e})}async advanceStage(t,e){}async update(t,e,n){return await this.rdTokenApi.rdPostReqWithPK({rdId:e,action:"update",payload:V({},n)})}async getRdItemsList(t,e){return await this.apiClient.hubRequestWithPrjId({projectId:t,path:"/rd-items",query:V({},e)})}async getRdItem(t,e){return await this.apiClient.hubRequestWithPrjId({projectId:t,path:`/rd-items/${e}`})}async getRdStages(t){return await this.apiClient.hubRequestWithPrjId({projectId:t,path:"/rd-stages"})}async getRdItemLogs(t,e){return await this.apiClient.hubRequestWithPrjId({projectId:t,path:`/rd-items/${e}/logs`})}async getRdProgress(t,e){return await this.apiClient.hubRequestWithPrjId({projectId:t,path:`/rd-items/${e}/progress`})}async getRdStageHistory(t,e){return await this.apiClient.hubRequestWithPrjId({projectId:t,path:`/rd-items/${e}/stage-history`})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=ne({token:i,factory:i.\u0275fac,providedIn:"root"})};var jt=class i{rdApi=S(Vt);projectContextStore=S(rt);projectId=y(()=>this.projectContextStore.currentProjectId());rdItemsPageListState=I([]);rdItemsCountState=I(0);currentRdItemState=I(null);currentRdLogsState=I([]);currentRdProgressState=I([]);currentRdStageHistoryState=I([]);stagesState=I([]);projectMembersState=this.projectContextStore.currentProjectMembers;queryState=I({page:1,pageSize:10,stageId:"",status:[],type:[],priority:[],assigneeId:"",keyword:""});busyState=I(!1);loadingState=I(!1);currentRdLoadingState=I(!1);query=y(()=>this.queryState());currentRdItem=y(()=>this.currentRdItemState());currentRdLogs=y(()=>this.currentRdLogsState());currentRdProgress=y(()=>this.currentRdProgressState());currentRdStageHistory=y(()=>this.currentRdStageHistoryState());stages=y(()=>this.stagesState());rdItemsCount=y(()=>this.rdItemsCountState());rdItemsPageList=y(()=>this.rdItemsPageListState());projectMembers=y(()=>this.projectMembersState());busy=y(()=>this.busyState());rdItemsLoading=y(()=>this.loadingState());currentRdLoading=y(()=>this.currentRdLoadingState());initialize(){try{let t=this.projectId();if(!t)return;Promise.all([this.loadStages(),this.loadRdItems(),this.projectContextStore.loadProjectMembers(t)])}catch{}}async loadRdItems(){try{let t=this.projectId();if(!t)return;this.loadingState.set(!0);let e=await this.rdApi.getRdItemsList(t,this.query());this.rdItemsPageListState.set(e.items),this.rdItemsCountState.set(e.total),this.loadingState.set(!1)}catch{this.loadingState.set(!1)}}async loadStages(){let t=this.projectId();if(t)try{let e=(await this.rdApi.getRdStages(t)).items;this.stagesState.set(e)}catch{this.stagesState.set([])}}async loadCurrentRdItem(t){let e=this.projectId();if(e){this.currentRdLoadingState.set(!0);try{let n=await this.rdApi.getRdItem(e,t);this.currentRdItemState.set(n);let r=await this.rdApi.getRdItemLogs(e,t);this.currentRdLogsState.set(r.items);let l=await this.rdApi.getRdProgress(e,t),m=await this.rdApi.getRdStageHistory(e,t);this.currentRdProgressState.set(l.items),this.currentRdStageHistoryState.set(m.items),this.currentRdLoadingState.set(!1)}catch{throw this.currentRdLoadingState.set(!1),new Error("load current rd item error")}}}setCurrentRdItem(t){this.currentRdItemState.set(t)}updateQuery(t){this.queryState.update(e=>ge(V(V({},e),t),{page:t.page??e.page??1}))}update(t,e){let n=this.projectId();n&&this.runAction(()=>this.rdApi.update(n,t,e))}start(t){let e=this.projectId();this.runAction(()=>this.rdApi.start(e,t))}block(t,e){this.runAction(()=>this.rdApi.block(this.projectId(),t,e))}resume(t){this.runAction(()=>this.rdApi.resume(this.projectId(),t))}resolve(t){let e=this.projectId();e&&this.runAction(()=>this.rdApi.resolve(e,t))}advanceStage(t,e){}updateProgress(t){let e=this.currentRdItem();e&&this.runAction(()=>this.rdApi.updateProgress(e.id,t))}accept(t){let e=this.projectId();e&&this.runAction(()=>this.rdApi.accept(e,t))}close(t,e){let n=this.projectId();n&&this.runAction(()=>this.rdApi.close(n,t,e))}delete(t){let e=this.projectId();this.busyState.set(!0),qt(this.rdApi.delete(e,t)).subscribe({next:()=>{this.busyState.set(!1);let n=this.rdItemsPageListState();if(!n){this.loadRdItems();return}let r=n.filter(l=>l.id!==t);if(r.length===n.length){this.loadRdItems();return}this.rdItemsCountState.update(l=>l-1),this.rdItemsPageListState.update(l=>r)},error:()=>{this.busyState.set(!1)}})}runAction(t){this.busyState.set(!0),qt(t()).subscribe({next:e=>{this.busyState.set(!1),this.patchOrRefresh(e)},error:()=>{this.busyState.set(!1)}})}patchOrRefresh(t){let e=this.rdItemsPageListState();if(!e){this.loadRdItems();return}let n=e.findIndex(l=>l.id===t.id);if(n<0)return;this.loadCurrentRdItem(t.id);let r=[...e];r[n]=t,this.rdItemsPageListState.set(r)}static \u0275fac=function(e){return new(e||i)};static \u0275prov=ne({token:i,factory:i.\u0275fac,providedIn:"root"})};function ro(i,t){if(i&1&&(a(0,"div")(1,"div",5)(2,"span"),d(3,"\u66F4\u65B0\u6211\u7684\u8FDB\u5EA6"),o(),a(4,"div",6),d(5),o()()()),i&2){let e=u();s(5),b(" ",e.rdItem()?e.rdItem().title:""," ")}}function oo(i,t){i&1&&(a(0,"div",15),g(1,"nz-icon",16),d(2," \u4EC5\u5141\u8BB8\u66F4\u65B0\u81EA\u5DF1\u7684\u8FDB\u5EA6"),o())}function ao(i,t){if(i&1){let e=E();oe(0),a(1,"div",7)(2,"div",8)(3,"div",9),d(4,"\u6210\u5458"),o(),a(5,"div",10),d(6),o()(),a(7,"div",8)(8,"div",9),d(9,"\u8FDB\u5EA6\u503C"),o(),a(10,"nz-slider",11),_("ngModelChange",function(r){f(e);let l=u();return h(l.progressDraft.set(r))}),o(),a(11,"div",12),d(12),o()(),a(13,"div",8)(14,"div",9),d(15,"\u8FDB\u5EA6\u8BF4\u660E\uFF08\u53EF\u9009\uFF09"),o(),a(16,"textarea",13),_("ngModelChange",function(r){f(e);let l=u();return h(l.note.set(r))}),o()(),g(17,"nz-alert",14),A(18,oo,3,0,"ng-template",null,0,q),o(),ae()}if(i&2){let e,n=U(19),r=u();s(6),v(((e=r.progress())==null?null:e.userName)??"_ _"),s(4),p("ngModel",r.progressDraft())("nzMin",0)("nzMax",100),s(2),b("",r.progressDraft(),"%"),s(4),p("ngModel",r.note()),s(),p("nzMessage",n)}}function so(i,t){if(i&1){let e=E();oe(0),a(1,"button",17),_("click",function(){f(e);let r=u();return h(r.cancel.emit())}),d(2,"\u53D6\u6D88"),o(),a(3,"button",18),_("click",function(){f(e);let r=u();return h(r.submitForm())}),d(4," \u4FDD\u5B58\u8FDB\u5EA6 "),o(),ae()}if(i&2){let e=u();s(3),p("nzLoading",e.busy())}}var Lt=class i{open=c(!1);busy=c(!1);progress=c(null);rdItem=c(null);confirm=P();cancel=P();progressDraft=I(0);note=I("");constructor(){le(()=>{this.open()&&(this.progressDraft.set(this.progress()?.progress||0),this.note.set(""))})}submitForm(){this.confirm.emit({progress:this.progressDraft(),note:this.note().trim()})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd-progress-dialog"]],inputs:{open:[1,"open"],busy:[1,"busy"],progress:[1,"progress"],rdItem:[1,"rdItem"]},outputs:{confirm:"confirm",cancel:"cancel"},decls:4,vars:4,consts:[["alertInfoTemplate",""],[3,"nzOnCancel","nzVisible","nzWidth","nzClosable","nzMaskClosable"],[4,"nzModalTitle"],[4,"nzModalContent"],[4,"nzModalFooter"],[1,"modal-title"],[1,"modal-subtitle"],[1,"progress-form"],[1,"field"],[1,"label"],[1,"value"],[3,"ngModelChange","ngModel","nzMin","nzMax"],[1,"progress-value"],["nz-input","","rows","4","placeholder","\u4F8B\u5982\uFF1A\u5B8C\u6210\u4E86\u6838\u5FC3\u6A21\u5757\u5F00\u53D1\uFF0C\u5F85\u8054\u8C03\u6D4B\u8BD5...",3,"ngModelChange","ngModel"],["nzType","info",3,"nzMessage"],[1,"hint"],["nzType","bulb","nzTheme","fill"],["nz-button","",3,"click"],["nz-button","","nzType","primary",3,"click","nzLoading"]],template:function(e,n){e&1&&(a(0,"nz-modal",1),_("nzOnCancel",function(){return n.cancel.emit()}),A(1,ro,6,1,"div",2)(2,ao,20,7,"ng-container",3)(3,so,5,1,"ng-container",4),o()),e&2&&p("nzVisible",n.open())("nzWidth",600)("nzClosable",!0)("nzMaskClosable",!1)},dependencies:[be,Ce,Je,ve,Ke,L,Ie,me,pe,B,_e,de,ye,J,Me,Mt,rn,gt,ut,Y,he],styles:[".modal-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600}.modal-subtitle[_ngcontent-%COMP%]{color:#999;font-size:14px;line-height:20px}.progress-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:20px}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.label[_ngcontent-%COMP%]{font-size:.875rem;color:#8c8c8c}.value[_ngcontent-%COMP%]{font-size:1rem;font-weight:500;color:#262626}.progress-value[_ngcontent-%COMP%]{text-align:center;font-size:28px;font-weight:600;color:#262626;margin-top:8px}textarea[_ngcontent-%COMP%]{border-radius:8px}.hint[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c} .ant-alert-info{border-radius:8px}"]})};var lo=["class","component"];function mo(i,t){if(i&1){let e=E();a(0,"app-rd-list-table",14),_("selectItem",function(r){f(e);let l=u();return h(l.selectItem(r))}),o()}if(i&2){let e=u();p("rdItems",e.pageRdItems())("query",e.query())("selectedItem",e.currentRdItem())("members",e.members())("stages",e.stages())("projectId",e.currentProjectId())}}function po(i,t){if(i&1){let e=E();a(0,"app-rd-list-board",15),_("selectItem",function(r){f(e);let l=u();return h(l.selectItem(r))}),o()}if(i&2){let e=u();p("rdItems",e.pageRdItems())("projectId",e.currentProjectId())("selectedItem",e.currentRdItem())("stages",e.stages())("members",e.members())}}function co(i,t){if(i&1&&d(0),i&2){let e=t.$implicit;b("\u5171 ",e," \u6761\u8BB0\u5F55")}}var Ht=class i{rdStore=S(jt);fb=S(et);router=S(bn);route=S(Cn);userStore=S(Se);viewType=I("list");createDialogOpen=I(!1);detailDrawerOpen=I(!1);blockingItem=I(null);blockOpen=I(!1);drawerPlacement=I("right");advanceStageOpen=I(!1);progressUpdateItem=I(null);progressUpdateOpen=I(!1);currentProjectId=y(()=>this.rdStore.projectId()||"");members=this.rdStore.projectMembers;priorities=["\u4F4E","\u4E2D","\u9AD8"];loading=this.rdStore.rdItemsLoading;currentRdLoading=this.rdStore.currentRdLoading;pageRdItems=this.rdStore.rdItemsPageList;currentRdItem=this.rdStore.currentRdItem;currentRdLogs=this.rdStore.currentRdLogs;currentRdProgress=this.rdStore.currentRdProgress;currentRdStageHistory=this.rdStore.currentRdStageHistory;stages=this.rdStore.stages;total=this.rdStore.rdItemsCount;busy=this.rdStore.busy;query=this.rdStore.query;constructor(){this.rdStore.initialize(),this.route.queryParamMap.subscribe(t=>{let e=t.get("detail");if(e){if(this.currentRdItem()?.id===e||this.currentRdLoading()){this.detailDrawerOpen.set(!0);return}this.rdStore.loadCurrentRdItem(e),this.detailDrawerOpen.set(!0)}}),this.userStore.ensureUserLoaded()}onPageChange(t){this.rdStore.updateQuery({page:t}),this.rdStore.loadRdItems()}onPageSizeChange(t){this.rdStore.updateQuery({pageSize:t}),this.rdStore.loadRdItems()}updateQueryByFilter(t){this.rdStore.updateQuery(t),this.rdStore.loadRdItems()}createRd(t){}openCreateDialog(){this.createDialogOpen.set(!0)}async selectItem(t){this.openDetail(t),this.detailDrawerOpen.set(!0);try{await this.rdStore.loadCurrentRdItem(t.id),this.rdStore.setCurrentRdItem(this.rdStore.currentRdItem()??t)}catch{this.rdStore.setCurrentRdItem(t)}}closeDetail(){this.detailDrawerOpen.set(!1),this.rdStore.setCurrentRdItem(null),this.router.navigate([],{queryParams:{}})}handleSelectedAction(t){let e=this.currentRdItem();e&&this.handleAction(e,t)}deleteSelectedItem(){let t=this.currentRdItem();t&&(this.rdStore.delete(t.id),this.closeDetail())}handleAction(t,e){switch(this.openDetail(t),e){case"start":this.rdStore.start(t.id);break;case"block":this.blockingItem.set(t),this.blockOpen.set(!0);break;case"resume":this.rdStore.resume(t.id);break;case"complete":this.rdStore.resolve(t.id);break;case"advance":this.advanceStageOpen.set(!0);break}}openDetail(t){this.router.navigate([],{relativeTo:this.route,queryParams:{detail:t.id},queryParamsHandling:"merge"})}openProgressUpdate(t){if(this.currentRdItem()?.status!=="closed"){if(t.progress===0){this.confirmProgressUpdate({progress:1,note:""});return}this.progressUpdateItem.set(t),this.progressUpdateOpen.set(!0)}}confirmProgressUpdate(t){this.rdStore.updateProgress(t),this.progressUpdateOpen.set(!1),this.progressUpdateItem.set(null)}confirmBlock(t){let e=this.blockingItem();e&&(this.rdStore.block(e.id,{blockerReason:t}),this.closeBlockDialog())}closeBlockDialog(){this.blockOpen.set(!1),this.blockingItem.set(null)}confirmAdvanceStage(t){let e=this.currentRdItem();!e||!t.trim()||(this.rdStore.advanceStage(e.id,{stageId:t.trim()}),this.advanceStageOpen.set(!1))}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=z({type:i,selectors:[["app-rd",8,"component"]],attrs:lo,decls:15,vars:33,consts:[["totalTemplate",""],[3,"title","loading","isFullscreen","isOverflowYAuto"],[1,"rd-content"],[1,"filter-container"],[3,"viewTypeChange","openCreateDialog","valueChange","query","stages","viewType"],[1,"list-content"],[3,"rdItems","query","selectedItem","members","stages","projectId"],[3,"rdItems","projectId","selectedItem","stages","members"],[1,"pagination-bar"],["nzShowSizeChanger","","nzShowQuickJumper","",3,"nzPageIndexChange","nzPageSizeChange","nzPageIndex","nzTotal","nzShowTotal","nzPageSize"],[3,"actionClick","close","updateProgressClick","deleteClick","open","rdItem","progressList","stageHistory","members","projectId","busy","logs","stages","loading"],[3,"cancel","confirm","open","busy","item"],[3,"cancel","confirm","open","busy","item","stages"],[3,"cancel","confirm","open","busy","rdItem","progress"],[3,"selectItem","rdItems","query","selectedItem","members","stages","projectId"],[3,"selectItem","rdItems","projectId","selectedItem","stages","members"]],template:function(e,n){if(e&1){let r=E();a(0,"app-page-layout",1)(1,"div",2)(2,"div",3)(3,"app-rd-filter-bar",4),Qe("viewTypeChange",function(m){return f(r),We(n.viewType,m)||(n.viewType=m),h(m)}),_("openCreateDialog",function(){return f(r),h(n.openCreateDialog())})("valueChange",function(m){return f(r),h(n.updateQueryByFilter(m))}),o()(),a(4,"div",5),M(5,mo,1,6,"app-rd-list-table",6)(6,po,1,5,"app-rd-list-board",7),a(7,"div",8)(8,"nz-pagination",9),_("nzPageIndexChange",function(m){return f(r),h(n.onPageChange(m))})("nzPageSizeChange",function(m){return f(r),h(n.onPageSizeChange(m))}),o(),A(9,co,1,1,"ng-template",null,0,q),o()()(),a(11,"app-rd-detail",10),_("actionClick",function(m){return f(r),h(n.handleSelectedAction(m))})("close",function(){return f(r),h(n.closeDetail())})("updateProgressClick",function(m){return f(r),h(n.openProgressUpdate(m))})("deleteClick",function(){return f(r),h(n.deleteSelectedItem())}),o(),a(12,"app-rd-block-dialog",11),_("cancel",function(){return f(r),h(n.closeBlockDialog())})("confirm",function(m){return f(r),h(n.confirmBlock(m.blockerReason))}),o(),a(13,"app-rd-advance-stage-dialog",12),_("cancel",function(){return f(r),h(n.advanceStageOpen.set(!1))})("confirm",function(m){return f(r),h(n.confirmAdvanceStage(m.stageId))}),o(),a(14,"app-rd-progress-dialog",13),_("cancel",function(){return f(r),h(n.progressUpdateOpen.set(!1))})("confirm",function(m){return f(r),h(n.confirmProgressUpdate(m))}),o()()}if(e&2){let r=U(10);p("title","\u7814\u53D1\u9879")("loading",n.loading())("isFullscreen",!0)("isOverflowYAuto",!1),s(3),p("query",n.query())("stages",n.stages()),qe("viewType",n.viewType),s(2),x(n.viewType()==="list"?5:6),s(3),p("nzPageIndex",n.query().page)("nzTotal",n.total())("nzShowTotal",r)("nzPageSize",n.query().pageSize),s(3),p("open",n.detailDrawerOpen())("rdItem",n.currentRdItem())("progressList",n.currentRdProgress())("stageHistory",n.currentRdStageHistory())("members",n.members())("projectId",n.currentProjectId())("busy",n.busy())("logs",n.currentRdLogs())("stages",n.stages())("loading",n.currentRdLoading()),s(),p("open",n.blockOpen())("busy",n.busy())("item",n.blockingItem()),s(),p("open",n.advanceStageOpen())("busy",n.busy())("item",n.currentRdItem())("stages",n.stages()),s(),p("open",n.progressUpdateOpen())("busy",n.busy())("rdItem",n.currentRdItem())("progress",n.progressUpdateItem())}},dependencies:[Ln,Pe,pt,B,J,Y,mt,ct,ze,ce,lt,tt,L,Ci,H,Yn,Gn,At,Ft,Tt,It,Lt,zt,Nt],styles:[".rd-content[_ngcontent-%COMP%]{width:100%;min-width:630px;height:100%;display:flex;flex-direction:column;align-items:center;overflow:auto}.rd-content[_ngcontent-%COMP%] .filter-container[_ngcontent-%COMP%]{width:100%;padding:0 48px}.rd-content[_ngcontent-%COMP%] .list-content[_ngcontent-%COMP%]{width:100%;padding:12px 48px 8px;min-height:0;flex-grow:1}.rd-content[_ngcontent-%COMP%] .list-content[_ngcontent-%COMP%] .pagination-bar[_ngcontent-%COMP%]{padding:12px;display:flex;justify-content:end}"]})};var uo=[{path:"",component:Ht}],$t=class i{static \u0275fac=function(e){return new(e||i)};static \u0275mod=re({type:i});static \u0275inj=ie({imports:[N,Kt.forChild(uo),Kt]})};var Ti=class i{static \u0275fac=function(e){return new(e||i)};static \u0275mod=re({type:i});static \u0275inj=ie({imports:[N,$t]})};export{Ti as RdModule};
|