import{d as at,G as U,a7 as rt,s as q,a as F,a8 as it,b as ft,R as ut,v as pt,a9 as mt,aa as dt,r as ht,o as I,c as M,t as W,k as V,f as X,g as gt,h as z,j as St,ab as kt,p as yt,q as vt}from"./CzkkUyHP.js";function J(n,t,e,s){let o=0;for(;o<n.length;o++){const g=(e==null?void 0:e(o))??t[o];if(n[o]!==g||s!=null&&s(o))break}let l=n.length-1,r=t.length-1;for(;l>=0&&r>=0;l--,r--){const g=(e==null?void 0:e(r))??t[r];if(n[l]!==g||s!=null&&s(r))break}return o>l&&([o,l]=[l,o]),o=Math.max(0,o),l=Math.min(n.length-1,l)+1,n.length===t.length&&o+1===l?[o,l]:wt([...n],o,l)}function wt(n,t,e){const s=o(Math.max(0,t+e-n.length));t-=s,e+=s;function o(h){const c=n.slice(0,t).indexOf(n[e],h);if(c===-1)return 0;for(let a=c,i=e;a<t-1;i++,a++)if(n[a+1]!==n[i+1])return o(h+1);return t-c}const l=n.join(`
`),r=n.slice(0,t).join(`
`).length,g=n.slice(0,e).join(`
`).length,b=[];for(let h=t-1,c=g-1;h<e&&c>=r;h--){const a=n[h],i=l.lastIndexOf(a,c);if(i!==-1&&i>=r)b.push(a),c=i-1;else break}const C=[];for(let h=e,c=r;h>=t&&c<g;h++){const a=n[h],i=l.indexOf(a,c);if(i!==-1&&i<g)C.push(a),c=i+1;else break}return[t-b.length,e+C.length]}function Ct(n,t){let e=0,s;return function(...o){s&&(clearTimeout(s),s=void 0);const l=performance.now();!e||l-e>=t?(n.apply(this,o),e=l):s=setTimeout(()=>{n.apply(this,o),e=performance.now(),s=void 0},t+e-l)}}function _t(n){let t=!1;return function(...e){return t?!1:(t=!0,n.apply(this,e),!0)}}function bt(n,t){if(n.length!==t.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==t[e])return!1;return!0}function xt(n){const t=()=>"CSS"in globalThis&&"highlights"in CSS;function e(s,o){const{lang:l,themes:r={light:"min-light",dark:"min-dark"},defaultTheme:g="light",selector:b=v=>`.${v}`,defaultSelector:C=":root",watch:h=!0,delay:c=33.4}=o,a=new CSSStyleSheet;document.adoptedStyleSheets.push(a);const i=new Map,p=[];function N(v,d){for(const{range:S,name:m}of K(d)){const f=CSS.highlights.get(m);f==null||f.delete(S);const u=i.get(m);u==null||u.delete(S)}for(const{range:S,color:m,theme:f,name:u}of K(v)){const k=f===g;let _=CSS.highlights.get(u);_||(CSS.highlights.set(u,_=new Highlight),_.priority=k?0:1);let w=i.get(u);if(!w){i.set(u,w=new Set);const x=`${k?C:b(f)}::highlight(${u}) { color: ${m}; }`;a.insertRule(x)}_.add(S),w.add(S)}}function Y(v,d,S){var E;if(S-d>1||p.length<=d)return;const m=v[d],f=p[d],u=J(m,f.text),k=f.offset+u[0],_=f.offset+u[1],w=(E=f.loads)==null?void 0:E.find(({range:T})=>k>=T.startOffset&&k<T.endOffset);if(!w)return;const{range:x}=w;x.setEnd(x.endContainer,Math.max(x.endOffset,_))}const Z=Ct((v,d,S,m,f)=>{var E,T,A,H,P;const u=f-d.length+p.length,k=p.splice(u);for(let y=m;y<u;y++)N([],((E=p[y])==null?void 0:E.loads)??[]);const _=(T=p.at(-1))==null?void 0:T.lastGrammarState;p.length=f-1,p.fill(null,m,f-1),p.push(Q({lastGrammarState:_}),...k);let w=d.slice(0,m).reduce((y,j)=>y+j.length+1,0);const x=Ot(v,S,w);for(let y=m;y<d.length;y++){const j=d[y],$=n.codeToTokens(j,{lang:l,themes:r,cssVariablePrefix:"",defaultColor:!1,grammarState:(A=p[y-1])==null?void 0:A.lastGrammarState}),R=[];for(const G of $.tokens[0]){const[ot,st]=x(w+G.offset),[lt,ct]=x(w+G.offset+G.content.length),D=document.createRange();D.setStart(ot,st),D.setEnd(lt,ct),R.push({token:G,range:D})}const O=p[y]??(p[y]=Q());N(R,O.loads),O.loads=R,O.text=j,O.offset=w;const tt=((H=O.lastGrammarState)==null?void 0:H.getScopes())??[Number.NaN],et=((P=$.grammarState)==null?void 0:P.getScopes())??[Number.NaN],nt=bt(tt,et);if(O.lastGrammarState=$.grammarState,!nt)w+=j.length+1;else break}},c);t()&&(h&&s.addEventListener("input",B),B());const L=_t(()=>{h&&s.removeEventListener("input",B);const v=document.adoptedStyleSheets.indexOf(a);document.adoptedStyleSheets.splice(v,1);for(const[d,S]of i){const m=CSS.highlights.get(d);for(const f of S)m==null||m.delete(f)}});function B(){const{innerText:v}=s,d=v.split(`
`),S=Nt(s),[m,f]=J(d,p,u=>{var k;return(k=p[u])==null?void 0:k.text},u=>{var k;return(k=p[u])==null?void 0:k.loads.some(({range:_})=>_.collapsed)});Y(d,m,f),Z(v,d,S,m,f)}return{dispose:L,update:B}}return{get isSupported(){return t()},mount:e}}function*K(n){for(const{token:t,range:e}of n)if(typeof t.htmlStyle=="object")for(const s in t.htmlStyle){const o=t.htmlStyle[s],l=`shiki-${s}-${o.slice(1).toLowerCase()}`;yield{range:e,color:o,theme:s,name:l}}}function Nt(n){const t=document.createTreeWalker(n,NodeFilter.SHOW_TEXT),e=[];let s;for(;s=t.nextNode();)e.push(s);return e}function Q(n={}){return{text:"",offset:0,lastGrammarState:void 0,loads:[],...n}}function Ot(n,t,e){let s=0,o=0,l=!1;return e>0&&r(e),r;function r(g){for(;s<t.length;s++){const b=t[s],{textContent:C}=b;if(C)if(l||(o=n.indexOf(C,o),l=!0),o+C.length<g)o+=C.length,l=!1;else break}return[t[s],g-o]}}const Et={class:"command"},Tt={key:0,class:"prompt"},jt=["textContent"],Bt={ref:"copy-btn",class:"operation"},Gt=at({__name:"Copy",props:{noprompt:{type:Boolean},prompt:{},command:{},language:{}},setup(n){const t=n,e=U(()=>t.noprompt?"":t.prompt??"$"),s=U(()=>t.language??rt(e.value)),o=q(t.command),l=q(!1),r=F("command-input"),g=F("copy-btn");it(r,{content:"可以修改命令后再复制",trigger:"focus"}),ft(g,r),ut(o,c=>{l.value=c!==t.command});function b(){var c;r.value.textContent=t.command??"",(c=r.value)==null||c.dispatchEvent(new Event("input")),l.value=!1}function C(c){const{data:a,inputType:i}=c;(a!=null&&a.includes(`
`)||i==="insertLineBreak")&&(c.preventDefault(),kt(c.target,"不支持换行"))}function h(c){o.value=c.target.textContent??""}return pt(async()=>{const c=await mt(),a=await dt({lang:s.value});xt(c).mount(r.value,a)}),(c,a)=>{const i=yt,p=ht("tippy");return I(),M("code",Et,[c.noprompt?X("",!0):(I(),M("span",Tt,W(V(e)),1)),gt("div",{ref:"command-input",contenteditable:"plaintext-only",class:"code scrollcheck-x",onBeforeinput:a[0]||(a[0]=N=>C(N)),onInput:a[1]||(a[1]=N=>h(N)),textContent:W(V(o))},null,40,jt),V(l)?(I(),M("button",{key:1,class:"operation",onClick:b},[z(i,{name:"ph:arrow-u-up-left-bold"})])):X("",!0),St((I(),M("button",Bt,[z(i,{name:"ph:copy-bold"})])),[[p,"复制"]])])}}}),Mt=vt(Gt,[["__scopeId","data-v-8f57006d"]]);export{Mt as default};
