@applemusic-like-lyrics/core 0.0.6 → 0.0.8
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/amll-core.js +1 -1
- package/dist/amll-core.js.map +1 -1
- package/dist/amll-core.mjs +595 -625
- package/dist/amll-core.mjs.map +1 -1
- package/dist/lyric-player/index.d.ts +1 -1
- package/package.json +5 -2
package/dist/amll-core.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var B=Object.defineProperty;var D=(c,t,e)=>t in c?B(c,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[t]=e;var h=(c,t,e)=>(D(c,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("@pixi/display"),k=require("@pixi/app"),g=require("@pixi/filter-blur"),P=require("@pixi/filter-color-matrix"),q=require("@pixi/core"),E=require("@pixi/sprite"),F=require("jss"),O=require("jss-preset-default"),N=/^(((?<hour>[0-9]+):)?(?<min>[0-9]+):)?(?<sec>[0-9]+([\.:]([0-9]+))?)/;function b(c){var e,n,s;const t=N.exec(c);if(t){const a=Number(((e=t.groups)==null?void 0:e.hour)||"0"),l=Number(((n=t.groups)==null?void 0:n.min)||"0"),i=Number(((s=t.groups)==null?void 0:s.sec.replace(/:/,"."))||"0");return Math.floor((a*3600+l*60+i)*1e3)}else throw new TypeError("时间戳字符串解析失败")}function $(c){const e=new DOMParser().parseFromString(c,"application/xml");let n="v1";for(const a of e.querySelectorAll("ttm\\:agent"))if(a.getAttribute("type")==="person"){const l=a.getAttribute("xml:id");l&&(n=l)}const s=[];for(const a of e.querySelectorAll("body p[begin][end]")){const l={words:[],startTime:b(a.getAttribute("begin")??"0:0"),endTime:b(a.getAttribute("end")??"0:0"),translatedLyric:"",romanLyric:"",isBG:!1,isDuet:a.getAttribute("ttm:agent")!==n};let i=null;for(const r of a.childNodes)if(r.nodeType===Node.TEXT_NODE){const o=r.textContent??"";/^(\s+)$/.test(o)?l.words.push({word:" ",startTime:0,endTime:0}):l.words.push({word:o,startTime:0,endTime:0})}else if(r.nodeType===Node.ELEMENT_NODE){const o=r,d=o.getAttribute("ttm:role");if(o.nodeName==="span"&&d)if(d==="x-bg"){const u={words:[],startTime:l.startTime,endTime:l.endTime,translatedLyric:"",romanLyric:"",isBG:!0,isDuet:l.isDuet};for(const p of o.childNodes)if(p.nodeType===Node.TEXT_NODE){const y=p.textContent??"";/^(\s+)$/.test(y)?u.words.push({word:" ",startTime:0,endTime:0}):u.words.push({word:y,startTime:0,endTime:0})}else if(p.nodeType===Node.ELEMENT_NODE){const y=p,T=y.getAttribute("ttm:role");if(y.nodeName==="span"&&T)T==="x-translation"?u.translatedLyric=y.innerHTML.trim():T==="x-roman"&&(u.romanLyric=y.innerHTML.trim());else if(y.hasAttribute("begin")&&y.hasAttribute("end")){const S={word:p.textContent,startTime:b(y.getAttribute("begin")),endTime:b(y.getAttribute("end"))};u.words.push(S)}}const f=u.words[0];u.startTime=f.startTime,f!=null&&f.word.startsWith("(")&&(f.word=f.word.substring(1));const m=u.words[u.words.length-1];u.endTime=m.endTime,m!=null&&m.word.endsWith(")")&&(m.word=m.word.substring(0,m.word.length-1)),i=u}else d==="x-translation"?l.translatedLyric=o.innerHTML:d==="x-roman"&&(l.romanLyric=o.innerHTML);else if(o.hasAttribute("begin")&&o.hasAttribute("end")){const u={word:r.textContent??"",startTime:b(o.getAttribute("begin")),endTime:b(o.getAttribute("end"))};l.words.push(u)}}s.push(l),i&&s.push(i)}return console.log(s),s}const R=Object.freeze(Object.defineProperty({__proto__:null,parseTTML:$},Symbol.toStringTag,{value:"Module"}));class _ extends I.Container{constructor(){super(...arguments);h(this,"time",0)}}class W{constructor(t){h(this,"observer");h(this,"app");h(this,"curContainer");h(this,"lastContainer",new Set);h(this,"onTick",t=>{for(const e of this.lastContainer)e.alpha=Math.max(0,e.alpha-t/60),e.alpha<=0&&(this.app.stage.removeChild(e),this.lastContainer.delete(e));if(this.curContainer){this.curContainer.alpha=Math.min(1,this.curContainer.alpha+t/60);const[e,n,s,a]=this.curContainer.children,l=Math.max(this.app.screen.width,this.app.screen.height);e.position.set(this.app.screen.width/2,this.app.screen.height/2),n.position.set(this.app.screen.width/2.5,this.app.screen.height/2.5),s.position.set(this.app.screen.width/2,this.app.screen.height/2),a.position.set(this.app.screen.width/2,this.app.screen.height/2),e.width=l*Math.sqrt(2),e.height=e.width,n.width=l*.8,n.height=n.width,s.width=l*.5,s.height=s.width,a.width=l*.25,a.height=a.width,this.curContainer.time+=t*this.flowSpeed,e.rotation+=t/1e3*this.flowSpeed,n.rotation-=t/500*this.flowSpeed,s.rotation+=t/1e3*this.flowSpeed,a.rotation-=t/750*this.flowSpeed,s.x=this.app.screen.width/2+this.app.screen.width/4*Math.cos(this.curContainer.time/1e3*.75),s.y=this.app.screen.height/2+this.app.screen.width/4*Math.cos(this.curContainer.time/1e3*.75),a.x=this.app.screen.width/2+this.app.screen.width/4*.1+Math.cos(this.curContainer.time*.006*.75),a.y=this.app.screen.height/2+this.app.screen.width/4*.1+Math.cos(this.curContainer.time*.006*.75)}});h(this,"flowSpeed",2);h(this,"currerntRenderScale",.75);this.canvas=t;const e=t.getBoundingClientRect();this.canvas.width=e.width*this.currerntRenderScale,this.canvas.height=e.height*this.currerntRenderScale,this.observer=new ResizeObserver(()=>{const n=t.getBoundingClientRect();this.canvas.width=Math.max(1,n.width),this.canvas.height=Math.max(1,n.height),this.app.renderer.resize(this.canvas.width*this.currerntRenderScale,this.canvas.height*this.currerntRenderScale),this.rebuildFilters()}),this.observer.observe(t),this.app=new k.Application({view:t,resizeTo:this.canvas,powerPreference:"low-power",backgroundAlpha:0}),this.rebuildFilters(),this.app.ticker.add(this.onTick),this.app.ticker.start()}setFlowSpeed(t){this.flowSpeed=t}setRenderScale(t){this.currerntRenderScale=t;const e=this.canvas.getBoundingClientRect();this.canvas.width=Math.max(1,e.width),this.canvas.height=Math.max(1,e.height),this.app.renderer.resize(this.canvas.width*this.currerntRenderScale,this.canvas.height*this.currerntRenderScale),this.rebuildFilters()}rebuildFilters(){const t=Math.min(this.canvas.width,this.canvas.height),e=new P.ColorMatrixFilter;e.saturate(1.2,!1);const n=new P.ColorMatrixFilter;n.brightness(.6,!1);const s=new P.ColorMatrixFilter;s.contrast(.3,!0),this.app.stage.filters=[],this.app.stage.filters.push(new g.BlurFilter(5,1)),this.app.stage.filters.push(new g.BlurFilter(10,1)),this.app.stage.filters.push(new g.BlurFilter(20,2)),this.app.stage.filters.push(new g.BlurFilter(40,2)),t>512&&this.app.stage.filters.push(new g.BlurFilter(80,2)),t>768&&this.app.stage.filters.push(new g.BlurFilter(160,4)),t>768*2&&this.app.stage.filters.push(new g.BlurFilter(320,4)),this.app.stage.filters.push(e,n,s),this.app.stage.filters.push(new g.BlurFilter(5,1))}setFPS(t){this.app.ticker.maxFPS=t}pause(){this.app.ticker.stop(),this.app.render()}resume(){this.app.ticker.start()}async setAlbumImage(t){const e=await q.Texture.fromURL(t),n=new _,s=new E.Sprite(e),a=new E.Sprite(e),l=new E.Sprite(e),i=new E.Sprite(e);s.anchor.set(.5,.5),a.anchor.set(.5,.5),l.anchor.set(.5,.5),i.anchor.set(.5,.5),s.rotation=Math.random()*Math.PI*2,a.rotation=Math.random()*Math.PI*2,l.rotation=Math.random()*Math.PI*2,i.rotation=Math.random()*Math.PI*2,n.addChild(s,a,l,i),this.curContainer&&this.lastContainer.add(this.curContainer),this.curContainer=n,this.app.stage.addChild(this.curContainer),this.curContainer.alpha=0}dispose(){this.observer.disconnect(),this.app.ticker.remove(this.onTick)}}class G extends W{constructor(){const e=document.createElement("canvas");super(e);h(this,"element");this.element=e,e.style.pointerEvents="none",e.style.zIndex="-1"}getElement(){return this.element}dispose(){super.dispose(),this.element.remove()}}const X=(c,t)=>c.size===t.size&&[...c].every(e=>t.has(e));function Y(c){const e=2.5949095;return c<.5?Math.pow(2*c,2)*((e+1)*2*c-e)/2:(Math.pow(2*c-2,2)*((e+1)*(c*2-2)+e)+2)/2}const L=(c,t,e)=>Math.max(c,Math.min(t,e));class V{constructor(t){h(this,"element",document.createElement("div"));h(this,"dot0",document.createElement("span"));h(this,"dot1",document.createElement("span"));h(this,"dot2",document.createElement("span"));h(this,"left",0);h(this,"top",0);h(this,"scale",1);h(this,"lastStyle","");h(this,"currentInterlude");h(this,"currentTime",0);h(this,"targetBreatheDuration",1500);this.lyricPlayer=t,this.element.className=this.lyricPlayer.style.classes.interludeDots,this.element.appendChild(this.dot0),this.element.appendChild(this.dot1),this.element.appendChild(this.dot2)}getElement(){return this.element}setTransform(t=this.left,e=this.top){this.left=t,this.top=e,this.update()}setInterlude(t){this.currentInterlude=t,this.currentTime=(t==null?void 0:t[0])??0}update(t=0){this.currentTime+=t;let e="";if(e+=`transform:translate(${this.left}px, ${this.top}px)`,this.currentInterlude){const n=this.currentInterlude[1]-this.currentInterlude[0],s=this.currentTime-this.currentInterlude[0];if(s<=n){const a=n/Math.ceil(n/this.targetBreatheDuration);let l=1,i=1;l*=Math.sin(1.5*Math.PI-s/a*2)/10+1,s<1e3&&(l*=1-Math.pow((1e3-s)/1e3,2)),s<500?i=0:s<1e3&&(i*=(s-500)/500),n-s<750&&(l*=1-Y((750-(n-s))/750/2)),n-s<375&&(i*=L(0,(n-s)/375,1)),l=Math.max(0,l),e+=` scale(${l})`;const r=L(.25,s*3/n*.75,1),o=L(.25,(s-n/3)*3/n*.75,1),d=L(.25,(s-n/3*2)*3/n*.75,1);this.dot0.style.opacity=`${L(0,Math.max(0,i*r),1)}`,this.dot1.style.opacity=`${L(0,Math.max(0,i*o),1)}`,this.dot2.style.opacity=`${L(0,Math.max(0,i*d),1)}`}else e+=" scale(0)",this.dot0.style.opacity="0",this.dot1.style.opacity="0",this.dot2.style.opacity="0"}else e+=" scale(0)",this.dot0.style.opacity="0",this.dot1.style.opacity="0",this.dot2.style.opacity="0";e+=";",this.lastStyle!==e&&(this.element.setAttribute("style",e),this.lastStyle=e)}dispose(){this.element.remove()}}class x{constructor(t=0){h(this,"currentPosition",0);h(this,"targetPosition",0);h(this,"currentTime",0);h(this,"params",{});h(this,"currentSolver");h(this,"getV");h(this,"queueParams");h(this,"queuePosition");this.targetPosition=t,this.currentPosition=this.targetPosition,this.currentSolver=()=>this.targetPosition,this.getV=()=>0}resetSolver(){const t=this.getV(this.currentTime);this.currentTime=0,this.currentSolver=j(this.currentPosition,t,this.targetPosition,0,this.params),this.getV=H(this.currentSolver)}arrived(){return Math.abs(this.targetPosition-this.currentPosition)<.01&&this.getV(this.currentTime)<.01&&this.queueParams===void 0&&this.queuePosition===void 0}setPosition(t){this.targetPosition=t,this.currentPosition=t,this.currentSolver=()=>this.targetPosition,this.getV=()=>0}update(t=0){this.currentTime+=t,this.currentPosition=this.currentSolver(this.currentTime),this.queueParams&&(this.queueParams.time-=t,this.queueParams.time<=0&&this.updateParams({...this.queueParams})),this.queuePosition&&(this.queuePosition.time-=t,this.queuePosition.time<=0&&this.setTargetPosition(this.queuePosition.position)),this.arrived()&&this.setPosition(this.targetPosition)}updateParams(t,e=0){e>0?this.queueParams={...t,time:e}:(this.params={...this.params,...t},this.resetSolver())}setTargetPosition(t,e=0){e>0?this.queuePosition={position:t,time:e}:(this.queuePosition=void 0,this.targetPosition=t,this.resetSolver())}getCurrentPosition(){return this.currentPosition}}function j(c,t,e,n=0,s){const a=(s==null?void 0:s.soft)??!1,l=(s==null?void 0:s.stiffness)??100,i=(s==null?void 0:s.damping)??10,r=(s==null?void 0:s.mass)??1,o=e-c;if(a||1<=i/(2*Math.sqrt(l*r))){const d=-Math.sqrt(l/r),u=-d*o-t;return f=>(f-=n,f<0?c:e-(o+f*u)*Math.E**(f*d))}else{const d=Math.sqrt(4*r*l-i**2),u=(i*o-2*r*t)/d,f=.5*d/r,m=-(.5*i)/r;return p=>(p-=n,p<0?c:e-(Math.cos(p*f)*o+Math.sin(p*f)*u)*Math.E**(p*m))}}function U(c){return e=>(c(e+.001)-c(e-.001))/(2*.001)}function H(c){return U(c)}const w=/^[\p{Unified_Ideograph}\u0800-\u9FFC]+$/u;function J(c,t="rgba(0,0,0,1)",e="rgba(0,0,0,0.5)"){const n=2+c,s=c/n,a=(1-s)/2;return[`linear-gradient(to right,${t} ${a*100}%,${e} ${(a+s)*100}%)`,s,n]}function v(c){return c.endTime-c.startTime>=1e3&&c.word.length<=7}class K{constructor(t,e={words:[],translatedLyric:"",romanLyric:"",startTime:0,endTime:0,isBG:!1,isDuet:!1}){h(this,"element",document.createElement("div"));h(this,"left",0);h(this,"top",0);h(this,"scale",1);h(this,"blur",0);h(this,"delay",0);h(this,"splittedWords",[]);h(this,"lineSize",[0,0]);h(this,"lineTransforms",{posX:new x(0),posY:new x(0),scale:new x(1)});h(this,"isEnabled",!1);h(this,"_hide",!0);h(this,"lastStyle","");this.lyricPlayer=t,this.lyricLine=e,this.element.setAttribute("class",this.lyricPlayer.style.classes.lyricLine),this.lyricLine.isBG&&this.element.classList.add(this.lyricPlayer.style.classes.lyricBgLine),this.lyricLine.isDuet&&this.element.classList.add(this.lyricPlayer.style.classes.lyricDuetLine),this.element.appendChild(document.createElement("div")),this.element.appendChild(document.createElement("div")),this.element.appendChild(document.createElement("div"));const n=this.element.children[0],s=this.element.children[1],a=this.element.children[2];n.setAttribute("class",this.lyricPlayer.style.classes.lyricMainLine),s.setAttribute("class",this.lyricPlayer.style.classes.lyricSubLine),a.setAttribute("class",this.lyricPlayer.style.classes.lyricSubLine),this.rebuildElement(),this.rebuildStyle()}enable(){this.isEnabled=!0,this.element.classList.add("active");const t=this.element.children[0];this.splittedWords.forEach(e=>{e.elementAnimations.forEach(n=>{n.currentTime=0,n.playbackRate=1,n.play()})}),t.classList.add("active")}measureSize(){this._hide&&(this.element.style.display="",this.element.style.visibility="hidden");const t=[this.element.clientWidth,this.element.clientHeight];return this._hide&&(this.element.style.display="none",this.element.style.visibility=""),t}disable(){this.isEnabled=!1,this.element.classList.remove("active");const t=this.element.children[0];this.splittedWords.forEach(e=>{e.elementAnimations.forEach(n=>{n.id==="float-word"&&(n.playbackRate=-1,n.play())})}),t.classList.remove("active")}setLine(t){this.lyricLine=t,this.lyricLine.isBG?this.element.classList.add(this.lyricPlayer.style.classes.lyricBgLine):this.element.classList.remove(this.lyricPlayer.style.classes.lyricBgLine),this.lyricLine.isDuet?this.element.classList.add(this.lyricPlayer.style.classes.lyricDuetLine):this.element.classList.remove(this.lyricPlayer.style.classes.lyricDuetLine),this.rebuildElement(),this.rebuildStyle()}getLine(){return this.lyricLine}show(){this._hide=!1,this.rebuildStyle()}hide(){this._hide=!0,this.rebuildStyle()}rebuildStyle(){if(this._hide){this.lastStyle!=="display:none;transform:translate(0,-10000px);"&&(this.lastStyle="display:none;transform:translate(0,-10000px);",this.element.setAttribute("style","display:none;transform:translate(0,-10000px);"));return}let t=`transform:translate(${this.lineTransforms.posX.getCurrentPosition()}px,${this.lineTransforms.posY.getCurrentPosition()}px) scale(${this.lineTransforms.scale.getCurrentPosition()});`;!this.lyricPlayer.getEnableSpring()&&this.isInSight&&(t+=`transition-delay:${this.delay}ms;`),t+=`filter:blur(${Math.min(32,this.blur)}px);`,t!==this.lastStyle&&(this.lastStyle=t,this.element.setAttribute("style",t))}rebuildElement(){const t=this.element.children[0],e=this.element.children[1],n=this.element.children[2];this.splittedWords=[],this.lyricLine.words.forEach(r=>{if(w.test(r.word))this.splittedWords.push({...r,width:0,height:0,elements:[],elementAnimations:[],shouldEmphasize:v(r)});else{const o=/(\s*)(\S*)(\s*)/.exec(r.word);o&&(o[1].length>0&&this.splittedWords.push({word:" ",startTime:0,endTime:0,width:0,height:0,elements:[],elementAnimations:[],shouldEmphasize:!1}),this.splittedWords.push({word:o[2],startTime:r.startTime,endTime:r.endTime,width:0,height:0,elements:[],elementAnimations:[],shouldEmphasize:v(r)}),o[3].length>0&&this.splittedWords.push({word:" ",startTime:0,endTime:0,width:0,height:0,elements:[],elementAnimations:[],shouldEmphasize:!1}))}});const s=[],a=[];function l(r){for(;r.firstChild;)r.firstChild.nodeType===Node.ELEMENT_NODE?s.push(t.firstChild):r.firstChild.nodeType===Node.TEXT_NODE&&a.push(t.firstChild),r.removeChild(r.firstChild),l(r.firstChild)}l(t);let i=null;this.splittedWords.forEach(r=>{if(r.word.trim().length>0)if(r.shouldEmphasize){const o=s.pop()??document.createElement("span");o.className="emphasize",r.elements=[o];for(const d of r.word){const u=s.pop()??document.createElement("span");u.className="",u.innerText=d,o.appendChild(u),r.elements.push(u)}if(r.elementAnimations=this.initEmphasizeAnimation(r),console.log(r.word,w.test(r.word)),i&&!w.test(r.word))if(i.childElementCount>0)i.appendChild(o);else{const d=s.pop()??document.createElement("span");d.className="",i.remove(),d.appendChild(i),d.appendChild(o),t.appendChild(d),i=d}else i=w.test(r.word)?null:o,t.appendChild(o)}else{const o=s.pop()??document.createElement("span");if(o.className="",o.innerText=r.word,r.elements=[o],r.elementAnimations.push(this.initFloatAnimation(r,o)),i)if(i.childElementCount>0)i.appendChild(o);else{const d=s.pop()??document.createElement("span");d.className="",i.remove(),d.appendChild(i),d.appendChild(o),t.appendChild(d),i=d}else i=o,t.appendChild(o)}else if(r.word.length>0){const o=a.pop()??document.createTextNode(" ");t.appendChild(o),i=null}else i=null}),e.innerText=this.lyricLine.translatedLyric,n.innerText=this.lyricLine.romanLyric}initFloatAnimation(t,e){const n=e.animate([{transform:"translateY(0px)"},{transform:"translateY(-3%)"}],{duration:Math.max(1e3,t.endTime-t.startTime),delay:t.startTime-this.lyricLine.startTime,id:"float-word",composite:"add",fill:"both"});return n.pause(),n}initEmphasizeAnimation(t){const e=t.startTime-this.lyricLine.startTime,n=t.endTime-t.startTime;return t.elements.map((s,a,l)=>{if(a===0)return this.initFloatAnimation(t,s);{const i=s.animate([{offset:0,transform:"translate3d(0, 0px, 0px)",filter:"drop-shadow(0 0 0 var(--amll-lyric-line-color))"},{offset:.5,transform:"translate3d(0, -2%, 20px)",filter:"drop-shadow(0 0 0.2rem var(--amll-lyric-line-color))"},{offset:1,transform:"translate3d(0, 0px, 0)",filter:"drop-shadow(0 0 0 var(--amll-lyric-line-color))"}],{duration:Math.max(1e3,t.endTime-t.startTime),delay:e+n/(l.length-1)*(a-1),id:"glow-word",iterations:1,composite:"replace",fill:"both"});return i.pause(),i}})}updateMaskImage(){this._hide&&(this.element.style.display="",this.element.style.visibility="hidden"),this.splittedWords.forEach(t=>{const e=t.elements[0];if(e){t.width=e.clientWidth,t.height=e.clientHeight;const[n,s,a]=J(16/t.width,"rgba(0,0,0,0.75)","rgba(0,0,0,0.25)"),l=`${a*100}% 100%`;this.lyricPlayer.supportMaskImage?(e.style.maskImage=n,e.style.maskOrigin="left",e.style.maskSize=l):(e.style.webkitMaskImage=n,e.style.webkitMaskOrigin="left",e.style.webkitMaskSize=l);const i=t.width+16,r=`clamp(${-i}px,calc(${-i}px + (var(--amll-player-time) - ${t.startTime})*${i/Math.abs(t.endTime-t.startTime)}px),0px) 0px, left top`;e.style.maskPosition=r,e.style.webkitMaskPosition=r}}),this._hide&&(this.element.style.display="none",this.element.style.visibility="")}getElement(){return this.element}setTransform(t=this.left,e=this.top,n=this.scale,s=1,a=0,l=!1,i=0){this.left=t,this.top=e,this.scale=n,this.delay=i*1e3|0;const r=this.element.children[0];r.style.opacity=`${s}`,l||!this.lyricPlayer.getEnableSpring()?(this.blur=Math.min(32,a),l&&this.element.classList.add(this.lyricPlayer.style.classes.tmpDisableTransition),this.lineTransforms.posX.setPosition(t),this.lineTransforms.posY.setPosition(e),this.lineTransforms.scale.setPosition(n),this.lyricPlayer.getEnableSpring()?this.rebuildStyle():this.show(),l&&requestAnimationFrame(()=>{this.element.classList.remove(this.lyricPlayer.style.classes.tmpDisableTransition)})):(this.lineTransforms.posX.setTargetPosition(t,i),this.lineTransforms.posY.setTargetPosition(e,i),this.lineTransforms.scale.setTargetPosition(n),this.blur!==Math.min(32,a)&&(this.blur=Math.min(32,a),this.element.style.filter=`blur(${Math.min(32,a)}px)`))}update(t=0){this.lyricPlayer.getEnableSpring()&&(this.lineTransforms.posX.update(t),this.lineTransforms.posY.update(t),this.lineTransforms.scale.update(t),this.isInSight?this.show():this.hide())}get isInSight(){const t=this.lineTransforms.posX.getCurrentPosition(),e=this.lineTransforms.posY.getCurrentPosition(),n=t+this.lineSize[0],s=e+this.lineSize[1],a=this.lyricPlayer.pos[0],l=this.lyricPlayer.pos[1],i=this.lyricPlayer.pos[0]+this.lyricPlayer.size[0],r=this.lyricPlayer.pos[1]+this.lyricPlayer.size[1];return!(t>i||e>r||n<a||s<l)}dispose(){this.element.remove()}}const Q=F.create(O());class Z extends EventTarget{constructor(){super();h(this,"element",document.createElement("div"));h(this,"currentTime",0);h(this,"lyricLines",[]);h(this,"processedLines",[]);h(this,"lyricLinesEl",[]);h(this,"lyricLinesSize",new Map);h(this,"hotLines",new Set);h(this,"bufferedLines",new Set);h(this,"scrollToIndex",0);h(this,"resizeObserver",new ResizeObserver(e=>{const n=e[0].contentRect;this.size[0]=n.width,this.size[1]=n.height,this.pos[0]=n.left,this.pos[1]=n.top,this.rebuildStyle(),this.calcLayout(!0),this.lyricLinesEl.forEach(s=>s.updateMaskImage())}));h(this,"posXSpringParams",{mass:1,damping:10,stiffness:100});h(this,"posYSpringParams",{mass:1,damping:15,stiffness:100});h(this,"scaleSpringParams",{mass:1,damping:20,stiffness:100});h(this,"enableBlur",!0);h(this,"interludeDots");h(this,"interludeDotsSize",[0,0]);h(this,"supportPlusLighter",CSS.supports("mix-blend-mode","plus-lighter"));h(this,"supportMaskImage",CSS.supports("mask-image","none"));h(this,"disableSpring",!1);h(this,"alignAnchor",.5);h(this,"size",[0,0]);h(this,"pos",[0,0]);h(this,"style",Q.createStyleSheet({lyricPlayer:{userSelect:"none",padding:"1rem",boxSizing:"border-box",fontSize:"max(5vh, 12px)",fontWeight:"bold",width:"100%",height:"100%",overflow:"hidden",maxWidth:"100%",maxHeight:"100%",zIndex:1,color:"var(--amll-lyric-line-color)",mixBlendMode:"plus-lighter",contain:"strict"},lyricLine:{position:"absolute",transformOrigin:"left",maxWidth:"65%",padding:"max(2vh, 1rem) 1rem",contain:"content",transition:"filter 0.25s",margin:"max(2vh, 1rem) -1rem"},"@media (max-width: 1024px)":{lyricLine:{maxWidth:"75%",padding:"max(1vh, 1rem) 1rem",margin:"0 -1rem"}},lyricDuetLine:{textAlign:"right",transformOrigin:"right"},lyricBgLine:{opacity:0,fontSize:"max(50%, 10px)",transition:"opacity 0.25s","&.active":{transition:"opacity 0.25s 0.25s",opacity:1}},lyricMainLine:{transition:"opacity 0.3s 0.25s",margin:"-1rem",padding:"1rem","& span":{display:"inline-block",margin:"-1rem",padding:"1rem"},"& > span":{whiteSpace:"pre-wrap",wordBreak:"keep-all",maxLines:"1","&.emphasize":{margin:"-1rem",padding:"1rem",transformStyle:"preserve-3d",perspective:"50vw"}}},lyricSubLine:{fontSize:"max(50%, 10px)",opacity:.5},disableSpring:{"& > *":{transition:"filter 0.25s, transform 0.5s"}},interludeDots:{height:"min(1rem,2.5vh)",transformOrigin:"center",width:"fit-content",padding:"2.5% 0",position:"absolute",display:"flex",gap:"0.5rem","& > *":{width:"100%",display:"inline-block",borderRadius:"50%",aspectRatio:"1 / 1",backgroundColor:"var(--amll-lyric-line-color)",marginRight:"4px"},"&.duet":{right:"1rem",transformOrigin:"center"}},"@supports (mix-blend-mode: plus-lighter)":{lyricSubLine:{opacity:.3}},tmpDisableTransition:{transition:"none !important"}}));h(this,"onPageShow",()=>{this.calcLayout(!0)});this.interludeDots=new V(this),this.element.setAttribute("class",this.style.classes.lyricPlayer),this.disableSpring&&this.element.classList.add(this.style.classes.disableSpring),this.rebuildStyle(),this.resizeObserver.observe(this.element),this.element.appendChild(this.interludeDots.getElement()),this.style.attach(),this.interludeDots.setTransform(0,200),window.addEventListener("pageshow",this.onPageShow)}setEnableSpring(e=!0){this.disableSpring=!e,e?this.element.classList.remove(this.style.classes.disableSpring):this.element.classList.add(this.style.classes.disableSpring),this.calcLayout(!0)}getEnableSpring(){return!this.disableSpring}getCurrentInterlude(){var s,a,l;if(this.bufferedLines.size>0)return;const e=this.currentTime+20,n=this.scrollToIndex;if(n===0){if((s=this.processedLines[0])!=null&&s.startTime&&this.processedLines[0].startTime>e)return[0,this.processedLines[0].startTime]}else if((a=this.processedLines[n])!=null&&a.endTime&&((l=this.processedLines[n+1])!=null&&l.startTime)&&this.processedLines[n+1].startTime>e&&this.processedLines[n].endTime<e)return[this.processedLines[n].endTime,this.processedLines[n+1].startTime]}rebuildStyle(){let e="";e+="--amll-lyric-player-width:",e+=this.element.clientWidth,e+="px;",e+="--amll-lyric-player-height:",e+=this.element.clientHeight,e+="px;",e+="--amll-lyric-line-color:",e+="#FFFFFF;",e+="--amll-player-time:",e+=this.currentTime,e+=";",this.element.setAttribute("style",e)}setEnableBlur(e){this.enableBlur!==e&&(this.enableBlur=e,this.calcLayout())}setLyricLines(e){this.lyricLines=e;const n=750;this.processedLines=e.map((s,a,l)=>{if(s.isBG)return{...s};{const i=l[a-1],r=l[a-2];if(i!=null&&i.isBG&&r){if(r.endTime<s.startTime)return{...s,startTime:Math.max(r.endTime,s.startTime-n)||s.startTime}}else if(i!=null&&i.endTime&&i.endTime<s.startTime)return{...s,startTime:Math.max(i==null?void 0:i.endTime,s.startTime-n)||s.startTime};return{...s}}}),this.processedLines.forEach((s,a,l)=>{const i=l[a+1],r=s.words[s.words.length-1];r&&v(r)&&(i?i.startTime>s.endTime&&(s.endTime=Math.min(s.endTime+1500,i.startTime)):s.endTime=s.endTime+1500)}),this.processedLines.forEach((s,a,l)=>{if(s.isBG)return;const i=l[a+1];i!=null&&i.isBG&&(i.startTime=Math.min(i.startTime,s.startTime))}),this.lyricLinesEl.forEach(s=>s.dispose()),this.lyricLinesEl=this.processedLines.map(s=>new K(this,s)),this.lyricLinesEl.forEach(s=>{this.element.appendChild(s.getElement()),s.updateMaskImage()}),this.setLinePosXSpringParams({}),this.setLinePosYSpringParams({}),this.setLineScaleSpringParams({}),this.setCurrentTime(0,!0),this.calcLayout(!0)}calcLayout(e=!1){var d,u,f;e&&(this.lyricLinesEl.forEach(m=>{const p=m.measureSize();this.lyricLinesSize.set(m,p),m.lineSize=p}),this.interludeDotsSize[0]=this.interludeDots.getElement().clientWidth,this.interludeDotsSize[1]=this.interludeDots.getElement().clientHeight);const n=.95;let a=-this.lyricLinesEl.slice(0,this.scrollToIndex).reduce((m,p)=>{var y;return m+(p.getLine().isBG?0:((y=this.lyricLinesSize.get(p))==null?void 0:y[1])??0)},0);if(this.alignAnchor==="bottom"){a+=this.element.clientHeight/2;const m=this.lyricLinesEl[this.scrollToIndex];if(m){const p=((d=this.lyricLinesSize.get(m))==null?void 0:d[1])??0;a-=p/2}}else if(typeof this.alignAnchor=="number"){a+=this.element.clientHeight*this.alignAnchor;const m=this.lyricLinesEl[this.scrollToIndex];if(m){const p=((u=this.lyricLinesSize.get(m))==null?void 0:u[1])??0;a-=p/2}}const l=this.currentTime===0?void 0:this.getCurrentInterlude();let i=0;if(l&&(i=l[1]-l[0],i>=5e3)){const m=this.currentTime===0?this.lyricLinesEl[0]:this.lyricLinesEl[this.scrollToIndex+1];m&&(a-=((f=this.lyricLinesSize.get(m))==null?void 0:f[1])??0)}const r=Math.max(...this.bufferedLines);let o=0;this.lyricLinesEl.forEach((m,p)=>{var C,z,A;const y=this.bufferedLines.has(p),T=y||p>=this.scrollToIndex&&p<r,S=m.getLine();let M=0;S.isDuet&&(M=this.size[0]-(((C=this.lyricLinesSize.get(m))==null?void 0:C[0])??0)),p===this.scrollToIndex+1&&i>=5e3&&(this.interludeDots.setTransform(0,a),this.interludeDots.setInterlude(this.getCurrentInterlude()),a+=this.interludeDotsSize[1]),m.setTransform(M,a,T?1:n,y?1:1/3,this.enableBlur?3*(T?0:1+(p<this.scrollToIndex?Math.abs(this.scrollToIndex-p):Math.abs(p-Math.max(this.scrollToIndex,r)))):0,e,o),S.isBG&&T?a+=((z=this.lyricLinesSize.get(m))==null?void 0:z[1])??0:S.isBG||(a+=((A=this.lyricLinesSize.get(m))==null?void 0:A[1])??0),a>=0&&(o+=.05)})}getCurrentTime(){return this.currentTime}getLyricLines(){return this.lyricLines}getElement(){return this.element}setAlignAnchor(e){this.alignAnchor=e}setCurrentTime(e,n=!1){this.currentTime=e,this.element.style.setProperty("--amll-player-time",`${e}`);const s=new Set,a=new Set,l=new Set;this.hotLines.forEach(i=>{const r=this.processedLines[i];if(!r.isBG)if(r){const o=this.processedLines[i+1];if(o!=null&&o.isBG){const d=Math.min(r.startTime,o==null?void 0:o.startTime),u=Math.max(r.endTime,o==null?void 0:o.endTime);(d>e||u<=e)&&(this.hotLines.delete(i),s.add(i),this.hotLines.delete(i+1),s.add(i+1),n&&(this.lyricLinesEl[i].disable(),this.lyricLinesEl[i+1].disable()))}else(r.startTime>e||r.endTime<=e)&&(this.hotLines.delete(i),s.add(i),n&&this.lyricLinesEl[i].disable())}else this.hotLines.delete(i),s.add(i),n&&this.lyricLinesEl[i].disable()}),this.processedLines.forEach((i,r,o)=>{var d;!i.isBG&&i.startTime<=e&&i.endTime>e&&(this.hotLines.has(r)||(this.hotLines.add(r),l.add(r),n&&this.lyricLinesEl[r].enable(),(d=o[r+1])!=null&&d.isBG&&(this.hotLines.add(r+1),l.add(r+1),n&&this.lyricLinesEl[r+1].enable())))}),this.bufferedLines.forEach(i=>{this.hotLines.has(i)||(a.add(i),n&&this.lyricLinesEl[i].disable())}),n?(this.bufferedLines.size>0?this.scrollToIndex=Math.min(...this.bufferedLines):this.scrollToIndex=this.processedLines.findIndex(i=>i.startTime>=e),this.bufferedLines.clear(),this.hotLines.forEach(i=>this.bufferedLines.add(i)),this.calcLayout(!0)):(a.size>0||l.size>0)&&(a.size===0&&l.size>0?(l.forEach(i=>{this.bufferedLines.add(i),this.lyricLinesEl[i].enable()}),this.scrollToIndex=Math.min(...this.bufferedLines)):l.size===0&&a.size>0?X(a,this.bufferedLines)&&this.bufferedLines.forEach(i=>{this.hotLines.has(i)||(this.bufferedLines.delete(i),this.lyricLinesEl[i].disable())}):(l.forEach(i=>{this.bufferedLines.add(i),this.lyricLinesEl[i].enable()}),a.forEach(i=>{this.bufferedLines.delete(i),this.lyricLinesEl[i].disable()}),this.bufferedLines.size>0&&(this.scrollToIndex=Math.min(...this.bufferedLines))),this.calcLayout())}update(e=0){const n=e/1e3;this.interludeDots.update(e),this.lyricLinesEl.forEach(s=>s.update(n))}setLinePosXSpringParams(e){this.posXSpringParams={...this.posXSpringParams,...e},this.lyricLinesEl.forEach(n=>n.lineTransforms.posX.updateParams(this.posXSpringParams))}setLinePosYSpringParams(e){this.posYSpringParams={...this.posYSpringParams,...e},this.lyricLinesEl.forEach(n=>n.lineTransforms.posY.updateParams(this.posYSpringParams))}setLineScaleSpringParams(e){this.scaleSpringParams={...this.scaleSpringParams,...e},this.lyricLinesEl.forEach(n=>n.lineTransforms.scale.updateParams(this.scaleSpringParams))}dispose(){this.element.remove(),this.resizeObserver.disconnect(),this.style.detach(),this.lyricLinesEl.forEach(e=>e.dispose()),window.removeEventListener("pageshow",this.onPageShow)}}exports.BackgroundRender=G;exports.LyricPlayer=Z;exports.ttml=R;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("@pixi/display"),M=require("@pixi/app"),y=require("@pixi/filter-blur"),S=require("@pixi/filter-color-matrix"),C=require("@pixi/core"),L=require("@pixi/sprite"),z=require("jss"),A=require("jss-preset-default"),B=/^(((?<hour>[0-9]+):)?(?<min>[0-9]+):)?(?<sec>[0-9]+([\.:]([0-9]+))?)/;function T(d){const e=B.exec(d);if(e){const t=Number(e.groups?.hour||"0"),i=Number(e.groups?.min||"0"),n=Number(e.groups?.sec.replace(/:/,".")||"0");return Math.floor((t*3600+i*60+n)*1e3)}else throw new TypeError("时间戳字符串解析失败")}function D(d){const t=new DOMParser().parseFromString(d,"application/xml");let i="v1";for(const a of t.querySelectorAll("ttm\\:agent"))if(a.getAttribute("type")==="person"){const s=a.getAttribute("xml:id");s&&(i=s)}const n=[];for(const a of t.querySelectorAll("body p[begin][end]")){const s={words:[],startTime:T(a.getAttribute("begin")??"0:0"),endTime:T(a.getAttribute("end")??"0:0"),translatedLyric:"",romanLyric:"",isBG:!1,isDuet:a.getAttribute("ttm:agent")!==i};let r=null;for(const l of a.childNodes)if(l.nodeType===Node.TEXT_NODE){const h=l.textContent??"";/^(\s+)$/.test(h)?s.words.push({word:" ",startTime:0,endTime:0}):s.words.push({word:h,startTime:0,endTime:0})}else if(l.nodeType===Node.ELEMENT_NODE){const h=l,o=h.getAttribute("ttm:role");if(h.nodeName==="span"&&o)if(o==="x-bg"){const c={words:[],startTime:s.startTime,endTime:s.endTime,translatedLyric:"",romanLyric:"",isBG:!0,isDuet:s.isDuet};for(const u of h.childNodes)if(u.nodeType===Node.TEXT_NODE){const f=u.textContent??"";/^(\s+)$/.test(f)?c.words.push({word:" ",startTime:0,endTime:0}):c.words.push({word:f,startTime:0,endTime:0})}else if(u.nodeType===Node.ELEMENT_NODE){const f=u,b=f.getAttribute("ttm:role");if(f.nodeName==="span"&&b)b==="x-translation"?c.translatedLyric=f.innerHTML.trim():b==="x-roman"&&(c.romanLyric=f.innerHTML.trim());else if(f.hasAttribute("begin")&&f.hasAttribute("end")){const x={word:u.textContent,startTime:T(f.getAttribute("begin")),endTime:T(f.getAttribute("end"))};c.words.push(x)}}const m=c.words[0];c.startTime=m.startTime,m?.word.startsWith("(")&&(m.word=m.word.substring(1));const p=c.words[c.words.length-1];c.endTime=p.endTime,p?.word.endsWith(")")&&(p.word=p.word.substring(0,p.word.length-1)),r=c}else o==="x-translation"?s.translatedLyric=h.innerHTML:o==="x-roman"&&(s.romanLyric=h.innerHTML);else if(h.hasAttribute("begin")&&h.hasAttribute("end")){const c={word:l.textContent??"",startTime:T(h.getAttribute("begin")),endTime:T(h.getAttribute("end"))};s.words.push(c)}}n.push(s),r&&n.push(r)}return console.log(n),n}const I=Object.freeze(Object.defineProperty({__proto__:null,parseTTML:D},Symbol.toStringTag,{value:"Module"}));class k extends v.Container{time=0}class F{constructor(e){this.canvas=e;const t=e.getBoundingClientRect();this.canvas.width=t.width*this.currerntRenderScale,this.canvas.height=t.height*this.currerntRenderScale,this.observer=new ResizeObserver(()=>{const i=e.getBoundingClientRect();this.canvas.width=Math.max(1,i.width),this.canvas.height=Math.max(1,i.height),this.app.renderer.resize(this.canvas.width*this.currerntRenderScale,this.canvas.height*this.currerntRenderScale),this.rebuildFilters()}),this.observer.observe(e),this.app=new M.Application({view:e,resizeTo:this.canvas,powerPreference:"low-power",backgroundAlpha:0}),this.rebuildFilters(),this.app.ticker.add(this.onTick),this.app.ticker.start()}observer;app;curContainer;lastContainer=new Set;onTick=e=>{for(const t of this.lastContainer)t.alpha=Math.max(0,t.alpha-e/60),t.alpha<=0&&(this.app.stage.removeChild(t),this.lastContainer.delete(t));if(this.curContainer){this.curContainer.alpha=Math.min(1,this.curContainer.alpha+e/60);const[t,i,n,a]=this.curContainer.children,s=Math.max(this.app.screen.width,this.app.screen.height);t.position.set(this.app.screen.width/2,this.app.screen.height/2),i.position.set(this.app.screen.width/2.5,this.app.screen.height/2.5),n.position.set(this.app.screen.width/2,this.app.screen.height/2),a.position.set(this.app.screen.width/2,this.app.screen.height/2),t.width=s*Math.sqrt(2),t.height=t.width,i.width=s*.8,i.height=i.width,n.width=s*.5,n.height=n.width,a.width=s*.25,a.height=a.width,this.curContainer.time+=e*this.flowSpeed,t.rotation+=e/1e3*this.flowSpeed,i.rotation-=e/500*this.flowSpeed,n.rotation+=e/1e3*this.flowSpeed,a.rotation-=e/750*this.flowSpeed,n.x=this.app.screen.width/2+this.app.screen.width/4*Math.cos(this.curContainer.time/1e3*.75),n.y=this.app.screen.height/2+this.app.screen.width/4*Math.cos(this.curContainer.time/1e3*.75),a.x=this.app.screen.width/2+this.app.screen.width/4*.1+Math.cos(this.curContainer.time*.006*.75),a.y=this.app.screen.height/2+this.app.screen.width/4*.1+Math.cos(this.curContainer.time*.006*.75)}};flowSpeed=2;currerntRenderScale=.75;setFlowSpeed(e){this.flowSpeed=e}setRenderScale(e){this.currerntRenderScale=e;const t=this.canvas.getBoundingClientRect();this.canvas.width=Math.max(1,t.width),this.canvas.height=Math.max(1,t.height),this.app.renderer.resize(this.canvas.width*this.currerntRenderScale,this.canvas.height*this.currerntRenderScale),this.rebuildFilters()}rebuildFilters(){const e=Math.min(this.canvas.width,this.canvas.height),t=new S.ColorMatrixFilter;t.saturate(1.2,!1);const i=new S.ColorMatrixFilter;i.brightness(.6,!1);const n=new S.ColorMatrixFilter;n.contrast(.3,!0),this.app.stage.filters=[],this.app.stage.filters.push(new y.BlurFilter(5,1)),this.app.stage.filters.push(new y.BlurFilter(10,1)),this.app.stage.filters.push(new y.BlurFilter(20,2)),this.app.stage.filters.push(new y.BlurFilter(40,2)),e>512&&this.app.stage.filters.push(new y.BlurFilter(80,2)),e>768&&this.app.stage.filters.push(new y.BlurFilter(160,4)),e>768*2&&this.app.stage.filters.push(new y.BlurFilter(320,4)),this.app.stage.filters.push(t,i,n),this.app.stage.filters.push(new y.BlurFilter(5,1))}setFPS(e){this.app.ticker.maxFPS=e}pause(){this.app.ticker.stop(),this.app.render()}resume(){this.app.ticker.start()}async setAlbumImage(e){const t=await C.Texture.fromURL(e),i=new k,n=new L.Sprite(t),a=new L.Sprite(t),s=new L.Sprite(t),r=new L.Sprite(t);n.anchor.set(.5,.5),a.anchor.set(.5,.5),s.anchor.set(.5,.5),r.anchor.set(.5,.5),n.rotation=Math.random()*Math.PI*2,a.rotation=Math.random()*Math.PI*2,s.rotation=Math.random()*Math.PI*2,r.rotation=Math.random()*Math.PI*2,i.addChild(n,a,s,r),this.curContainer&&this.lastContainer.add(this.curContainer),this.curContainer=i,this.app.stage.addChild(this.curContainer),this.curContainer.alpha=0}dispose(){this.observer.disconnect(),this.app.ticker.remove(this.onTick)}}class q extends F{element;constructor(){const e=document.createElement("canvas");super(e),this.element=e,e.style.pointerEvents="none",e.style.zIndex="-1"}getElement(){return this.element}dispose(){super.dispose(),this.element.remove()}}const O=(d,e)=>d.size===e.size&&[...d].every(t=>e.has(t));function N(d){const t=2.5949095;return d<.5?Math.pow(2*d,2)*((t+1)*2*d-t)/2:(Math.pow(2*d-2,2)*((t+1)*(d*2-2)+t)+2)/2}const g=(d,e,t)=>Math.max(d,Math.min(e,t));class ${constructor(e){this.lyricPlayer=e,this.element.className=this.lyricPlayer.style.classes.interludeDots,this.element.appendChild(this.dot0),this.element.appendChild(this.dot1),this.element.appendChild(this.dot2)}element=document.createElement("div");dot0=document.createElement("span");dot1=document.createElement("span");dot2=document.createElement("span");left=0;top=0;scale=1;lastStyle="";currentInterlude;currentTime=0;targetBreatheDuration=1500;getElement(){return this.element}setTransform(e=this.left,t=this.top){this.left=e,this.top=t,this.update()}setInterlude(e){this.currentInterlude=e,this.currentTime=e?.[0]??0}update(e=0){this.currentTime+=e;let t="";if(t+=`transform:translate(${this.left}px, ${this.top}px)`,this.currentInterlude){const i=this.currentInterlude[1]-this.currentInterlude[0],n=this.currentTime-this.currentInterlude[0];if(n<=i){const a=i/Math.ceil(i/this.targetBreatheDuration);let s=1,r=1;s*=Math.sin(1.5*Math.PI-n/a*2)/10+1,n<1e3&&(s*=1-Math.pow((1e3-n)/1e3,2)),n<500?r=0:n<1e3&&(r*=(n-500)/500),i-n<750&&(s*=1-N((750-(i-n))/750/2)),i-n<375&&(r*=g(0,(i-n)/375,1)),s=Math.max(0,s),t+=` scale(${s})`;const l=g(.25,n*3/i*.75,1),h=g(.25,(n-i/3)*3/i*.75,1),o=g(.25,(n-i/3*2)*3/i*.75,1);this.dot0.style.opacity=`${g(0,Math.max(0,r*l),1)}`,this.dot1.style.opacity=`${g(0,Math.max(0,r*h),1)}`,this.dot2.style.opacity=`${g(0,Math.max(0,r*o),1)}`}else t+=" scale(0)",this.dot0.style.opacity="0",this.dot1.style.opacity="0",this.dot2.style.opacity="0"}else t+=" scale(0)",this.dot0.style.opacity="0",this.dot1.style.opacity="0",this.dot2.style.opacity="0";t+=";",this.lastStyle!==t&&(this.element.setAttribute("style",t),this.lastStyle=t)}dispose(){this.element.remove()}}class E{currentPosition=0;targetPosition=0;currentTime=0;params={};currentSolver;getV;queueParams;queuePosition;constructor(e=0){this.targetPosition=e,this.currentPosition=this.targetPosition,this.currentSolver=()=>this.targetPosition,this.getV=()=>0}resetSolver(){const e=this.getV(this.currentTime);this.currentTime=0,this.currentSolver=R(this.currentPosition,e,this.targetPosition,0,this.params),this.getV=_(this.currentSolver)}arrived(){return Math.abs(this.targetPosition-this.currentPosition)<.01&&this.getV(this.currentTime)<.01&&this.queueParams===void 0&&this.queuePosition===void 0}setPosition(e){this.targetPosition=e,this.currentPosition=e,this.currentSolver=()=>this.targetPosition,this.getV=()=>0}update(e=0){this.currentTime+=e,this.currentPosition=this.currentSolver(this.currentTime),this.queueParams&&(this.queueParams.time-=e,this.queueParams.time<=0&&this.updateParams({...this.queueParams})),this.queuePosition&&(this.queuePosition.time-=e,this.queuePosition.time<=0&&this.setTargetPosition(this.queuePosition.position)),this.arrived()&&this.setPosition(this.targetPosition)}updateParams(e,t=0){t>0?this.queueParams={...e,time:t}:(this.params={...this.params,...e},this.resetSolver())}setTargetPosition(e,t=0){t>0?this.queuePosition={position:e,time:t}:(this.queuePosition=void 0,this.targetPosition=e,this.resetSolver())}getCurrentPosition(){return this.currentPosition}}function R(d,e,t,i=0,n){const a=n?.soft??!1,s=n?.stiffness??100,r=n?.damping??10,l=n?.mass??1,h=t-d;if(a||1<=r/(2*Math.sqrt(s*l))){const o=-Math.sqrt(s/l),c=-o*h-e;return m=>(m-=i,m<0?d:t-(h+m*c)*Math.E**(m*o))}else{const o=Math.sqrt(4*l*s-r**2),c=(r*h-2*l*e)/o,m=.5*o/l,p=-(.5*r)/l;return u=>(u-=i,u<0?d:t-(Math.cos(u*m)*h+Math.sin(u*m)*c)*Math.E**(u*p))}}function W(d){return t=>(d(t+.001)-d(t-.001))/(2*.001)}function _(d){return W(d)}const w=/^[\p{Unified_Ideograph}\u0800-\u9FFC]+$/u;function G(d,e="rgba(0,0,0,1)",t="rgba(0,0,0,0.5)"){const i=2+d,n=d/i,a=(1-n)/2;return[`linear-gradient(to right,${e} ${a*100}%,${t} ${(a+n)*100}%)`,n,i]}function P(d){return d.endTime-d.startTime>=1e3&&d.word.length<=7}class X{constructor(e,t={words:[],translatedLyric:"",romanLyric:"",startTime:0,endTime:0,isBG:!1,isDuet:!1}){this.lyricPlayer=e,this.lyricLine=t,this.element.setAttribute("class",this.lyricPlayer.style.classes.lyricLine),this.lyricLine.isBG&&this.element.classList.add(this.lyricPlayer.style.classes.lyricBgLine),this.lyricLine.isDuet&&this.element.classList.add(this.lyricPlayer.style.classes.lyricDuetLine),this.element.appendChild(document.createElement("div")),this.element.appendChild(document.createElement("div")),this.element.appendChild(document.createElement("div"));const i=this.element.children[0],n=this.element.children[1],a=this.element.children[2];i.setAttribute("class",this.lyricPlayer.style.classes.lyricMainLine),n.setAttribute("class",this.lyricPlayer.style.classes.lyricSubLine),a.setAttribute("class",this.lyricPlayer.style.classes.lyricSubLine),this.rebuildElement(),this.rebuildStyle()}element=document.createElement("div");left=0;top=0;scale=1;blur=0;delay=0;splittedWords=[];lineSize=[0,0];lineTransforms={posX:new E(0),posY:new E(0),scale:new E(1)};isEnabled=!1;enable(){this.isEnabled=!0,this.element.classList.add("active");const e=this.element.children[0];this.splittedWords.forEach(t=>{t.elementAnimations.forEach(i=>{i.currentTime=0,i.playbackRate=1,i.play()})}),e.classList.add("active")}measureSize(){this._hide&&(this.element.style.display="",this.element.style.visibility="hidden");const e=[this.element.clientWidth,this.element.clientHeight];return this._hide&&(this.element.style.display="none",this.element.style.visibility=""),e}disable(){this.isEnabled=!1,this.element.classList.remove("active");const e=this.element.children[0];this.splittedWords.forEach(t=>{t.elementAnimations.forEach(i=>{i.id==="float-word"&&(i.playbackRate=-1,i.play())})}),e.classList.remove("active")}setLine(e){this.lyricLine=e,this.lyricLine.isBG?this.element.classList.add(this.lyricPlayer.style.classes.lyricBgLine):this.element.classList.remove(this.lyricPlayer.style.classes.lyricBgLine),this.lyricLine.isDuet?this.element.classList.add(this.lyricPlayer.style.classes.lyricDuetLine):this.element.classList.remove(this.lyricPlayer.style.classes.lyricDuetLine),this.rebuildElement(),this.rebuildStyle()}getLine(){return this.lyricLine}_hide=!0;lastStyle="";show(){this._hide=!1,this.rebuildStyle()}hide(){this._hide=!0,this.rebuildStyle()}rebuildStyle(){if(this._hide){this.lastStyle!=="display:none;transform:translate(0,-10000px);"&&(this.lastStyle="display:none;transform:translate(0,-10000px);",this.element.setAttribute("style","display:none;transform:translate(0,-10000px);"));return}let e=`transform:translate(${this.lineTransforms.posX.getCurrentPosition()}px,${this.lineTransforms.posY.getCurrentPosition()}px) scale(${this.lineTransforms.scale.getCurrentPosition()});`;!this.lyricPlayer.getEnableSpring()&&this.isInSight&&(e+=`transition-delay:${this.delay}ms;`),e+=`filter:blur(${Math.min(32,this.blur)}px);`,e!==this.lastStyle&&(this.lastStyle=e,this.element.setAttribute("style",e))}rebuildElement(){const e=this.element.children[0],t=this.element.children[1],i=this.element.children[2];this.splittedWords=[],this.lyricLine.words.forEach(l=>{const h=l.word.split(/\s+/),o=h.reduce((m,p)=>m+p.length,0);let c=0;h.forEach((m,p)=>{p>0&&this.splittedWords.push({word:" ",startTime:0,endTime:0,width:0,height:0,elements:[],elementAnimations:[],shouldEmphasize:!1}),this.splittedWords.push({word:m,startTime:l.startTime+(l.endTime-l.startTime)/o*c,endTime:l.startTime+(l.endTime-l.startTime)/o*(c+m.length),width:0,height:0,elements:[],elementAnimations:[],shouldEmphasize:P(l)}),c+=m.length})});const n=[],a=[];function s(l){for(;l.firstChild;)l.firstChild.nodeType===Node.ELEMENT_NODE?n.push(e.firstChild):l.firstChild.nodeType===Node.TEXT_NODE&&a.push(e.firstChild),l.removeChild(l.firstChild),s(l.firstChild)}s(e);let r=null;this.splittedWords.forEach(l=>{if(l.word.trim().length>0)if(l.shouldEmphasize){const h=n.pop()??document.createElement("span");h.className="emphasize",l.elements=[h];for(const o of l.word){const c=n.pop()??document.createElement("span");c.className="",c.innerText=o,h.appendChild(c),l.elements.push(c)}if(l.elementAnimations=this.initEmphasizeAnimation(l),console.log(l.word,w.test(l.word)),r&&!w.test(l.word))if(r.childElementCount>0)r.appendChild(h);else{const o=n.pop()??document.createElement("span");o.className="",r.remove(),o.appendChild(r),o.appendChild(h),e.appendChild(o),r=o}else r=w.test(l.word)?null:h,e.appendChild(h)}else{const h=n.pop()??document.createElement("span");if(h.className="",h.innerText=l.word,l.elements=[h],l.elementAnimations.push(this.initFloatAnimation(l,h)),r)if(r.childElementCount>0)r.appendChild(h);else{const o=n.pop()??document.createElement("span");o.className="",r.remove(),o.appendChild(r),o.appendChild(h),e.appendChild(o),r=o}else r=h,e.appendChild(h)}else if(l.word.length>0){const h=a.pop()??document.createTextNode(" ");e.appendChild(h),r=null}else r=null}),t.innerText=this.lyricLine.translatedLyric,i.innerText=this.lyricLine.romanLyric}initFloatAnimation(e,t){const i=e.startTime-this.lyricLine.startTime,n=Math.max(1e3,e.endTime-e.startTime),a=t.animate([{transform:"translateY(0px)"},{transform:"translateY(-3%)"}],{duration:isFinite(n)?n:0,delay:isFinite(i)?i:0,id:"float-word",composite:"add",fill:"both"});return a.pause(),a}initEmphasizeAnimation(e){const t=e.startTime-this.lyricLine.startTime,i=e.endTime-e.startTime;return e.elements.map((n,a,s)=>{if(a===0)return this.initFloatAnimation(e,n);{const r=n.animate([{offset:0,transform:"translate3d(0, 0px, 0px)",filter:"drop-shadow(0 0 0 var(--amll-lyric-line-color))"},{offset:.5,transform:"translate3d(0, -2%, 20px)",filter:"drop-shadow(0 0 0.2rem var(--amll-lyric-line-color))"},{offset:1,transform:"translate3d(0, 0px, 0)",filter:"drop-shadow(0 0 0 var(--amll-lyric-line-color))"}],{duration:Math.max(1e3,e.endTime-e.startTime),delay:t+i/(s.length-1)*(a-1),id:"glow-word",iterations:1,composite:"replace",fill:"both"});return r.pause(),r}})}updateMaskImage(){this._hide&&(this.element.style.display="",this.element.style.visibility="hidden"),this.splittedWords.forEach(e=>{const t=e.elements[0];if(t){e.width=t.clientWidth,e.height=t.clientHeight;const[i,n,a]=G(16/e.width,"rgba(0,0,0,0.75)","rgba(0,0,0,0.25)"),s=`${a*100}% 100%`;this.lyricPlayer.supportMaskImage?(t.style.maskImage=i,t.style.maskOrigin="left",t.style.maskSize=s):(t.style.webkitMaskImage=i,t.style.webkitMaskOrigin="left",t.style.webkitMaskSize=s);const r=e.width+16,l=`clamp(${-r}px,calc(${-r}px + (var(--amll-player-time) - ${e.startTime})*${r/Math.abs(e.endTime-e.startTime)}px),0px) 0px, left top`;t.style.maskPosition=l,t.style.webkitMaskPosition=l}}),this._hide&&(this.element.style.display="none",this.element.style.visibility="")}getElement(){return this.element}setTransform(e=this.left,t=this.top,i=this.scale,n=1,a=0,s=!1,r=0){this.left=e,this.top=t,this.scale=i,this.delay=r*1e3|0;const l=this.element.children[0];l.style.opacity=`${n}`,s||!this.lyricPlayer.getEnableSpring()?(this.blur=Math.min(32,a),s&&this.element.classList.add(this.lyricPlayer.style.classes.tmpDisableTransition),this.lineTransforms.posX.setPosition(e),this.lineTransforms.posY.setPosition(t),this.lineTransforms.scale.setPosition(i),this.lyricPlayer.getEnableSpring()?this.rebuildStyle():this.show(),s&&requestAnimationFrame(()=>{this.element.classList.remove(this.lyricPlayer.style.classes.tmpDisableTransition)})):(this.lineTransforms.posX.setTargetPosition(e,r),this.lineTransforms.posY.setTargetPosition(t,r),this.lineTransforms.scale.setTargetPosition(i),this.blur!==Math.min(32,a)&&(this.blur=Math.min(32,a),this.element.style.filter=`blur(${Math.min(32,a)}px)`))}update(e=0){this.lyricPlayer.getEnableSpring()&&(this.lineTransforms.posX.update(e),this.lineTransforms.posY.update(e),this.lineTransforms.scale.update(e),this.isInSight?this.show():this.hide())}get isInSight(){const e=this.lineTransforms.posX.getCurrentPosition(),t=this.lineTransforms.posY.getCurrentPosition(),i=e+this.lineSize[0],n=t+this.lineSize[1],a=this.lyricPlayer.pos[0],s=this.lyricPlayer.pos[1],r=this.lyricPlayer.pos[0]+this.lyricPlayer.size[0],l=this.lyricPlayer.pos[1]+this.lyricPlayer.size[1];return!(e>r||t>l||i<a||n<s)}dispose(){this.element.remove()}}const Y=z.create(A());class V extends EventTarget{element=document.createElement("div");currentTime=0;lyricLines=[];processedLines=[];lyricLinesEl=[];lyricLinesSize=new Map;hotLines=new Set;bufferedLines=new Set;scrollToIndex=0;resizeObserver=new ResizeObserver(e=>{const t=e[0].contentRect;this.size[0]=t.width,this.size[1]=t.height,this.pos[0]=t.left,this.pos[1]=t.top,this.rebuildStyle(),this.calcLayout(!0),this.lyricLinesEl.forEach(i=>i.updateMaskImage())});posXSpringParams={mass:1,damping:10,stiffness:100};posYSpringParams={mass:1,damping:15,stiffness:100};scaleSpringParams={mass:1,damping:20,stiffness:100};enableBlur=!0;interludeDots;interludeDotsSize=[0,0];supportPlusLighter=CSS.supports("mix-blend-mode","plus-lighter");supportMaskImage=CSS.supports("mask-image","none");disableSpring=!1;alignAnchor=.5;size=[0,0];pos=[0,0];setEnableSpring(e=!0){this.disableSpring=!e,e?this.element.classList.remove(this.style.classes.disableSpring):this.element.classList.add(this.style.classes.disableSpring),this.calcLayout(!0)}getEnableSpring(){return!this.disableSpring}style=Y.createStyleSheet({lyricPlayer:{userSelect:"none",padding:"1rem",boxSizing:"border-box",fontSize:"max(5vh, 12px)",fontWeight:"bold",width:"100%",height:"100%",overflow:"hidden",maxWidth:"100%",maxHeight:"100%",zIndex:1,color:"var(--amll-lyric-line-color)",mixBlendMode:"plus-lighter",contain:"strict"},lyricLine:{position:"absolute",transformOrigin:"left",maxWidth:"65%",padding:"max(2vh, 1rem) 1rem",contain:"content",transition:"filter 0.25s",margin:"max(2vh, 1rem) -1rem"},"@media (max-width: 1024px)":{lyricLine:{maxWidth:"75%",padding:"max(1vh, 1rem) 1rem",margin:"0 -1rem"}},lyricDuetLine:{textAlign:"right",transformOrigin:"right"},lyricBgLine:{opacity:0,fontSize:"max(50%, 10px)",transition:"opacity 0.25s","&.active":{transition:"opacity 0.25s 0.25s",opacity:1}},lyricMainLine:{transition:"opacity 0.3s 0.25s",margin:"-1rem",padding:"1rem","& span":{display:"inline-block",margin:"-1rem",padding:"1rem"},"& > span":{whiteSpace:"pre-wrap",wordBreak:"keep-all",maxLines:"1","&.emphasize":{margin:"-1rem",padding:"1rem",transformStyle:"preserve-3d",perspective:"50vw"}}},lyricSubLine:{fontSize:"max(50%, 10px)",opacity:.5},disableSpring:{"& > *":{transition:"filter 0.25s, transform 0.5s"}},interludeDots:{height:"min(1rem,2.5vh)",transformOrigin:"center",width:"fit-content",padding:"2.5% 0",position:"absolute",display:"flex",gap:"0.5rem","& > *":{width:"100%",display:"inline-block",borderRadius:"50%",aspectRatio:"1 / 1",backgroundColor:"var(--amll-lyric-line-color)",marginRight:"4px"},"&.duet":{right:"1rem",transformOrigin:"center"}},"@supports (mix-blend-mode: plus-lighter)":{lyricSubLine:{opacity:.3}},tmpDisableTransition:{transition:"none !important"}});onPageShow=()=>{this.calcLayout(!0)};constructor(){super(),this.interludeDots=new $(this),this.element.setAttribute("class",this.style.classes.lyricPlayer),this.disableSpring&&this.element.classList.add(this.style.classes.disableSpring),this.rebuildStyle(),this.resizeObserver.observe(this.element),this.element.appendChild(this.interludeDots.getElement()),this.style.attach(),this.interludeDots.setTransform(0,200),window.addEventListener("pageshow",this.onPageShow)}getCurrentInterlude(){if(this.bufferedLines.size>0)return;const e=this.currentTime+20,t=this.scrollToIndex;if(t===0){if(this.processedLines[0]?.startTime&&this.processedLines[0].startTime>e)return[0,this.processedLines[0].startTime,-2]}else if(this.processedLines[t]?.endTime&&this.processedLines[t+1]?.startTime&&this.processedLines[t+1].startTime>e&&this.processedLines[t].endTime<e)return[this.processedLines[t].endTime,this.processedLines[t+1].startTime,t]}rebuildStyle(){let e="";e+="--amll-lyric-player-width:",e+=this.element.clientWidth,e+="px;",e+="--amll-lyric-player-height:",e+=this.element.clientHeight,e+="px;",e+="--amll-lyric-line-color:",e+="#FFFFFF;",e+="--amll-player-time:",e+=this.currentTime,e+=";",this.element.setAttribute("style",e)}setEnableBlur(e){this.enableBlur!==e&&(this.enableBlur=e,this.calcLayout())}setLyricLines(e){this.lyricLines=e;const t=750;this.processedLines=e.filter(i=>i.words.reduce((n,a)=>n+a.word.trim().length,0)>0).map((i,n,a)=>{if(i.isBG)return{...i};{const s=a[n-1],r=a[n-2];if(s?.isBG&&r){if(r.endTime<i.startTime)return{...i,startTime:Math.max(r.endTime,i.startTime-t)||i.startTime}}else if(s?.endTime&&s.endTime<i.startTime)return{...i,startTime:Math.max(s?.endTime,i.startTime-t)||i.startTime};return{...i}}}),this.processedLines.forEach((i,n,a)=>{const s=a[n+1],r=i.words[i.words.length-1];r&&P(r)&&(s?s.startTime>i.endTime&&(i.endTime=Math.min(i.endTime+1500,s.startTime)):i.endTime=i.endTime+1500)}),this.processedLines.forEach((i,n,a)=>{if(i.isBG)return;const s=a[n+1];s?.isBG&&(s.startTime=Math.min(s.startTime,i.startTime))}),this.lyricLinesEl.forEach(i=>i.dispose()),this.lyricLinesEl=this.processedLines.map(i=>new X(this,i)),this.lyricLinesEl.forEach(i=>{this.element.appendChild(i.getElement()),i.updateMaskImage()}),this.setLinePosXSpringParams({}),this.setLinePosYSpringParams({}),this.setLineScaleSpringParams({}),this.setCurrentTime(0,!0),this.calcLayout(!0)}calcLayout(e=!1){e&&(this.lyricLinesEl.forEach(o=>{const c=o.measureSize();this.lyricLinesSize.set(o,c),o.lineSize=c}),this.interludeDotsSize[0]=this.interludeDots.getElement().clientWidth,this.interludeDotsSize[1]=this.interludeDots.getElement().clientHeight);const t=.95;let n=-this.lyricLinesEl.slice(0,this.scrollToIndex).reduce((o,c)=>o+(c.getLine().isBG?0:this.lyricLinesSize.get(c)?.[1]??0),0);if(this.alignAnchor==="bottom"){n+=this.element.clientHeight/2;const o=this.lyricLinesEl[this.scrollToIndex];if(o){const c=this.lyricLinesSize.get(o)?.[1]??0;n-=c/2}}else if(typeof this.alignAnchor=="number"){n+=this.element.clientHeight*this.alignAnchor;const o=this.lyricLinesEl[this.scrollToIndex];if(o){const c=this.lyricLinesSize.get(o)?.[1]??0;n-=c/2}}const a=this.getCurrentInterlude();let s=0;if(a&&(s=a[1]-a[0],s>=5e3)){const o=this.lyricLinesEl[a[2]+1];o&&(n-=this.lyricLinesSize.get(o)?.[1]??0)}const r=Math.max(...this.bufferedLines);let l=0,h=!1;this.lyricLinesEl.forEach((o,c)=>{const m=this.bufferedLines.has(c),p=m||c>=this.scrollToIndex&&c<r,u=o.getLine();let f=0;u.isDuet&&(f=this.size[0]-(this.lyricLinesSize.get(o)?.[0]??0)),!h&&s>=5e3&&(c===this.scrollToIndex&&a?.[2]===-2||c===this.scrollToIndex+1)&&(h=!0,this.interludeDots.setTransform(0,n),a&&this.interludeDots.setInterlude([a[0],a[1]]),n+=this.interludeDotsSize[1]),o.setTransform(f,n,p?1:t,m?1:1/3,this.enableBlur?3*(p?0:1+(c<this.scrollToIndex?Math.abs(this.scrollToIndex-c):Math.abs(c-Math.max(this.scrollToIndex,r)))):0,e,l),u.isBG&&p?n+=this.lyricLinesSize.get(o)?.[1]??0:u.isBG||(n+=this.lyricLinesSize.get(o)?.[1]??0),n>=0&&(l+=.05)})}getCurrentTime(){return this.currentTime}getLyricLines(){return this.lyricLines}getElement(){return this.element}setAlignAnchor(e){this.alignAnchor=e}setCurrentTime(e,t=!1){this.currentTime=e,this.element.style.setProperty("--amll-player-time",`${e}`);const i=new Set,n=new Set,a=new Set;this.hotLines.forEach(s=>{const r=this.processedLines[s];if(!r.isBG)if(r){const l=this.processedLines[s+1];if(l?.isBG){const h=Math.min(r.startTime,l?.startTime),o=Math.max(r.endTime,l?.endTime);(h>e||o<=e)&&(this.hotLines.delete(s),i.add(s),this.hotLines.delete(s+1),i.add(s+1),t&&(this.lyricLinesEl[s].disable(),this.lyricLinesEl[s+1].disable()))}else(r.startTime>e||r.endTime<=e)&&(this.hotLines.delete(s),i.add(s),t&&this.lyricLinesEl[s].disable())}else this.hotLines.delete(s),i.add(s),t&&this.lyricLinesEl[s].disable()}),this.processedLines.forEach((s,r,l)=>{!s.isBG&&s.startTime<=e&&s.endTime>e&&(this.hotLines.has(r)||(this.hotLines.add(r),a.add(r),t&&this.lyricLinesEl[r].enable(),l[r+1]?.isBG&&(this.hotLines.add(r+1),a.add(r+1),t&&this.lyricLinesEl[r+1].enable())))}),this.bufferedLines.forEach(s=>{this.hotLines.has(s)||(n.add(s),t&&this.lyricLinesEl[s].disable())}),t?(this.bufferedLines.size>0?this.scrollToIndex=Math.min(...this.bufferedLines):this.scrollToIndex=this.processedLines.findIndex(s=>s.startTime>=e),this.bufferedLines.clear(),this.hotLines.forEach(s=>this.bufferedLines.add(s)),this.calcLayout(!0)):(n.size>0||a.size>0)&&(n.size===0&&a.size>0?(a.forEach(s=>{this.bufferedLines.add(s),this.lyricLinesEl[s].enable()}),this.scrollToIndex=Math.min(...this.bufferedLines)):a.size===0&&n.size>0?O(n,this.bufferedLines)&&this.bufferedLines.forEach(s=>{this.hotLines.has(s)||(this.bufferedLines.delete(s),this.lyricLinesEl[s].disable())}):(a.forEach(s=>{this.bufferedLines.add(s),this.lyricLinesEl[s].enable()}),n.forEach(s=>{this.bufferedLines.delete(s),this.lyricLinesEl[s].disable()}),this.bufferedLines.size>0&&(this.scrollToIndex=Math.min(...this.bufferedLines))),this.calcLayout())}update(e=0){const t=e/1e3;this.interludeDots.update(e),this.lyricLinesEl.forEach(i=>i.update(t))}setLinePosXSpringParams(e){this.posXSpringParams={...this.posXSpringParams,...e},this.lyricLinesEl.forEach(t=>t.lineTransforms.posX.updateParams(this.posXSpringParams))}setLinePosYSpringParams(e){this.posYSpringParams={...this.posYSpringParams,...e},this.lyricLinesEl.forEach(t=>t.lineTransforms.posY.updateParams(this.posYSpringParams))}setLineScaleSpringParams(e){this.scaleSpringParams={...this.scaleSpringParams,...e},this.lyricLinesEl.forEach(t=>t.lineTransforms.scale.updateParams(this.scaleSpringParams))}dispose(){this.element.remove(),this.resizeObserver.disconnect(),this.style.detach(),this.lyricLinesEl.forEach(e=>e.dispose()),window.removeEventListener("pageshow",this.onPageShow)}}exports.BackgroundRender=q;exports.LyricPlayer=V;exports.ttml=I;
|
|
2
2
|
//# sourceMappingURL=amll-core.js.map
|