@linker-design-plus/tiny-peony 1.4.8 → 1.4.9

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/dist/index.js CHANGED
@@ -29,7 +29,7 @@
29
29
  <span class="${lg("replace-text")}">${B}</span>
30
30
  ${tE}
31
31
  </span>
32
- `),this.editor.content.update(n)}setup(){}destroy(){document.body.removeEventListener("click",this._triggerPronunciationTagClick)}}const iB=["rgba(186, 244, 228, 0.5)","rgba(202, 218, 250, 0.5)","rgba(255, 200, 224, 0.5)","rgba(156, 220, 252, 0.5)","rgba(255, 207, 139, 0.5)","rgba(175, 240, 181, 0.5)","rgba(221, 190, 246, 0.5)","rgba(255, 232, 145, 0.5)","rgba(201, 233, 104, 0.5)","rgba(255, 206, 190, 0.5)"],dg=q.anchor,[Jg]=vg(dg);class iE extends qg{constructor(B){super();IA(this,"editor");IA(this,"observer");IA(this,"resizeObserver");IA(this,"name");IA(this,"prefix");IA(this,"data");this.editor=B,this.observer=null,this.resizeObserver=null,this.name=`tiny-peony-plugin__${dg}-tag`,this.prefix=dg,this.data={}}add(B){if(!this.editor.cursor.isRange()){fA.Message.warning("请先划选配音内容!");return}this._insertOverlapAnchor(B)||this._insertAnchorTag(B.anchor)}remove(B){const{top:n,id:o,uid:s}=B.dataset,a=o.split("_")[1],r=this.data[n].findIndex(D=>D.data.uid?D.data.uid===s:D.id===Number(a));r>-1&&this.data[n].splice(r,1);const w=Array.from(B.childNodes);if(w.every(D=>kA(D))){B.replaceWith(B.textContent),this.editor._editorElement.normalize();return}const d=document.createDocumentFragment();w.forEach(D=>d.appendChild(D)),B.replaceWith(d),this.editor._editorElement.normalize()}_insertOverlapAnchor(B){const{range:n}=this.editor.cursor;if(x(n))return!1;const o=K=>{var P;return Array.prototype.indexOf.call((P=K.parentNode)==null?void 0:P.childNodes,K)},s=K=>{let P=K;for(;P&&!($(P.parentNode)&&P.parentNode.tagName==="P");)P=P.parentNode;return P},a=K=>K.some(P=>$(P)&&P.classList.contains(Jg())),r=()=>{let K,P;const tA=S.length===1;S.forEach((QA,nA)=>{if(nA===0){const aA=()=>{var v,W,z;const EA=(v=getSelection())==null?void 0:v.getRangeAt(0),hA=EA==null?void 0:EA.startContainer,p=EA==null?void 0:EA.endContainer;if(x(EA)||x(p)||x(hA))return null;if(hA===p){if($(hA)&&hA.classList.contains(Jg())){const m=document.createDocumentFragment(),Y=EA.endContainer,sA=Y.cloneNode(!1),dA=Y.childNodes[EA.endOffset];for(;Y.firstChild&&Y.firstChild!==dA;)m.appendChild(Y.firstChild);return sA.appendChild(m),(W=Y.parentNode)==null||W.insertBefore(sA,Y),Y}if(kA(hA)){const m=hA.textContent;let Y=hA.parentNode,sA=EA.startContainer;Y.dataset.type===q.highlight&&(sA=Y.nextSibling,Y=Y.parentNode);const dA=Y.cloneNode(!1),X=document.createDocumentFragment();for(;Y.firstChild&&Y.firstChild!==sA;)X.appendChild(Y.firstChild);return dA.appendChild(X),dA.appendChild(document.createTextNode(m.slice(0,EA.startOffset))),hA.replaceWith(m.slice(EA.startOffset)),(z=Y.parentNode)==null||z.insertBefore(dA,Y),Y}}return $(p)&&p.classList.contains(NA)?p.childNodes[EA.endOffset]:p};[U,H,O,_]=w(QA,D,f,tA?u:QA[0],tA?F:QA[0].childNodes.length,tA?aA:null,tA?["start","end"]:["start"]);return}if(nA===S.length-1){[K,P,O,_]=w(QA,QA[0],0,u,F,()=>QA[0].firstChild,"end");return}w(QA,QA[0],0,QA[0],QA[0].childNodes.length,null)})},w=(K,P,tA,QA,nA,aA,EA)=>{var CA,BA,AA,yA;const hA=Array.isArray(EA)?EA:[EA],[p]=K,v=document.createRange();v.setStart(P,tA),v.setEnd(QA,nA),(CA=getSelection())==null||CA.removeAllRanges(),(BA=getSelection())==null||BA.addRange(v);const W=v.startContainer===v.endContainer&&((yA=(AA=v.startContainer.parentElement)==null?void 0:AA.dataset)==null?void 0:yA.type)===q.highlight?v.startContainer.parentElement.cloneNode(!1):null,z=v.cloneContents(),m=document.createDocumentFragment();Array.from(z.childNodes).forEach(cA=>{if(!$(cA)||!cA.classList.contains(Jg())){W&&W.appendChild(cA),m.appendChild(W??cA);return}m.append(...Array.from(cA.childNodes))});let Y=document.createTextNode(""),sA=0,dA=document.createTextNode(""),X=0;return hA.includes("start")&&(Y=m.firstChild,sA=0),hA.includes("end")&&(dA=m.lastChild,X=kA(dA)?dA.data.length:$(m.lastChild)&&m.lastChild.dataset.type===q.highlight?m.lastChild.childNodes.length:m.childNodes.length),v.deleteContents(),p.insertBefore(m,typeof aA=="function"?aA():aA),[Y,sA,dA,X]},d=async K=>{var tA,QA;const P=document.createRange();U===O&&$(U)&&U.dataset.type===q.highlight?P.selectNode(U):(P.setStart(U,H),P.setEnd(O,_)),(tA=getSelection())==null||tA.removeAllRanges(),(QA=getSelection())==null||QA.addRange(P),this.editor.cursor.range=P,this._insertAnchorTag(B.anchor,K)},{startContainer:D,startOffset:f,endContainer:u,endOffset:F}=n,R=s(u),N=HA(D),M=HA(u),G=N===M?[N]:[N,...XI(N,M),M],S=G.map((K,P)=>{let tA=[],QA=0,nA=K.childNodes.length;switch(P){case 0:{QA=o(s(D)),nA=G.length-1===P&&!($(u)&&u.classList.contains(NA))?o(s(u))+1:K.childNodes.length,tA=Array.from(K.childNodes).slice(QA,nA);break}case G.length-1:QA=0,nA=$(u)&&u.classList.contains(NA)?K.childNodes.length:o(s(u))+1,tA=Array.from(K.childNodes).slice(0,nA);break;default:QA=0,nA=K.childNodes.length,tA=Array.from(K.childNodes).slice(QA,nA);break}return[K,a(tA)]});let U,H=0,O,_=0;return S.some(([K,P])=>P)?(r(),d(R),!0):!1}_recordAnchor(B,n,o,s){const a=this.data[o]??(this.data[o]=[]);B.id=n,B.top=o,a.push({background:s,data:B,id:n})}get _newAnchorId(){const B=Object.values(this.data).flat().map(n=>n.id);return B.length?Math.max(...B)+1:1}_insertAnchorTag(B,n){const o=this._newAnchorId,s=String(Date.now()),a=iB[(o-1)%10],r=this.editor.cursor.range,{startContainer:w,startOffset:d,endContainer:D,endOffset:f}=r,u=U=>$(U)&&U.tagName==="DIV"?U.firstElementChild:$(U)&&U.tagName==="P"?U:HA(U),F=U=>{const H=document.createElement("span");return fg(H,{class:Jg(),style:`background-color: ${a}`},{type:dg,id:`${dg}_${o}`,provider:B.provider,person:B.person,volume:B.volumn||B.volume,speed:B.speed,top:0,fragId:`anchor_${o}`,emotion:B.activeEmotion,role:B.activeRole??"",name:B.name,uid:s},U),H},R=(U,H,O,_,K=!1)=>{const P=document.createRange();if(N(U,O))P.selectNode(Array.from(U.childNodes).slice(H,_)[0]);else{const EA=$(O)&&[q.pausation].includes(O.dataset.type)?O.childNodes.length:_;$(U)&&U.tagName==="P"?(P.setStart(U.firstChild,0),P.setEnd(U,U.childNodes.length)):(P.setStart(U,H),P.setEnd(O,EA))}const tA=window.getSelection();tA.removeAllRanges(),tA.addRange(P);const QA=document.createElement("div");QA.appendChild(P.cloneContents());const nA=F(QA.innerHTML);this.editor.content.update(nA);const aA=this._calcTopValue(nA.getBoundingClientRect());return nA.dataset.top=String(aA),B.uid=nA.dataset.uid,K&&this._recordAnchor(B,o,aA,a),nA},N=(U,H)=>$(U)&&U.tagName==="P"&&U===H&&Array.from(U.childNodes).slice(r.startOffset,r.endOffset)[0].dataset.type===q.highlight,M=u(w),G=u(D),S=XI(M,G);if(M===G){const U=N(w,D);R(U?w:$(w)&&w.tagName==="P"?w.firstChild:w,U?d:$(w)&&w.tagName==="P"?0:d,D,f,!0),this._fixedAnchorSelection(n),this._fixedAnchorOrder(B),this._fixedAnchorHighlightContent();return}R(w,d,M,M.childNodes.length,!0),S.forEach(U=>R(U,0,U,U.childNodes.length)),R(G.firstChild,0,D,f,!1),this._fixedAnchorSelection(n),this._fixedAnchorOrder(B),this._fixedAnchorHighlightContent()}_isIntersectOtherAnchors(){const{range:B}=this.editor.cursor;return Array.from(document.querySelectorAll(`.tag-${q.anchor}`)).some(o=>B==null?void 0:B.intersectsNode(o))}_calcTopValue(B){return B.top-this.editor.editorTop()+16}_fixedAnchorSelection(B){var R;if(!($(B)&&B.classList.contains(Jg())))return;console.log("---开始修复配音区域-- ");const n=B,o=Array.from(document.querySelectorAll(`.tag-${q.anchor}`)),s=n.dataset.id,a=Number((R=n.dataset.id)==null?void 0:R.split("_")[1]),r=o.indexOf(n),w=this._calcTopValue(n.getBoundingClientRect()),d=[];if(r<0)return;for(let N=r;N<o.length&&s===o[N].dataset.id;N++)d.push(o[N]);const f=Object.values(this.data).flat().find(N=>N.id===a),u=String(Date.now()),F={...f,data:{...f.data,uid:u}};d.forEach(N=>{N.dataset.uid=u,N.dataset.top=String(w)}),this._recordAnchor(F.data,F.id,w,f.background),console.log("---修复配音区域完成-- ")}_fixedAnchorOrder(B){const n=this.data[B.top],s=Array.from(document.querySelectorAll(`span[data-top="${B.top}"]`)).map(a=>[Number(a.dataset.id.split("_")[1]),a.dataset.uid]).reduce((a,r)=>{const[w,d]=r;return d?(a.push(...n.splice(n.findIndex(D=>D.data.uid===d),1)),a):(a.push(...n.splice(n.findIndex(D=>D.data.id===w&&!D.data.uid),1)),a)},[]);this.data[B.top]=s}_fixedAnchorHighlightContent(){Array.from(this.editor.element.querySelectorAll(`span[data-type="${q.highlight}"]`)).forEach(B=>{B.dataset.raw=B.innerHTML})}async _syncAnchorTopValue(){const B=Array.from(this.editor.element.querySelectorAll(`span[data-type="${dg}"]`)),n=B.reduce((a,r)=>{const w=r.dataset.uid??r.dataset.id.split("_")[1];if(a.has(w))return r.dataset.top=String(a.get(w)),a;const d=this._calcTopValue(r.getBoundingClientRect());return r.dataset.top=String(d),a.set(w,d),a},new Map),o=Object.values(this.data).flat().filter(a=>B.some(r=>r.dataset.uid?r.dataset.uid===a.data.uid:Number(r.dataset.id.split("_")[1])===a.id));Object.keys(this.data).forEach(a=>delete this.data[a]);const s=o.reduce((a,r)=>{const w=r.data.uid??r.id,d=n.get(String(w));return(a[d]??(a[d]=[])).push(r),a},{});Object.keys(s).forEach(a=>this.data[a]=s[a])}setup(){this.observer=new MutationObserver(()=>this._syncAnchorTopValue()),this.observer.observe(this.editor.element,{childList:!0,subtree:!0,characterData:!0})}destroy(){var B,n;(B=this.observer)==null||B.disconnect(),this.observer=null,(n=this.resizeObserver)==null||n.disconnect(),this.resizeObserver=null}}const rE=["onClick"],aE=e.defineComponent({__name:"homophoner",props:{visible:{type:Boolean},word:{},data:{}},emits:["ok","cancel"],setup(I,{emit:E}){const B=I,n=E,[o]=bA("homophones"),s=(a,r)=>{n("ok",a,r)};return(a,r)=>e.withDirectives((e.openBlock(),e.createElementBlock("ul",{class:e.normalizeClass(e.unref(o)()),onClick:r[0]||(r[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("li",{class:e.normalizeClass(e.unref(o)("word"))},"“"+e.toDisplayString(B.word)+"”",3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.data,(w,d)=>(e.openBlock(),e.createElementBlock("li",{key:d,class:e.normalizeClass(e.unref(o)("item")),onClick:D=>s(D,w)},e.toDisplayString(w),11,rE))),128))],2)),[[e.vShow,B.visible]])}}),sE=GA(aE,[["__scopeId","data-v-8471a3e1"]]),cE=0,ug=q.homophones,[tI]=vg(ug),rB=tI("close"),{x:lE,y:dE}=aI(),wE=`<svg class="${rB}" width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
32
+ `),this.editor.content.update(n)}setup(){}destroy(){document.body.removeEventListener("click",this._triggerPronunciationTagClick)}}const iB=["rgba(186, 244, 228, 0.5)","rgba(202, 218, 250, 0.5)","rgba(255, 200, 224, 0.5)","rgba(156, 220, 252, 0.5)","rgba(255, 207, 139, 0.5)","rgba(175, 240, 181, 0.5)","rgba(221, 190, 246, 0.5)","rgba(255, 232, 145, 0.5)","rgba(201, 233, 104, 0.5)","rgba(255, 206, 190, 0.5)"],dg=q.anchor,[Jg]=vg(dg);class iE extends qg{constructor(B){super();IA(this,"editor");IA(this,"observer");IA(this,"resizeObserver");IA(this,"name");IA(this,"prefix");IA(this,"data");this.editor=B,this.observer=null,this.resizeObserver=null,this.name=`tiny-peony-plugin__${dg}-tag`,this.prefix=dg,this.data={}}add(B){if(!this.editor.cursor.isRange()){fA.Message.warning("请先划选配音内容!");return}this._insertOverlapAnchor(B)||this._insertAnchorTag(B.anchor)}remove(B){const{top:n,id:o,uid:s}=B.dataset,a=o.split("_")[1],r=this.data[n].findIndex(D=>D.data.uid?D.data.uid===s:D.id===Number(a));r>-1&&this.data[n].splice(r,1);const w=Array.from(B.childNodes);if(w.every(D=>kA(D))){B.replaceWith(B.textContent),this.editor._editorElement.normalize();return}const d=document.createDocumentFragment();w.forEach(D=>d.appendChild(D)),B.replaceWith(d),this.editor._editorElement.normalize()}_insertOverlapAnchor(B){const{range:n}=this.editor.cursor;if(x(n))return!1;const o=K=>{var P;return Array.prototype.indexOf.call((P=K.parentNode)==null?void 0:P.childNodes,K)},s=K=>{let P=K;for(;P&&!($(P.parentNode)&&P.parentNode.tagName==="P");)P=P.parentNode;return P},a=K=>K.some(P=>$(P)&&P.classList.contains(Jg())),r=()=>{let K,P;const tA=S.length===1;S.forEach((QA,nA)=>{if(nA===0){const aA=()=>{var v,W,z;const EA=(v=getSelection())==null?void 0:v.getRangeAt(0),hA=EA==null?void 0:EA.startContainer,p=EA==null?void 0:EA.endContainer;if(x(EA)||x(p)||x(hA))return null;if(hA===p){if($(hA)&&hA.classList.contains(Jg())){const m=document.createDocumentFragment(),Y=EA.endContainer,sA=Y.cloneNode(!1),dA=Y.childNodes[EA.endOffset];for(;Y.firstChild&&Y.firstChild!==dA;)m.appendChild(Y.firstChild);return sA.appendChild(m),(W=Y.parentNode)==null||W.insertBefore(sA,Y),Y}if(kA(hA)){const m=hA.textContent;let Y=hA.parentNode,sA=EA.startContainer;Y.dataset.type===q.highlight&&(sA=Y.nextSibling,Y=Y.parentNode);const dA=Y.cloneNode(!1),X=document.createDocumentFragment();for(;Y.firstChild&&Y.firstChild!==sA;)X.appendChild(Y.firstChild);return dA.appendChild(X),dA.appendChild(document.createTextNode(m.slice(0,EA.startOffset))),hA.replaceWith(m.slice(EA.startOffset)),(z=Y.parentNode)==null||z.insertBefore(dA,Y),Y}}return $(p)&&p.classList.contains(NA)?p.childNodes[EA.endOffset]:p};[U,H,O,_]=w(QA,D,f,tA?u:QA[0],tA?F:QA[0].childNodes.length,tA?aA:null,tA?["start","end"]:["start"]);return}if(nA===S.length-1){[K,P,O,_]=w(QA,QA[0],0,u,F,()=>QA[0].firstChild,"end");return}w(QA,QA[0],0,QA[0],QA[0].childNodes.length,null)})},w=(K,P,tA,QA,nA,aA,EA)=>{var CA,BA,AA,yA;const hA=Array.isArray(EA)?EA:[EA],[p]=K,v=document.createRange();v.setStart(P,tA),v.setEnd(QA,nA),(CA=getSelection())==null||CA.removeAllRanges(),(BA=getSelection())==null||BA.addRange(v);const W=v.startContainer===v.endContainer&&((yA=(AA=v.startContainer.parentElement)==null?void 0:AA.dataset)==null?void 0:yA.type)===q.highlight?v.startContainer.parentElement.cloneNode(!1):null,z=v.cloneContents(),m=document.createDocumentFragment();Array.from(z.childNodes).forEach(cA=>{if(!$(cA)||!cA.classList.contains(Jg())){W&&W.appendChild(cA),m.appendChild(W??cA);return}m.append(...Array.from(cA.childNodes))});let Y=document.createTextNode(""),sA=0,dA=document.createTextNode(""),X=0;return hA.includes("start")&&(Y=m.firstChild,sA=0),hA.includes("end")&&(dA=m.lastChild,X=kA(dA)?dA.data.length:$(m.lastChild)&&m.lastChild.dataset.type===q.highlight?m.lastChild.childNodes.length:m.childNodes.length),v.deleteContents(),p.insertBefore(m,typeof aA=="function"?aA():aA),[Y,sA,dA,X]},d=async K=>{var tA,QA;const P=document.createRange();U===O&&$(U)&&U.dataset.type===q.highlight?P.selectNode(U):(P.setStart(U,H),P.setEnd(O,_)),(tA=getSelection())==null||tA.removeAllRanges(),(QA=getSelection())==null||QA.addRange(P),this.editor.cursor.range=P,this._insertAnchorTag(B.anchor,K)},{startContainer:D,startOffset:f,endContainer:u,endOffset:F}=n,R=s(u),N=HA(D),M=HA(u),G=N===M?[N]:[N,...XI(N,M),M],S=G.map((K,P)=>{let tA=[],QA=0,nA=K.childNodes.length;switch(P){case 0:{QA=o(s(D)),nA=G.length-1===P&&!($(u)&&u.classList.contains(NA))?o(s(u))+1:K.childNodes.length,tA=Array.from(K.childNodes).slice(QA,nA);break}case G.length-1:QA=0,nA=$(u)&&u.classList.contains(NA)?K.childNodes.length:o(s(u))+1,tA=Array.from(K.childNodes).slice(0,nA);break;default:QA=0,nA=K.childNodes.length,tA=Array.from(K.childNodes).slice(QA,nA);break}return[K,a(tA)]});let U,H=0,O,_=0;return S.some(([K,P])=>P)?(r(),d(R),!0):!1}_recordAnchor(B,n,o,s){const a=this.data[o]??(this.data[o]=[]);B.id=n,B.top=o,a.push({background:s,data:B,id:n})}get _newAnchorId(){const B=Object.values(this.data).flat().map(n=>n.id);return B.length?Math.max(...B)+1:1}_insertAnchorTag(B,n){const o=this._newAnchorId,s=String(Date.now()),a=iB[(o-1)%10],r=this.editor.cursor.range,{startContainer:w,startOffset:d,endContainer:D,endOffset:f}=r,u=U=>$(U)&&U.tagName==="DIV"?U.firstElementChild:$(U)&&U.tagName==="P"?U:HA(U),F=U=>{const H=document.createElement("span");return fg(H,{class:Jg(),style:`background-color: ${a}`},{type:dg,id:`${dg}_${o}`,provider:B.provider,person:B.person,volume:B.volumn||B.volume,speed:B.speed,top:0,fragId:`anchor_${o}`,emotion:B.activeEmotion,role:B.activeRole??"",name:B.name,uid:s},U),H},R=(U,H,O,_,K=!1)=>{const P=document.createRange();if(N(U,O))P.selectNode(Array.from(U.childNodes).slice(H,_)[0]);else{const EA=$(O)&&[q.pausation].includes(O.dataset.type)?O.childNodes.length:_;$(U)&&U.tagName==="P"?(P.setStart(U.firstChild,0),P.setEnd(U,U.childNodes.length)):(P.setStart(U,H),P.setEnd(O,EA))}const tA=window.getSelection();tA.removeAllRanges(),tA.addRange(P);const QA=document.createElement("div");QA.appendChild(P.cloneContents());const nA=F(QA.innerHTML);this.editor.content.update(nA);const aA=this._calcTopValue(nA.getBoundingClientRect());return nA.dataset.top=String(aA),B.uid=nA.dataset.uid,K&&this._recordAnchor(B,o,aA,a),nA},N=(U,H)=>$(U)&&U.tagName==="P"&&U===H&&Array.from(U.childNodes).slice(r.startOffset,r.endOffset)[0].dataset.type===q.highlight,M=u(w),G=u(D),S=XI(M,G);if(M===G){const U=N(w,D);R(U?w:$(w)&&w.tagName==="P"?w.firstChild:w,U?d:$(w)&&w.tagName==="P"?0:d,D,f,!0),this._fixedAnchorSelection(n),this._fixedAnchorOrder(B),this._fixedAnchorHighlightContent();return}R(w,d,M,M.childNodes.length,!0),S.forEach(U=>R(U,0,U,U.childNodes.length)),R(G.firstChild,0,D,f,!1),this._fixedAnchorSelection(n),this._fixedAnchorOrder(B),this._fixedAnchorHighlightContent()}_isIntersectOtherAnchors(){const{range:B}=this.editor.cursor;return Array.from(document.querySelectorAll(`.tag-${q.anchor}`)).some(o=>B==null?void 0:B.intersectsNode(o))}_calcTopValue(B){return B.top-this.editor.editorTop()+16}_fixedAnchorSelection(B){var R;if(!($(B)&&B.classList.contains(Jg())))return;console.log("---开始修复配音区域-- ");const n=B,o=Array.from(document.querySelectorAll(`.tag-${q.anchor}`)),s=n.dataset.id,a=Number((R=n.dataset.id)==null?void 0:R.split("_")[1]),r=o.indexOf(n),w=this._calcTopValue(n.getBoundingClientRect()),d=[];if(r<0)return;for(let N=r;N<o.length&&s===o[N].dataset.id;N++)d.push(o[N]);const f=Object.values(this.data).flat().find(N=>N.id===a),u=String(Date.now()),F={...f,data:{...f.data,uid:u}};d.forEach(N=>{N.dataset.uid=u,N.dataset.top=String(w)}),this._recordAnchor(F.data,F.id,w,f.background),console.log("---修复配音区域完成-- ")}_fixedAnchorOrder(B){const n=this.data[B.top],s=Array.from(document.querySelectorAll(`span[data-top="${B.top}"]`)).map(a=>[Number(a.dataset.id.split("_")[1]),a.dataset.uid]).reduce((a,r)=>{const[w,d]=r;return d?(a.push(...n.splice(n.findIndex(D=>D.data.uid===d),1)),a):(a.push(...n.splice(n.findIndex(D=>D.data.id===w&&!D.data.uid),1)),a)},[]);this.data[B.top]=s}_fixedAnchorHighlightContent(){Array.from(this.editor.element.querySelectorAll(`span[data-type="${q.highlight}"]`)).forEach(B=>{B.dataset.raw=B.innerHTML})}async _syncAnchorTopValue(){console.log("---高度同步开始--- ");const B=Array.from(this.editor.element.querySelectorAll(`span[data-type="${dg}"]`)),n=B.reduce((a,r)=>{const w=r.dataset.uid??r.dataset.id.split("_")[1];if(a.has(w))return r.dataset.top=String(a.get(w)),a;const d=this._calcTopValue(r.getBoundingClientRect());return r.dataset.top=String(d),a.set(w,d),a},new Map),o=Object.values(this.data).flat().filter(a=>B.some(r=>r.dataset.uid?r.dataset.uid===a.data.uid:Number(r.dataset.id.split("_")[1])===a.id));Object.keys(this.data).forEach(a=>delete this.data[a]);const s=o.reduce((a,r)=>{const w=r.data.uid??r.id,d=n.get(String(w));return(a[d]??(a[d]=[])).push(r),a},{});Object.keys(s).forEach(a=>this.data[a]=s[a]),console.log("---高度同步结束--- ")}setup(){this.observer=new MutationObserver(()=>this._syncAnchorTopValue()),this.observer.observe(this.editor.element,{childList:!0,subtree:!0,characterData:!0})}destroy(){var B,n;(B=this.observer)==null||B.disconnect(),this.observer=null,(n=this.resizeObserver)==null||n.disconnect(),this.resizeObserver=null}}const rE=["onClick"],aE=e.defineComponent({__name:"homophoner",props:{visible:{type:Boolean},word:{},data:{}},emits:["ok","cancel"],setup(I,{emit:E}){const B=I,n=E,[o]=bA("homophones"),s=(a,r)=>{n("ok",a,r)};return(a,r)=>e.withDirectives((e.openBlock(),e.createElementBlock("ul",{class:e.normalizeClass(e.unref(o)()),onClick:r[0]||(r[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("li",{class:e.normalizeClass(e.unref(o)("word"))},"“"+e.toDisplayString(B.word)+"”",3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.data,(w,d)=>(e.openBlock(),e.createElementBlock("li",{key:d,class:e.normalizeClass(e.unref(o)("item")),onClick:D=>s(D,w)},e.toDisplayString(w),11,rE))),128))],2)),[[e.vShow,B.visible]])}}),sE=GA(aE,[["__scopeId","data-v-8471a3e1"]]),cE=0,ug=q.homophones,[tI]=vg(ug),rB=tI("close"),{x:lE,y:dE}=aI(),wE=`<svg class="${rB}" width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
33
33
  <g id="V1.0" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
