3 lines
6.8 KiB
JavaScript
3 lines
6.8 KiB
JavaScript
import{d as q,w as B,m as a,c as l,f as s,t as n,z as D,s as L,F as r,r as y,n as c,e as m,B as N,k as F,j as V}from"./index.js";import{C as z}from"./CloseButton.js";import{_ as A}from"./_plugin-vue_export-helper.js";const O={class:"versioning-header"},E={class:"versioning-header-left"},T={class:"switch-line"},K=["checked","disabled"],R={class:"switch-text"},j={class:"versioning-header-actions"},I=["disabled"],U={class:"versioning-body"},W={class:"checkpoint-list scroll-area"},G=["onClick"],H={class:"row top"},J={class:"seq"},P={class:"time"},Q={class:"preview"},X={class:"row stats"},Y={class:"plus"},Z={class:"minus"},x={class:"files"},ee={key:0,class:"empty"},se={class:"checkpoint-detail scroll-area"},te={key:0,class:"loading"},oe={class:"summary"},ne={class:"plus"},ie={class:"minus"},ae={class:"files"},le={class:"file-list"},de=["onClick"],re={class:"status"},ce={class:"path"},ue={class:"delta"},ve={class:"plus"},he={class:"minus"},ye={key:0,class:"tool-result-diff scroll-area versioning-diff"},me={key:0,class:"empty"},pe={class:"diff-marker"},ge={class:"diff-content"},$e={key:1,class:"approval-note"},be={key:2,class:"empty"},ke={class:"versioning-footer"},fe={class:"restore-options"},Ce={class:"restore-option-group"},we={class:"restore-option-label"},Se={class:"restore-option-buttons"},_e=["disabled"],Me=["disabled"],qe={class:"restore-option-group"},Be={class:"restore-option-label"},De={class:"restore-option-buttons"},Le=["disabled"],Ne=["disabled"],Fe=["disabled"],Ve=q({__name:"VersioningDialog",props:{hostMode:{type:Boolean},enabled:{type:Boolean},loading:{type:Boolean},items:{},selectedSeq:{},detail:{},detailLoading:{type:Boolean},restoring:{type:Boolean},restoreMode:{},trackingMode:{},iconStyle:{type:Function}},emits:["close","refresh","toggle-enabled","select","confirm","update:restore-mode","update:tracking-mode"],setup(i,{emit:ze}){const v=i,b=e=>v.iconStyle?v.iconStyle(e):{},k=F(()=>[...Array.isArray(v.items)?v.items:[]].sort((o,t)=>Number((o==null?void 0:o.seq)||0)-Number((t==null?void 0:t.seq)||0))),h=V(null),p=(e,o)=>`${(e==null?void 0:e.status)||""}:${(e==null?void 0:e.old_path)||""}:${(e==null?void 0:e.path)||""}:${o}`,f=(e,o)=>{const t=p(e,o);h.value=h.value===t?null:t},g=(e,o)=>h.value===p(e,o);B(()=>{var e;return(e=v.detail)==null?void 0:e.seq},()=>{h.value=null});const C=e=>{if(!e)return"-";try{return new Date(e).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return e}},w=e=>({added:"A",modified:"M",deleted:"D",renamed:"R"})[String(e||"").toLowerCase()]||String(e||"").toUpperCase().slice(0,1),S=e=>e==null?[""]:String(e).split(`
|
|
`);return(e,o)=>(a(),l("div",{class:"versioning-dialog",onClick:o[9]||(o[9]=N(t=>e.$emit("close"),["self"]))},[s("div",{class:"versioning-card",onClick:o[8]||(o[8]=(...t)=>e.closeScopeMenu&&e.closeScopeMenu(...t))},[s("header",O,[s("div",E,[s("h3",null,n(e.$t("common.versioning")),1),s("label",T,[s("input",{type:"checkbox",checked:i.enabled,disabled:i.loading,onChange:o[0]||(o[0]=t=>e.$emit("toggle-enabled",t.target.checked))},null,40,K),o[10]||(o[10]=s("span",{class:"switch"},null,-1)),s("span",R,n(i.enabled?e.$t("overlay.switchOn"):e.$t("overlay.switchOff")),1)])]),s("div",j,[s("button",{type:"button",class:"refresh-btn",disabled:i.loading,onClick:o[1]||(o[1]=t=>e.$emit("refresh"))},[s("span",{class:"icon icon-sm",style:D(b("refreshCw")),"aria-hidden":"true"},null,4),s("span",null,n(e.$t("overlay.refresh")),1)],8,I),L(z,{label:e.$t("common.close"),onClick:o[2]||(o[2]=t=>e.$emit("close"))},null,8,["label"])])]),s("div",U,[s("aside",W,[(a(!0),l(r,null,y(k.value,t=>(a(),l("button",{key:t.seq,type:"button",class:c(["checkpoint-item",{active:Number(i.selectedSeq)===Number(t.seq)}]),onClick:d=>e.$emit("select",t.seq)},[s("div",H,[s("span",J,"#"+n(t.seq),1),s("span",P,n(C(t.timestamp)),1)]),s("div",Q,n(t.message_preview||e.$t("overlay.emptyMessage")),1),s("div",X,[s("span",Y,"+"+n(t.insertions||0),1),s("span",Z,"-"+n(t.deletions||0),1),s("span",x,n(e.$t("overlay.filesCount",{n:t.files_changed||0})),1)])],10,G))),128)),i.items.length?m("",!0):(a(),l("div",ee,n(e.$t("overlay.noCheckpoints")),1))]),s("section",se,[i.detailLoading?(a(),l("div",te,n(e.$t("overlay.loadingDetail")),1)):i.detail?(a(),l(r,{key:1},[s("h4",null,n(e.$t("overlay.detailTitle",{seq:i.detail.seq})),1),s("div",oe,[s("span",ne,"+"+n(i.detail.insertions||0),1),s("span",ie,"-"+n(i.detail.deletions||0),1),s("span",ae,n(e.$t("overlay.filesCount",{n:i.detail.files_changed||0})),1)]),s("div",le,[(a(!0),l(r,null,y(i.detail.files||[],(t,d)=>(a(),l(r,{key:`${t.status}:${t.path}:${d}`},[s("div",{class:c(["file-row",{expanded:g(t,d)}]),onClick:u=>f(t,d)},[s("span",re,n(w(t.status)),1),s("span",ce,n(t.path),1),s("span",ue,[s("span",ve,"+"+n(t.insertions||0),1),s("span",he,"-"+n(t.deletions||0),1)])],10,de),g(t,d)?(a(),l("div",ye,[(t.patch_lines||[]).length?m("",!0):(a(),l("div",me,n(e.$t("overlay.noDiffLines")),1)),(a(!0),l(r,null,y(t.patch_lines||[],(u,$)=>(a(),l(r,{key:`line:${d}:${$}`},[(a(!0),l(r,null,y(S(u.content),(_,M)=>(a(),l("div",{key:`line:${d}:${$}:${M}`,class:c(["diff-line",u.type==="add"?"diff-add":u.type==="remove"?"diff-remove":"diff-context"])},[s("span",pe,n(u.type==="add"?"+":u.type==="remove"?"-":" "),1),s("span",ge,n(_),1)],2))),128))],64))),128)),t.patch_truncated?(a(),l("div",$e,n(e.$t("overlay.diffTruncated")),1)):m("",!0)])):m("",!0)],64))),128))])],64)):(a(),l("div",be,n(e.$t("overlay.selectCheckpoint")),1))])]),s("footer",ke,[s("div",fe,[s("div",Ce,[s("span",we,n(e.$t("overlay.restoreScope")),1),s("div",Se,[s("button",{type:"button",class:c(["restore-option-btn",{active:i.trackingMode==="conversation_only"}]),disabled:i.restoring,onClick:o[3]||(o[3]=t=>e.$emit("update:tracking-mode","conversation_only"))},n(e.$t("overlay.scopeConversationOnly")),11,_e),s("button",{type:"button",class:c(["restore-option-btn",{active:i.trackingMode==="workspace_and_conversation",disabled:!i.hostMode}]),disabled:i.restoring||!i.hostMode,onClick:o[4]||(o[4]=t=>e.$emit("update:tracking-mode","workspace_and_conversation"))},n(e.$t("overlay.scopeWorkspaceAndConversation")),11,Me)])]),s("div",qe,[s("span",Be,n(e.$t("overlay.restoreModeLabel")),1),s("div",De,[s("button",{type:"button",class:c(["restore-option-btn",{active:i.restoreMode==="overwrite"}]),disabled:i.restoring,onClick:o[5]||(o[5]=t=>e.$emit("update:restore-mode","overwrite"))},n(e.$t("overlay.modeOverwrite")),11,Le),s("button",{type:"button",class:c(["restore-option-btn",{active:i.restoreMode==="copy"}]),disabled:i.restoring,onClick:o[6]||(o[6]=t=>e.$emit("update:restore-mode","copy"))},n(e.$t("overlay.modeCopy")),11,Ne)])])]),s("button",{type:"button",class:"confirm-btn",disabled:!i.enabled||i.selectedSeq===null||i.selectedSeq===void 0||i.restoring,onClick:o[7]||(o[7]=t=>e.$emit("confirm"))},n(i.restoring?e.$t("overlay.restoring"):e.$t("overlay.confirmRestore")),9,Fe)])])]))}}),Te=A(Ve,[["__scopeId","data-v-a149e1f9"]]);export{Te as default};
|