import{e as D,q as v,T as F,aO as k}from"./index-85f01823-1724234974036.js";const L="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAQJJREFUWEftmD0PAUEQhmdWcw0aLjlR+fhbOtHQoFQq7xQaEZ2/RVRESBTCiUjsiER19nZOKE4y197s7jvPO7tze+j5miBFD4ogxg0hxJXrfxBSiAMNsLdloxByWpNvilEKu5rgbB0P4GqiYTTGSCijsL7u4tI2YW1MxfBGRtHKwcKmjQfb+PKIandNi/QLKvnUiap0sjBftfBoy7A6IfcS0s5oWQJClSnlrydovBHiqj7u/beWxc2LIog7qYWQEAKAJAej7DKudQghISS9jGspQkgIvQj85weaF1AzaqECyGqi4JNr0LaHM64UEhH61Q+JbV+x67EBz4xEEOerEEoToQcvexD4nAzBpwAAAABJRU5ErkJggg==",U="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAAXNSR0IArs4c6QAAAodJREFUaEPtmz9oFFEQxn+zhSnuzs4gQcFLxMLCTkghEivFQtDWXjClhY2YImJjYWcE+7QKgmCXIBaBlIKgmD3BEES7271Cix15m+xxSe7cP9m97D3etjc7M983376dt29OyHip6onvPa6pcgu4iDKjMAM0M7ooahYK7CDsAJ9FeHuuwZqI/M3iUNKMOqGejpQllLvAyTT7Mf3eRVj1hOV2U37+L+ZIgKo61Ql5hPJAoTGmxHOFEeghPG83eSoif4bdPBSgqZpGvFGYzxXxmIwFNsTj9rBqHgLoh3pJlXcoZ44p32JhhW2Em3NN+TToYB/Avedtc+LAJYiEbU+4PFjJPsD4mQtYnxRZjiqzkWu7xULyTPYB+oEuq/K4mD7qdZcIT2ZbsmSyigHuLSrf6rpa5qXPrK7icd5INQa4FegKyv28jmptL7yca8mimA7FD/hdo5d4Wbx1Z1uckk6o16OI92V5rZMfz+OG+IG+UGWxTomVlYsIKwbgmioLZTmtkx8R1sXv6heFC1UntvEDnn3YjfLwKsyfrTpi/Ir4KltdDcaw5eHOKvzqaYxquiG8NnuT6q/QANyNWvF15dX+MB/vpe7USsnIASyFRsBVsCwmD/hxEi2LWCfRsph0Eq2ISSfRiogtvIomvWXSflWUX9zWHaV3LQxwsLesClzi9yi9qwM4qjrWSzSvLN0qmpexjPaFn8GM/vtmroJ5Gcto7yqYkahUMyfRVIqKGTiJFuPt8F1OomUxOWTDa/OH38D+T/f2H77Yfnxm/QGo9UfYZlW1egjBALR+jMSAtHoQyAC0fpQrkWqk2DmMl7RwVo9TJiCtHohNQFo90jy447B2KP3g9mxS/1bwD07eyHFyNeUXAAAAAElFTkSuQmCC",Q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAAXNSR0IArs4c6QAAAllJREFUaEPtmzFrFEEUx3//LbS4OztFgoKXiIWFnZBKYqVYCNr6CUxpYSOmiNhY2Bk/QVoFQbBLsApYCoJi7gRDEO1uN4UW92SObDj1ztwOm7vZYbe9mTfv9/5v5nZm3ooJHzM79mWPq2bcBC5izBnMAc0JTfg2ywS7iF3gg8Srcw02JP2axKAOa9TN7HTfWMG4A5w4rP2Ufu8h1hOx2m7q2//GHAtoZse7GQ8w7hk0puR4oWEEe4in7SaPJf0c1XkkoFPN+rw0WCw04owaC7aUcGuUmv8AdjK7ZMZrjDMz8tdvWLGDuLHQ1PthA38A7s+3d5WDy4nETiIuDyt5ADiYcymbVUnLcTK7dG23WMrn5AFgJ7VVMx765UdYvSQezbe04rwaAO4vKp9DXS2Lhs+trko471J1ALid2hrG3aKGgm4vni+0tCz3htJJ+RHQn3hZcevNtzipbmbX+n3elGU1JDtJwnV1UntmxnJIjpXli8SaA9wwY6ksoyHZkdhUp2cfDS6E5FhZvgg+abtn6RS2PGX5XNRO5gCtaK8qta8Bq6TWyP1gnaIVl7CegxUXkFrBWsHAI+Cdoltf4clb+L53tC9Cpxri/hVYPOsXSW/A2+tHD5cjOcgX7lzd46kBxwUt+hT1yJaZdPFO0Zl46zFoDegRtKC61AoGJYeHM7WCHkELqkutYFByeDgT+8FvGv/RffyXL7Ffn0V/ARr9FbZbeaMuQnCA0ZeROMioC4EcYPSlXHmq9o04i/Hy17yoyylzyKgLYnPIqEuah3cl0Ral/731qupnBb8BLD56cQ63aRAAAAAASUVORK5CYII=",B=(O,y)=>{const h=O?"#"+O:"#musicContent",C=y||"selectionCouser",c=D({showDom:!1,synth:null,selectOptions:{startIndex:0,anchorOffset:0,endIndex:0,focusOffset:0},isSpeak:!1}),x=e=>{var r;const l=document.createDocumentFragment();return(r=e.childNodes)==null||r.forEach(t=>{if(t.nodeType===Node.TEXT_NODE){const a=t.textContent.split(new RegExp("(?<=[,,;;。])\\s*"));a==null||a.forEach(f=>{if(f.trim()){const i=document.createElement("label");i.textContent=f.trim(),i.classList.add("speak-label"),l.appendChild(i)}})}else if(t.nodeType===Node.ELEMENT_NODE){const a=document.createElement(t.nodeName.toLowerCase());Array.from(t.attributes).forEach(i=>{a.setAttribute(i.name,i.value)});const f=x(t);a.appendChild(f),l.appendChild(a)}}),l},u=e=>{if(e.rangeCount>0){const l=e.anchorNode,r=e.anchorOffset,t=e.focusNode,a=e.focusOffset;if(l===t)return r{const e=window.getSelection(),l=e.rangeCount>0?e.getRangeAt(0):null;if(e.toString().length>0){c.showDom=!0;const r=document.querySelector(h),t=r==null?void 0:r.querySelectorAll("label.speak-label");let a=0,f=0,i=0,o=0;if(console.log(e,"selection"),e.focusOffset===0&&e.anchorOffset===0){const s=e.anchorNode.parentNode.parentElement,n=s.childNodes[0],A=s.childNodes[s.childNodes.length-1];t==null||t.forEach((p,S)=>{p===n&&(a=S,f=0),p===A&&(i=S,o=A.textContent.length)})}else{const d=u(e)==="up"?e.anchorNode.parentNode:e.focusNode.parentNode,s=u(e)==="down"?e.anchorNode.parentNode:e.focusNode.parentNode;u(e)==="up"?(f=e.anchorOffset,o=e.focusOffset):(f=e.focusOffset,o=e.anchorOffset),t==null||t.forEach((n,A)=>{n===d&&(a=A,f=u(e)==="up"?e.anchorOffset:e.focusOffset),n===s&&(i=A,o=u(e)==="down"?e.anchorOffset:e.focusOffset)})}c.selectOptions.startIndex=a,c.selectOptions.anchorOffset=f,c.selectOptions.endIndex=i,c.selectOptions.focusOffset=o}else c.showDom=!1;if(setTimeout(()=>{e.type!=="Range"&&(c.showDom=!1)},200),l&&!e.isCollapsed){const r=l.getClientRects();if(r.length>0){const t=r[0],a=t.left,f=t.top,i=t.bottom,o=t.height,d=document.querySelector(h),s=d==null?void 0:d.getBoundingClientRect(),n=document.getElementById(C),A=n==null?void 0:n.getBoundingClientRect();console.log({parentRect:s,showDomRect:A,firstRect:t,dom:document.querySelector(h)}),console.log(!1,(s==null?void 0:s.bottom)-i+(A.height+o/2)+(d==null?void 0:d.scrollTop)),n.style.top=(f-(s==null?void 0:s.top)+(A.height+o/2)+(d==null?void 0:d.scrollTop)).toFixed(2)+"px",(s==null?void 0:s.width)-(a-(s==null?void 0:s.left))>A.width?(n.style.left=(a-(s==null?void 0:s.left)).toFixed(2)+"px",n.style.right="auto"):(n.style.right="0px",n.style.left="auto")}}},I=()=>{m(),E({startIndex:c.selectOptions.startIndex,anchorOffset:c.selectOptions.anchorOffset})},T=()=>{m(),E(c.selectOptions)};function N(){var e;window.getSelection?(e=window.getSelection())==null||e.removeAllRanges():document.selection&&document.selection.empty(),c.showDom=!1}const m=()=>{var r;(r=c.synth)==null||r.cancel(),c.isSpeak=!1;const e=document.querySelector(h),l=e==null?void 0:e.querySelectorAll("label.speak-label");l==null||l.forEach((t,a)=>{t.classList.toggle("highlight",a===-1)}),N()},b=()=>{N();try{E({startIndex:0})}catch(e){console.log(e,"12")}},E=e=>{const l=document.querySelector(h),r=l==null?void 0:l.querySelectorAll("label.speak-label");let t=e.startIndex||0;const a=e.endIndex===void 0?r.length-1:e.endIndex,f=o=>{r==null||r.forEach((s,n)=>{s.classList.toggle("highlight",n===o)});const d=l==null?void 0:l.querySelector(".highlight");d==null||d.scrollIntoView({behavior:"smooth",block:"center"})},i=()=>{try{c.synth=window.speechSynthesis,c.synth.speaking&&c.synth.cancel();let o=r[t].textContent;if(o.length<=0){console.error("暂无播放内容");return}e.startIndex===e.endIndex&&e.endIndex!==void 0?o=o.substr(e.anchorOffset,(e.focusOffset||0)-(e.anchorOffset||0)):(e.startIndex===t&&(o=o.substr(e.anchorOffset,o.length)),e.endIndex===t&&(o=o.substr(0,e.focusOffset)));const d=["长笛","打击乐","乐曲","曲"],s=["尝笛","打击月","月取","取"];o&&d.forEach((A,p)=>{if(o.includes(A)){const S=new RegExp(A,"g");o=o.replace(S,s[p])}}),console.log(o,t,a,"---------");const n=new SpeechSynthesisUtterance(o);n.lang="zh-CN",n.volume=1,n.rate=.8,n.pitch=1.5,n&&(n.onstart=null,n.onend=null,n.onerror=null),n.onstart=()=>{c.isSpeak=!0,f(t)},n.onend=()=>{console.log("朗读结束"),t++,t<=a&&c.isSpeak?i():(t=0,f(-1),c.isSpeak=!1)},n.onerror=()=>{t++,t<=a&&c.isSpeak?i():c.isSpeak=!1},setTimeout(()=>{c.synth.speak(n)},80)}catch(o){console.log(o,"e")}};i()},w=()=>{document.removeEventListener("mouseup",g),document.addEventListener("touchend",g),m()};return v(async()=>{document.addEventListener("mouseup",g),document.addEventListener("touchend",g)}),F(()=>{w()}),{...k(c),onAllSpeak:b,onTextStart:I,onDestory:w,onCloseSpeak:m,onTextReadOnly:T,processNode:x}};export{U as a,Q as b,L as i,B as u};