twist-aplayer 1.4.4 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -47,4 +47,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
47
47
  *
48
48
  * This source code is licensed under the MIT license found in the
49
49
  * LICENSE file in the root directory of this source tree.
50
- */var sr;function Ct(){return sr||(sr=1,process.env.NODE_ENV!=="production"&&function(){function e(x,g){return x===g&&(x!==0||1/x===1/g)||x!==x&&g!==g}function r(x,g){l||i.startTransition===void 0||(l=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var o=g();if(!p){var v=g();h(o,v)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),p=!0)}v=f({inst:{value:o,getSnapshot:g}});var y=v[0].inst,j=v[1];return s(function(){y.value=o,y.getSnapshot=g,n(y)&&j({inst:y})},[x,o,g]),E(function(){return n(y)&&j({inst:y}),x(function(){n(y)&&j({inst:y})})},[x]),b(o),o}function n(x){var g=x.getSnapshot;x=x.value;try{var o=g();return!h(x,o)}catch{return!0}}function a(x,g){return g()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var i=c,h=typeof Object.is=="function"?Object.is:e,f=i.useState,E=i.useEffect,s=i.useLayoutEffect,b=i.useDebugValue,l=!1,p=!1,S=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?a:r;ke.useSyncExternalStore=i.useSyncExternalStore!==void 0?i.useSyncExternalStore:S,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),ke}var lr;function Pt(){return lr||(lr=1,process.env.NODE_ENV==="production"?xe.exports=Rt():xe.exports=Ct()),xe.exports}var K=Pt();const ee=[];function Lt(e){const r=c.useRef(null);return c.useEffect(()=>{if(typeof window<"u"&&!r.current){const n=r.current=document.createElement("audio");typeof(e==null?void 0:e.src)<"u"&&(n.src=e.src),typeof(e==null?void 0:e.autoPlay)<"u"&&(n.autoplay=e.autoPlay),typeof(e==null?void 0:e.initialVolume)<"u"&&(n.volume=e.initialVolume),ee.includes(n)||ee.push(n)}},[e==null?void 0:e.autoPlay,e==null?void 0:e.initialVolume,e==null?void 0:e.src]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onError))return n.addEventListener("error",e.onError),()=>{n.removeEventListener("error",e.onError)}},[e==null?void 0:e.onError]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onEnded))return n.addEventListener("ended",e.onEnded),()=>{n.removeEventListener("ended",e.onEnded)}},[e==null?void 0:e.onEnded]),c.useEffect(()=>()=>{const n=r.current;if(n){n.pause(),n.currentTime=0;const a=ee.indexOf(n);a!==-1&&ee.splice(a,1)}r.current=null},[]),r}function $t(e){const r=Lt(e),n=c.useCallback(o=>{for(let v=0;v<ee.length;v++){const y=ee[v];y!==o&&!y.paused&&y.pause()}},[]),a=c.useCallback(async o=>{var y;const v=r.current;if(v){e.mutex&&n(v),v.src!==o&&(v.pause(),v.currentTime=0,v.src=o);try{await((y=r.current)==null?void 0:y.play())}catch{}}},[r,e.mutex,n]),i=c.useCallback(o=>{const v=r.current;v&&(v.paused?a(o):v.pause())},[r,a]),h=c.useCallback(o=>{r.current.currentTime=o},[r]),f=c.useCallback(()=>{r.current&&(r.current.muted=!r.current.muted)},[r]),E=c.useCallback(o=>{r.current&&(r.current.volume=o)},[r]),s=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var y;(y=r.current)==null||y.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.volume},()=>{}),b=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var y;(y=r.current)==null||y.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.muted},()=>{}),l=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("timeupdate",o),()=>{var y;(y=r.current)==null||y.removeEventListener("timeupdate",o)}},[r]),()=>{if(r.current)return Math.round(r.current.currentTime)},()=>{}),p=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("durationchange",o),()=>{var y;(y=r.current)==null||y.removeEventListener("durationchange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.duration},()=>{}),S=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("progress",o),()=>{var y;(y=r.current)==null||y.removeEventListener("progress",o)}},[r]),()=>{const o=r.current;return o&&o.buffered.length>0?o.buffered.end(o.buffered.length-1):0},()=>{}),x=K.useSyncExternalStore(c.useCallback(o=>{var v,y;return(v=r.current)==null||v.addEventListener("play",o),(y=r.current)==null||y.addEventListener("pause",o),()=>{var j,O;(j=r.current)==null||j.removeEventListener("play",o),(O=r.current)==null||O.removeEventListener("pause",o)}},[r]),()=>{const o=r.current;return o?!o.paused:!1},()=>{}),g=K.useSyncExternalStore(c.useCallback(o=>{var v,y;return(v=r.current)==null||v.addEventListener("playing",o),(y=r.current)==null||y.addEventListener("waiting",o),()=>{var j,O;(j=r.current)==null||j.removeEventListener("playing",o),(O=r.current)==null||O.removeEventListener("waiting",o)}},[r]),()=>{const o=r.current;return o?o.networkState===o.NETWORK_LOADING:!1},()=>{});return{audio:r.current,playAudio:a,togglePlay:i,seek:h,toggleMuted:f,setVolume:E,volume:s,muted:b,currentTime:l,duration:p,bufferedSeconds:S,isPlaying:x,isLoading:g}}function At(e,r){return c.useMemo(()=>{const n={...r};for(const a in e)e[a]!==void 0&&(n[a]=e[a]);return n},[e,r])}function Mt(e){const[r,n]=c.useState(e);return c.useEffect(()=>{n(e)},[e]),{mini:r,setMini:n}}function mr(){const e=c.useRef([]);return c.useEffect(()=>{const n=e.current;return()=>{for(const a of n)clearTimeout(a)}},[]),c.useCallback((n,a)=>{const i=setTimeout(n,a);return e.current.push(i),i},[])}function kt(){const e=c.useRef(null),[r,n]=c.useState({text:"",style:{opacity:0}}),a=mr(),i=c.useCallback((h,f=2e3)=>{e.current&&clearTimeout(e.current),n({text:h,style:{opacity:1}}),e.current=a(()=>{n({text:h,style:{opacity:0}})},f)},[a]);return[r,i]}function Nt(e){const r=At(e,{appearance:"normal",volume:.7,autoPlay:!1,listMaxHeight:250,mini:!1,mutex:!0,listFolded:!1,theme:"light",border:!1}),{audio:n,appearance:a,initialLoop:i,initialOrder:h,volume:f,autoPlay:E,listMaxHeight:s,listFolded:b,mutex:l,theme:p,border:S}=r,x=c.useMemo(()=>Array.isArray(n)?n:[n],[n]),g=It(x,{initialLoop:i,initialOrder:h}),[o,v]=kt(),{mini:y,setMini:j}=Mt(r.mini),O=mr(),P=c.useRef(null),F=c.useCallback(()=>{P.current&&(clearTimeout(P.current),P.current=null)},[]),B=c.useRef(!1),N=$t({src:g.currentSong.url,initialVolume:f,autoPlay:E,mutex:l,onError(I){const{error:X}=I.target;X&&v("An audio error has occurred, player will skip forward in 2 seconds."),g.hasNextSong&&(P.current=O(()=>{g.next()},2e3))},onEnded(){const{list:I,currentSong:X,loop:ae,prioritize:ie,hasNextSong:me}=g,{audio:ue}=N;if(ae==="one"){ie({...X});return}if(!me&&ae==="none"){B.current=!0,ue.currentTime=0,ue.pause(),ue.src=I[0].url,ie(I[0]);return}g.next()}}),U=g.length>1,A=c.useCallback(()=>{F(),N.togglePlay(g.currentSong.url)},[N,F,g.currentSong.url]),{prioritize:de}=g,_e=c.useCallback(I=>{F(),de(I)},[F,de]),[ve,z]=c.useState(()=>U&&!b),[H,Y]=c.useState(!0),J=c.useRef(null);c.useEffect(()=>{E&&N.playAudio(g.currentSong.url)},[]);const te=c.useRef(!0),ne=c.useRef(g.currentSong);return c.useEffect(()=>{if(te.current){te.current=!1;return}if(B.current){B.current=!1;return}g.currentSong&&(g.loop==="one"||g.currentSong!==ne.current)&&(ne.current=g.currentSong,N.playAudio(g.currentSong.url))},[g.currentSong]),c.useEffect(()=>{if(a==="fixed"&&J.current){const I=J.current;return I.style.width="400px",()=>{I.removeAttribute("style")}}},[a]),{bodyRef:J,appearance:a,volume:f,listMaxHeight:s,theme:p,border:S,notice:o,audioControl:N,audio:x,handlePlayButtonClick:A,handlePlayAudioFromList:_e,isPlaylistOpen:ve,setPlaylistOpen:z,mini:y,displayLyrics:H,setDisplayLyrics:Y,setMini:j,playlist:g,hasPlaylist:U}}function qt(e){return Dt(e.slice())}function Dt(e){let r=e.length,n;for(;r!==0;)n=Math.floor(Math.random()*r),r--,[e[r],e[n]]=[e[n],e[r]];return e}function It(e,r){const{initialLoop:n="all",initialOrder:a="list"}=r,[i,h]=c.useState(n),[f,E]=c.useState(a),s=c.useMemo(()=>f==="list"?e:qt(e),[e,f]),[b,l]=c.useState(s[0]),p=c.useCallback(v=>v.url,[]),S=c.useMemo(()=>s.findIndex(y=>p(y)===p(b))<s.length-1||i!=="none",[s,b,i,p]),x=c.useCallback(()=>{l(v=>{const y=s.findIndex(j=>p(j)===p(v));return y<s.length-1?s[y+1]:{...s[0]}})},[i,s,p]),g=c.useCallback(()=>{l(v=>{const y=s.indexOf(v);return y>0?s[y-1]:v})},[s]),o=c.useCallback(v=>{l(v)},[]);return c.useEffect(()=>{const v=s.find(y=>p(y)===p(b));l(v||s[0])},[s,p,b]),{list:s,currentSong:b,hasNextSong:S,next:x,previous:g,prioritize:o,order:f,setOrder:E,loop:i,setLoop:h,length:s.length}}function Vt(e){var B,N,U;const r=W("aplayer"),{bodyRef:n,appearance:a,volume:i,listMaxHeight:h,theme:f,border:E,notice:s,audio:b,audioControl:l,handlePlayButtonClick:p,handlePlayAudioFromList:S,isPlaylistOpen:x,setPlaylistOpen:g,mini:o,displayLyrics:v,setDisplayLyrics:y,setMini:j,playlist:O,hasPlaylist:P}=Nt(e),F=c.useCallback(A=>A?typeof A=="string"?A:A.url?d.jsx("a",{href:A.url,target:"_blank",rel:"noreferrer",children:A.name??"Audio artist"}):A.name??"Audio artist":"Audio artist",[]);return d.jsxs("div",{className:L(r.b(),{[r.bs(f)]:!0,[r.bs("vars")]:!0,[r.bm(a)]:!0,[r.bm("loading")]:l.isLoading,[r.bm("withlist")]:P,[r.bm("list-folded")]:!x,[r.bm("withlrc")]:!!O.currentSong.lrc&&a!=="fixed",[r.bm("narrow")]:o,[r.bm("border")]:E}),role:"region","aria-label":"Audio Player",children:[d.jsxs("div",{ref:n,className:r.be("body"),children:[d.jsx("div",{className:r.be("pic"),onClick:p,style:{backgroundImage:`url("${(B=O.currentSong)==null?void 0:B.cover}")`},role:"button","aria-label":l.isPlaying?"Pause audio":"Play audio",children:d.jsx("div",{className:L(r.be("button"),l.isPlaying?r.bm("pause"):r.bm("play")),role:"presentation",children:l.isPlaying?d.jsx(lt,{}):d.jsx(St,{})})}),d.jsxs("div",{className:L(r.be("info")),children:[d.jsxs("div",{className:L(r.be("music")),children:[d.jsx("span",{className:L(r.be("title")),children:((N=O.currentSong)==null?void 0:N.name)??"Audio name"}),d.jsxs("span",{className:L(r.be("author")),children:[" ","-"," ",F((U=O.currentSong)==null?void 0:U.artist)]})]}),a==="fixed"?null:d.jsx(ur,{show:v,lrcText:O.currentSong.lrc,currentTime:l.currentTime??0}),d.jsx(wt,{volume:l.volume??i,onChangeVolume:l.setVolume,muted:l.muted??!1,onToggleMuted:()=>l.toggleMuted(),currentTime:l.currentTime,audioDurationSeconds:l.duration,bufferedSeconds:l.bufferedSeconds,onSeek:A=>l.seek(A),onToggleMenu:()=>g(A=>!A),order:O.order,onOrderChange:O.setOrder,loop:O.loop,onLoopChange:O.setLoop,isPlaying:l.isPlaying??!1,onTogglePlay:p,onSkipForward:()=>{O.hasNextSong&&O.next()},onSkipBack:()=>{O.previous()},showLyrics:v,onToggleLyrics:()=>{y(A=>!A)}})]}),d.jsx("div",{className:r.be("notice"),style:s.style,children:s.text}),d.jsx("div",{className:r.be("miniswitcher"),onClick:()=>j(A=>!A),children:d.jsx("button",{className:L(r.bs("icon"),r.bs("icon-right")),type:"button",children:d.jsx(st,{})})})]}),P?d.jsx(jt,{open:x,audio:b,playingAudioUrl:O.currentSong.url,onPlayAudio:S,listMaxHeight:h,mini:o}):null,a==="fixed"&&d.jsx(ur,{show:v,lrcText:O.currentSong.lrc,currentTime:l.currentTime??0})]})}exports.TwistAPlayer=Vt;
50
+ */var sr;function Ct(){return sr||(sr=1,process.env.NODE_ENV!=="production"&&function(){function e(x,g){return x===g&&(x!==0||1/x===1/g)||x!==x&&g!==g}function r(x,g){l||i.startTransition===void 0||(l=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var o=g();if(!p){var v=g();h(o,v)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),p=!0)}v=f({inst:{value:o,getSnapshot:g}});var y=v[0].inst,j=v[1];return s(function(){y.value=o,y.getSnapshot=g,n(y)&&j({inst:y})},[x,o,g]),E(function(){return n(y)&&j({inst:y}),x(function(){n(y)&&j({inst:y})})},[x]),b(o),o}function n(x){var g=x.getSnapshot;x=x.value;try{var o=g();return!h(x,o)}catch{return!0}}function a(x,g){return g()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var i=c,h=typeof Object.is=="function"?Object.is:e,f=i.useState,E=i.useEffect,s=i.useLayoutEffect,b=i.useDebugValue,l=!1,p=!1,S=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?a:r;ke.useSyncExternalStore=i.useSyncExternalStore!==void 0?i.useSyncExternalStore:S,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),ke}var lr;function Pt(){return lr||(lr=1,process.env.NODE_ENV==="production"?xe.exports=Rt():xe.exports=Ct()),xe.exports}var K=Pt();const ee=[];function Lt(e){const r=c.useRef();return c.useEffect(()=>{if(typeof window<"u"&&!r.current){const n=r.current=document.createElement("audio");typeof(e==null?void 0:e.src)<"u"&&(n.src=e.src),typeof(e==null?void 0:e.autoPlay)<"u"&&(n.autoplay=e.autoPlay),typeof(e==null?void 0:e.initialVolume)<"u"&&(n.volume=e.initialVolume),ee.includes(n)||ee.push(n)}},[e==null?void 0:e.autoPlay,e==null?void 0:e.initialVolume,e==null?void 0:e.src]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onError))return n.addEventListener("error",e.onError),()=>{n.removeEventListener("error",e.onError)}},[e==null?void 0:e.onError]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onEnded))return n.addEventListener("ended",e.onEnded),()=>{n.removeEventListener("ended",e.onEnded)}},[e==null?void 0:e.onEnded]),c.useEffect(()=>()=>{const n=r.current;if(n){n.pause(),n.currentTime=0;const a=ee.indexOf(n);a!==-1&&ee.splice(a,1)}r.current=void 0},[]),r}function $t(e){const r=Lt(e),n=c.useCallback(o=>{for(let v=0;v<ee.length;v++){const y=ee[v];y!==o&&!y.paused&&y.pause()}},[]),a=c.useCallback(async o=>{var y;const v=r.current;if(v){e.mutex&&n(v),v.src!==o&&(v.pause(),v.currentTime=0,v.src=o);try{await((y=r.current)==null?void 0:y.play())}catch{}}},[r,e.mutex,n]),i=c.useCallback(o=>{const v=r.current;v&&(v.paused?a(o):v.pause())},[r,a]),h=c.useCallback(o=>{r.current.currentTime=o},[r]),f=c.useCallback(()=>{r.current&&(r.current.muted=!r.current.muted)},[r]),E=c.useCallback(o=>{r.current&&(r.current.volume=o)},[r]),s=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var y;(y=r.current)==null||y.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.volume},()=>{}),b=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var y;(y=r.current)==null||y.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.muted},()=>{}),l=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("timeupdate",o),()=>{var y;(y=r.current)==null||y.removeEventListener("timeupdate",o)}},[r]),()=>{if(r.current)return Math.round(r.current.currentTime)},()=>{}),p=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("durationchange",o),()=>{var y;(y=r.current)==null||y.removeEventListener("durationchange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.duration},()=>{}),S=K.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("progress",o),()=>{var y;(y=r.current)==null||y.removeEventListener("progress",o)}},[r]),()=>{const o=r.current;return o&&o.buffered.length>0?o.buffered.end(o.buffered.length-1):0},()=>{}),x=K.useSyncExternalStore(c.useCallback(o=>{var v,y;return(v=r.current)==null||v.addEventListener("play",o),(y=r.current)==null||y.addEventListener("pause",o),()=>{var j,O;(j=r.current)==null||j.removeEventListener("play",o),(O=r.current)==null||O.removeEventListener("pause",o)}},[r]),()=>{const o=r.current;return o?!o.paused:!1},()=>{}),g=K.useSyncExternalStore(c.useCallback(o=>{var v,y;return(v=r.current)==null||v.addEventListener("playing",o),(y=r.current)==null||y.addEventListener("waiting",o),()=>{var j,O;(j=r.current)==null||j.removeEventListener("playing",o),(O=r.current)==null||O.removeEventListener("waiting",o)}},[r]),()=>{const o=r.current;return o?o.networkState===o.NETWORK_LOADING:!1},()=>{});return{audio:r.current,playAudio:a,togglePlay:i,seek:h,toggleMuted:f,setVolume:E,volume:s,muted:b,currentTime:l,duration:p,bufferedSeconds:S,isPlaying:x,isLoading:g}}function At(e,r){return c.useMemo(()=>{const n={...r};for(const a in e)e[a]!==void 0&&(n[a]=e[a]);return n},[e,r])}function Mt(e){const[r,n]=c.useState(e);return c.useEffect(()=>{n(e)},[e]),{mini:r,setMini:n}}function mr(){const e=c.useRef([]);return c.useEffect(()=>{const n=e.current;return()=>{for(const a of n)clearTimeout(a)}},[]),c.useCallback((n,a)=>{const i=setTimeout(n,a);return e.current.push(i),i},[])}function kt(){const e=c.useRef(null),[r,n]=c.useState({text:"",style:{opacity:0}}),a=mr(),i=c.useCallback((h,f=2e3)=>{e.current&&clearTimeout(e.current),n({text:h,style:{opacity:1}}),e.current=a(()=>{n({text:h,style:{opacity:0}})},f)},[a]);return[r,i]}function Nt(e){const r=At(e,{appearance:"normal",volume:.7,autoPlay:!1,listMaxHeight:250,mini:!1,mutex:!0,listFolded:!1,theme:"light",border:!1}),{audio:n,appearance:a,initialLoop:i,initialOrder:h,volume:f,autoPlay:E,listMaxHeight:s,listFolded:b,mutex:l,theme:p,border:S}=r,x=c.useMemo(()=>Array.isArray(n)?n:[n],[n]),g=It(x,{initialLoop:i,initialOrder:h}),[o,v]=kt(),{mini:y,setMini:j}=Mt(r.mini),O=mr(),P=c.useRef(null),F=c.useCallback(()=>{P.current&&(clearTimeout(P.current),P.current=null)},[]),B=c.useRef(!1),N=$t({src:g.currentSong.url,initialVolume:f,autoPlay:E,mutex:l,onError(I){const{error:X}=I.target;X&&v("An audio error has occurred, player will skip forward in 2 seconds."),g.hasNextSong&&(P.current=O(()=>{g.next()},2e3))},onEnded(){const{list:I,currentSong:X,loop:ae,prioritize:ie,hasNextSong:me}=g,{audio:ue}=N;if(ae==="one"){ie({...X});return}if(!me&&ae==="none"){B.current=!0,ue.currentTime=0,ue.pause(),ue.src=I[0].url,ie(I[0]);return}g.next()}}),U=g.length>1,A=c.useCallback(()=>{F(),N.togglePlay(g.currentSong.url)},[N,F,g.currentSong.url]),{prioritize:de}=g,_e=c.useCallback(I=>{F(),de(I)},[F,de]),[ve,z]=c.useState(()=>U&&!b),[H,Y]=c.useState(!0),J=c.useRef(null);c.useEffect(()=>{E&&N.playAudio(g.currentSong.url)},[]);const te=c.useRef(!0),ne=c.useRef(g.currentSong);return c.useEffect(()=>{if(te.current){te.current=!1;return}if(B.current){B.current=!1;return}g.currentSong&&(g.loop==="one"||g.currentSong!==ne.current)&&(ne.current=g.currentSong,N.playAudio(g.currentSong.url))},[g.currentSong]),c.useEffect(()=>{if(a==="fixed"&&J.current){const I=J.current;return I.style.width="400px",()=>{I.removeAttribute("style")}}},[a]),{bodyRef:J,appearance:a,volume:f,listMaxHeight:s,theme:p,border:S,notice:o,audioControl:N,audio:x,handlePlayButtonClick:A,handlePlayAudioFromList:_e,isPlaylistOpen:ve,setPlaylistOpen:z,mini:y,displayLyrics:H,setDisplayLyrics:Y,setMini:j,playlist:g,hasPlaylist:U}}function qt(e){return Dt(e.slice())}function Dt(e){let r=e.length,n;for(;r!==0;)n=Math.floor(Math.random()*r),r--,[e[r],e[n]]=[e[n],e[r]];return e}function It(e,r){const{initialLoop:n="all",initialOrder:a="list"}=r,[i,h]=c.useState(n),[f,E]=c.useState(a),s=c.useMemo(()=>f==="list"?e:qt(e),[e,f]),[b,l]=c.useState(s[0]),p=c.useCallback(v=>v.url,[]),S=c.useMemo(()=>s.findIndex(y=>p(y)===p(b))<s.length-1||i!=="none",[s,b,i,p]),x=c.useCallback(()=>{l(v=>{const y=s.findIndex(j=>p(j)===p(v));return y<s.length-1?s[y+1]:{...s[0]}})},[i,s,p]),g=c.useCallback(()=>{l(v=>{const y=s.indexOf(v);return y>0?s[y-1]:v})},[s]),o=c.useCallback(v=>{l(v)},[]);return c.useEffect(()=>{const v=s.find(y=>p(y)===p(b));l(v||s[0])},[s,p,b]),{list:s,currentSong:b,hasNextSong:S,next:x,previous:g,prioritize:o,order:f,setOrder:E,loop:i,setLoop:h,length:s.length}}function Vt(e){var B,N,U;const r=W("aplayer"),{bodyRef:n,appearance:a,volume:i,listMaxHeight:h,theme:f,border:E,notice:s,audio:b,audioControl:l,handlePlayButtonClick:p,handlePlayAudioFromList:S,isPlaylistOpen:x,setPlaylistOpen:g,mini:o,displayLyrics:v,setDisplayLyrics:y,setMini:j,playlist:O,hasPlaylist:P}=Nt(e),F=c.useCallback(A=>A?typeof A=="string"?A:A.url?d.jsx("a",{href:A.url,target:"_blank",rel:"noreferrer",children:A.name??"Audio artist"}):A.name??"Audio artist":"Audio artist",[]);return d.jsxs("div",{className:L(r.b(),{[r.bs(f)]:!0,[r.bs("vars")]:!0,[r.bm(a)]:!0,[r.bm("loading")]:l.isLoading,[r.bm("withlist")]:P,[r.bm("list-folded")]:!x,[r.bm("withlrc")]:!!O.currentSong.lrc&&a!=="fixed",[r.bm("narrow")]:o,[r.bm("border")]:E}),role:"region","aria-label":"Audio Player",children:[d.jsxs("div",{ref:n,className:r.be("body"),children:[d.jsx("div",{className:r.be("pic"),onClick:p,style:{backgroundImage:`url("${(B=O.currentSong)==null?void 0:B.cover}")`},role:"button","aria-label":l.isPlaying?"Pause audio":"Play audio",children:d.jsx("div",{className:L(r.be("button"),l.isPlaying?r.bm("pause"):r.bm("play")),role:"presentation",children:l.isPlaying?d.jsx(lt,{}):d.jsx(St,{})})}),d.jsxs("div",{className:L(r.be("info")),children:[d.jsxs("div",{className:L(r.be("music")),children:[d.jsx("span",{className:L(r.be("title")),children:((N=O.currentSong)==null?void 0:N.name)??"Audio name"}),d.jsxs("span",{className:L(r.be("author")),children:[" ","-"," ",F((U=O.currentSong)==null?void 0:U.artist)]})]}),a==="fixed"?null:d.jsx(ur,{show:v,lrcText:O.currentSong.lrc,currentTime:l.currentTime??0}),d.jsx(wt,{volume:l.volume??i,onChangeVolume:l.setVolume,muted:l.muted??!1,onToggleMuted:()=>l.toggleMuted(),currentTime:l.currentTime,audioDurationSeconds:l.duration,bufferedSeconds:l.bufferedSeconds,onSeek:A=>l.seek(A),onToggleMenu:()=>g(A=>!A),order:O.order,onOrderChange:O.setOrder,loop:O.loop,onLoopChange:O.setLoop,isPlaying:l.isPlaying??!1,onTogglePlay:p,onSkipForward:()=>{O.hasNextSong&&O.next()},onSkipBack:()=>{O.previous()},showLyrics:v,onToggleLyrics:()=>{y(A=>!A)}})]}),d.jsx("div",{className:r.be("notice"),style:s.style,children:s.text}),d.jsx("div",{className:r.be("miniswitcher"),onClick:()=>j(A=>!A),children:d.jsx("button",{className:L(r.bs("icon"),r.bs("icon-right")),type:"button",children:d.jsx(st,{})})})]}),P?d.jsx(jt,{open:x,audio:b,playingAudioUrl:O.currentSong.url,onPlayAudio:S,listMaxHeight:h,mini:o}):null,a==="fixed"&&d.jsx(ur,{show:v,lrcText:O.currentSong.lrc,currentTime:l.currentTime??0})]})}exports.TwistAPlayer=Vt;
package/dist/index.mjs CHANGED
@@ -1449,7 +1449,7 @@ function Mt() {
1449
1449
  var Z = Mt();
1450
1450
  const ae = [];
1451
1451
  function Nt(e) {
1452
- const r = F(null);
1452
+ const r = F();
1453
1453
  return B(() => {
1454
1454
  if (typeof window < "u" && !r.current) {
1455
1455
  const n = r.current = document.createElement("audio");
@@ -1476,7 +1476,7 @@ function Nt(e) {
1476
1476
  const a = ae.indexOf(n);
1477
1477
  a !== -1 && ae.splice(a, 1);
1478
1478
  }
1479
- r.current = null;
1479
+ r.current = void 0;
1480
1480
  }, []), r;
1481
1481
  }
1482
1482
  function qt(e) {
@@ -47,4 +47,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
47
47
  *
48
48
  * This source code is licensed under the MIT license found in the
49
49
  * LICENSE file in the root directory of this source tree.
50
- */return e.NODE_ENV!=="production"&&function(){function r(b,o){return b===o&&(b!==0||1/b===1/o)||b!==b&&o!==o}function n(b,o){p||f.startTransition===void 0||(p=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var v=o();if(!g){var x=o();d(v,x)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),g=!0)}x=E({inst:{value:v,getSnapshot:o}});var C=x[0].inst,S=x[1];return y(function(){C.value=v,C.getSnapshot=o,a(C)&&S({inst:C})},[b,v,o]),s(function(){return a(C)&&S({inst:C}),b(function(){a(C)&&S({inst:C})})},[b]),l(v),v}function a(b){var o=b.getSnapshot;b=b.value;try{var v=o();return!d(b,v)}catch{return!0}}function i(b,o){return o()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var f=c,d=typeof Object.is=="function"?Object.is:r,E=f.useState,s=f.useEffect,y=f.useLayoutEffect,l=f.useDebugValue,p=!1,g=!1,T=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?i:n;Oe.useSyncExternalStore=f.useSyncExternalStore!==void 0?f.useSyncExternalStore:T,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}(),Oe}var Ze;function it(){if(Ze)return pe.exports;Ze=1;var e={};return e.NODE_ENV==="production"?pe.exports=nt():pe.exports=at(),pe.exports}var G=it();const Q=[];function ot(e){const r=c.useRef(null);return c.useEffect(()=>{if(typeof window<"u"&&!r.current){const n=r.current=document.createElement("audio");typeof(e==null?void 0:e.src)<"u"&&(n.src=e.src),typeof(e==null?void 0:e.autoPlay)<"u"&&(n.autoplay=e.autoPlay),typeof(e==null?void 0:e.initialVolume)<"u"&&(n.volume=e.initialVolume),Q.includes(n)||Q.push(n)}},[e==null?void 0:e.autoPlay,e==null?void 0:e.initialVolume,e==null?void 0:e.src]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onError))return n.addEventListener("error",e.onError),()=>{n.removeEventListener("error",e.onError)}},[e==null?void 0:e.onError]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onEnded))return n.addEventListener("ended",e.onEnded),()=>{n.removeEventListener("ended",e.onEnded)}},[e==null?void 0:e.onEnded]),c.useEffect(()=>()=>{const n=r.current;if(n){n.pause(),n.currentTime=0;const a=Q.indexOf(n);a!==-1&&Q.splice(a,1)}r.current=null},[]),r}function ut(e){const r=ot(e),n=c.useCallback(o=>{for(let v=0;v<Q.length;v++){const x=Q[v];x!==o&&!x.paused&&x.pause()}},[]),a=c.useCallback(async o=>{var x;const v=r.current;if(v){e.mutex&&n(v),v.src!==o&&(v.pause(),v.currentTime=0,v.src=o);try{await((x=r.current)==null?void 0:x.play())}catch{}}},[r,e.mutex,n]),i=c.useCallback(o=>{const v=r.current;v&&(v.paused?a(o):v.pause())},[r,a]),f=c.useCallback(o=>{r.current.currentTime=o},[r]),d=c.useCallback(()=>{r.current&&(r.current.muted=!r.current.muted)},[r]),E=c.useCallback(o=>{r.current&&(r.current.volume=o)},[r]),s=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var x;(x=r.current)==null||x.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.volume},()=>{}),y=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var x;(x=r.current)==null||x.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.muted},()=>{}),l=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("timeupdate",o),()=>{var x;(x=r.current)==null||x.removeEventListener("timeupdate",o)}},[r]),()=>{if(r.current)return Math.round(r.current.currentTime)},()=>{}),p=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("durationchange",o),()=>{var x;(x=r.current)==null||x.removeEventListener("durationchange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.duration},()=>{}),g=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("progress",o),()=>{var x;(x=r.current)==null||x.removeEventListener("progress",o)}},[r]),()=>{const o=r.current;return o&&o.buffered.length>0?o.buffered.end(o.buffered.length-1):0},()=>{}),T=G.useSyncExternalStore(c.useCallback(o=>{var v,x;return(v=r.current)==null||v.addEventListener("play",o),(x=r.current)==null||x.addEventListener("pause",o),()=>{var C,S;(C=r.current)==null||C.removeEventListener("play",o),(S=r.current)==null||S.removeEventListener("pause",o)}},[r]),()=>{const o=r.current;return o?!o.paused:!1},()=>{}),b=G.useSyncExternalStore(c.useCallback(o=>{var v,x;return(v=r.current)==null||v.addEventListener("playing",o),(x=r.current)==null||x.addEventListener("waiting",o),()=>{var C,S;(C=r.current)==null||C.removeEventListener("playing",o),(S=r.current)==null||S.removeEventListener("waiting",o)}},[r]),()=>{const o=r.current;return o?o.networkState===o.NETWORK_LOADING:!1},()=>{});return{audio:r.current,playAudio:a,togglePlay:i,seek:f,toggleMuted:d,setVolume:E,volume:s,muted:y,currentTime:l,duration:p,bufferedSeconds:g,isPlaying:T,isLoading:b}}function st(e,r){return c.useMemo(()=>{const n={...r};for(const a in e)e[a]!==void 0&&(n[a]=e[a]);return n},[e,r])}function lt(e){const[r,n]=c.useState(e);return c.useEffect(()=>{n(e)},[e]),{mini:r,setMini:n}}function er(){const e=c.useRef([]);return c.useEffect(()=>{const n=e.current;return()=>{for(const a of n)clearTimeout(a)}},[]),c.useCallback((n,a)=>{const i=setTimeout(n,a);return e.current.push(i),i},[])}function ct(){const e=c.useRef(null),[r,n]=c.useState({text:"",style:{opacity:0}}),a=er(),i=c.useCallback((f,d=2e3)=>{e.current&&clearTimeout(e.current),n({text:f,style:{opacity:1}}),e.current=a(()=>{n({text:f,style:{opacity:0}})},d)},[a]);return[r,i]}function ft(e){const r=st(e,{appearance:"normal",volume:.7,autoPlay:!1,listMaxHeight:250,mini:!1,mutex:!0,listFolded:!1,theme:"light",border:!1}),{audio:n,appearance:a,initialLoop:i,initialOrder:f,volume:d,autoPlay:E,listMaxHeight:s,listFolded:y,mutex:l,theme:p,border:g}=r,T=c.useMemo(()=>Array.isArray(n)?n:[n],[n]),b=mt(T,{initialLoop:i,initialOrder:f}),[o,v]=ct(),{mini:x,setMini:C}=lt(r.mini),S=er(),L=c.useRef(null),F=c.useCallback(()=>{L.current&&(clearTimeout(L.current),L.current=null)},[]),B=c.useRef(!1),N=ut({src:b.currentSong.url,initialVolume:d,autoPlay:E,mutex:l,onError(I){const{error:Z}=I.target;Z&&v("An audio error has occurred, player will skip forward in 2 seconds."),b.hasNextSong&&(L.current=S(()=>{b.next()},2e3))},onEnded(){const{list:I,currentSong:Z,loop:ce,prioritize:fe,hasNextSong:be}=b,{audio:ee}=N;if(ce==="one"){fe({...Z});return}if(!be&&ce==="none"){B.current=!0,ee.currentTime=0,ee.pause(),ee.src=I[0].url,fe(I[0]);return}b.next()}}),K=b.length>1,k=c.useCallback(()=>{F(),N.togglePlay(b.currentSong.url)},[N,F,b.currentSong.url]),{prioritize:ue}=b,Ce=c.useCallback(I=>{F(),ue(I)},[F,ue]),[Pe,ye]=c.useState(()=>K&&!y),[z,W]=c.useState(!0),U=c.useRef(null);c.useEffect(()=>{E&&N.playAudio(b.currentSong.url)},[]);const se=c.useRef(!0),le=c.useRef(b.currentSong);return c.useEffect(()=>{if(se.current){se.current=!1;return}if(B.current){B.current=!1;return}b.currentSong&&(b.loop==="one"||b.currentSong!==le.current)&&(le.current=b.currentSong,N.playAudio(b.currentSong.url))},[b.currentSong]),c.useEffect(()=>{if(a==="fixed"&&U.current){const I=U.current;return I.style.width="400px",()=>{I.removeAttribute("style")}}},[a]),{bodyRef:U,appearance:a,volume:d,listMaxHeight:s,theme:p,border:g,notice:o,audioControl:N,audio:T,handlePlayButtonClick:k,handlePlayAudioFromList:Ce,isPlaylistOpen:Pe,setPlaylistOpen:ye,mini:x,displayLyrics:z,setDisplayLyrics:W,setMini:C,playlist:b,hasPlaylist:K}}function dt(e){return vt(e.slice())}function vt(e){let r=e.length,n;for(;r!==0;)n=Math.floor(Math.random()*r),r--,[e[r],e[n]]=[e[n],e[r]];return e}function mt(e,r){const{initialLoop:n="all",initialOrder:a="list"}=r,[i,f]=c.useState(n),[d,E]=c.useState(a),s=c.useMemo(()=>d==="list"?e:dt(e),[e,d]),[y,l]=c.useState(s[0]),p=c.useCallback(v=>v.url,[]),g=c.useMemo(()=>s.findIndex(x=>p(x)===p(y))<s.length-1||i!=="none",[s,y,i,p]),T=c.useCallback(()=>{l(v=>{const x=s.findIndex(C=>p(C)===p(v));return x<s.length-1?s[x+1]:{...s[0]}})},[i,s,p]),b=c.useCallback(()=>{l(v=>{const x=s.indexOf(v);return x>0?s[x-1]:v})},[s]),o=c.useCallback(v=>{l(v)},[]);return c.useEffect(()=>{const v=s.find(x=>p(x)===p(y));l(v||s[0])},[s,p,y]),{list:s,currentSong:y,hasNextSong:g,next:T,previous:b,prioritize:o,order:d,setOrder:E,loop:i,setLoop:f,length:s.length}}function ht(e){var B,N,K;const r=H("aplayer"),{bodyRef:n,appearance:a,volume:i,listMaxHeight:f,theme:d,border:E,notice:s,audio:y,audioControl:l,handlePlayButtonClick:p,handlePlayAudioFromList:g,isPlaylistOpen:T,setPlaylistOpen:b,mini:o,displayLyrics:v,setDisplayLyrics:x,setMini:C,playlist:S,hasPlaylist:L}=ft(e),F=c.useCallback(k=>k?typeof k=="string"?k:k.url?m.jsx("a",{href:k.url,target:"_blank",rel:"noreferrer",children:k.name??"Audio artist"}):k.name??"Audio artist":"Audio artist",[]);return m.jsxs("div",{className:$(r.b(),{[r.bs(d)]:!0,[r.bs("vars")]:!0,[r.bm(a)]:!0,[r.bm("loading")]:l.isLoading,[r.bm("withlist")]:L,[r.bm("list-folded")]:!T,[r.bm("withlrc")]:!!S.currentSong.lrc&&a!=="fixed",[r.bm("narrow")]:o,[r.bm("border")]:E}),role:"region","aria-label":"Audio Player",children:[m.jsxs("div",{ref:n,className:r.be("body"),children:[m.jsx("div",{className:r.be("pic"),onClick:p,style:{backgroundImage:`url("${(B=S.currentSong)==null?void 0:B.cover}")`},role:"button","aria-label":l.isPlaying?"Pause audio":"Play audio",children:m.jsx("div",{className:$(r.be("button"),l.isPlaying?r.bm("pause"):r.bm("play")),role:"presentation",children:l.isPlaying?m.jsx(Dr,{}):m.jsx(Xr,{})})}),m.jsxs("div",{className:$(r.be("info")),children:[m.jsxs("div",{className:$(r.be("music")),children:[m.jsx("span",{className:$(r.be("title")),children:((N=S.currentSong)==null?void 0:N.name)??"Audio name"}),m.jsxs("span",{className:$(r.be("author")),children:[" ","-"," ",F((K=S.currentSong)==null?void 0:K.artist)]})]}),a==="fixed"?null:m.jsx(Je,{show:v,lrcText:S.currentSong.lrc,currentTime:l.currentTime??0}),m.jsx(et,{volume:l.volume??i,onChangeVolume:l.setVolume,muted:l.muted??!1,onToggleMuted:()=>l.toggleMuted(),currentTime:l.currentTime,audioDurationSeconds:l.duration,bufferedSeconds:l.bufferedSeconds,onSeek:k=>l.seek(k),onToggleMenu:()=>b(k=>!k),order:S.order,onOrderChange:S.setOrder,loop:S.loop,onLoopChange:S.setLoop,isPlaying:l.isPlaying??!1,onTogglePlay:p,onSkipForward:()=>{S.hasNextSong&&S.next()},onSkipBack:()=>{S.previous()},showLyrics:v,onToggleLyrics:()=>{x(k=>!k)}})]}),m.jsx("div",{className:r.be("notice"),style:s.style,children:s.text}),m.jsx("div",{className:r.be("miniswitcher"),onClick:()=>C(k=>!k),children:m.jsx("button",{className:$(r.bs("icon"),r.bs("icon-right")),type:"button",children:m.jsx(Rr,{})})})]}),L?m.jsx(rt,{open:T,audio:y,playingAudioUrl:S.currentSong.url,onPlayAudio:g,listMaxHeight:f,mini:o}):null,a==="fixed"&&m.jsx(Je,{show:v,lrcText:S.currentSong.lrc,currentTime:l.currentTime??0})]})}Y.TwistAPlayer=ht,Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"})});
50
+ */return e.NODE_ENV!=="production"&&function(){function r(b,o){return b===o&&(b!==0||1/b===1/o)||b!==b&&o!==o}function n(b,o){p||f.startTransition===void 0||(p=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var v=o();if(!g){var x=o();d(v,x)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),g=!0)}x=E({inst:{value:v,getSnapshot:o}});var C=x[0].inst,S=x[1];return y(function(){C.value=v,C.getSnapshot=o,a(C)&&S({inst:C})},[b,v,o]),s(function(){return a(C)&&S({inst:C}),b(function(){a(C)&&S({inst:C})})},[b]),l(v),v}function a(b){var o=b.getSnapshot;b=b.value;try{var v=o();return!d(b,v)}catch{return!0}}function i(b,o){return o()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var f=c,d=typeof Object.is=="function"?Object.is:r,E=f.useState,s=f.useEffect,y=f.useLayoutEffect,l=f.useDebugValue,p=!1,g=!1,T=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?i:n;Oe.useSyncExternalStore=f.useSyncExternalStore!==void 0?f.useSyncExternalStore:T,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}(),Oe}var Ze;function it(){if(Ze)return pe.exports;Ze=1;var e={};return e.NODE_ENV==="production"?pe.exports=nt():pe.exports=at(),pe.exports}var G=it();const Q=[];function ot(e){const r=c.useRef();return c.useEffect(()=>{if(typeof window<"u"&&!r.current){const n=r.current=document.createElement("audio");typeof(e==null?void 0:e.src)<"u"&&(n.src=e.src),typeof(e==null?void 0:e.autoPlay)<"u"&&(n.autoplay=e.autoPlay),typeof(e==null?void 0:e.initialVolume)<"u"&&(n.volume=e.initialVolume),Q.includes(n)||Q.push(n)}},[e==null?void 0:e.autoPlay,e==null?void 0:e.initialVolume,e==null?void 0:e.src]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onError))return n.addEventListener("error",e.onError),()=>{n.removeEventListener("error",e.onError)}},[e==null?void 0:e.onError]),c.useEffect(()=>{if(typeof window>"u")return;const n=r.current;if(n&&(e!=null&&e.onEnded))return n.addEventListener("ended",e.onEnded),()=>{n.removeEventListener("ended",e.onEnded)}},[e==null?void 0:e.onEnded]),c.useEffect(()=>()=>{const n=r.current;if(n){n.pause(),n.currentTime=0;const a=Q.indexOf(n);a!==-1&&Q.splice(a,1)}r.current=void 0},[]),r}function ut(e){const r=ot(e),n=c.useCallback(o=>{for(let v=0;v<Q.length;v++){const x=Q[v];x!==o&&!x.paused&&x.pause()}},[]),a=c.useCallback(async o=>{var x;const v=r.current;if(v){e.mutex&&n(v),v.src!==o&&(v.pause(),v.currentTime=0,v.src=o);try{await((x=r.current)==null?void 0:x.play())}catch{}}},[r,e.mutex,n]),i=c.useCallback(o=>{const v=r.current;v&&(v.paused?a(o):v.pause())},[r,a]),f=c.useCallback(o=>{r.current.currentTime=o},[r]),d=c.useCallback(()=>{r.current&&(r.current.muted=!r.current.muted)},[r]),E=c.useCallback(o=>{r.current&&(r.current.volume=o)},[r]),s=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var x;(x=r.current)==null||x.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.volume},()=>{}),y=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("volumechange",o),()=>{var x;(x=r.current)==null||x.removeEventListener("volumechange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.muted},()=>{}),l=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("timeupdate",o),()=>{var x;(x=r.current)==null||x.removeEventListener("timeupdate",o)}},[r]),()=>{if(r.current)return Math.round(r.current.currentTime)},()=>{}),p=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("durationchange",o),()=>{var x;(x=r.current)==null||x.removeEventListener("durationchange",o)}},[r]),()=>{var o;return(o=r.current)==null?void 0:o.duration},()=>{}),g=G.useSyncExternalStore(c.useCallback(o=>{var v;return(v=r.current)==null||v.addEventListener("progress",o),()=>{var x;(x=r.current)==null||x.removeEventListener("progress",o)}},[r]),()=>{const o=r.current;return o&&o.buffered.length>0?o.buffered.end(o.buffered.length-1):0},()=>{}),T=G.useSyncExternalStore(c.useCallback(o=>{var v,x;return(v=r.current)==null||v.addEventListener("play",o),(x=r.current)==null||x.addEventListener("pause",o),()=>{var C,S;(C=r.current)==null||C.removeEventListener("play",o),(S=r.current)==null||S.removeEventListener("pause",o)}},[r]),()=>{const o=r.current;return o?!o.paused:!1},()=>{}),b=G.useSyncExternalStore(c.useCallback(o=>{var v,x;return(v=r.current)==null||v.addEventListener("playing",o),(x=r.current)==null||x.addEventListener("waiting",o),()=>{var C,S;(C=r.current)==null||C.removeEventListener("playing",o),(S=r.current)==null||S.removeEventListener("waiting",o)}},[r]),()=>{const o=r.current;return o?o.networkState===o.NETWORK_LOADING:!1},()=>{});return{audio:r.current,playAudio:a,togglePlay:i,seek:f,toggleMuted:d,setVolume:E,volume:s,muted:y,currentTime:l,duration:p,bufferedSeconds:g,isPlaying:T,isLoading:b}}function st(e,r){return c.useMemo(()=>{const n={...r};for(const a in e)e[a]!==void 0&&(n[a]=e[a]);return n},[e,r])}function lt(e){const[r,n]=c.useState(e);return c.useEffect(()=>{n(e)},[e]),{mini:r,setMini:n}}function er(){const e=c.useRef([]);return c.useEffect(()=>{const n=e.current;return()=>{for(const a of n)clearTimeout(a)}},[]),c.useCallback((n,a)=>{const i=setTimeout(n,a);return e.current.push(i),i},[])}function ct(){const e=c.useRef(null),[r,n]=c.useState({text:"",style:{opacity:0}}),a=er(),i=c.useCallback((f,d=2e3)=>{e.current&&clearTimeout(e.current),n({text:f,style:{opacity:1}}),e.current=a(()=>{n({text:f,style:{opacity:0}})},d)},[a]);return[r,i]}function ft(e){const r=st(e,{appearance:"normal",volume:.7,autoPlay:!1,listMaxHeight:250,mini:!1,mutex:!0,listFolded:!1,theme:"light",border:!1}),{audio:n,appearance:a,initialLoop:i,initialOrder:f,volume:d,autoPlay:E,listMaxHeight:s,listFolded:y,mutex:l,theme:p,border:g}=r,T=c.useMemo(()=>Array.isArray(n)?n:[n],[n]),b=mt(T,{initialLoop:i,initialOrder:f}),[o,v]=ct(),{mini:x,setMini:C}=lt(r.mini),S=er(),L=c.useRef(null),F=c.useCallback(()=>{L.current&&(clearTimeout(L.current),L.current=null)},[]),B=c.useRef(!1),N=ut({src:b.currentSong.url,initialVolume:d,autoPlay:E,mutex:l,onError(I){const{error:Z}=I.target;Z&&v("An audio error has occurred, player will skip forward in 2 seconds."),b.hasNextSong&&(L.current=S(()=>{b.next()},2e3))},onEnded(){const{list:I,currentSong:Z,loop:ce,prioritize:fe,hasNextSong:be}=b,{audio:ee}=N;if(ce==="one"){fe({...Z});return}if(!be&&ce==="none"){B.current=!0,ee.currentTime=0,ee.pause(),ee.src=I[0].url,fe(I[0]);return}b.next()}}),K=b.length>1,k=c.useCallback(()=>{F(),N.togglePlay(b.currentSong.url)},[N,F,b.currentSong.url]),{prioritize:ue}=b,Ce=c.useCallback(I=>{F(),ue(I)},[F,ue]),[Pe,ye]=c.useState(()=>K&&!y),[z,W]=c.useState(!0),U=c.useRef(null);c.useEffect(()=>{E&&N.playAudio(b.currentSong.url)},[]);const se=c.useRef(!0),le=c.useRef(b.currentSong);return c.useEffect(()=>{if(se.current){se.current=!1;return}if(B.current){B.current=!1;return}b.currentSong&&(b.loop==="one"||b.currentSong!==le.current)&&(le.current=b.currentSong,N.playAudio(b.currentSong.url))},[b.currentSong]),c.useEffect(()=>{if(a==="fixed"&&U.current){const I=U.current;return I.style.width="400px",()=>{I.removeAttribute("style")}}},[a]),{bodyRef:U,appearance:a,volume:d,listMaxHeight:s,theme:p,border:g,notice:o,audioControl:N,audio:T,handlePlayButtonClick:k,handlePlayAudioFromList:Ce,isPlaylistOpen:Pe,setPlaylistOpen:ye,mini:x,displayLyrics:z,setDisplayLyrics:W,setMini:C,playlist:b,hasPlaylist:K}}function dt(e){return vt(e.slice())}function vt(e){let r=e.length,n;for(;r!==0;)n=Math.floor(Math.random()*r),r--,[e[r],e[n]]=[e[n],e[r]];return e}function mt(e,r){const{initialLoop:n="all",initialOrder:a="list"}=r,[i,f]=c.useState(n),[d,E]=c.useState(a),s=c.useMemo(()=>d==="list"?e:dt(e),[e,d]),[y,l]=c.useState(s[0]),p=c.useCallback(v=>v.url,[]),g=c.useMemo(()=>s.findIndex(x=>p(x)===p(y))<s.length-1||i!=="none",[s,y,i,p]),T=c.useCallback(()=>{l(v=>{const x=s.findIndex(C=>p(C)===p(v));return x<s.length-1?s[x+1]:{...s[0]}})},[i,s,p]),b=c.useCallback(()=>{l(v=>{const x=s.indexOf(v);return x>0?s[x-1]:v})},[s]),o=c.useCallback(v=>{l(v)},[]);return c.useEffect(()=>{const v=s.find(x=>p(x)===p(y));l(v||s[0])},[s,p,y]),{list:s,currentSong:y,hasNextSong:g,next:T,previous:b,prioritize:o,order:d,setOrder:E,loop:i,setLoop:f,length:s.length}}function ht(e){var B,N,K;const r=H("aplayer"),{bodyRef:n,appearance:a,volume:i,listMaxHeight:f,theme:d,border:E,notice:s,audio:y,audioControl:l,handlePlayButtonClick:p,handlePlayAudioFromList:g,isPlaylistOpen:T,setPlaylistOpen:b,mini:o,displayLyrics:v,setDisplayLyrics:x,setMini:C,playlist:S,hasPlaylist:L}=ft(e),F=c.useCallback(k=>k?typeof k=="string"?k:k.url?m.jsx("a",{href:k.url,target:"_blank",rel:"noreferrer",children:k.name??"Audio artist"}):k.name??"Audio artist":"Audio artist",[]);return m.jsxs("div",{className:$(r.b(),{[r.bs(d)]:!0,[r.bs("vars")]:!0,[r.bm(a)]:!0,[r.bm("loading")]:l.isLoading,[r.bm("withlist")]:L,[r.bm("list-folded")]:!T,[r.bm("withlrc")]:!!S.currentSong.lrc&&a!=="fixed",[r.bm("narrow")]:o,[r.bm("border")]:E}),role:"region","aria-label":"Audio Player",children:[m.jsxs("div",{ref:n,className:r.be("body"),children:[m.jsx("div",{className:r.be("pic"),onClick:p,style:{backgroundImage:`url("${(B=S.currentSong)==null?void 0:B.cover}")`},role:"button","aria-label":l.isPlaying?"Pause audio":"Play audio",children:m.jsx("div",{className:$(r.be("button"),l.isPlaying?r.bm("pause"):r.bm("play")),role:"presentation",children:l.isPlaying?m.jsx(Dr,{}):m.jsx(Xr,{})})}),m.jsxs("div",{className:$(r.be("info")),children:[m.jsxs("div",{className:$(r.be("music")),children:[m.jsx("span",{className:$(r.be("title")),children:((N=S.currentSong)==null?void 0:N.name)??"Audio name"}),m.jsxs("span",{className:$(r.be("author")),children:[" ","-"," ",F((K=S.currentSong)==null?void 0:K.artist)]})]}),a==="fixed"?null:m.jsx(Je,{show:v,lrcText:S.currentSong.lrc,currentTime:l.currentTime??0}),m.jsx(et,{volume:l.volume??i,onChangeVolume:l.setVolume,muted:l.muted??!1,onToggleMuted:()=>l.toggleMuted(),currentTime:l.currentTime,audioDurationSeconds:l.duration,bufferedSeconds:l.bufferedSeconds,onSeek:k=>l.seek(k),onToggleMenu:()=>b(k=>!k),order:S.order,onOrderChange:S.setOrder,loop:S.loop,onLoopChange:S.setLoop,isPlaying:l.isPlaying??!1,onTogglePlay:p,onSkipForward:()=>{S.hasNextSong&&S.next()},onSkipBack:()=>{S.previous()},showLyrics:v,onToggleLyrics:()=>{x(k=>!k)}})]}),m.jsx("div",{className:r.be("notice"),style:s.style,children:s.text}),m.jsx("div",{className:r.be("miniswitcher"),onClick:()=>C(k=>!k),children:m.jsx("button",{className:$(r.bs("icon"),r.bs("icon-right")),type:"button",children:m.jsx(Rr,{})})})]}),L?m.jsx(rt,{open:T,audio:y,playingAudioUrl:S.currentSong.url,onPlayAudio:g,listMaxHeight:f,mini:o}):null,a==="fixed"&&m.jsx(Je,{show:v,lrcText:S.currentSong.lrc,currentTime:l.currentTime??0})]})}Y.TwistAPlayer=ht,Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "twist-aplayer",
3
3
  "type": "module",
4
- "version": "1.4.4",
4
+ "version": "1.4.5",
5
5
  "private": false,
6
6
  "description": "A shadui theme aplayer",
7
7
  "author": {