Spaces:
Sleeping
Sleeping
| import{c as $,b,r as c,d as P,C as U,A as pe,i as fe,_ as be,z as Ce,B as ge,S as Ne,j as v,m as ke}from"./umi-a12c8253.js";import{p as Ee,a as K,v as we,x as Pe}from"./parser-b66b074b.js";import{S as Se}from"./scheduler-a7fa9c3c.js";import{S as je}from"./schedulePool-cc4538c2.js";import{A as Oe}from"./index-868eaf8d.js";import{B as de}from"./button-f56a19a0.js";import{o as Q}from"./_setToString-ca5ad23e.js";import{T as Te,a as $e}from"./index-dfec1b5b.js";import{S as ve,C as ze}from"./TextArea-ec8ab387.js";import{S as Me}from"./index-40bfaf7c.js";import{I as Le,U as he,a as _e}from"./UploadOutlined-31d12a4f.js";import{J as Re}from"./jszip.min-f65a05ae.js";import{S as Be}from"./index-1d8a15fd.js";import{S as Ie}from"./index-02e1374a.js";import{a as Ae,P as Fe}from"./PlaySquareOutlined-1144cdf9.js";import"./EditOutlined-d468c101.js";import"./progress-81ce73da.js";import"./DeleteOutlined-e5d1e611.js";import"./DownloadOutlined-b3f9ad21.js";var De=function(t){var r=t.prefixCls,a=t.className,s=t.style,o=t.size,l=t.shape,n=$(b(b({},"".concat(r,"-lg"),o==="large"),"".concat(r,"-sm"),o==="small")),u=$(b(b(b({},"".concat(r,"-circle"),l==="circle"),"".concat(r,"-square"),l==="square"),"".concat(r,"-round"),l==="round")),i=c.useMemo(function(){return typeof o=="number"?{width:o,height:o,lineHeight:"".concat(o,"px")}:{}},[o]);return c.createElement("span",{className:$(r,n,u,a),style:P(P({},i),s)})};const ee=De;var Ue=function(t){var r=t.prefixCls,a=t.className,s=t.active,o=t.shape,l=o===void 0?"circle":o,n=t.size,u=n===void 0?"default":n,i=c.useContext(U),m=i.getPrefixCls,h=m("skeleton",r),p=Q(t,["prefixCls","className"]),C=$(h,"".concat(h,"-element"),b({},"".concat(h,"-active"),s),a);return c.createElement("div",{className:C},c.createElement(ee,P({prefixCls:"".concat(h,"-avatar"),shape:l,size:u},p)))};const qe=Ue;var Ye=function(t){var r=t.prefixCls,a=t.className,s=t.active,o=t.block,l=o===void 0?!1:o,n=t.size,u=n===void 0?"default":n,i=c.useContext(U),m=i.getPrefixCls,h=m("skeleton",r),p=Q(t,["prefixCls"]),C=$(h,"".concat(h,"-element"),b(b({},"".concat(h,"-active"),s),"".concat(h,"-block"),l),a);return c.createElement("div",{className:C},c.createElement(ee,P({prefixCls:"".concat(h,"-button"),size:u},p)))};const Ke=Ye;var Ge={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"dot-chart",theme:"outlined"};const Je=Ge;var We=function(t,r){return c.createElement(pe,fe(fe({},t),{},{ref:r,icon:Je}))},Xe=c.forwardRef(We);const He=Xe;var Ze=function(t){var r=t.prefixCls,a=t.className,s=t.style,o=t.active,l=t.children,n=c.useContext(U),u=n.getPrefixCls,i=u("skeleton",r),m=$(i,"".concat(i,"-element"),b({},"".concat(i,"-active"),o),a),h=l??c.createElement(He,null);return c.createElement("div",{className:m},c.createElement("div",{className:$("".concat(i,"-image"),a),style:s},h))};const Ve=Ze;var Qe="M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",et=function(t){var r=t.prefixCls,a=t.className,s=t.style,o=t.active,l=c.useContext(U),n=l.getPrefixCls,u=n("skeleton",r),i=$(u,"".concat(u,"-element"),b({},"".concat(u,"-active"),o),a);return c.createElement("div",{className:i},c.createElement("div",{className:$("".concat(u,"-image"),a),style:s},c.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:"".concat(u,"-image-svg")},c.createElement("path",{d:Qe,className:"".concat(u,"-image-path")}))))};const tt=et;var at=function(t){var r=t.prefixCls,a=t.className,s=t.active,o=t.block,l=t.size,n=l===void 0?"default":l,u=c.useContext(U),i=u.getPrefixCls,m=i("skeleton",r),h=Q(t,["prefixCls"]),p=$(m,"".concat(m,"-element"),b(b({},"".concat(m,"-active"),s),"".concat(m,"-block"),o),a);return c.createElement("div",{className:p},c.createElement(ee,P({prefixCls:"".concat(m,"-input"),size:n},h)))};const rt=at;var st=function(t){var r=function(i){var m=t.width,h=t.rows,p=h===void 0?2:h;if(Array.isArray(m))return m[i];if(p-1===i)return m},a=t.prefixCls,s=t.className,o=t.style,l=t.rows,n=be(Array(l)).map(function(u,i){return c.createElement("li",{key:i,style:{width:r(i)}})});return c.createElement("ul",{className:$(a,s),style:o},n)};const nt=st;var ct=function(t){var r=t.prefixCls,a=t.className,s=t.width,o=t.style;return c.createElement("h3",{className:$(r,a),style:P({width:s},o)})};const it=ct;function ie(e){return e&&Ce(e)==="object"?e:{}}function ot(e,t){return e&&!t?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}function lt(e,t){return!e&&t?{width:"38%"}:e&&t?{width:"50%"}:{}}function ut(e,t){var r={};return(!e||!t)&&(r.width="61%"),!e&&t?r.rows=3:r.rows=2,r}var G=function(t){var r=t.prefixCls,a=t.loading,s=t.className,o=t.style,l=t.children,n=t.avatar,u=n===void 0?!1:n,i=t.title,m=i===void 0?!0:i,h=t.paragraph,p=h===void 0?!0:h,C=t.active,T=t.round,z=c.useContext(U),A=z.getPrefixCls,_=z.direction,S=A("skeleton",r);if(a||!("loading"in t)){var M=!!u,f=!!m,j=!!p,E;if(M){var w=P(P({prefixCls:"".concat(S,"-avatar")},ot(f,j)),ie(u));E=c.createElement("div",{className:"".concat(S,"-header")},c.createElement(ee,P({},w)))}var O;if(f||j){var N;if(f){var R=P(P({prefixCls:"".concat(S,"-title")},lt(M,j)),ie(m));N=c.createElement(it,P({},R))}var B;if(j){var I=P(P({prefixCls:"".concat(S,"-paragraph")},ut(M,f)),ie(p));B=c.createElement(nt,P({},I))}O=c.createElement("div",{className:"".concat(S,"-content")},N,B)}var F=$(S,b(b(b(b({},"".concat(S,"-with-avatar"),M),"".concat(S,"-active"),C),"".concat(S,"-rtl"),_==="rtl"),"".concat(S,"-round"),T),s);return c.createElement("div",{className:F,style:o},E,O)}return typeof l<"u"?l:null};G.Button=Ke;G.Avatar=qe;G.Input=rt;G.Image=tt;G.Node=Ve;const mt=G;var ft=globalThis&&globalThis.__rest||function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,a=Object.getOwnPropertySymbols(e);s<a.length;s++)t.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(r[a[s]]=e[a[s]]);return r},dt=function(t){var r=t.prefixCls,a=t.className,s=t.hoverable,o=s===void 0?!0:s,l=ft(t,["prefixCls","className","hoverable"]);return c.createElement(ge,null,function(n){var u=n.getPrefixCls,i=u("card",r),m=$("".concat(i,"-grid"),a,b({},"".concat(i,"-grid-hoverable"),o));return c.createElement("div",P({},l,{className:m}))})};const ye=dt;var vt=globalThis&&globalThis.__rest||function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,a=Object.getOwnPropertySymbols(e);s<a.length;s++)t.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(r[a[s]]=e[a[s]]);return r};function ht(e){var t=e.map(function(r,a){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(a)},c.createElement("span",null,r))});return t}var xt=c.forwardRef(function(e,t){var r=c.useContext(U),a=r.getPrefixCls,s=r.direction,o=c.useContext(Ne),l=function(x){var L;(L=e.onTabChange)===null||L===void 0||L.call(e,x)},n=function(){var x;return c.Children.forEach(e.children,function(L){L&&L.type&&L.type===ye&&(x=!0)}),x},u=e.prefixCls,i=e.className,m=e.extra,h=e.headStyle,p=h===void 0?{}:h,C=e.bodyStyle,T=C===void 0?{}:C,z=e.title,A=e.loading,_=e.bordered,S=_===void 0?!0:_,M=e.size,f=e.type,j=e.cover,E=e.actions,w=e.tabList,O=e.children,N=e.activeTabKey,R=e.defaultActiveTabKey,B=e.tabBarExtraContent,I=e.hoverable,F=e.tabProps,te=F===void 0?{}:F,J=vt(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),k=a("card",u),ae=c.createElement(mt,{loading:!0,active:!0,paragraph:{rows:4},title:!1},O),H=N!==void 0,Z=P(P({},te),b(b({},H?"activeKey":"defaultActiveKey",H?N:R),"tabBarExtraContent",B)),W,V=w&&w.length?c.createElement(Te,P({size:"large"},Z,{className:"".concat(k,"-head-tabs"),onChange:l,items:w.map(function(g){var x;return{label:g.tab,key:g.key,disabled:(x=g.disabled)!==null&&x!==void 0?x:!1}})})):null;(z||m||V)&&(W=c.createElement("div",{className:"".concat(k,"-head"),style:p},c.createElement("div",{className:"".concat(k,"-head-wrapper")},z&&c.createElement("div",{className:"".concat(k,"-head-title")},z),m&&c.createElement("div",{className:"".concat(k,"-extra")},m)),V));var re=j?c.createElement("div",{className:"".concat(k,"-cover")},j):null,se=c.createElement("div",{className:"".concat(k,"-body"),style:T},A?ae:O),ne=E&&E.length?c.createElement("ul",{className:"".concat(k,"-actions")},ht(E)):null,ce=Q(J,["onTabChange"]),d=M||o,y=$(k,b(b(b(b(b(b(b(b({},"".concat(k,"-loading"),A),"".concat(k,"-bordered"),S),"".concat(k,"-hoverable"),I),"".concat(k,"-contain-grid"),n()),"".concat(k,"-contain-tabs"),w&&w.length),"".concat(k,"-").concat(d),d),"".concat(k,"-type-").concat(f),!!f),"".concat(k,"-rtl"),s==="rtl"),i);return c.createElement("div",P({ref:t},ce,{className:y}),W,re,se,ne)});const gt=xt;var yt=globalThis&&globalThis.__rest||function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,a=Object.getOwnPropertySymbols(e);s<a.length;s++)t.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(r[a[s]]=e[a[s]]);return r},pt=function(t){return c.createElement(ge,null,function(r){var a=r.getPrefixCls,s=t.prefixCls,o=t.className,l=t.avatar,n=t.title,u=t.description,i=yt(t,["prefixCls","className","avatar","title","description"]),m=a("card",s),h=$("".concat(m,"-meta"),o),p=l?c.createElement("div",{className:"".concat(m,"-meta-avatar")},l):null,C=n?c.createElement("div",{className:"".concat(m,"-meta-title")},n):null,T=u?c.createElement("div",{className:"".concat(m,"-meta-description")},u):null,z=C||T?c.createElement("div",{className:"".concat(m,"-meta-detail")},C,T):null;return c.createElement("div",P({},i,{className:h}),p,z)})};const bt=pt;var le=gt;le.Grid=ye;le.Meta=bt;const xe=le;const{Text:Ct,Title:Nt}=$e,ue="starry.liveScore.viewer",me=(e,t,r)=>((e==null?void 0:e.pages.slice(0,t).reduce((a,s)=>a+s.systems.length,0))||0)+r,kt=e=>{const t=e.source;if(!(t!=null&&t.w)||!(t!=null&&t.h))return"";const r=t.interval||1,a=t.matrix||[1,0,0,1,0,0];return`translate(${e.w/2} ${e.h/2}) matrix(${a.join(" ")}) scale(${1/r}) translate(${-t.w/2} ${-t.h/2})`},Et=e=>[...e.pages.map(t=>{var r;return(r=t.source)==null?void 0:r.url}),...e.pages.flatMap(t=>t.systems.flatMap(r=>r.staves.map(a=>{var s;return(s=a.image)==null?void 0:s.url})))].filter(Boolean),oe=e=>{if((e==null?void 0:e.format)!=="LiveScore"||(e==null?void 0:e.version)!==1||!Array.isArray(e==null?void 0:e.pages))throw new Error("Invalid LiveScore file.");return e},wt=async(e,t)=>{const r=[];return await Promise.all(Et(e).map(async a=>{if(!a||/^\w+:/.test(a)||a.startsWith("/"))return;const s=t.files[a];if(!s)throw new Error(`Missing asset: ${a}`);const o=await s.async("blob"),l=URL.createObjectURL(o);r.push(l),e.pages.forEach(n=>{var u;((u=n.source)==null?void 0:u.url)===a&&(n.source.url=l),n.systems.forEach(i=>{i.staves.forEach(m=>{var h;((h=m.image)==null?void 0:h.url)===a&&(m.image.url=l)})})})})),r},Pt=async e=>{if(/\.json$/i.test(e.name)||e.type==="application/json")return{liveScore:oe(JSON.parse(await e.text())),objectUrls:[]};const t=await Re.loadAsync(e),r=t.files["index.json"];if(!r)throw new Error("No index.json found in LiveScore package.");const a=oe(JSON.parse(await r.async("text"))),s=await wt(a,t);return{liveScore:a,objectUrls:s}},St=(e,t)=>{var a;const r=JSON.parse(JSON.stringify(t));(a=r.pages)==null||a.forEach(s=>{var o,l;(l=(o=s.source)==null?void 0:o.url)!=null&&l.startsWith("blob:")&&(s.source.url=""),s.systems.forEach(n=>{n.staves.forEach(u=>{var i,m;(m=(i=u.image)==null?void 0:i.url)!=null&&m.startsWith("blob:")&&(u.image.url="")})})}),sessionStorage.setItem(ue,JSON.stringify({fileName:e,liveScore:r}))},jt=()=>{const e=sessionStorage.getItem(ue);if(!e)return null;const t=JSON.parse(e);return{fileName:t.fileName||"Restored LiveScore",liveScore:oe(t.liveScore)}},Ot=e=>{switch(e){case"program":return"programChange";case"note-on":return"noteOn";case"note-off":return"noteOff";case"control":return"controller";case"pitch-bend":return"pitchBend";case"aftertouch":return"channelAftertouch";default:return e}},Tt=e=>{var s,o,l;if(!((s=e==null?void 0:e.events)!=null&&s.length))return null;const t=Math.max(1,...e.events.map(n=>Number.isFinite(n.track)?n.track+1:1)),r=Array(t).fill(null).map(()=>[]);e.events.forEach(n=>{var i;const u=Number.isFinite(n.track)?n.track:0;r[u].push({ticks:n.tick,type:"channel",subtype:Ot(n.type),...Number.isFinite(n.channel)?{channel:n.channel}:{},...Number.isFinite(n.note)?{noteNumber:n.note}:{},...Number.isFinite(n.velocity)?{velocity:n.velocity}:{},...Number.isFinite(n.program)?{programNumber:n.program}:{},...Number.isFinite(n.controller)?{controllerType:n.controller}:{},...Number.isFinite(n.value)?{value:n.value}:{},...(i=n.ids)!=null&&i.length?{ids:n.ids.map(String)}:{}})}),(o=e.tempos)==null||o.forEach(n=>{r[0].push({ticks:n.tick,type:"meta",subtype:"setTempo",microsecondsPerBeat:n.tempo})}),r.forEach(n=>{n.sort((i,m)=>i.ticks-m.ticks||(i.subtype==="noteOff"?-1:0));let u=0;n.forEach(i=>{i.deltaTime=Math.max(i.ticks-u,0),u=i.ticks}),n.push({deltaTime:Math.max((e.endTick||u)-u,0),type:"meta",subtype:"endOfTrack"})});const a=Pe.Notation.parseMidi({header:{formatType:1,ticksPerBeat:e.ticksPerBeat||480},tracks:r});return a.measures=(l=e.measures)==null?void 0:l.map(n=>({index:n.i,startTick:n.t1,endTick:n.t2})),a},$t=e=>{const t=new Map;return e==null||e.pages.forEach((r,a)=>{r.systems.forEach((s,o)=>{const l=me(e,a,o);s.staves.forEach(n=>{var u;(u=n.measures)==null||u.forEach((i,m)=>{var p,C;const h=((p=s.bars)==null?void 0:p[m])??s.w;(C=i.tokens)==null||C.forEach(T=>{T.id!==void 0&&t.set(String(T.id),{system:l,measure:m,x:T.x,endX:h})})})})})}),t},zt=e=>{var r;const t=(r=e==null?void 0:e.playback)==null?void 0:r.positions;return t!=null&&t.length?new Map(t.map(a=>[String(a.id),{system:a.system,measure:a.measure,x:a.x,endX:a.endX}])):$t(e)},Mt=e=>{var a,s;const t=zt(e),r={};return(s=(a=e==null?void 0:e.playback)==null?void 0:a.events)==null||s.forEach(o=>{var n;if(o.type!=="note-on"||!((n=o.ids)!=null&&n.length))return;const l=o.ids.map(u=>t.get(String(u))).filter(Boolean);l.length&&(r[o.tick]=r[o.tick]||[],r[o.tick].push(...l))}),Object.keys(r).length?Se.createFromTokenTable(r,e.playback.endTick):null},Lt=(e,t)=>{if(!e)return 0;let r=0;for(let a=0;a<e.pages.length;a+=1){const s=r+e.pages[a].systems.length;if(t>=r&&t<s)return a;r=s}return e.pages.length-1},_t=(e,t)=>{var r;if(!e)return null;for(let a=0;a<e.pages.length;a+=1){const s=e.pages[a];for(let o=0;o<s.systems.length;o+=1){if(me(e,a,o)!==t.system)continue;const l=(r=s.systems[o].measures)==null?void 0:r.find(n=>n.x1<=t.x&&n.x2>=t.x);return!l||!Number.isFinite(l.t1)||!Number.isFinite(l.t2)||l.x2===l.x1?null:l.t1+(t.x-l.x1)*(l.t2-l.t1)/(l.x2-l.x1)}}return null},Rt=(e,t,r)=>{const a=e==null?void 0:e.lookupTick(r);if(Number.isFinite(a))return{position:e.lookupPosition(a),tick:a};const o=((e==null?void 0:e.tickTable.filter(n=>n.system===r.system))||[]).flatMap(n=>[n.x,n.endX]).filter(Number.isFinite);if(o.length){const n=o.reduce((m,h)=>Math.abs(h-r.x)<Math.abs(m-r.x)?h:m),u={...r,x:n},i=e.lookupTick(u);return Number.isFinite(i)?{position:e.lookupPosition(i),tick:i}:null}const l=_t(t,r);return Number.isFinite(l)?{position:r,tick:l}:null},Bt=({liveScore:e,page:t,pageIndex:r,showSource:a,staffLayout:s,cursor:o,onSeekPosition:l})=>{var n,u;return v.jsxs("svg",{className:"live-score-page",viewBox:`0 0 ${t.w} ${t.h}`,children:[v.jsx(Be,{}),a&&((n=t.source)==null?void 0:n.url)&&v.jsx("image",{href:t.source.url,width:t.source.w,height:t.source.h,transform:kt(t),opacity:.35,preserveAspectRatio:"none"}),!a&&((u=t.tokens)==null?void 0:u.map((i,m)=>v.jsx("text",{className:`live-score-page-token ${i.textType}`,x:i.x,y:i.y,dominantBaseline:"hanging",textAnchor:"middle",style:{fontSize:i.fontSize},children:i.text},i.id??m))),t.systems.map((i,m)=>{var M;const h=me(e,r,m),p=i.staves[0],C=i.staves.at(-1),T=((p==null?void 0:p.y)??0)+((p==null?void 0:p.staffY)??0)-2,z=((C==null?void 0:C.y)??0)+((C==null?void 0:C.staffY)??0)+2,A=i.staves.map(f=>({y:f.y+f.staffY,radius:2})),_=s&&i.staffMask!==void 0?s.mask(i.staffMask):null,S=f=>{const j=f.currentTarget,E=j.getBoundingClientRect(),w=j.getBBox(),O=(f.clientX-E.left)/E.width*w.width;l({system:h,x:O})};return v.jsxs("g",{className:"live-score-system",transform:`translate(${i.x}, ${i.y})`,children:[i.staves.map((f,j)=>{var E,w,O;return v.jsxs("g",{className:"live-score-staff",transform:`translate(0, ${f.y})`,children:[!a&&((E=f.image)==null?void 0:E.url)&&v.jsx("image",{className:"background",href:f.image.url,x:f.image.x,y:f.image.y,width:f.image.width,height:f.image.height}),[-2,-1,0,1,2].map(N=>v.jsx("line",{x1:"0",x2:i.w,y1:f.staffY+N,y2:f.staffY+N},N)),(w=f.additionalLines)==null?void 0:w.map((N,R)=>v.jsx("line",{x1:N.left,x2:N.right,y1:f.staffY+N.n,y2:f.staffY+N.n},R)),(O=f.measures)==null?void 0:O.map((N,R)=>{var B;return v.jsx("g",{children:(B=N.tokens)==null?void 0:B.map((I,F)=>v.jsx("use",{id:I.id!==void 0?String(I.id):void 0,href:`#score-token-def-${I.t}`,x:I.x,y:f.staffY+I.y},F))},R)})]},j)}),!a&&((M=i.bars)==null?void 0:M.flatMap((f,j)=>[...i.staves.map((E,w)=>v.jsx("line",{className:"bar",x1:f,x2:f,y1:E.y+E.staffY-2,y2:E.y+E.staffY+2},`${j}-staff-${w}`)),...((_==null?void 0:_.conjunctions)||[]).map((E,w)=>{const O=i.staves[w],N=i.staves[w+1];return!O||!N?null:v.jsx("line",{className:`bar staff-layout-measure-bar${E===1?" dashed":""}${E===0?" blank":""}`,x1:f,x2:f,y1:O.y+O.staffY+2,y2:N.y+N.staffY-2},`${j}-conjunction-${w}`)})])),!a&&s&&i.staffMask!==void 0&&v.jsxs(v.Fragment,{children:[i.staves.length>=2&&v.jsx("line",{className:"connection",x1:0,x2:0,y1:T,y2:z}),v.jsx(Ie,{layout:s.mask(i.staffMask),positions:A})]}),(o==null?void 0:o.system)===h&&v.jsx("line",{className:"cursor",x1:o.x,x2:o.x,y1:T,y2:z}),v.jsx("rect",{className:"live-score-system-hit",x:0,y:T,width:i.w,height:z-T,onClick:S})]},m)})]})},It=()=>{const[e,t]=c.useState(),[r,a]=c.useState(""),[s,o]=c.useState([]),[l,n]=c.useState(!0),[u,i]=c.useState(!1),[m,h]=c.useState(!1),[p,C]=c.useState(!1),[T,z]=c.useState(!1),[A,_]=c.useState(0),[S,M]=c.useState(null),f=c.useRef(null),j=c.useRef(null),E=c.useRef(new je(performance)),w=c.useRef([]),O=c.useRef(null),N=c.useRef(0),R=c.useMemo(()=>Tt(e==null?void 0:e.playback),[e]),B=c.useMemo(()=>Mt(e),[e]),I=c.useMemo(()=>e!=null&&e.staffLayout?Ee(e.staffLayout):null,[e==null?void 0:e.staffLayout]),F=!!(e!=null&&e.pages.some(d=>{var y;return(y=d.source)==null?void 0:y.url})),te=!!(e!=null&&e.pages.some(d=>d.systems.some(y=>y.staves.some(g=>{var x;return(x=g.image)==null?void 0:x.url})))),J=(S==null?void 0:S.tick)===A?S:(B==null?void 0:B.lookupPosition(A))||null,k=J?Lt(e,J.system):null;c.useEffect(()=>{j.current=B},[B]),c.useEffect(()=>{var d;k===null||k===O.current||(O.current=k,(d=w.current[k])==null||d.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"}))},[k]),c.useEffect(()=>{try{const d=jt();if(!d)return;t(d.liveScore),a(d.fileName)}catch{sessionStorage.removeItem(ue)}},[]),c.useEffect(()=>{K.WebAudio.empty()?K.loadPlugin({soundfontUrl:"/soundfont/",api:"webaudio"}).then(()=>z(!0)):z(!0)},[]),c.useEffect(()=>()=>s.forEach(d=>URL.revokeObjectURL(d)),[s]),c.useEffect(()=>{var y,g;if(!R)return;const d=((y=f.current)==null?void 0:y.progressTicks)||0;return(g=f.current)==null||g.dispose(),f.current=new we(R,{cacheSpan:200,onMidi:(x,L)=>{let q;x.subtype==="noteOn"?(K.noteOn(x.channel,x.noteNumber,x.velocity,L),q=()=>{var D;return(D=x.ids)==null?void 0:D.forEach(Y=>{var X;return(X=document.getElementById(Y))==null?void 0:X.classList.add("notePlayOn")})}):x.subtype==="noteOff"&&(K.noteOff(x.channel,x.noteNumber,L),q=()=>{var D;return(D=x.ids)==null?void 0:D.forEach(Y=>{var X;return(X=document.getElementById(Y))==null?void 0:X.classList.remove("notePlayOn")})}),q&&E.current.appendTask(L,q)},onPlayFinish:()=>{C(!1),M(null),_(0),document.querySelectorAll(".notePlayOn").forEach(x=>x.classList.remove("notePlayOn"))}}),f.current.progressTicks=d,()=>{var x;return(x=f.current)==null?void 0:x.dispose()}},[R]);const ae=async d=>(await Z(d),he.LIST_IGNORE),H=async d=>{const y=Rt(j.current,e,d);if(!y||!f.current)return;const g=f.current.isPlaying;g&&(f.current.pause(),await new Promise(x=>setTimeout(x,0))),document.querySelectorAll(".notePlayOn").forEach(x=>x.classList.remove("notePlayOn")),f.current.progressTicks=y.tick,M({...y.position,tick:y.tick}),_(y.tick),g&&W()},Z=async d=>{var y;i(!0);try{const g=await Pt(d);s.forEach(x=>URL.revokeObjectURL(x)),(y=f.current)==null||y.pause(),document.querySelectorAll(".notePlayOn").forEach(x=>x.classList.remove("notePlayOn")),o(g.objectUrls),t(g.liveScore),a(d.name),St(d.name,g.liveScore),O.current=null,C(!1),M(null),_(0)}catch(g){ke.error((g==null?void 0:g.message)||"Failed to load LiveScore.")}finally{i(!1)}},W=async()=>{var d,y,g,x,L;(d=f.current)!=null&&d.isPlaying?(f.current.pause(),C(!1)):((g=(y=K.WebAudio).needsWarmup)!=null&&g.call(y)&&await((L=(x=K.WebAudio).awaitWarmup)==null?void 0:L.call(x)),f.current.play({nextFrame:()=>new Promise(q=>requestAnimationFrame(()=>{var Y;const D=((Y=f.current)==null?void 0:Y.progressTicks)||0;M(null),_(D),q()}))}),C(!0))},V=d=>d.dataTransfer.types.includes("Files"),re=d=>{d.preventDefault(),V(d)&&(N.current+=1,h(!0))},se=d=>{d.preventDefault()},ne=d=>{d.preventDefault(),N.current=Math.max(N.current-1,0),N.current===0&&h(!1)},ce=async d=>{var g;d.preventDefault(),N.current=0,h(!1);const y=(g=d.dataTransfer.files)==null?void 0:g[0];y&&await Z(y)};return v.jsxs("div",{className:"live-score-viewer",onDragEnter:re,onDragOver:se,onDragLeave:ne,onDrop:ce,children:[m&&v.jsxs("div",{className:"live-score-drop-mask",children:[v.jsx(Le,{}),v.jsx("div",{children:"Drop LiveScore ZIP/JSON to open"})]}),v.jsx(xe,{className:"live-score-controls",children:v.jsxs(ve,{direction:"vertical",size:"middle",style:{width:"100%"},children:[v.jsxs(ve,{wrap:!0,align:"center",children:[v.jsx(Nt,{level:4,style:{margin:0},children:"LiveScore"}),v.jsx(he,{accept:".livescore.zip,.zip,.json,application/json,application/zip",showUploadList:!1,beforeUpload:ae,multiple:!1,children:v.jsx(de,{icon:v.jsx(_e,{}),children:"Open file"})}),v.jsx(de,{icon:p?v.jsx(Ae,{}):v.jsx(Fe,{}),onClick:W,disabled:!R||!T,children:p?"Pause":"Play"}),v.jsx(ze,{checked:l,onChange:d=>n(d.target.checked),disabled:!F&&!te,children:"Original image"}),v.jsx(Ct,{type:"secondary",children:r||"Drop a LiveScore ZIP/JSON anywhere"})]}),e&&!R&&v.jsx(Oe,{type:"info",showIcon:!0,message:"This LiveScore has no playback events."})]})}),v.jsx("div",{className:"live-score-stage-wrap",children:v.jsx(Me,{spinning:u,wrapperClassName:"live-score-spin",children:v.jsx(xe,{className:"live-score-stage",children:e?v.jsx("div",{className:"live-score-pages",children:e.pages.map((d,y)=>v.jsx("div",{className:"live-score-page-frame",ref:g=>{g&&(w.current[y]=g)},children:v.jsx(Bt,{liveScore:e,page:d,pageIndex:y,showSource:l,staffLayout:I,cursor:J,onSeekPosition:H})},y))}):v.jsx("div",{className:"live-score-empty",children:"Upload a LiveScore package to preview display and playback."})})})})]})},sa=c.memo(It);export{sa as default}; | |