colxiu-website.b7a3d05c.js 4.1 KB

1
  1. import{d as k,i as f,w as L,b as v,I as N,k as x,o as z,e as R,g as T}from"./base.7a4a12c7.js";import"./lib-flexible.08f197e6.js";import{n as I,C as O,u as X,b as D,s as w,E as A,M as $,r as q,q as U,c as j,g as V,d as W,e as H,f as Y,h as G,o as J,i as K,j as Q}from"./index.769efca5.js";import{s as b}from"./index.module.0da50ae1.js";import{P as Z}from"./index.81d5fd23.js";import{S as ee}from"./index.d2bff4a5.js";import{B as te}from"./index.7f3b2149.js";import"./index.48860036.js";function de(){import("data:text/javascript,")}const ae="_container_1fh7z_1",se="_musicSheet_1fh7z_4",ne="_btn_1fh7z_11",oe="_btnCont_1fh7z_18";var h={container:ae,musicSheet:se,btn:ne,btnCont:oe};window.OffscreenCanvas||(window.OffscreenCanvas=class{constructor(t,s){return this.canvas=document.createElement("canvas"),this.canvas.width=t,this.canvas.height=s,this.canvas.convertToBlob=()=>new Promise(e=>{this.canvas.toBlob(e)}),this.canvas}});const re=I.offscreen();function ce(c){return new Promise((t,s)=>{const e=new FileReader;e.onloadend=()=>t(e.result),e.readAsDataURL(c)})}async function M(c,t,s){const e=new OffscreenCanvas(t,s),o=e.getContext("2d");o.fillStyle="#FFFFFF";const r=await O.fromString(o,c,re);r.resize(t*2,s*2,"xMidYMid meet"),await r.start();const S=await e.convertToBlob();return await ce(S)}const g=X();console.log(g,"search");const ie=async(c,t)=>{const s=await H(c);let e=f("");const o=Y(s);e.value=G(o.parsedXML,{title:t.musicSheetName});const r=Number(g["part-index"])||0;return e.value=J(e.value,r),e},le=c=>{const t=f("loading"),s=f({}),e=f({});return z(async()=>{t.value="loading";try{const o=await q.get(`/open/music/sheet/detail/${g.id}`,{prefix:"/api-website"});s.value=o.data,w.partIndex=0,t.value="success"}catch(o){t.value="error",console.log(o)}}),[t,s,e]};var ue=k({name:"ColexiuWebSite",setup(){const c=f(!0),t=f(!1),s=f(""),[e,o,r]=le(g.id),S=new U(650,884);L(e,async()=>{if(e.value==="success"&&o.value.xmlFileUrl){const a=await ie(o.value.xmlFileUrl,o.value);s.value=a.value}}),D();const y=async a=>{if(a)for(const d of a.Drawer.Backends){const{state:i,width:n,height:l}=d.ctx,{x:u,y:p}=i.scale,m=new XMLSerializer().serializeToString(d.ctx.svg);return await M(m,n/u,l/p)}},C=async a=>{if(a){const d=[];if(a.Drawer.Backends.length>0){for(let i=0,n=a.Drawer.Backends.length;i<n;i++){const l=a.Drawer.Backends[i],{state:u,width:p,height:m}=l.ctx,{x:B,y:E}=u.scale,F=new XMLSerializer().serializeToString(l.ctx.svg);d.push(await M(F,p/B,m/E))}return d}}},_=async a=>{if(window.parent){const n=g.pageType==="multiple"?await C(a):await y(a);console.log(n,"img"),window.parent.postMessage(n,"*")}j.osmd=a;const d=V(a);c.value=!1;const i=(n,l,u=!0)=>{const p=K(n);w.evaluatings={...w.evaluatings,[p.measureIndex]:{...p,...Q(l.score),score:l.score,dontTransition:u}}};if(r.value.userMeasureScore){for(const n in r.value.userMeasureScore)if(Object.prototype.hasOwnProperty.call(r.value.userMeasureScore,n)){const l=r.value.userMeasureScore[n];for(const u of d)if(l.measureRenderIndex==u.noteElement.sourceMeasure.MeasureNumberXML-1)if(!u.noteElement.tie)i(u,l);else for(const p of u.noteElement.tie.notes){const m=W(p);!m||i(m,l,p!==u.noteElement.tie.StartNote)}}}},P=()=>{t.value=!0,c.value=!1};return()=>{var i,n;const a=c.value||e.value==="loading",d=t.value||e.value==="error";return v("div",{class:[b.container,x.sett.eyeProtection&&"eyeProtection",x.sett.camera&&"openCamera"]},[v("div",{id:"colexiu-detail-music-sheet",class:[b.musicSheet,h.musicSheet],style:{paddingLeft:w.isSpecialShapedScreen?w.notchHeight/2+"px":"auto"}},[a&&!d&&v(ee,{class:b.skeleton,rowWidth:"80%",title:!0,row:15},null),d&&v(A,null,null),s.value&&v($,{score:s.value,opotions:{drawTitle:!1,drawComposer:!1,drawLyricist:!1,drawMetronomeMarks:!0,drawMeasureNumbers:!0},EngravingRules:g.pageType==="multiple"?{PageFormat:S}:{},onRerender:_,onRenderError:P},null)]),((i=r.value)==null?void 0:i.videoFilePath)&&((n=r.value)==null?void 0:n.expire)===0?v(Z,N(r.value,{btnClass:h.btn,popupClass:h.popup}),{default:()=>[v(te,{class:h.btnCont},{default:()=>[v("img",{src:ReplayIcon},null)]})]}):null])}}});R();T(ue).mount("#app");export{de as __vite_legacy_guard};