34
34
  <g id="虚拟精品录音间-读音替换" transform="translate(-1287, -152)" fill="currentColor" fill-rule="nonzero">
35
35
  <g id="编组-4备份-4" transform="translate(1227, 149)">
@@ -72,5 +72,5 @@ return ret;
72
72
  shortcutPosition: ${R>N+M+BI?WA.底部:WA.顶部}
73
73
  subShortcutPosition: ${R>N+M+BI+VC?OA.顶部对齐:OA.底部对齐}
74
74
  `),o(R>N+M?wg.底部:wg.顶部),a(R>N+M+BI+8?WA.底部:WA.顶部),w(R>N+M+BI+VC?OA.顶部对齐:OA.底部对齐)},D=EI(d);return e.onMounted(()=>{var f;(f=B.value)==null||f.addEventListener("scroll",D)}),e.onUnmounted(()=>{var f;(f=B.value)==null||f.removeEventListener("scroll",D)}),{generatorPosition:n,shortcutPosition:s,subShortcutPosition:r,setGeneratorPosition:o,setShortcutPosition:a,setSubShortcutPosition:w,calcModalPosition:d}},[Jo]=bA("refine-generator"),Yo=e.defineComponent({name:"RefineGenerator",props:{width:{type:[Number,String],default:"100%"}},emits:{},setup:I=>{const{highlightRange:E,unhighlightRange:B,revertRange:n}=pt(),o=e.inject(ng),{agentId:s,createSession:a,sendSessionMessage:r,abortSession:w}=o.refineContext,[d,D]=LA(void 0),f=()=>(r.abort(),w({sessionId:d.value})),u=e.ref(),[F,R]=LA({zIndex:-10}),[N,M]=LA(!1,lA=>{lA||(d.value&&[JA.等待生成,JA.正在生成].includes(v.value)&&f(),D(void 0),tA(!1),nA(void 0),p(!1),W(JA.未生成),m(0),sA([]),X(void 0),EA(!0),R({zIndex:-10}))}),G=()=>{var TA,PA,XA,Qg;if(x(o)||x(o.editorCore.value))return;const lA=CB((TA=O.value)==null?void 0:TA.getBoundingClientRect(),(PA=Array.from(o.editorCore.value._editorElement.querySelectorAll(".tag-range-highlight")).pop())==null?void 0:PA.getBoundingClientRect(),1);R({top:`${lA.top+(((XA=O.value)==null?void 0:XA.scrollTop)??0)}px`,left:0,width:`${(Qg=o.editorCore.value)==null?void 0:Qg._editorElement.offsetWidth}px`})},S=()=>{x(o)||x(o.editorCore.value)||(G(),M(!0))},U=lA=>{var TA;N.value&&((TA=u.value)!=null&&TA.contains(lA.target)||(B(),M(!1)))},H=EI(()=>{N.value&&G()}),[O,_]=LA(void 0);e.onMounted(()=>{var lA;_(document.body.querySelector(".c-editor-container--refinable")),document.addEventListener("mousedown",U),(lA=O.value)==null||lA.addEventListener("scroll",H)}),e.onUnmounted(()=>{var lA;document.removeEventListener("mousedown",U),(lA=O.value)==null||lA.removeEventListener("scroll",H)});const K=le(I.width)?`${I.width}px`:I.width,[P,tA]=eI(),[QA,nA]=LA(void 0),[aA,EA]=eI(!0),[hA,p]=eI(),[v,W]=LA(JA.未生成),[z,m]=LA(0),[Y,sA]=LA([]),[dA,X]=LA(void 0),BA={name:"RefineGenerator",refineGeneratorRef:u,visible:N,width:K,generating:P,prompt:QA,shortcutVisible:aA,content:Y,activedContent:dA,contentVisible:hA,contentPage:z,contentState:v,setVisible:M,setRefineGenerating:tA,setRefinePrompt:nA,setShortVisible:EA,setRefineContent:sA,setActivedRefineContent:X,genRefineContent:async lA=>{var bg,kg;if(P.value)return;tA(!0),nA(void 0),sA((lA==null?void 0:lA.generateType)===yg.刷新?[...Y.value,{...Y.value[z.value-1],content:""}]:[Qg(lA)]),X(Y.value[Y.value.length-1]),m(Y.value.length),W(JA.等待生成),D(IB());const TA=await a({agentId:s,sessionId:d.value});p(!0),W(JA.正在生成),r({messageRequest:{agent_id:s,message:{content:Array.from(document.body.querySelectorAll(`.${oI}`)).map(vA=>vA.textContent??"").join(`
75
- `),conversation_id:TA.data.conversionId},meta_data:{ai_rewrite:((bg=dA.value)==null?void 0:bg.shortcutType)??((kg=dA.value)==null?void 0:kg.prompt),sessionId:d.value}}},{onmessage:XA,onclose:()=>{console.log("---onclose "),PA()},onerror:vA=>{console.log("---onerror ",vA),PA()}});async function PA(){tA(!1),W(JA.未生成),await e.nextTick(),KA(),EA(!0)}function XA(vA){const VA=JSON.parse(vA.data);VA.type==="answer"&&(dA.value.content+=(VA.content??"").replace(/\n{2,}/g,Kg).replace(/\n/g,Kg))}function Qg(vA){const VA=(vA==null?void 0:vA.generateType)===yg.重置;return{isManualPrompt:VA,prompt:VA?vA.prompt:void 0,shortcutType:VA?vA.shortcutType:void 0,content:""}}},setContentPage:m,setContentVisible:p,setContentState:W,showRefineGenerator:S,abortSession:f,scrollElm:O,highlightRange:E,unhighlightRange:B,revertRange:n},{generatorPosition:AA,shortcutPosition:yA,subShortcutPosition:cA,setGeneratorPosition:qA,setShortcutPosition:ig,setSubShortcutPosition:zA,calcModalPosition:KA}=mo(BA);return e.provide(xg,{...BA,generatorPosition:AA,shortcutPosition:yA,subShortcutPosition:cA,setGeneratorPosition:qA,setShortcutPosition:ig,setSubShortcutPosition:zA,calcModalPosition:KA}),{innerRender:()=>e.createVNode(e.Fragment,null,[e.createVNode(Uo,null,null),e.createVNode("div",{ref:u,class:"c-refine-generator-wrapper",style:{...F.value,display:N.value?"block":"none"}},[e.createVNode("div",{class:"c-refine-generator-wrapper__inner"},[e.createVNode("div",{class:Jo(),style:{width:K}},[e.createVNode(ho,{modelValue:Y.value,"onUpdate:modelValue":lA=>Y.value=lA},null),e.createVNode(Lo,{modelValue:QA.value,"onUpdate:modelValue":lA=>QA.value=lA},null)]),e.createVNode(Mo,null,null)])])]),innerSetVisible:M}},methods:{setVisible(I){this.innerSetVisible(I)}},render(){return this.innerRender()}}),Ho={};function Ko(I,E){return e.openBlock(),e.createElementBlock("svg",e.mergeProps({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet"},I.$attrs),E[0]||(E[0]=[e.createElementVNode("path",{d:"M843.0592 474.9312l-448-307.2-0.1024 0.1024A51.712 51.712 0 0 0 359.168 153.6c-28.5184 0-51.712 22.9376-51.712 51.2 0 15.5136-0.6144 45.9264 0 45.312V819.2c0 28.2624 23.1936 51.2 51.712 51.2 13.9776 0 26.624-5.4784 35.84-14.336h0.0512l448-307.2a50.7904 50.7904 0 0 0 15.872-36.864v-0.1024-0.1024a50.8416 50.8416 0 0 0-15.872-36.864z",fill:"currentColor"},null,-1)]),16)}const vo=GA(Ho,[["render",Ko]]),qo={};function xo(I,E){return e.openBlock(),e.createElementBlock("svg",e.mergeProps({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet"},I.$attrs),E[0]||(E[0]=[e.createElementVNode("path",{d:"M299.90284958 17.10664903a70.69905013 70.69905013 0 0 0-70.69905015 70.69905014v848.38860166a70.69905013 70.69905013 0 1 0 141.39810028 0V87.80569917a70.69905013 70.69905013 0 0 0-70.69905013-70.69905014z m424.19430084 0a70.69905013 70.69905013 0 0 0-70.69905013 70.69905014v848.38860166a70.69905013 70.69905013 0 1 0 141.39810028 0V87.80569917a70.69905013 70.69905013 0 0 0-70.69905015-70.69905014z",fill:"currentColor"},null,-1)]),16)}const bo=GA(qo,[["render",xo]]),To={};function Vo(I,E){return e.openBlock(),e.createElementBlock("svg",e.mergeProps({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet"},I.$attrs),E[0]||(E[0]=[e.createElementVNode("path",{d:"M512 56.888889a455.111111 455.111111 0 1 1 0 910.222222A455.111111 455.111111 0 0 1 512 56.888889z m0 401.521778L404.764444 351.118222a37.944889 37.944889 0 1 0-53.646222 53.646222L458.410667 512l-107.292445 107.235556a37.944889 37.944889 0 1 0 53.646222 53.646222L512 565.589333l107.235556 107.292445a37.944889 37.944889 0 1 0 53.646222-53.646222L565.589333 512l107.292445-107.235556a37.944889 37.944889 0 1 0-53.646222-53.646222L512 458.410667z",fill:"currentColor"},null,-1)]),16)}const PC=GA(To,[["render",Vo]]),[UA]=bA("editor-container"),[jA]=bA("anchor-item"),jC=e.defineComponent({name:"EditorContainer",props:{preTime:{type:String,default:"00:00:00"},realTime:{type:String,default:"00:00:00"},textCount:{type:Number,default:0},highlight:{type:Boolean,default:void 0},listenAnchorId:{type:String,default:"-1"},listenMode:{type:String,default:"single"},placeholder:{type:String,default:"请输入或者上传文稿"},simple:{type:Boolean,default:!1},maxLength:{type:Number,default:1e4},showWordLimit:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},class:{type:[String,Array],default:()=>[]},contentStyle:{type:Object,default:()=>({})},refinable:{type:Boolean,default:!1},refineContext:{type:Object},editorHeight:{type:[Number,String],default:"calc(100% - 62px)"}},emits:{change:I=>!0,"update:textCount":I=>!0,anchorListen:(I,E)=>!0,anchorListenStop:I=>!0,anchorRemove:I=>!0},setup:(I,{slots:E,emit:B})=>{const n=e.ref(),o=e.ref(),{editorCore:s,editorAction:a,count:r,hasPausationTag:w,getContent:d,setContent:D,appendContent:f,getTextContent:u,insertContent:F,deleteContent:R,updateContent:N,isCaret:M,isRange:G,isSelectionInDifferentParas:S,isSelectionContainsTag:U,getAnchorTtsMark:H,getAnchorTtsEmotionAndRole:O,isAllMarkedByAnchor:_,addExtraAnchors:K,clearContent:P,insertContentAtCursor:tA,renderHighlight:QA,unrenderHighlight:nA}=Lt(n,I,B);e.provide(ng,{name:"Editor",editorCore:s,editorAction:a,getContent:d,setContent:D,appendContent:f,getTextContent:u,insertContent:F,deleteContent:R,updateContent:N,isCaret:M,isRange:G,isSelectionContainsTag:U,getAnchorTtsMark:H,getAnchorTtsEmotionAndRole:O,isAllMarkedByAnchor:_,addExtraAnchors:K,clearContent:P,renderHighlight:QA,unrenderHighlight:nA,refineContext:I.refineContext});const aA=e.computed(()=>{var X,CA;return((CA=(X=a.value)==null?void 0:X.plugin.anchor)==null?void 0:CA.data)??{}}),EA=e.computed(()=>Object.values(aA.value).flat().length),hA=e.computed(()=>r.value<=0&&!w.value),p=(X,CA,BA)=>{let AA=Array.from(document.body.querySelectorAll(BA.uid?`span[data-uid="${BA.uid}"]`:`span[data-frag-id="anchor_${X}"]`));BA.uid||(AA=AA.filter(yA=>!yA.dataset.uid)),AA.forEach(yA=>{var cA,qA;return(qA=(cA=a.value)==null?void 0:cA.plugin.anchor)==null?void 0:qA.remove(yA)}),B("anchorRemove",BA)},v=X=>Object.entries(X).filter(([CA,BA])=>!!BA.length).map(([CA,BA])=>e.createVNode("div",{style:{position:"absolute",top:`${CA}px`,width:"100%",paddingLeft:"24px",transform:"translateY(-4px)"},class:[BA.length>1&&"multi-anchor","anchor-wrapper"]},[BA.length>1?BA.slice(0,6).map(({background:AA,data:yA,id:cA})=>W(cA,CA,AA,yA,!0)):W(BA[0].id,CA,BA[0].background,BA[0].data),BA.length>6?e.createVNode(fA.Popover,{trigger:"click",position:"tr",popupContainer:".anchor-wrapper",contentClass:"anchor-popover",contentStyle:{padding:"6px 12px"}},{default:()=>e.createVNode(fA.Button,{shape:"circle",style:{width:"28px",height:"28px",transform:"translateY(-7px)"}},{default:()=>[e.createVNode(rt,null,null)]}),content:()=>e.createVNode("div",{class:"multi-anchor"},[BA.slice(6).map(({background:AA,data:yA,id:cA})=>W(cA,CA,AA,yA,!0))])}):null])),W=(X,CA,BA,AA,yA=!1)=>{const cA=()=>I.listenMode===IC.multiple||I.listenAnchorId!==`${AA.id}_${AA.uid}`?e.createVNode("span",{onClick:()=>B("anchorListen",AA,H(AA))},[e.createVNode(vo,{class:jA("info-play")},null)]):e.createVNode("span",{onClick:()=>B("anchorListenStop",AA)},[e.createVNode(bo,{class:jA("info-play")},null)]),qA=()=>{var KA;return e.createVNode("section",{class:jA(),style:{backgroundColor:BA}},[((KA=E.anchor)==null?void 0:KA.call(E,{anchor:AA,listen:ig,listenStop:zA,update:z}))??e.createVNode("img",{src:AA.avatar,class:jA("avatar")},null),e.createVNode("section",{class:jA("info"),style:{display:yA?"none":"flex"}},[e.createVNode("span",{class:jA("info-name"),title:AA.name},[AA.name]),e.createVNode("label",{class:jA("info-speed-volume")},[e.createTextVNode("语速: "),AA.speed,e.createTextVNode(", 音量: "),AA.volume]),e.createVNode("div",{onClick:()=>p(X,CA,AA)},[e.createVNode(PC,{class:jA("info-rem")},null)]),cA()]),yA?e.createVNode("div",{class:jA("rem"),onClick:()=>p(X,CA,AA)},[e.createVNode(PC,{class:jA("info-rem")},null)]):null])},ig=()=>B("anchorListen",AA,H(AA)),zA=()=>B("anchorListenStop",AA);return qA()},z=X=>{const{uid:CA}=X,{id:BA}=X,AA=Object.keys(aA.value);for(let cA=0;cA<AA.length;cA++){const qA=AA[cA],zA=aA.value[qA].findIndex(KA=>KA.data.uid?KA.data.uid===CA:KA.id===BA);if(zA>-1){const KA=aA.value[qA][zA];aA.value[qA].splice(zA,1,{...KA,data:{...X}});break}}let yA=Array.from(document.body.querySelectorAll(CA?`span[data-uid="${CA}"]`:`span[data-frag-id="anchor_${BA}"]`));CA||(yA=yA.filter(cA=>!cA.dataset.uid)),yA.forEach(cA=>Object.assign(cA.dataset,{provider:X.provider,person:X.person,volume:X.volumn||X.volume,speed:X.speed,emotion:X.activeEmotion,role:X.activeRole??"",name:X.name}))},m=()=>{},Y=()=>{var X;return e.createVNode("div",{class:UA("status",{simple:I.simple,disabled:I.disabled})},[((X=E["footer-left"])==null?void 0:X.call(E))??(I.simple?null:e.createVNode(fA.Button,{class:UA("status-clear"),onClick:P},{default:()=>[e.createTextVNode("清空")]})),e.createVNode("div",{class:UA("status-info")},[I.simple?null:e.createVNode(e.Fragment,null,[e.createVNode("label",{class:UA("status-info-label")},[e.createVNode("span",null,[e.createTextVNode("预计时长:")]),e.createVNode("span",null,[I.preTime||"00:00:00"])]),e.createVNode("label",{class:UA("status-info-label")},[e.createVNode("span",null,[e.createTextVNode("实际时长:")]),e.createVNode("span",null,[I.realTime||"00:00:00"])])]),I.showWordLimit?e.createVNode("label",{class:UA("status-info-length")},[e.createVNode("span",null,[r.value<=I.maxLength?r.value:I.maxLength]),e.createVNode("span",null,[e.createTextVNode(" / ")]),e.createVNode("span",null,[I.maxLength,I.simple?"":"字"])]):null])])},sA=e.ref();return{action:a,innerRender:()=>{var X,CA;return e.createVNode("section",{class:UA("wrapper")},[e.createVNode("div",{class:UA("",{simple:I.simple,disabled:I.disabled,refinable:I.refinable}),style:{height:de(I.editorHeight)?I.editorHeight:`${I.editorHeight}px`}},[!I.simple&&m(),e.createVNode("div",{class:UA("core")},[e.createVNode("div",{class:UA("core-content")},[e.createVNode("div",{class:UA("core-content-editor")},[e.createVNode("div",{class:UA("core-content-editor-placeholder"),style:{display:hA.value?"block":"none"}},[I.placeholder]),e.createVNode("div",{ref:n,class:UA("core-content-editor-content"),contenteditable:!I.disabled,onDragover:BA=>BA.preventDefault(),onDrop:BA=>BA.preventDefault()},[e.createVNode("p",{class:NA},[e.createVNode("br",null,null)])])])]),I.simple?null:e.createVNode("div",{ref:o,class:UA("core-anchor")},[EA.value?v(aA.value):null])]),!I.simple&&e.createVNode(Ht,null,null),I.refinable&&e.createVNode(Yo,{ref:sA},null)]),!I.simple&&e.createVNode("div",{class:UA("splitor")},null),!I.simple&&!Object.values(aA.value).flat().length?e.createVNode("div",{class:UA("anchor-placeholder")},[e.createVNode("img",{src:Mt},null)]):null,Y(),e.createVNode("span",{style:"display: none"},[JSON.stringify(Object.keys(((CA=(X=a.value)==null?void 0:X.plugin.anchor)==null?void 0:CA.data)??{})),Object.values(aA.value).flat().length])])},innerGetContent:d,innerSetContent:D,innerAppendContent:f,innerGetTextContent:u,innerInsertContent:F,innerDeleteContent:R,innerUpdateContent:N,innerIsCaret:M,innerIsRange:G,innerIsSelectionInDifferentParas:S,innerIsSelectionContainsTag:U,innerGetAnchorTtsMark:H,innerGetAnchorTtsEmotionAndRole:O,innerIsAllMarkedByAnchor:_,innerAddExtraAnchors:K,innerUpdateAnchor:z,innerClearContent:P,innerInsertContentAtCursor:tA,innerRenderHightlight:QA,innerUnrenderHightlight:nA}},methods:{getContent(I){return this.innerGetContent(I)},getHtml(I){return this.getContent(I)},setContent(I){return this.innerSetContent(I)},setHtml(I){return this.setContent(I)},appendContent(I){return this.innerAppendContent(I)},getTextContent(){return this.innerGetTextContent()},insertContent(I){return this.innerInsertContent(I)},deleteContent(){return this.innerDeleteContent()},updateContent(I){return this.innerUpdateContent(I)},isCaret(){return this.innerIsCaret()},isRange(){return this.innerIsRange()},isSelectionInDifferentParas(){return this.innerIsSelectionInDifferentParas()},isSelectionContainsTag(I){return this.innerIsSelectionContainsTag(I)},getAnchorTtsMark(I,E=!1){return this.innerGetAnchorTtsMark(I,E)},getAnchorTtsEmotionAndRole(I){return this.innerGetAnchorTtsEmotionAndRole(I)},isAllMarkedByAnchor(){return this.innerIsAllMarkedByAnchor()},addExtraAnchors(I){return this.innerAddExtraAnchors(I)},updateAnchor(I){return this.innerUpdateAnchor(I)},clearContent(){return this.innerClearContent()},insertContentAtCursor(I){return this.innerInsertContentAtCursor(I)},clear(){return this.setContent(`<p class="${NA}"><br /></p>`)},renderHighlight(I){return this.innerRenderHightlight(I)},unrenderHighlight(){return this.innerUnrenderHightlight()}},render(){return this.innerRender()}}),OI=Object.assign(jC,{install:(I,E)=>{I.component("EditorContainer",jC)}}),Po=Object.assign(OI,{install:I=>{I.component(OI.name,OI)}});exports.ICommandExecutor=gB;exports.IContentManager=_C;exports.ICursorManager=$C;exports.IEditorCore=ZC;exports.IPlugin=qg;exports.IUndoManager=AB;exports.ListenModeEnum=IC;exports.PluginFlag=q;exports.SelectionType=XC;exports.default=Po;
75
+ `),conversation_id:TA.data.conversionId},meta_data:{ai_rewrite:((bg=dA.value)==null?void 0:bg.shortcutType)??((kg=dA.value)==null?void 0:kg.prompt),sessionId:d.value}}},{onmessage:XA,onclose:()=>{console.log("---onclose "),PA()},onerror:vA=>{console.log("---onerror ",vA),PA()}});async function PA(){tA(!1),W(JA.未生成),await e.nextTick(),KA(),EA(!0)}function XA(vA){const VA=JSON.parse(vA.data);VA.type==="answer"&&(dA.value.content+=(VA.content??"").replace(/\n{2,}/g,Kg).replace(/\n/g,Kg))}function Qg(vA){const VA=(vA==null?void 0:vA.generateType)===yg.重置;return{isManualPrompt:VA,prompt:VA?vA.prompt:void 0,shortcutType:VA?vA.shortcutType:void 0,content:""}}},setContentPage:m,setContentVisible:p,setContentState:W,showRefineGenerator:S,abortSession:f,scrollElm:O,highlightRange:E,unhighlightRange:B,revertRange:n},{generatorPosition:AA,shortcutPosition:yA,subShortcutPosition:cA,setGeneratorPosition:qA,setShortcutPosition:ig,setSubShortcutPosition:zA,calcModalPosition:KA}=mo(BA);return e.provide(xg,{...BA,generatorPosition:AA,shortcutPosition:yA,subShortcutPosition:cA,setGeneratorPosition:qA,setShortcutPosition:ig,setSubShortcutPosition:zA,calcModalPosition:KA}),{innerRender:()=>e.createVNode(e.Fragment,null,[e.createVNode(Uo,null,null),e.createVNode("div",{ref:u,class:"c-refine-generator-wrapper",style:{...F.value,display:N.value?"block":"none"}},[e.createVNode("div",{class:"c-refine-generator-wrapper__inner"},[e.createVNode("div",{class:Jo(),style:{width:K}},[e.createVNode(ho,{modelValue:Y.value,"onUpdate:modelValue":lA=>Y.value=lA},null),e.createVNode(Lo,{modelValue:QA.value,"onUpdate:modelValue":lA=>QA.value=lA},null)]),e.createVNode(Mo,null,null)])])]),innerSetVisible:M}},methods:{setVisible(I){this.innerSetVisible(I)}},render(){return this.innerRender()}}),Ho={};function Ko(I,E){return e.openBlock(),e.createElementBlock("svg",e.mergeProps({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet"},I.$attrs),E[0]||(E[0]=[e.createElementVNode("path",{d:"M843.0592 474.9312l-448-307.2-0.1024 0.1024A51.712 51.712 0 0 0 359.168 153.6c-28.5184 0-51.712 22.9376-51.712 51.2 0 15.5136-0.6144 45.9264 0 45.312V819.2c0 28.2624 23.1936 51.2 51.712 51.2 13.9776 0 26.624-5.4784 35.84-14.336h0.0512l448-307.2a50.7904 50.7904 0 0 0 15.872-36.864v-0.1024-0.1024a50.8416 50.8416 0 0 0-15.872-36.864z",fill:"currentColor"},null,-1)]),16)}const vo=GA(Ho,[["render",Ko]]),qo={};function xo(I,E){return e.openBlock(),e.createElementBlock("svg",e.mergeProps({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet"},I.$attrs),E[0]||(E[0]=[e.createElementVNode("path",{d:"M299.90284958 17.10664903a70.69905013 70.69905013 0 0 0-70.69905015 70.69905014v848.38860166a70.69905013 70.69905013 0 1 0 141.39810028 0V87.80569917a70.69905013 70.69905013 0 0 0-70.69905013-70.69905014z m424.19430084 0a70.69905013 70.69905013 0 0 0-70.69905013 70.69905014v848.38860166a70.69905013 70.69905013 0 1 0 141.39810028 0V87.80569917a70.69905013 70.69905013 0 0 0-70.69905015-70.69905014z",fill:"currentColor"},null,-1)]),16)}const bo=GA(qo,[["render",xo]]),To={};function Vo(I,E){return e.openBlock(),e.createElementBlock("svg",e.mergeProps({xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"18",height:"18",preserveAspectRatio:"xMidYMid meet"},I.$attrs),E[0]||(E[0]=[e.createElementVNode("path",{d:"M512 56.888889a455.111111 455.111111 0 1 1 0 910.222222A455.111111 455.111111 0 0 1 512 56.888889z m0 401.521778L404.764444 351.118222a37.944889 37.944889 0 1 0-53.646222 53.646222L458.410667 512l-107.292445 107.235556a37.944889 37.944889 0 1 0 53.646222 53.646222L512 565.589333l107.235556 107.292445a37.944889 37.944889 0 1 0 53.646222-53.646222L565.589333 512l107.292445-107.235556a37.944889 37.944889 0 1 0-53.646222-53.646222L512 458.410667z",fill:"currentColor"},null,-1)]),16)}const PC=GA(To,[["render",Vo]]),[UA]=bA("editor-container"),[jA]=bA("anchor-item"),jC=e.defineComponent({name:"EditorContainer",props:{preTime:{type:String,default:"00:00:00"},realTime:{type:String,default:"00:00:00"},textCount:{type:Number,default:0},highlight:{type:Boolean,default:void 0},listenAnchorId:{type:String,default:"-1"},listenMode:{type:String,default:"single"},placeholder:{type:String,default:"请输入或者上传文稿"},simple:{type:Boolean,default:!1},maxLength:{type:Number,default:1e4},showWordLimit:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},class:{type:[String,Array],default:()=>[]},contentStyle:{type:Object,default:()=>({})},refinable:{type:Boolean,default:!1},refineContext:{type:Object},editorHeight:{type:[Number,String],default:"calc(100% - 62px)"}},emits:{change:I=>!0,"update:textCount":I=>!0,anchorListen:(I,E)=>!0,anchorListenStop:I=>!0,anchorRemove:I=>!0},setup:(I,{slots:E,emit:B})=>{const n=e.ref(),o=e.ref(),{editorCore:s,editorAction:a,count:r,hasPausationTag:w,getContent:d,setContent:D,appendContent:f,getTextContent:u,insertContent:F,deleteContent:R,updateContent:N,isCaret:M,isRange:G,isSelectionInDifferentParas:S,isSelectionContainsTag:U,getAnchorTtsMark:H,getAnchorTtsEmotionAndRole:O,isAllMarkedByAnchor:_,addExtraAnchors:K,clearContent:P,insertContentAtCursor:tA,renderHighlight:QA,unrenderHighlight:nA}=Lt(n,I,B);e.provide(ng,{name:"Editor",editorCore:s,editorAction:a,getContent:d,setContent:D,appendContent:f,getTextContent:u,insertContent:F,deleteContent:R,updateContent:N,isCaret:M,isRange:G,isSelectionContainsTag:U,getAnchorTtsMark:H,getAnchorTtsEmotionAndRole:O,isAllMarkedByAnchor:_,addExtraAnchors:K,clearContent:P,renderHighlight:QA,unrenderHighlight:nA,refineContext:I.refineContext});const aA=e.computed(()=>{var X,CA;return((CA=(X=a.value)==null?void 0:X.plugin.anchor)==null?void 0:CA.data)??{}}),EA=e.computed(()=>Object.values(aA.value).flat().length),hA=e.computed(()=>r.value<=0&&!w.value),p=(X,CA,BA)=>{let AA=Array.from(document.body.querySelectorAll(BA.uid?`span[data-uid="${BA.uid}"]`:`span[data-frag-id="anchor_${X}"]`));BA.uid||(AA=AA.filter(yA=>!yA.dataset.uid)),AA.forEach(yA=>{var cA,qA;return(qA=(cA=a.value)==null?void 0:cA.plugin.anchor)==null?void 0:qA.remove(yA)}),B("anchorRemove",BA)},v=X=>Object.entries(X).filter(([CA,BA])=>!!BA.length).map(([CA,BA])=>e.createVNode("div",{style:{position:"absolute",top:`${CA}px`,width:"100%",paddingLeft:"24px",transform:"translateY(-4px)"},class:[BA.length>1&&"multi-anchor","anchor-wrapper"]},[BA.length>1?BA.slice(0,6).map(({background:AA,data:yA,id:cA})=>W(cA,CA,AA,yA,!0)):W(BA[0].id,CA,BA[0].background,BA[0].data),BA.length>6?e.createVNode(fA.Popover,{trigger:"click",position:"tr",popupContainer:".c-editor-container__core-anchor",contentClass:"anchor-popover",contentStyle:{padding:"6px 12px"}},{default:()=>e.createVNode(fA.Button,{shape:"circle",style:{width:"28px",height:"28px",transform:"translate(8px, 3px)"}},{default:()=>[e.createVNode(rt,null,null)]}),content:()=>e.createVNode("div",{class:"multi-anchor anchor-popover-wrapper"},[BA.slice(6).map(({background:AA,data:yA,id:cA})=>W(cA,CA,AA,yA,!0))])}):null])),W=(X,CA,BA,AA,yA=!1)=>{const cA=()=>I.listenMode===IC.multiple||I.listenAnchorId!==`${AA.id}_${AA.uid}`?e.createVNode("span",{onClick:()=>B("anchorListen",AA,H(AA))},[e.createVNode(vo,{class:jA("info-play")},null)]):e.createVNode("span",{onClick:()=>B("anchorListenStop",AA)},[e.createVNode(bo,{class:jA("info-play")},null)]),qA=()=>{var KA;return e.createVNode("section",{class:jA(),style:{backgroundColor:BA}},[((KA=E.anchor)==null?void 0:KA.call(E,{anchor:AA,listen:ig,listenStop:zA,update:z}))??e.createVNode("img",{src:AA.avatar,class:jA("avatar")},null),e.createVNode("section",{class:jA("info"),style:{display:yA?"none":"flex"}},[e.createVNode("span",{class:jA("info-name"),title:AA.name},[AA.name]),e.createVNode("label",{class:jA("info-speed-volume")},[e.createTextVNode("语速: "),AA.speed,e.createTextVNode(", 音量: "),AA.volume]),e.createVNode("div",{onClick:()=>p(X,CA,AA)},[e.createVNode(PC,{class:jA("info-rem")},null)]),cA()]),yA?e.createVNode("div",{class:jA("rem"),onClick:()=>p(X,CA,AA)},[e.createVNode(PC,{class:jA("info-rem")},null)]):null])},ig=()=>B("anchorListen",AA,H(AA)),zA=()=>B("anchorListenStop",AA);return qA()},z=X=>{const{uid:CA}=X,{id:BA}=X,AA=Object.keys(aA.value);for(let cA=0;cA<AA.length;cA++){const qA=AA[cA],zA=aA.value[qA].findIndex(KA=>KA.data.uid?KA.data.uid===CA:KA.id===BA);if(zA>-1){const KA=aA.value[qA][zA];aA.value[qA].splice(zA,1,{...KA,data:{...X}});break}}let yA=Array.from(document.body.querySelectorAll(CA?`span[data-uid="${CA}"]`:`span[data-frag-id="anchor_${BA}"]`));CA||(yA=yA.filter(cA=>!cA.dataset.uid)),yA.forEach(cA=>Object.assign(cA.dataset,{provider:X.provider,person:X.person,volume:X.volumn||X.volume,speed:X.speed,emotion:X.activeEmotion,role:X.activeRole??"",name:X.name}))},m=()=>{},Y=()=>{var X;return e.createVNode("div",{class:UA("status",{simple:I.simple,disabled:I.disabled})},[((X=E["footer-left"])==null?void 0:X.call(E))??(I.simple?null:e.createVNode(fA.Button,{class:UA("status-clear"),onClick:P},{default:()=>[e.createTextVNode("清空")]})),e.createVNode("div",{class:UA("status-info")},[I.simple?null:e.createVNode(e.Fragment,null,[e.createVNode("label",{class:UA("status-info-label")},[e.createVNode("span",null,[e.createTextVNode("预计时长:")]),e.createVNode("span",null,[I.preTime||"00:00:00"])]),e.createVNode("label",{class:UA("status-info-label")},[e.createVNode("span",null,[e.createTextVNode("实际时长:")]),e.createVNode("span",null,[I.realTime||"00:00:00"])])]),I.showWordLimit?e.createVNode("label",{class:UA("status-info-length")},[e.createVNode("span",null,[r.value<=I.maxLength?r.value:I.maxLength]),e.createVNode("span",null,[e.createTextVNode(" / ")]),e.createVNode("span",null,[I.maxLength,I.simple?"":"字"])]):null])])},sA=e.ref();return{action:a,innerRender:()=>{var X,CA;return e.createVNode("section",{class:UA("wrapper")},[e.createVNode("div",{class:UA("",{simple:I.simple,disabled:I.disabled,refinable:I.refinable}),style:{height:de(I.editorHeight)?I.editorHeight:`${I.editorHeight}px`}},[!I.simple&&m(),e.createVNode("div",{class:UA("core")},[e.createVNode("div",{class:UA("core-content")},[e.createVNode("div",{class:UA("core-content-editor")},[e.createVNode("div",{class:UA("core-content-editor-placeholder"),style:{display:hA.value?"block":"none"}},[I.placeholder]),e.createVNode("div",{ref:n,class:UA("core-content-editor-content"),contenteditable:!I.disabled,onDragover:BA=>BA.preventDefault(),onDrop:BA=>BA.preventDefault()},[e.createVNode("p",{class:NA},[e.createVNode("br",null,null)])])])]),I.simple?null:e.createVNode("div",{ref:o,class:UA("core-anchor")},[EA.value?v(aA.value):null])]),!I.simple&&e.createVNode(Ht,null,null),I.refinable&&e.createVNode(Yo,{ref:sA},null)]),!I.simple&&e.createVNode("div",{class:UA("splitor")},null),!I.simple&&!Object.values(aA.value).flat().length?e.createVNode("div",{class:UA("anchor-placeholder")},[e.createVNode("img",{src:Mt},null)]):null,Y(),e.createVNode("span",{style:"display: none"},[JSON.stringify(Object.keys(((CA=(X=a.value)==null?void 0:X.plugin.anchor)==null?void 0:CA.data)??{})),Object.values(aA.value).flat().length])])},innerGetContent:d,innerSetContent:D,innerAppendContent:f,innerGetTextContent:u,innerInsertContent:F,innerDeleteContent:R,innerUpdateContent:N,innerIsCaret:M,innerIsRange:G,innerIsSelectionInDifferentParas:S,innerIsSelectionContainsTag:U,innerGetAnchorTtsMark:H,innerGetAnchorTtsEmotionAndRole:O,innerIsAllMarkedByAnchor:_,innerAddExtraAnchors:K,innerUpdateAnchor:z,innerClearContent:P,innerInsertContentAtCursor:tA,innerRenderHightlight:QA,innerUnrenderHightlight:nA}},methods:{getContent(I){return this.innerGetContent(I)},getHtml(I){return this.getContent(I)},setContent(I){return this.innerSetContent(I)},setHtml(I){return this.setContent(I)},appendContent(I){return this.innerAppendContent(I)},getTextContent(){return this.innerGetTextContent()},insertContent(I){return this.innerInsertContent(I)},deleteContent(){return this.innerDeleteContent()},updateContent(I){return this.innerUpdateContent(I)},isCaret(){return this.innerIsCaret()},isRange(){return this.innerIsRange()},isSelectionInDifferentParas(){return this.innerIsSelectionInDifferentParas()},isSelectionContainsTag(I){return this.innerIsSelectionContainsTag(I)},getAnchorTtsMark(I,E=!1){return this.innerGetAnchorTtsMark(I,E)},getAnchorTtsEmotionAndRole(I){return this.innerGetAnchorTtsEmotionAndRole(I)},isAllMarkedByAnchor(){return this.innerIsAllMarkedByAnchor()},addExtraAnchors(I){return this.innerAddExtraAnchors(I)},updateAnchor(I){return this.innerUpdateAnchor(I)},clearContent(){return this.innerClearContent()},insertContentAtCursor(I){return this.innerInsertContentAtCursor(I)},clear(){return this.setContent(`<p class="${NA}"><br /></p>`)},renderHighlight(I){return this.innerRenderHightlight(I)},unrenderHighlight(){return this.innerUnrenderHightlight()}},render(){return this.innerRender()}}),OI=Object.assign(jC,{install:(I,E)=>{I.component("EditorContainer",jC)}}),Po=Object.assign(OI,{install:I=>{I.component(OI.name,OI)}});exports.ICommandExecutor=gB;exports.IContentManager=_C;exports.ICursorManager=$C;exports.IEditorCore=ZC;exports.IPlugin=qg;exports.IUndoManager=AB;exports.ListenModeEnum=IC;exports.PluginFlag=q;exports.SelectionType=XC;exports.default=Po;
76
76
  //# sourceMappingURL=index.js.map