diff --git a/src/ui/dist/assets/Album-bC2Ph2Go.js.gz b/src/ui/dist/assets/Album-bC2Ph2Go.js.gz deleted file mode 100644 index 3d3e2bcc..00000000 Binary files a/src/ui/dist/assets/Album-bC2Ph2Go.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Album-bC2Ph2Go.js b/src/ui/dist/assets/Album-wn0mZK3Y.js similarity index 94% rename from src/ui/dist/assets/Album-bC2Ph2Go.js rename to src/ui/dist/assets/Album-wn0mZK3Y.js index 2961e4bf..33de9290 100644 --- a/src/ui/dist/assets/Album-bC2Ph2Go.js +++ b/src/ui/dist/assets/Album-wn0mZK3Y.js @@ -1 +1 @@ -import{e as B,B as j,q as A,D as S,n as i,E as D,y as F,f as L,o as l,c as n,i as m,a8 as P,d as h,g as _,L as U,a,H as q,K as H,t as I,P as M,F as y,h as $,a3 as V,w as R,am as z,N as J,aq as K,ah as O,l as G,m as Q,_ as T}from"./index-K4QaY0Na.js";import{P as W}from"./PlaylistEntry-9wUfG8hQ.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";const C=c=>(G("data-v-4203b278"),c=c(),Q(),c),X={key:1,class:"fill-page"},Y={key:2,class:"artist p-4"},Z={class:"wrap"},ee={class:"artist__data"},se={class:"upper"},ae={class:"track__info__details flex flex-col justify-end"},te={class:"text-secondary my-0 text-2xl font-bold"},le={key:0,class:"text-muted text-base ml-4 font-light"},oe={class:"trac__info__details__normal"},ie={class:"flex flew-row items-center"},ne={class:"font-black text-5xl"},re=C(()=>a("hr",{class:"mb-4"},null,-1)),ue={class:"items"},ce=C(()=>a("h2",null,"All songs from this album",-1)),de={class:"items"},pe=B({__name:"Album",setup(c){const b=j();A();const E=S(()=>b.params.hash),s=i(null),f=i([]),r=i(null),d=i(null),v=i("url"),w=i(!1),x=async()=>{const e=await(await fetch(`/api/albums/${E.value}`)).json();if(e.spotify=e.spotify?JSON.parse(e.spotify):null,e.spotify)try{e.spotify.releaseDate=new Date(e.spotify.releaseDate)}catch{e.spotify.releaseDate=null}s.value=e,r.value=null,d.value="",w.value=!1,s.value.spotify.url.length&&(d.value=s.value.spotify.url,N(s.value.spotify.id),w.value=!0),v.value="link"},N=async t=>{const e=await fetch(`/api/spotify/albums/${t}`);if(!e){J.addError("Failed to fetch album from Spotify",await e.text(),3e3);return}f.value=await e.json()};D(d,()=>{var t,e;if(((e=(t=s.value)==null?void 0:t.spotify)==null?void 0:e.id)==K(d.value,"album")){v.value="link";return}v.value="save"});const g=S(()=>{var t,e,p;return((p=(e=(t=s.value)==null?void 0:t.spotify)==null?void 0:e.releaseDate)==null?void 0:p.toLocaleDateString())??""});return F(x),D(()=>b.params.name,()=>{s.value=null,x()}),(t,e)=>{var k;const p=L("Card");return l(),n(y,null,[s.value?(l(),m(P,{key:0,src:s.value.image,class:"-z-10"},null,8,["src"])):h("",!0),s.value?(l(),n("div",Y,[a("div",Z,[a("div",ee,[a("div",se,[_(q,{src:s.value.image,class:"max-w-sm rounded-xl",placeholder:"library_music",name:s.value.name},null,8,["src","name"]),a("div",ae,[a("h3",te,[_(H,{artist:s.value.artists.join(", "),class:"inline"},null,8,["artist"]),g.value?(l(),n("span",le,I(g.value),1)):h("",!0)]),a("div",oe,[a("div",ie,[a("h1",ne,I(s.value.name),1)])])])]),_(M,{class:"hideIfMobile mt-8","with-more":""}),re,a("div",ue,[(l(!0),n(y,null,$(s.value.songs,o=>V((l(),m(W,{index:s.value.songs.findIndex(u=>u.source==o.source),selected:r.value==o.id,song:o,"playlist-id":"album","with-cover":"","with-more":"",album:s.value.id,onClick:u=>r.value==o.id?r.value=-1:r.value=o.id,onUpdate:e[0]||(e[0]=u=>t.$emit("update"))},null,8,["index","selected","song","album","onClick"])),[[O,!0]])),256))]),(k=f.value)!=null&&k.length?(l(),m(p,{key:0,class:"p-4"},{default:R(()=>[ce,a("div",de,[(l(!0),n(y,null,$(f.value,(o,u)=>(l(),m(z,{index:u,song:o,"can-import":"","cannot-add":"","with-cover":"","with-more":"",onUpdate:e[1]||(e[1]=me=>t.$emit("update"))},null,8,["index","song"]))),256))])]),_:1})):h("",!0)])])])):(l(),n("div",X,[_(U)]))],64)}}}),ye=T(pe,[["__scopeId","data-v-4203b278"]]);export{ye as default}; +import{e as B,B as j,q as A,D as S,n as i,E as D,y as F,f as L,o as l,c as n,i as m,a8 as P,d as h,g as _,L as U,a,H as q,K as H,t as I,P as M,F as y,h as $,a3 as V,w as R,am as z,N as J,aq as K,ah as O,l as G,m as Q,_ as T}from"./index-DwIIj2B2.js";import{P as W}from"./PlaylistEntry-oyklgbh5.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";const C=c=>(G("data-v-4203b278"),c=c(),Q(),c),X={key:1,class:"fill-page"},Y={key:2,class:"artist p-4"},Z={class:"wrap"},ee={class:"artist__data"},se={class:"upper"},ae={class:"track__info__details flex flex-col justify-end"},te={class:"text-secondary my-0 text-2xl font-bold"},le={key:0,class:"text-muted text-base ml-4 font-light"},oe={class:"trac__info__details__normal"},ie={class:"flex flew-row items-center"},ne={class:"font-black text-5xl"},re=C(()=>a("hr",{class:"mb-4"},null,-1)),ue={class:"items"},ce=C(()=>a("h2",null,"All songs from this album",-1)),de={class:"items"},pe=B({__name:"Album",setup(c){const b=j();A();const E=S(()=>b.params.hash),s=i(null),f=i([]),r=i(null),d=i(null),v=i("url"),w=i(!1),x=async()=>{const e=await(await fetch(`/api/albums/${E.value}`)).json();if(e.spotify=e.spotify?JSON.parse(e.spotify):null,e.spotify)try{e.spotify.releaseDate=new Date(e.spotify.releaseDate)}catch{e.spotify.releaseDate=null}s.value=e,r.value=null,d.value="",w.value=!1,s.value.spotify.url.length&&(d.value=s.value.spotify.url,N(s.value.spotify.id),w.value=!0),v.value="link"},N=async t=>{const e=await fetch(`/api/spotify/albums/${t}`);if(!e){J.addError("Failed to fetch album from Spotify",await e.text(),3e3);return}f.value=await e.json()};D(d,()=>{var t,e;if(((e=(t=s.value)==null?void 0:t.spotify)==null?void 0:e.id)==K(d.value,"album")){v.value="link";return}v.value="save"});const g=S(()=>{var t,e,p;return((p=(e=(t=s.value)==null?void 0:t.spotify)==null?void 0:e.releaseDate)==null?void 0:p.toLocaleDateString())??""});return F(x),D(()=>b.params.name,()=>{s.value=null,x()}),(t,e)=>{var k;const p=L("Card");return l(),n(y,null,[s.value?(l(),m(P,{key:0,src:s.value.image,class:"-z-10"},null,8,["src"])):h("",!0),s.value?(l(),n("div",Y,[a("div",Z,[a("div",ee,[a("div",se,[_(q,{src:s.value.image,class:"max-w-sm rounded-xl",placeholder:"library_music",name:s.value.name},null,8,["src","name"]),a("div",ae,[a("h3",te,[_(H,{artist:s.value.artists.join(", "),class:"inline"},null,8,["artist"]),g.value?(l(),n("span",le,I(g.value),1)):h("",!0)]),a("div",oe,[a("div",ie,[a("h1",ne,I(s.value.name),1)])])])]),_(M,{class:"hideIfMobile mt-8","with-more":""}),re,a("div",ue,[(l(!0),n(y,null,$(s.value.songs,o=>V((l(),m(W,{index:s.value.songs.findIndex(u=>u.source==o.source),selected:r.value==o.id,song:o,"playlist-id":"album","with-cover":"","with-more":"",album:s.value.id,onClick:u=>r.value==o.id?r.value=-1:r.value=o.id,onUpdate:e[0]||(e[0]=u=>t.$emit("update"))},null,8,["index","selected","song","album","onClick"])),[[O,!0]])),256))]),(k=f.value)!=null&&k.length?(l(),m(p,{key:0,class:"p-4"},{default:R(()=>[ce,a("div",de,[(l(!0),n(y,null,$(f.value,(o,u)=>(l(),m(z,{index:u,song:o,"can-import":"","cannot-add":"","with-cover":"","with-more":"",onUpdate:e[1]||(e[1]=me=>t.$emit("update"))},null,8,["index","song"]))),256))])]),_:1})):h("",!0)])])])):(l(),n("div",X,[_(U)]))],64)}}}),ye=T(pe,[["__scopeId","data-v-4203b278"]]);export{ye as default}; diff --git a/src/ui/dist/assets/Album-wn0mZK3Y.js.gz b/src/ui/dist/assets/Album-wn0mZK3Y.js.gz new file mode 100644 index 00000000..beeb9a3b Binary files /dev/null and b/src/ui/dist/assets/Album-wn0mZK3Y.js.gz differ diff --git a/src/ui/dist/assets/Artist-CKIwJZOU.js.gz b/src/ui/dist/assets/Artist-CKIwJZOU.js.gz deleted file mode 100644 index 4935cb93..00000000 Binary files a/src/ui/dist/assets/Artist-CKIwJZOU.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Artist-CKIwJZOU.js b/src/ui/dist/assets/Artist-Dyg_PWZj.js similarity index 95% rename from src/ui/dist/assets/Artist-CKIwJZOU.js rename to src/ui/dist/assets/Artist-Dyg_PWZj.js index b6e8958b..396a3ec2 100644 --- a/src/ui/dist/assets/Artist-CKIwJZOU.js +++ b/src/ui/dist/assets/Artist-Dyg_PWZj.js @@ -1 +1 @@ -import{e as L,o as a,i as r,w as x,b as j,t as m,C as g,_ as P,B as q,q as A,D,n as h,E as U,y as R,c as o,a8 as z,d as i,g as y,L as M,a as t,H as V,Q as B,F as v,h as w,u as J,$ as O,P as Q,a3 as W,am as Y,aq as E,ar as G,ah as K,l as X,m as Z}from"./index-K4QaY0Na.js";import{F}from"./FactCard-BZwd6pEI.js";import{P as ee}from"./PlaylistEntry-9wUfG8hQ.js";import{s as ae}from"./spotify-DDsJS6kd.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";const te=L({__name:"Tag",props:{tag:{type:String,required:!0},withHash:{type:Boolean,default:!1}},setup(c){return(b,$)=>(a(),r(g,{class:"tag px-4 py-2 cursor-pointer","with-hover":""},{default:x(()=>[j(m(c.withHash?"#":"")+m(c.tag),1)]),_:1}))}}),se=P(te,[["__scopeId","data-v-2712639d"]]),k=c=>(X("data-v-13b2922c"),c=c(),Z(),c),le={key:1,class:"fill-page"},oe={key:2,class:"artist p-4"},re={class:"wrap"},ne={class:"artist__data"},ie={class:"upper"},ue={class:"trac__info__details__normal"},de={key:0,class:"mt-0 mb-2 flex flex-row gap-2"},ce={class:"flex flew-row items-center"},pe={class:"font-black text-5xl ml-4"},ve={class:"features flex flex-row gap-4 mt-4 overflow-x-auto"},me={class:"spotify-infos pt-4 pb-2"},_e={class:"meta items-center"},fe={key:0,class:"flex flex-row align-items"},he=k(()=>t("span",{class:"material-symbols-rounded ms-fill mr-2"},"local_fire_department",-1)),ye={class:"font-bold"},we=k(()=>t("hr",{class:"mb-4"},null,-1)),xe={class:"items"},ge={key:0,class:"spotify-suggestions mt-4"},ke=k(()=>t("h2",null,"Top Tracks",-1)),be={class:"items"},$e=k(()=>t("h2",null,"Related Artists",-1)),Ce={class:"flex flex-row items-center gap-4"},Ie={class:"flex flex-col"},Se={class:"font-bold"},Te=L({__name:"Artist",setup(c){const b=q();A();const $=D(()=>b.params.name),e=h(null),_=h(null),u=h(null),f=h("url"),d=h(!1),C=async()=>{const n=await fetch(`/api/artists/${$.value}`);e.value=await n.json(),_.value=null,u.value="",d.value=!1,e.value.metadata.id.length==22&&(u.value="https://open.spotify.com/artist/"+e.value.metadata.id,d.value=!0),f.value="link"},I=async n=>{await fetch(`/api/artists/${$.value}`,{method:"PUT",body:JSON.stringify({spotifyId:n})}),e.value=null,await C()};U(u,()=>{var n,l;if(((l=(n=e.value)==null?void 0:n.metadata)==null?void 0:l.id)==E(u.value,"artist")){f.value="link";return}f.value="save"});const H=()=>{if(f.value=="link"){G(u.value);return}I(E(u.value,"artist"))};return R(C),U(()=>b.params.name,()=>{e.value=null,C()}),(n,l)=>{var S,T,N;return a(),o(v,null,[e.value?(a(),r(z,{key:0,src:e.value.cover,class:"-z-10"},null,8,["src"])):i("",!0),e.value?(a(),o("div",oe,[t("div",re,[t("div",ne,[t("div",ie,[y(V,{src:e.value.cover,class:"max-w-sm rounded-xl",placeholder:"person"},null,8,["src"]),t("div",{class:B([{"justify-end":e.value.metadata,"justify-center":!e.value.metadata},"track__info__details flex flex-col"])},[t("div",ue,[(S=e.value.metadata)!=null&&S.genres?(a(),o("div",de,[(a(!0),o(v,null,w(e.value.metadata.genres,s=>(a(),r(se,{tag:s,"with-hash":""},null,8,["tag"]))),256))])):i("",!0),t("div",ce,[t("h1",pe,m(e.value.name),1)])]),e.value.metadata?(a(),o(v,{key:0},[t("div",ve,[e.value.metadata.followers?(a(),r(F,{key:0,"primary-text":e.value.metadata.followers.toLocaleString(),class:"w-full","secondary-text":"Followers"},null,8,["primary-text"])):i("",!0),e.value.songs.length?(a(),r(F,{key:1,"primary-text":e.value.songs.length,class:"w-full","secondary-text":"Tracks in Your Library"},null,8,["primary-text"])):i("",!0)]),t("div",me,[t("div",_e,[e.value.metadata.popularity?(a(),o("span",fe,[he,t("span",ye,m(e.value.metadata.popularity),1)])):i("",!0)]),y(J(ae),{class:B([{enabled:d.value},"spotify-enable"]),onClick:l[0]||(l[0]=s=>d.value=!d.value)},null,8,["class"]),d.value?(a(),r(O,{key:0,modelValue:u.value,"onUpdate:modelValue":l[1]||(l[1]=s=>u.value=s),icon:f.value,onClick:H},null,8,["modelValue","icon"])):i("",!0),t("span",{class:"material-symbols-rounded cursor-pointer",onClick:l[2]||(l[2]=s=>d.value?I(!1):I(!0))},m(d.value?"delete":"search"),1)])],64)):i("",!0)],2)]),y(Q,{class:"hideIfMobile mt-8","with-album":"","with-more":""}),we,t("div",xe,[(a(!0),o(v,null,w(e.value.songs,s=>W((a(),r(ee,{index:e.value.songs.findIndex(p=>p.source==s.source),selected:_.value==s.id,song:s,"playlist-id":"artist","with-album":"","with-cover":"","with-more":"",artist:e.value.name,onClick:p=>_.value==s.id?_.value=-1:_.value=s.id,onUpdate:l[3]||(l[3]=p=>n.$emit("update"))},null,8,["index","selected","song","artist","onClick"])),[[K,!0]])),256))]),e.value.metadata?(a(),o("div",ge,[(T=e.value.metadata.topTracks)!=null&&T.length?(a(),r(g,{key:0,class:"p-4"},{default:x(()=>[ke,t("div",be,[(a(!0),o(v,null,w(e.value.metadata.topTracks,(s,p)=>(a(),r(Y,{index:p,song:s,"can-import":"","cannot-add":"","with-album":"","with-cover":"","with-more":"",onUpdate:l[4]||(l[4]=Ne=>n.$emit("update"))},null,8,["index","song"]))),256))])]),_:1})):i("",!0),(N=e.value.metadata.related)!=null&&N.length?(a(),r(g,{key:1,class:"p-4 flex flex-col gap-2 related overflow-y-auto"},{default:x(()=>[$e,(a(!0),o(v,null,w(e.value.metadata.related,s=>(a(),r(g,{class:"cursor-pointer px-4 py-2","with-hover":"",onClick:p=>n.$router.push(`/artist/${s.name}`)},{default:x(()=>[t("div",Ce,[y(V,{src:s.cover,class:"w-8 h-8 rounded-xl",placeholder:"person"},null,8,["src"]),t("div",Ie,[t("h3",Se,m(s.name),1)])])]),_:2},1032,["onClick"]))),256))]),_:1})):i("",!0)])):i("",!0)])])])):(a(),o("div",le,[y(M)]))],64)}}}),Pe=P(Te,[["__scopeId","data-v-13b2922c"]]);export{Pe as default}; +import{e as L,o as a,i as r,w as x,b as j,t as m,C as g,_ as P,B as q,q as A,D,n as h,E as U,y as R,c as o,a8 as z,d as i,g as y,L as M,a as t,H as V,Q as B,F as v,h as w,u as J,$ as O,P as Q,a3 as W,am as Y,aq as E,ar as G,ah as K,l as X,m as Z}from"./index-DwIIj2B2.js";import{F}from"./FactCard-DB8qPuqq.js";import{P as ee}from"./PlaylistEntry-oyklgbh5.js";import{s as ae}from"./spotify-nGujcJNw.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";const te=L({__name:"Tag",props:{tag:{type:String,required:!0},withHash:{type:Boolean,default:!1}},setup(c){return(b,$)=>(a(),r(g,{class:"tag px-4 py-2 cursor-pointer","with-hover":""},{default:x(()=>[j(m(c.withHash?"#":"")+m(c.tag),1)]),_:1}))}}),se=P(te,[["__scopeId","data-v-2712639d"]]),k=c=>(X("data-v-13b2922c"),c=c(),Z(),c),le={key:1,class:"fill-page"},oe={key:2,class:"artist p-4"},re={class:"wrap"},ne={class:"artist__data"},ie={class:"upper"},ue={class:"trac__info__details__normal"},de={key:0,class:"mt-0 mb-2 flex flex-row gap-2"},ce={class:"flex flew-row items-center"},pe={class:"font-black text-5xl ml-4"},ve={class:"features flex flex-row gap-4 mt-4 overflow-x-auto"},me={class:"spotify-infos pt-4 pb-2"},_e={class:"meta items-center"},fe={key:0,class:"flex flex-row align-items"},he=k(()=>t("span",{class:"material-symbols-rounded ms-fill mr-2"},"local_fire_department",-1)),ye={class:"font-bold"},we=k(()=>t("hr",{class:"mb-4"},null,-1)),xe={class:"items"},ge={key:0,class:"spotify-suggestions mt-4"},ke=k(()=>t("h2",null,"Top Tracks",-1)),be={class:"items"},$e=k(()=>t("h2",null,"Related Artists",-1)),Ce={class:"flex flex-row items-center gap-4"},Ie={class:"flex flex-col"},Se={class:"font-bold"},Te=L({__name:"Artist",setup(c){const b=q();A();const $=D(()=>b.params.name),e=h(null),_=h(null),u=h(null),f=h("url"),d=h(!1),C=async()=>{const n=await fetch(`/api/artists/${$.value}`);e.value=await n.json(),_.value=null,u.value="",d.value=!1,e.value.metadata.id.length==22&&(u.value="https://open.spotify.com/artist/"+e.value.metadata.id,d.value=!0),f.value="link"},I=async n=>{await fetch(`/api/artists/${$.value}`,{method:"PUT",body:JSON.stringify({spotifyId:n})}),e.value=null,await C()};U(u,()=>{var n,l;if(((l=(n=e.value)==null?void 0:n.metadata)==null?void 0:l.id)==E(u.value,"artist")){f.value="link";return}f.value="save"});const H=()=>{if(f.value=="link"){G(u.value);return}I(E(u.value,"artist"))};return R(C),U(()=>b.params.name,()=>{e.value=null,C()}),(n,l)=>{var S,T,N;return a(),o(v,null,[e.value?(a(),r(z,{key:0,src:e.value.cover,class:"-z-10"},null,8,["src"])):i("",!0),e.value?(a(),o("div",oe,[t("div",re,[t("div",ne,[t("div",ie,[y(V,{src:e.value.cover,class:"max-w-sm rounded-xl",placeholder:"person"},null,8,["src"]),t("div",{class:B([{"justify-end":e.value.metadata,"justify-center":!e.value.metadata},"track__info__details flex flex-col"])},[t("div",ue,[(S=e.value.metadata)!=null&&S.genres?(a(),o("div",de,[(a(!0),o(v,null,w(e.value.metadata.genres,s=>(a(),r(se,{tag:s,"with-hash":""},null,8,["tag"]))),256))])):i("",!0),t("div",ce,[t("h1",pe,m(e.value.name),1)])]),e.value.metadata?(a(),o(v,{key:0},[t("div",ve,[e.value.metadata.followers?(a(),r(F,{key:0,"primary-text":e.value.metadata.followers.toLocaleString(),class:"w-full","secondary-text":"Followers"},null,8,["primary-text"])):i("",!0),e.value.songs.length?(a(),r(F,{key:1,"primary-text":e.value.songs.length,class:"w-full","secondary-text":"Tracks in Your Library"},null,8,["primary-text"])):i("",!0)]),t("div",me,[t("div",_e,[e.value.metadata.popularity?(a(),o("span",fe,[he,t("span",ye,m(e.value.metadata.popularity),1)])):i("",!0)]),y(J(ae),{class:B([{enabled:d.value},"spotify-enable"]),onClick:l[0]||(l[0]=s=>d.value=!d.value)},null,8,["class"]),d.value?(a(),r(O,{key:0,modelValue:u.value,"onUpdate:modelValue":l[1]||(l[1]=s=>u.value=s),icon:f.value,onClick:H},null,8,["modelValue","icon"])):i("",!0),t("span",{class:"material-symbols-rounded cursor-pointer",onClick:l[2]||(l[2]=s=>d.value?I(!1):I(!0))},m(d.value?"delete":"search"),1)])],64)):i("",!0)],2)]),y(Q,{class:"hideIfMobile mt-8","with-album":"","with-more":""}),we,t("div",xe,[(a(!0),o(v,null,w(e.value.songs,s=>W((a(),r(ee,{index:e.value.songs.findIndex(p=>p.source==s.source),selected:_.value==s.id,song:s,"playlist-id":"artist","with-album":"","with-cover":"","with-more":"",artist:e.value.name,onClick:p=>_.value==s.id?_.value=-1:_.value=s.id,onUpdate:l[3]||(l[3]=p=>n.$emit("update"))},null,8,["index","selected","song","artist","onClick"])),[[K,!0]])),256))]),e.value.metadata?(a(),o("div",ge,[(T=e.value.metadata.topTracks)!=null&&T.length?(a(),r(g,{key:0,class:"p-4"},{default:x(()=>[ke,t("div",be,[(a(!0),o(v,null,w(e.value.metadata.topTracks,(s,p)=>(a(),r(Y,{index:p,song:s,"can-import":"","cannot-add":"","with-album":"","with-cover":"","with-more":"",onUpdate:l[4]||(l[4]=Ne=>n.$emit("update"))},null,8,["index","song"]))),256))])]),_:1})):i("",!0),(N=e.value.metadata.related)!=null&&N.length?(a(),r(g,{key:1,class:"p-4 flex flex-col gap-2 related overflow-y-auto"},{default:x(()=>[$e,(a(!0),o(v,null,w(e.value.metadata.related,s=>(a(),r(g,{class:"cursor-pointer px-4 py-2","with-hover":"",onClick:p=>n.$router.push(`/artist/${s.name}`)},{default:x(()=>[t("div",Ce,[y(V,{src:s.cover,class:"w-8 h-8 rounded-xl",placeholder:"person"},null,8,["src"]),t("div",Ie,[t("h3",Se,m(s.name),1)])])]),_:2},1032,["onClick"]))),256))]),_:1})):i("",!0)])):i("",!0)])])])):(a(),o("div",le,[y(M)]))],64)}}}),Pe=P(Te,[["__scopeId","data-v-13b2922c"]]);export{Pe as default}; diff --git a/src/ui/dist/assets/Artist-Dyg_PWZj.js.gz b/src/ui/dist/assets/Artist-Dyg_PWZj.js.gz new file mode 100644 index 00000000..aff53104 Binary files /dev/null and b/src/ui/dist/assets/Artist-Dyg_PWZj.js.gz differ diff --git a/src/ui/dist/assets/Breaking-CrRiZrK7.js b/src/ui/dist/assets/Breaking-CrRiZrK7.js deleted file mode 100644 index 355a305b..00000000 --- a/src/ui/dist/assets/Breaking-CrRiZrK7.js +++ /dev/null @@ -1 +0,0 @@ -import{T as r}from"./Template-BJ9qkRi1.js";import{i as o,o as t}from"./index-K4QaY0Na.js";import"./PlaylistEntry-9wUfG8hQ.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-YqWWrJTC.js";import"./FactCard-BZwd6pEI.js";import"./gistClient-ZdZsfTR6.js";import"./Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js";const l={__name:"Breaking",setup(e){return(i,p)=>(t(),o(r,{id:"breaking","cover-icon":"trending_up"}))}};export{l as default}; diff --git a/src/ui/dist/assets/Breaking-DPRuvGTm.js b/src/ui/dist/assets/Breaking-DPRuvGTm.js new file mode 100644 index 00000000..7318e3fd --- /dev/null +++ b/src/ui/dist/assets/Breaking-DPRuvGTm.js @@ -0,0 +1 @@ +import{T as r}from"./Template-CpDXJr_0.js";import{i as o,o as t}from"./index-DwIIj2B2.js";import"./PlaylistEntry-oyklgbh5.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-CFJncbti.js";import"./FactCard-DB8qPuqq.js";import"./gistClient-BfrJnK9Z.js";import"./Markdown.vue_vue_type_style_index_0_lang-072OuJni.js";const l={__name:"Breaking",setup(e){return(i,p)=>(t(),o(r,{id:"breaking","cover-icon":"trending_up"}))}};export{l as default}; diff --git a/src/ui/dist/assets/Create-BFG6u1_V.js.gz b/src/ui/dist/assets/Create-BFG6u1_V.js.gz deleted file mode 100644 index 99d6a794..00000000 Binary files a/src/ui/dist/assets/Create-BFG6u1_V.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Create-BFG6u1_V.js b/src/ui/dist/assets/Create-DYwjg1i9.js similarity index 94% rename from src/ui/dist/assets/Create-BFG6u1_V.js rename to src/ui/dist/assets/Create-DYwjg1i9.js index c74b41ac..70d0f0b0 100644 --- a/src/ui/dist/assets/Create-BFG6u1_V.js +++ b/src/ui/dist/assets/Create-DYwjg1i9.js @@ -1 +1 @@ -import{e as p,q as _,B as y,y as f,o as m,c as x,a as t,g as r,w as n,C as i,V as h,l as v,m as w,_ as C}from"./index-K4QaY0Na.js";const e=a=>(v("data-v-ebdf2322"),a=a(),w(),a),b={class:"flex h-full w-full items-center justify-center"},k={class:"types"},B=e(()=>t("div",{class:"flex flex-row justify-center"},[t("span",{class:"text-9xl material-symbols-rounded icon"},"library_music")],-1)),I=e(()=>t("h4",null,"Classic Playlist",-1)),S=e(()=>t("p",{class:"text-sm text-muted"},"Manage your playlist manually",-1)),j=e(()=>t("div",{class:"flex flex-row justify-center"},[t("span",{class:"text-9xl material-symbols-rounded icon"},"bolt")],-1)),q=e(()=>t("h4",null,"Smart Playlist",-1)),P=e(()=>t("p",{class:"text-sm text-muted"}," Define rules to automatically update your playlist ",-1)),V=p({__name:"Create",setup(a){const u=_(),l=y(),o=async c=>{const s=await h(c);u.push(s)};return f(()=>{l.query.type&&o(l.query.type)}),(c,s)=>(m(),x("div",b,[t("div",k,[r(i,{"with-hover":"",class:"cursor-pointer",onClick:s[0]||(s[0]=d=>o("classic"))},{default:n(()=>[B,I,S]),_:1}),r(i,{"with-hover":"",class:"cursor-pointer",onClick:s[1]||(s[1]=d=>o("smart"))},{default:n(()=>[j,q,P]),_:1})])]))}}),M=C(V,[["__scopeId","data-v-ebdf2322"]]);export{M as default}; +import{e as p,q as _,B as y,y as f,o as m,c as x,a as t,g as r,w as n,C as i,V as h,l as v,m as w,_ as C}from"./index-DwIIj2B2.js";const e=a=>(v("data-v-ebdf2322"),a=a(),w(),a),b={class:"flex h-full w-full items-center justify-center"},k={class:"types"},B=e(()=>t("div",{class:"flex flex-row justify-center"},[t("span",{class:"text-9xl material-symbols-rounded icon"},"library_music")],-1)),I=e(()=>t("h4",null,"Classic Playlist",-1)),S=e(()=>t("p",{class:"text-sm text-muted"},"Manage your playlist manually",-1)),j=e(()=>t("div",{class:"flex flex-row justify-center"},[t("span",{class:"text-9xl material-symbols-rounded icon"},"bolt")],-1)),q=e(()=>t("h4",null,"Smart Playlist",-1)),P=e(()=>t("p",{class:"text-sm text-muted"}," Define rules to automatically update your playlist ",-1)),V=p({__name:"Create",setup(a){const u=_(),l=y(),o=async c=>{const s=await h(c);u.push(s)};return f(()=>{l.query.type&&o(l.query.type)}),(c,s)=>(m(),x("div",b,[t("div",k,[r(i,{"with-hover":"",class:"cursor-pointer",onClick:s[0]||(s[0]=d=>o("classic"))},{default:n(()=>[B,I,S]),_:1}),r(i,{"with-hover":"",class:"cursor-pointer",onClick:s[1]||(s[1]=d=>o("smart"))},{default:n(()=>[j,q,P]),_:1})])]))}}),M=C(V,[["__scopeId","data-v-ebdf2322"]]);export{M as default}; diff --git a/src/ui/dist/assets/Create-DYwjg1i9.js.gz b/src/ui/dist/assets/Create-DYwjg1i9.js.gz new file mode 100644 index 00000000..883cbde7 Binary files /dev/null and b/src/ui/dist/assets/Create-DYwjg1i9.js.gz differ diff --git a/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js b/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js similarity index 96% rename from src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js rename to src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js index c9e3e62e..34407085 100644 --- a/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js +++ b/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js @@ -1 +1 @@ -import{e as y,n as u,E as b,o as w,i as _,w as h,g as x,v as S,aa as k,cV as q,N as F}from"./index-K4QaY0Na.js";const O=y({__name:"EditSong",props:{song:{type:Object,required:!0}},emits:["close","update"],setup(p,{expose:m,emit:d}){const a=p,v=d,r=async(t,e)=>{const o=new FormData,i="."+e.name.split(".").pop();var n=e.slice(0,e.size,e.type),g=new File([n],a.song.id+i,{type:e.type});return o.append("file",g),await(await fetch(t,{method:"POST",body:o})).text()},s=u([{name:"source",type:"upload",icon:"music_note",accept:"audio/mp3",required:!0,onUpload:t=>{r("/api/config/tracks",t).then(e=>s.value.find(o=>o.name=="source").value=e)},value:a.song.source},{name:"title",type:"text",icon:"title",required:!0,value:a.song.title},{name:"artist",type:"text",icon:"person",required:!0,value:a.song.artist},{name:"album",type:"text",icon:"album",value:a.song.album.name},{name:"cover",type:"upload",icon:"art_track",accept:"image/*",imagePreview:!0,value:a.song.cover,onUpload:t=>{r("/api/config/images",t).then(e=>s.value.find(o=>o.name=="cover").value=e)}}]),f=async()=>{const t=l.value.toObject();await q({...a.song,...t}),v("update"),F.addSuccess(t.title,"Updated",3e3)},c=u(null),l=u(null);return m({show:()=>{c.value.show()}}),b(a,()=>{var t,e,o;for(const i of s.value.map(n=>n.name)){if(i=="album"){s.value.find(n=>n.name==i).value=(e=(t=a.song)==null?void 0:t.album)==null?void 0:e.name;continue}s.value.find(n=>n.name==i).value=(o=a.song)==null?void 0:o[i]}},{deep:!0}),(t,e)=>(w(),_(k,{ref_key:"modal",ref:c,submit:{label:"Save",icon:"save"},name:"Edit Song",onClose:e[0]||(e[0]=o=>t.$emit("close")),onSubmit:f},{default:h(()=>[x(S,{ref_key:"form",ref:l,options:s.value},null,8,["options"])]),_:1},512))}});export{O as _}; +import{e as y,n as u,E as b,o as w,i as _,w as h,g as x,v as S,aa as k,cV as q,N as F}from"./index-DwIIj2B2.js";const O=y({__name:"EditSong",props:{song:{type:Object,required:!0}},emits:["close","update"],setup(p,{expose:m,emit:d}){const a=p,v=d,r=async(t,e)=>{const o=new FormData,i="."+e.name.split(".").pop();var n=e.slice(0,e.size,e.type),g=new File([n],a.song.id+i,{type:e.type});return o.append("file",g),await(await fetch(t,{method:"POST",body:o})).text()},s=u([{name:"source",type:"upload",icon:"music_note",accept:"audio/mp3",required:!0,onUpload:t=>{r("/api/config/tracks",t).then(e=>s.value.find(o=>o.name=="source").value=e)},value:a.song.source},{name:"title",type:"text",icon:"title",required:!0,value:a.song.title},{name:"artist",type:"text",icon:"person",required:!0,value:a.song.artist},{name:"album",type:"text",icon:"album",value:a.song.album.name},{name:"cover",type:"upload",icon:"art_track",accept:"image/*",imagePreview:!0,value:a.song.cover,onUpload:t=>{r("/api/config/images",t).then(e=>s.value.find(o=>o.name=="cover").value=e)}}]),f=async()=>{const t=l.value.toObject();await q({...a.song,...t}),v("update"),F.addSuccess(t.title,"Updated",3e3)},c=u(null),l=u(null);return m({show:()=>{c.value.show()}}),b(a,()=>{var t,e,o;for(const i of s.value.map(n=>n.name)){if(i=="album"){s.value.find(n=>n.name==i).value=(e=(t=a.song)==null?void 0:t.album)==null?void 0:e.name;continue}s.value.find(n=>n.name==i).value=(o=a.song)==null?void 0:o[i]}},{deep:!0}),(t,e)=>(w(),_(k,{ref_key:"modal",ref:c,submit:{label:"Save",icon:"save"},name:"Edit Song",onClose:e[0]||(e[0]=o=>t.$emit("close")),onSubmit:f},{default:h(()=>[x(S,{ref_key:"form",ref:l,options:s.value},null,8,["options"])]),_:1},512))}});export{O as _}; diff --git a/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js.gz b/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js.gz new file mode 100644 index 00000000..f0222a00 Binary files /dev/null and b/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js.gz differ diff --git a/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js.gz b/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js.gz deleted file mode 100644 index 0e158d14..00000000 Binary files a/src/ui/dist/assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Editor-DmbfXMQK.js b/src/ui/dist/assets/Editor-B5ahq8UX.js similarity index 89% rename from src/ui/dist/assets/Editor-DmbfXMQK.js rename to src/ui/dist/assets/Editor-B5ahq8UX.js index 46338efe..8cf3374c 100644 --- a/src/ui/dist/assets/Editor-DmbfXMQK.js +++ b/src/ui/dist/assets/Editor-B5ahq8UX.js @@ -1 +1 @@ -import{e as g,B as I,q as x,D as B,j as E,n as _,E as $,W as U,X as A,y as F,Y as R,o as i,c as n,a as l,g as s,I as c,Z as L,t as f,$ as y,F as b,h,w as M,C as N,a0 as O,a1 as T,_ as W}from"./index-K4QaY0Na.js";import{_ as j}from"./Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js";import"./PlaylistEntry-9wUfG8hQ.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-YqWWrJTC.js";const q={class:"playlist-editor"},X={class:"editor"},Y={class:"sort my-2"},Z={class:"filters"},z={class:"uppercase mt-0"},G={class:"items"},H={class:"item"},J=["onClick"],K={class:"preview"},Q=g({__name:"Editor",setup(ee){const w=I(),V=x(),r=B(()=>w.params.id),d=E(),e=_({direction:"asc",sort:"id",limit:25,filter:{title:[],artist:[],album:[],duration:{}}}),m=_();$([()=>e.value.sort,()=>e.value.filter,()=>e.value.direction],U.debounce(async()=>{m.value=await A(e.value)},3*1e3),{deep:!0});const C=[{value:"title",label:"Title",icon:"title"},{value:"artist",label:"Artist",icon:"person"},{value:"album",label:"Album",icon:"album"},{value:"duration",label:"Duration",icon:"timer"},{value:"id",label:"Added",icon:"date_range"}],p=["title","artist","album"],k={title:"title",artist:"person",album:"album"};F(async()=>{e.value=await R(r.value),e.value.filter||(e.value.filter={title:[],artist:[],album:[],duration:{}});const o=e.value.filter;for(const a of p)o[a]||(o[a]=[]);e.value.filter=o});const D=async()=>{await O(r.value,e.value),d.fetchPlaylists()},P=async()=>{await T(r.value),d.fetchPlaylists(),V.push("/")};return(o,a)=>(i(),n("div",q,[l("div",X,[l("div",Y,[s(c,{label:"Save",icon:"save",type:"success",class:"!mt-0",onClick:D}),s(c,{label:"Delete",icon:"delete",type:"danger",class:"!mt-0",onClick:P}),s(L,{modelValue:e.value.sort,"onUpdate:modelValue":a[0]||(a[0]=t=>e.value.sort=t),options:C,icon:"filter_list"},null,8,["modelValue"]),l("span",{class:"cursor-pointer material-symbols-rounded ms-wght-100 text-5xl",onClick:a[1]||(a[1]=t=>e.value.direction=e.value.direction=="asc"?"desc":"asc")},f(e.value.direction=="asc"?"arrow_drop_up":"arrow_drop_down"),1),s(y,{modelValue:e.value.limit,"onUpdate:modelValue":a[2]||(a[2]=t=>e.value.limit=t),type:"number",placeholder:"Limit...",icon:"123"},null,8,["modelValue"])]),l("div",Z,[(i(),n(b,null,h(p,t=>s(N,{class:"filter"},{default:M(()=>[l("h4",z,f(t),1),l("div",G,[(i(!0),n(b,null,h(e.value.filter[t],(S,u)=>(i(),n("div",H,[s(y,{modelValue:e.value.filter[t][u],"onUpdate:modelValue":v=>e.value.filter[t][u]=v,icon:k[t]},null,8,["modelValue","onUpdate:modelValue","icon"]),l("span",{class:"material-symbols-rounded",onClick:v=>e.value.filter[t].splice(u,1)}," delete ",8,J)]))),256)),s(c,{label:"OR",icon:"add",onClick:S=>e.value.filter[t].push("")},null,8,["onClick"])])]),_:2},1024)),64))])]),l("div",K,[s(j,{playlist:m.value},null,8,["playlist"])])]))}}),ne=W(Q,[["__scopeId","data-v-1509e325"]]);export{ne as default}; +import{e as g,B as I,q as x,D as B,j as E,n as _,E as $,W as U,X as A,y as F,Y as R,o as i,c as n,a as l,g as s,I as c,Z as L,t as f,$ as y,F as b,h,w as M,C as N,a0 as O,a1 as T,_ as W}from"./index-DwIIj2B2.js";import{_ as j}from"./Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js";import"./PlaylistEntry-oyklgbh5.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-CFJncbti.js";const q={class:"playlist-editor"},X={class:"editor"},Y={class:"sort my-2"},Z={class:"filters"},z={class:"uppercase mt-0"},G={class:"items"},H={class:"item"},J=["onClick"],K={class:"preview"},Q=g({__name:"Editor",setup(ee){const w=I(),V=x(),r=B(()=>w.params.id),d=E(),e=_({direction:"asc",sort:"id",limit:25,filter:{title:[],artist:[],album:[],duration:{}}}),m=_();$([()=>e.value.sort,()=>e.value.filter,()=>e.value.direction],U.debounce(async()=>{m.value=await A(e.value)},3*1e3),{deep:!0});const C=[{value:"title",label:"Title",icon:"title"},{value:"artist",label:"Artist",icon:"person"},{value:"album",label:"Album",icon:"album"},{value:"duration",label:"Duration",icon:"timer"},{value:"id",label:"Added",icon:"date_range"}],p=["title","artist","album"],k={title:"title",artist:"person",album:"album"};F(async()=>{e.value=await R(r.value),e.value.filter||(e.value.filter={title:[],artist:[],album:[],duration:{}});const o=e.value.filter;for(const a of p)o[a]||(o[a]=[]);e.value.filter=o});const D=async()=>{await O(r.value,e.value),d.fetchPlaylists()},P=async()=>{await T(r.value),d.fetchPlaylists(),V.push("/")};return(o,a)=>(i(),n("div",q,[l("div",X,[l("div",Y,[s(c,{label:"Save",icon:"save",type:"success",class:"!mt-0",onClick:D}),s(c,{label:"Delete",icon:"delete",type:"danger",class:"!mt-0",onClick:P}),s(L,{modelValue:e.value.sort,"onUpdate:modelValue":a[0]||(a[0]=t=>e.value.sort=t),options:C,icon:"filter_list"},null,8,["modelValue"]),l("span",{class:"cursor-pointer material-symbols-rounded ms-wght-100 text-5xl",onClick:a[1]||(a[1]=t=>e.value.direction=e.value.direction=="asc"?"desc":"asc")},f(e.value.direction=="asc"?"arrow_drop_up":"arrow_drop_down"),1),s(y,{modelValue:e.value.limit,"onUpdate:modelValue":a[2]||(a[2]=t=>e.value.limit=t),type:"number",placeholder:"Limit...",icon:"123"},null,8,["modelValue"])]),l("div",Z,[(i(),n(b,null,h(p,t=>s(N,{class:"filter"},{default:M(()=>[l("h4",z,f(t),1),l("div",G,[(i(!0),n(b,null,h(e.value.filter[t],(S,u)=>(i(),n("div",H,[s(y,{modelValue:e.value.filter[t][u],"onUpdate:modelValue":v=>e.value.filter[t][u]=v,icon:k[t]},null,8,["modelValue","onUpdate:modelValue","icon"]),l("span",{class:"material-symbols-rounded",onClick:v=>e.value.filter[t].splice(u,1)}," delete ",8,J)]))),256)),s(c,{label:"OR",icon:"add",onClick:S=>e.value.filter[t].push("")},null,8,["onClick"])])]),_:2},1024)),64))])]),l("div",K,[s(j,{playlist:m.value},null,8,["playlist"])])]))}}),ne=W(Q,[["__scopeId","data-v-1509e325"]]);export{ne as default}; diff --git a/src/ui/dist/assets/Editor-B5ahq8UX.js.gz b/src/ui/dist/assets/Editor-B5ahq8UX.js.gz new file mode 100644 index 00000000..401e1ff2 Binary files /dev/null and b/src/ui/dist/assets/Editor-B5ahq8UX.js.gz differ diff --git a/src/ui/dist/assets/Editor-DmbfXMQK.js.gz b/src/ui/dist/assets/Editor-DmbfXMQK.js.gz deleted file mode 100644 index c6edfafe..00000000 Binary files a/src/ui/dist/assets/Editor-DmbfXMQK.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Error-JcTZ1TEX.js b/src/ui/dist/assets/Error-B8FoxyVg.js similarity index 78% rename from src/ui/dist/assets/Error-JcTZ1TEX.js rename to src/ui/dist/assets/Error-B8FoxyVg.js index 34a07daf..d6e89b41 100644 --- a/src/ui/dist/assets/Error-JcTZ1TEX.js +++ b/src/ui/dist/assets/Error-B8FoxyVg.js @@ -1 +1 @@ -import{e as r,o,c as s,a as t,_ as n}from"./index-K4QaY0Na.js";const a={class:"error"},c=["innerHTML"],_=r({__name:"Error",props:{msg:{type:String,required:!0}},setup(e){return(i,p)=>(o(),s("div",a,[t("h1",{innerHTML:e.msg},null,8,c)]))}}),m=n(_,[["__scopeId","data-v-03ad8ef0"]]);export{m as E}; +import{e as r,o,c as s,a as t,_ as n}from"./index-DwIIj2B2.js";const a={class:"error"},c=["innerHTML"],_=r({__name:"Error",props:{msg:{type:String,required:!0}},setup(e){return(i,p)=>(o(),s("div",a,[t("h1",{innerHTML:e.msg},null,8,c)]))}}),m=n(_,[["__scopeId","data-v-03ad8ef0"]]);export{m as E}; diff --git a/src/ui/dist/assets/Explore-EWf9xSFe.js b/src/ui/dist/assets/Explore-BOB5-8ee.js similarity index 96% rename from src/ui/dist/assets/Explore-EWf9xSFe.js rename to src/ui/dist/assets/Explore-BOB5-8ee.js index 866ba598..b6318cb3 100644 --- a/src/ui/dist/assets/Explore-EWf9xSFe.js +++ b/src/ui/dist/assets/Explore-BOB5-8ee.js @@ -1 +1 @@ -import{_ as p,o as r,c as i,a as e,r as _,z as u,l as f,m,F as k,h as y,p as h,A as v,f as S,g as o,w as c,M as d,u as $}from"./index-K4QaY0Na.js";const g={props:{src:String}},C=s=>(f("data-v-0c755b69"),s=s(),m(),s),I=C(()=>e("div",{class:"filter"},null,-1)),b={class:"info"};function x(s,a,l,n,t,N){return r(),i("div",{class:"image",style:u({backgroundImage:"url("+l.src+")"})},[I,e("div",b,[_(s.$slots,"default",{},void 0,!0)])],4)}const O=p(g,[["render",x],["__scopeId","data-v-0c755b69"]]),w={class:"songContent"},H={class:"play"},M=["onClick"],P={class:"info"},B={data(){return fetch("/api/playlists").then(async s=>{this.playlists=await s.json(),this.pick()}),{playlists:[],picks:[]}},mounted(){},methods:{parseCover:h,pick(){this.songs=this.playlists.map(s=>s.songs).flat();for(let s=0;s<4;s++)this.picks.push(this.songs[Math.floor(Math.random()*this.songs.length)])},onScroll(){this.$refs.container.clientHeight+this.$refs.container.scrollTop>=this.$refs.container.scrollHeight-100&&this.pick()},href(s){return`/track/${v(s.id)}`},loadPlaylist(s){fetch("/api/player/load",{method:"POST",body:JSON.stringify({id:s,type:"track"})})}}},E=Object.assign(B,{__name:"Explore",setup(s){return(a,l)=>{const n=S("router-link");return r(),i("div",{ref:"container",class:"explore",onScroll:l[0]||(l[0]=(...t)=>a.onScroll&&a.onScroll(...t))},[(r(!0),i(k,null,y(a.picks,t=>(r(),i("div",{key:t.name,class:"item"},[o(O,{src:$(h)(t.cover)},{default:c(()=>[e("div",w,[e("div",H,[e("span",{id:"loadPlaylist",class:"material-symbols-rounded play",onClick:()=>a.loadPlaylist(t.id)},"play_circle",8,M)]),e("div",P,[o(n,{to:a.href(t),class:"linkOnHover"},{default:c(()=>[e("h1",null,[o(d,{text:t.title},null,8,["text"])])]),_:2},1032,["to"]),o(n,{to:`/search/${t.artist}`,class:"linkOnHover"},{default:c(()=>[e("p",null,[o(d,{text:t.artist},null,8,["text"])])]),_:2},1032,["to"])])])]),_:2},1032,["src"])]))),128))],544)}}}),j=p(E,[["__scopeId","data-v-51105a59"]]);export{j as default}; +import{_ as p,o as r,c as i,a as e,r as _,z as u,l as f,m,F as k,h as y,p as h,A as v,f as S,g as o,w as c,M as d,u as $}from"./index-DwIIj2B2.js";const g={props:{src:String}},C=s=>(f("data-v-0c755b69"),s=s(),m(),s),I=C(()=>e("div",{class:"filter"},null,-1)),b={class:"info"};function x(s,a,l,n,t,N){return r(),i("div",{class:"image",style:u({backgroundImage:"url("+l.src+")"})},[I,e("div",b,[_(s.$slots,"default",{},void 0,!0)])],4)}const O=p(g,[["render",x],["__scopeId","data-v-0c755b69"]]),w={class:"songContent"},H={class:"play"},M=["onClick"],P={class:"info"},B={data(){return fetch("/api/playlists").then(async s=>{this.playlists=await s.json(),this.pick()}),{playlists:[],picks:[]}},mounted(){},methods:{parseCover:h,pick(){this.songs=this.playlists.map(s=>s.songs).flat();for(let s=0;s<4;s++)this.picks.push(this.songs[Math.floor(Math.random()*this.songs.length)])},onScroll(){this.$refs.container.clientHeight+this.$refs.container.scrollTop>=this.$refs.container.scrollHeight-100&&this.pick()},href(s){return`/track/${v(s.id)}`},loadPlaylist(s){fetch("/api/player/load",{method:"POST",body:JSON.stringify({id:s,type:"track"})})}}},E=Object.assign(B,{__name:"Explore",setup(s){return(a,l)=>{const n=S("router-link");return r(),i("div",{ref:"container",class:"explore",onScroll:l[0]||(l[0]=(...t)=>a.onScroll&&a.onScroll(...t))},[(r(!0),i(k,null,y(a.picks,t=>(r(),i("div",{key:t.name,class:"item"},[o(O,{src:$(h)(t.cover)},{default:c(()=>[e("div",w,[e("div",H,[e("span",{id:"loadPlaylist",class:"material-symbols-rounded play",onClick:()=>a.loadPlaylist(t.id)},"play_circle",8,M)]),e("div",P,[o(n,{to:a.href(t),class:"linkOnHover"},{default:c(()=>[e("h1",null,[o(d,{text:t.title},null,8,["text"])])]),_:2},1032,["to"]),o(n,{to:`/search/${t.artist}`,class:"linkOnHover"},{default:c(()=>[e("p",null,[o(d,{text:t.artist},null,8,["text"])])]),_:2},1032,["to"])])])]),_:2},1032,["src"])]))),128))],544)}}}),j=p(E,[["__scopeId","data-v-51105a59"]]);export{j as default}; diff --git a/src/ui/dist/assets/Explore-BOB5-8ee.js.gz b/src/ui/dist/assets/Explore-BOB5-8ee.js.gz new file mode 100644 index 00000000..8b079059 Binary files /dev/null and b/src/ui/dist/assets/Explore-BOB5-8ee.js.gz differ diff --git a/src/ui/dist/assets/Explore-EWf9xSFe.js.gz b/src/ui/dist/assets/Explore-EWf9xSFe.js.gz deleted file mode 100644 index 1a648c46..00000000 Binary files a/src/ui/dist/assets/Explore-EWf9xSFe.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Export-CIApTPl3.js b/src/ui/dist/assets/Export-83uFVYPm.js similarity index 99% rename from src/ui/dist/assets/Export-CIApTPl3.js rename to src/ui/dist/assets/Export-83uFVYPm.js index 40a5764f..b5ecd22a 100644 --- a/src/ui/dist/assets/Export-CIApTPl3.js +++ b/src/ui/dist/assets/Export-83uFVYPm.js @@ -1,4 +1,4 @@ -import{H as Yt,C as qt,p as Wt,ac as Ht,_ as wt,i as xt,f as W,o as N,w as Jt,a as A,g as q,c as V,t as L,d as Z,b as yt,F as Bt,aC as dt,af as Xt,j as zt,I as Kt,h as Zt,l as Qt,m as vt}from"./index-K4QaY0Na.js";import{G as Q}from"./gistClient-ZdZsfTR6.js";var gt={},H={};H.byteLength=ir;H.toByteArray=nr;H.fromByteArray=ur;var R=[],T=[],tr=typeof Uint8Array<"u"?Uint8Array:Array,v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var $=0,rr=v.length;$0)throw new Error("Invalid string. Length must be a multiple of 4");var h=l.indexOf("=");h===-1&&(h=c);var p=h===c?0:4-h%4;return[h,p]}function ir(l){var c=mt(l),h=c[0],p=c[1];return(h+p)*3/4-p}function er(l,c,h){return(c+h)*3/4-h}function nr(l){var c,h=mt(l),p=h[0],y=h[1],f=new tr(er(l,p,y)),a=0,o=y>0?p-4:p,w;for(w=0;w>16&255,f[a++]=c>>8&255,f[a++]=c&255;return y===2&&(c=T[l.charCodeAt(w)]<<2|T[l.charCodeAt(w+1)]>>4,f[a++]=c&255),y===1&&(c=T[l.charCodeAt(w)]<<10|T[l.charCodeAt(w+1)]<<4|T[l.charCodeAt(w+2)]>>2,f[a++]=c>>8&255,f[a++]=c&255),f}function or(l){return R[l>>18&63]+R[l>>12&63]+R[l>>6&63]+R[l&63]}function sr(l,c,h){for(var p,y=[],f=c;fo?o:a+f));return p===1?(c=l[h-1],y.push(R[c>>2]+R[c<<4&63]+"==")):p===2&&(c=(l[h-2]<<8)+l[h-1],y.push(R[c>>10]+R[c>>4&63]+R[c<<2&63]+"=")),y.join("")}var tt={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */tt.read=function(l,c,h,p,y){var f,a,o=y*8-p-1,w=(1<>1,I=-7,F=h?y-1:0,P=h?-1:1,_=l[c+F];for(F+=P,f=_&(1<<-I)-1,_>>=-I,I+=o;I>0;f=f*256+l[c+F],F+=P,I-=8);for(a=f&(1<<-I)-1,f>>=-I,I+=p;I>0;a=a*256+l[c+F],F+=P,I-=8);if(f===0)f=1-C;else{if(f===w)return a?NaN:(_?-1:1)*(1/0);a=a+Math.pow(2,p),f=f-C}return(_?-1:1)*a*Math.pow(2,f-p)};tt.write=function(l,c,h,p,y,f){var a,o,w,C=f*8-y-1,I=(1<>1,P=y===23?Math.pow(2,-24)-Math.pow(2,-77):0,_=p?0:f-1,O=p?1:-1,G=c<0||c===0&&1/c<0?1:0;for(c=Math.abs(c),isNaN(c)||c===1/0?(o=isNaN(c)?1:0,a=I):(a=Math.floor(Math.log(c)/Math.LN2),c*(w=Math.pow(2,-a))<1&&(a--,w*=2),a+F>=1?c+=P/w:c+=P*Math.pow(2,1-F),c*w>=2&&(a++,w/=2),a+F>=I?(o=0,a=I):a+F>=1?(o=(c*w-1)*Math.pow(2,y),a=a+F):(o=c*Math.pow(2,F-1)*Math.pow(2,y),a=0));y>=8;l[h+_]=o&255,_+=O,o/=256,y-=8);for(a=a<0;l[h+_]=a&255,_+=O,a/=256,C-=8);l[h+_-O]|=G*128};/*! +import{H as Yt,C as qt,p as Wt,ac as Ht,_ as wt,i as xt,f as W,o as N,w as Jt,a as A,g as q,c as V,t as L,d as Z,b as yt,F as Bt,aC as dt,af as Xt,j as zt,I as Kt,h as Zt,l as Qt,m as vt}from"./index-DwIIj2B2.js";import{G as Q}from"./gistClient-BfrJnK9Z.js";var gt={},H={};H.byteLength=ir;H.toByteArray=nr;H.fromByteArray=ur;var R=[],T=[],tr=typeof Uint8Array<"u"?Uint8Array:Array,v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var $=0,rr=v.length;$0)throw new Error("Invalid string. Length must be a multiple of 4");var h=l.indexOf("=");h===-1&&(h=c);var p=h===c?0:4-h%4;return[h,p]}function ir(l){var c=mt(l),h=c[0],p=c[1];return(h+p)*3/4-p}function er(l,c,h){return(c+h)*3/4-h}function nr(l){var c,h=mt(l),p=h[0],y=h[1],f=new tr(er(l,p,y)),a=0,o=y>0?p-4:p,w;for(w=0;w>16&255,f[a++]=c>>8&255,f[a++]=c&255;return y===2&&(c=T[l.charCodeAt(w)]<<2|T[l.charCodeAt(w+1)]>>4,f[a++]=c&255),y===1&&(c=T[l.charCodeAt(w)]<<10|T[l.charCodeAt(w+1)]<<4|T[l.charCodeAt(w+2)]>>2,f[a++]=c>>8&255,f[a++]=c&255),f}function or(l){return R[l>>18&63]+R[l>>12&63]+R[l>>6&63]+R[l&63]}function sr(l,c,h){for(var p,y=[],f=c;fo?o:a+f));return p===1?(c=l[h-1],y.push(R[c>>2]+R[c<<4&63]+"==")):p===2&&(c=(l[h-2]<<8)+l[h-1],y.push(R[c>>10]+R[c>>4&63]+R[c<<2&63]+"=")),y.join("")}var tt={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */tt.read=function(l,c,h,p,y){var f,a,o=y*8-p-1,w=(1<>1,I=-7,F=h?y-1:0,P=h?-1:1,_=l[c+F];for(F+=P,f=_&(1<<-I)-1,_>>=-I,I+=o;I>0;f=f*256+l[c+F],F+=P,I-=8);for(a=f&(1<<-I)-1,f>>=-I,I+=p;I>0;a=a*256+l[c+F],F+=P,I-=8);if(f===0)f=1-C;else{if(f===w)return a?NaN:(_?-1:1)*(1/0);a=a+Math.pow(2,p),f=f-C}return(_?-1:1)*a*Math.pow(2,f-p)};tt.write=function(l,c,h,p,y,f){var a,o,w,C=f*8-y-1,I=(1<>1,P=y===23?Math.pow(2,-24)-Math.pow(2,-77):0,_=p?0:f-1,O=p?1:-1,G=c<0||c===0&&1/c<0?1:0;for(c=Math.abs(c),isNaN(c)||c===1/0?(o=isNaN(c)?1:0,a=I):(a=Math.floor(Math.log(c)/Math.LN2),c*(w=Math.pow(2,-a))<1&&(a--,w*=2),a+F>=1?c+=P/w:c+=P*Math.pow(2,1-F),c*w>=2&&(a++,w/=2),a+F>=I?(o=0,a=I):a+F>=1?(o=(c*w-1)*Math.pow(2,y),a=a+F):(o=c*Math.pow(2,F-1)*Math.pow(2,y),a=0));y>=8;l[h+_]=o&255,_+=O,o/=256,y-=8);for(a=a<0;l[h+_]=a&255,_+=O,a/=256,C-=8);l[h+_-O]|=G*128};/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh diff --git a/src/ui/dist/assets/Export-83uFVYPm.js.gz b/src/ui/dist/assets/Export-83uFVYPm.js.gz new file mode 100644 index 00000000..9e165a17 Binary files /dev/null and b/src/ui/dist/assets/Export-83uFVYPm.js.gz differ diff --git a/src/ui/dist/assets/Export-CIApTPl3.js.gz b/src/ui/dist/assets/Export-CIApTPl3.js.gz deleted file mode 100644 index a3063d2e..00000000 Binary files a/src/ui/dist/assets/Export-CIApTPl3.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/FactCard-BZwd6pEI.js b/src/ui/dist/assets/FactCard-DB8qPuqq.js similarity index 88% rename from src/ui/dist/assets/FactCard-BZwd6pEI.js rename to src/ui/dist/assets/FactCard-DB8qPuqq.js index eadc7d86..aaa0e322 100644 --- a/src/ui/dist/assets/FactCard-BZwd6pEI.js +++ b/src/ui/dist/assets/FactCard-DB8qPuqq.js @@ -1 +1 @@ -import{e as s,o as t,i as r,w as o,a as c,t as a,c as d,d as n,C as i,_ as l}from"./index-K4QaY0Na.js";const m={class:"mx-4"},h={key:0,class:"my-0 text-muted"},p=s({__name:"FactCard",props:{withHover:{type:Boolean,default:!1},primaryText:{type:null,default:""},secondaryText:{type:String,default:"",required:!1}},setup(e){return(u,x)=>(t(),r(i,{"with-hover":e.withHover,class:"card p-4"},{default:o(()=>[c("h2",m,a(e.primaryText),1),e.secondaryText?(t(),d("p",h,a(e.secondaryText),1)):n("",!0)]),_:1},8,["with-hover"]))}}),f=l(p,[["__scopeId","data-v-23b147ec"]]);export{f as F}; +import{e as s,o as t,i as r,w as o,a as c,t as a,c as d,d as n,C as i,_ as l}from"./index-DwIIj2B2.js";const m={class:"mx-4"},h={key:0,class:"my-0 text-muted"},p=s({__name:"FactCard",props:{withHover:{type:Boolean,default:!1},primaryText:{type:null,default:""},secondaryText:{type:String,default:"",required:!1}},setup(e){return(u,x)=>(t(),r(i,{"with-hover":e.withHover,class:"card p-4"},{default:o(()=>[c("h2",m,a(e.primaryText),1),e.secondaryText?(t(),d("p",h,a(e.secondaryText),1)):n("",!0)]),_:1},8,["with-hover"]))}}),f=l(p,[["__scopeId","data-v-23b147ec"]]);export{f as F}; diff --git a/src/ui/dist/assets/FullShelf-LmwXLqci.js b/src/ui/dist/assets/FullShelf-NKKvCiyP.js similarity index 87% rename from src/ui/dist/assets/FullShelf-LmwXLqci.js rename to src/ui/dist/assets/FullShelf-NKKvCiyP.js index 5645c0ed..38120900 100644 --- a/src/ui/dist/assets/FullShelf-LmwXLqci.js +++ b/src/ui/dist/assets/FullShelf-NKKvCiyP.js @@ -1 +1 @@ -import{_ as c,o as t,c as a,a as s,b as i,t as o,d,r}from"./index-K4QaY0Na.js";const l={name:"FullShelf",props:{heading:String,icon:String}},_={class:"shelf"},h={class:"header"},u={key:0,class:"icon material-icons-outlined"},f={class:"items"};function m(n,p,e,S,g,v){return t(),a("div",_,[s("div",h,[s("h2",null,[i(o(e.heading),1),e.icon?(t(),a("span",u,o(e.icon),1)):d("",!0)])]),s("div",f,[r(n.$slots,"default",{},void 0,!0)])])}const x=c(l,[["render",m],["__scopeId","data-v-9502e6e9"]]);export{x as F}; +import{_ as c,o as t,c as a,a as s,b as i,t as o,d,r}from"./index-DwIIj2B2.js";const l={name:"FullShelf",props:{heading:String,icon:String}},_={class:"shelf"},h={class:"header"},u={key:0,class:"icon material-icons-outlined"},f={class:"items"};function m(n,p,e,S,g,v){return t(),a("div",_,[s("div",h,[s("h2",null,[i(o(e.heading),1),e.icon?(t(),a("span",u,o(e.icon),1)):d("",!0)])]),s("div",f,[r(n.$slots,"default",{},void 0,!0)])])}const x=c(l,[["render",m],["__scopeId","data-v-9502e6e9"]]);export{x as F}; diff --git a/src/ui/dist/assets/Import-BQAn0foy.js.gz b/src/ui/dist/assets/Import-BQAn0foy.js.gz deleted file mode 100644 index 207b0771..00000000 Binary files a/src/ui/dist/assets/Import-BQAn0foy.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Import-BQAn0foy.js b/src/ui/dist/assets/Import-Bi-f60wK.js similarity index 98% rename from src/ui/dist/assets/Import-BQAn0foy.js rename to src/ui/dist/assets/Import-Bi-f60wK.js index 4c364075..ba445446 100644 --- a/src/ui/dist/assets/Import-BQAn0foy.js +++ b/src/ui/dist/assets/Import-Bi-f60wK.js @@ -1,4 +1,4 @@ -import{e as M,D as N,o as d,c as m,g as E,H as V,a as r,M as K,K as W,t as S,F as $,h as D,Q as F,d as h,_ as G,i as B,w as q,b as j,C as I,n as _,j as A,E as Q,y as R,I as U,L as X,aC as Y,x as Z,a0 as ee,a1 as te,l as se,m as ae,aD as le,aE as ne,aF as ie}from"./index-K4QaY0Na.js";import{G as J}from"./gistClient-ZdZsfTR6.js";const oe=(e,c)=>{const t={source:e.source,id:e.id,changed:{}},a=t.changed,o=["id","href","duration","plays","artists"];for(const l of Object.keys(e))if(!o.includes(l)){if(l==="metadata"){const f=e.metadata,p=c.metadata;if(f&&p){if(!f.spotify&&!p.spotify)continue;if(!f.spotify&&p.spotify){a.metadata={from:f,to:p};continue}if(f.spotify&&!p.spotify){a.metadata={from:f,to:p};continue}f.spotify.id!==p.spotify.id&&(a.metadata={from:f,to:p})}else(f||p)&&(a.metadata={from:f,to:p});continue}l!=="id"&&e[l]!==c[l]&&(a[l]={from:e[l],to:c[l]})}return Object.keys(a).length?t:null},de=(e,c)=>{const t={name:e.playlist.name,id:e.playlist.id,added:[],removed:[],modified:[]};if(e.playlist.type!==c.playlist.type)return null;if(e.playlist.type==="smart"){const a=e.playlist,o=c.playlist;return JSON.stringify(a.definition)!==JSON.stringify(o.definition)?t:null}if(c.playlist.type!=="smart"){for(const a of e.playlist.songs){const o=c.playlist.songs.find(l=>l.source===a.source);if(o){const l=oe(a,o);l&&t.modified.push(l)}else t.removed.push(a)}for(const a of c.playlist.songs)e.playlist.songs.find(l=>l.source===a.source)||t.added.push(a);return t.added.length||t.removed.length||t.modified.length?t:null}},ce=(e,c)=>{const t={added:[],removed:[],modified:[]};for(const a of e.collection){const o=c.collection.find(l=>l.playlist.name===a.playlist.name);if(o){const l=de(a,o);l&&t.modified.push(l)}else t.removed.push(a)}for(const a of c.collection)e.collection.find(l=>l.playlist.name===a.playlist.name)||t.added.push(a);return t},re={class:"overflow-hidden"},ue={class:"title my-0"},fe={key:0,class:"info"},pe={class:"key"},ye={class:"value"},me=M({__name:"SongDiff",props:{song:{type:Object,required:!0},diff:{type:Object,required:!0},isBase:{type:Boolean,required:!1},expanded:{type:Object,required:!1}},emits:["exclude","toggle-expanded"],setup(e,{emit:c}){const t=e,a=N(()=>t.diff.removed.some(i=>i.source===t.song.source)?"removed":t.diff.modified.some(i=>i.source===t.song.source)?"modified":t.isBase?"base":t.diff.added.some(i=>i.source===t.song.source)?"added":"base"),o=c,l=()=>{o("toggle-expanded",t.song)},f=["title","artist","album","source","cover","favourite","metadata"],p=i=>{var b,k,P;const x=(k=(b=t.diff.modified.find(C=>C.source===t.song.source))==null?void 0:b.changed)==null?void 0:k[i],v=t.isBase?"from":"to",y=(x==null?void 0:x[v])??t.song[i];return i=="metadata"?(P=y==null?void 0:y.spotify)==null?void 0:P.id:y};return(i,x)=>{var v,y;return!e.isBase&&a.value=="removed"?h("",!0):(d(),m("div",{key:0,class:F([a.value,"song px-4 py-2"])},[E(V,{src:e.song.cover,class:"rounded-md"},null,8,["src"]),r("div",re,[r("p",ue,[E(K,{text:e.song.title},null,8,["text"])]),E(W,{artist:e.song.artist,class:"artist text-muted"},null,8,["artist"])]),r("span",{class:"material-symbols-rounded cursor-pointer",onClick:l},S(((v=e.expanded)==null?void 0:v.source)==e.song.source?"expand_less":"expand_more"),1),((y=e.expanded)==null?void 0:y.source)==e.song.source?(d(),m("div",fe,[(d(),m($,null,D(f,b=>{var k,P;return r("div",{key:b,class:F([{modified:(P=(k=e.diff.modified.find(C=>C.source===e.song.source))==null?void 0:k.changed)==null?void 0:P[b]},"info__table"])},[r("span",pe,S(b),1),r("span",ye,S(p(b)),1)],2)}),64))])):h("",!0)],2))}}}),ge=G(me,[["__scopeId","data-v-1805c709"]]),ve={class:"info"},xe={class:"title"},he={key:0,class:"material-symbols-rounded"},be={key:0,class:"text-muted"},ke={class:"flex flex-row justify-between items-center"},Se={key:0,class:"text-very-muted"},_e={key:0},Ee=M({__name:"PlaylistDiff",props:{playlist:{type:Object,required:!0},diff:{type:Object,required:!0},isBase:{type:Boolean,required:!1},expanded:{type:Boolean,required:!1},expandedSong:{type:Object,required:!1}},emits:["exclude","toggle-expanded","toggle-expanded-song"],setup(e,{emit:c}){const t=e,a=N(()=>t.diff.removed.some(i=>i.playlist.name===t.playlist.name)?"removed":t.diff.modified.some(i=>i.name===t.playlist.name)?"modified":t.isBase?"base":t.diff.added.some(i=>i.playlist.name===t.playlist.name)?"added":"base"),o=c,l=()=>{o("toggle-expanded",t.playlist)},f=i=>{o("toggle-expanded-song",i)},p=i=>{const x=t.diff.modified.find(v=>v.name===i.name);return x||{name:i.name,added:[],removed:[],modified:[]}};return(i,x)=>(d(),B(I,{class:F([a.value,"playlist p-4 rounded-xl relative"])},{default:q(()=>{var v;return[E(V,{src:e.playlist.cover,class:"rounded-xl self-start"},null,8,["src"]),r("div",ve,[r("div",xe,[e.playlist.type!="classic"?(d(),m("span",he,S(e.playlist.type=="smart"?"neurology":"bolt"),1)):h("",!0),r("h2",null,S(e.playlist.name),1)]),e.playlist.description?(d(),m("p",be,S(e.playlist.description),1)):h("",!0),r("div",ke,[e.playlist.type==="classic"?(d(),m("p",Se,[r("strong",null,S((v=e.playlist.songs)==null?void 0:v.length),1),j(" tracks ")])):h("",!0),r("span",{class:"material-symbols-rounded cursor-pointer",title:"Expand",onClick:l},S(e.expanded?"expand_less":"expand_more"),1)])]),e.expanded?(d(),B(I,{key:0,class:"col-span-2 flex flex-col gap-2 z-10 p-4"},{default:q(()=>[e.playlist.type==="classic"?(d(!0),m($,{key:0},D(e.playlist.songs,y=>(d(),B(ge,{key:y.source,diff:p(e.playlist),expanded:e.expandedSong,"is-base":e.isBase,song:y,onToggleExpanded:f},null,8,["diff","expanded","is-base","song"]))),128)):h("",!0),r("pre",null,[j(" "),e.playlist.type==="smart"?(d(),m("code",_e,` +import{e as M,D as N,o as d,c as m,g as E,H as V,a as r,M as K,K as W,t as S,F as $,h as D,Q as F,d as h,_ as G,i as B,w as q,b as j,C as I,n as _,j as A,E as Q,y as R,I as U,L as X,aC as Y,x as Z,a0 as ee,a1 as te,l as se,m as ae,aD as le,aE as ne,aF as ie}from"./index-DwIIj2B2.js";import{G as J}from"./gistClient-BfrJnK9Z.js";const oe=(e,c)=>{const t={source:e.source,id:e.id,changed:{}},a=t.changed,o=["id","href","duration","plays","artists"];for(const l of Object.keys(e))if(!o.includes(l)){if(l==="metadata"){const f=e.metadata,p=c.metadata;if(f&&p){if(!f.spotify&&!p.spotify)continue;if(!f.spotify&&p.spotify){a.metadata={from:f,to:p};continue}if(f.spotify&&!p.spotify){a.metadata={from:f,to:p};continue}f.spotify.id!==p.spotify.id&&(a.metadata={from:f,to:p})}else(f||p)&&(a.metadata={from:f,to:p});continue}l!=="id"&&e[l]!==c[l]&&(a[l]={from:e[l],to:c[l]})}return Object.keys(a).length?t:null},de=(e,c)=>{const t={name:e.playlist.name,id:e.playlist.id,added:[],removed:[],modified:[]};if(e.playlist.type!==c.playlist.type)return null;if(e.playlist.type==="smart"){const a=e.playlist,o=c.playlist;return JSON.stringify(a.definition)!==JSON.stringify(o.definition)?t:null}if(c.playlist.type!=="smart"){for(const a of e.playlist.songs){const o=c.playlist.songs.find(l=>l.source===a.source);if(o){const l=oe(a,o);l&&t.modified.push(l)}else t.removed.push(a)}for(const a of c.playlist.songs)e.playlist.songs.find(l=>l.source===a.source)||t.added.push(a);return t.added.length||t.removed.length||t.modified.length?t:null}},ce=(e,c)=>{const t={added:[],removed:[],modified:[]};for(const a of e.collection){const o=c.collection.find(l=>l.playlist.name===a.playlist.name);if(o){const l=de(a,o);l&&t.modified.push(l)}else t.removed.push(a)}for(const a of c.collection)e.collection.find(l=>l.playlist.name===a.playlist.name)||t.added.push(a);return t},re={class:"overflow-hidden"},ue={class:"title my-0"},fe={key:0,class:"info"},pe={class:"key"},ye={class:"value"},me=M({__name:"SongDiff",props:{song:{type:Object,required:!0},diff:{type:Object,required:!0},isBase:{type:Boolean,required:!1},expanded:{type:Object,required:!1}},emits:["exclude","toggle-expanded"],setup(e,{emit:c}){const t=e,a=N(()=>t.diff.removed.some(i=>i.source===t.song.source)?"removed":t.diff.modified.some(i=>i.source===t.song.source)?"modified":t.isBase?"base":t.diff.added.some(i=>i.source===t.song.source)?"added":"base"),o=c,l=()=>{o("toggle-expanded",t.song)},f=["title","artist","album","source","cover","favourite","metadata"],p=i=>{var b,k,P;const x=(k=(b=t.diff.modified.find(C=>C.source===t.song.source))==null?void 0:b.changed)==null?void 0:k[i],v=t.isBase?"from":"to",y=(x==null?void 0:x[v])??t.song[i];return i=="metadata"?(P=y==null?void 0:y.spotify)==null?void 0:P.id:y};return(i,x)=>{var v,y;return!e.isBase&&a.value=="removed"?h("",!0):(d(),m("div",{key:0,class:F([a.value,"song px-4 py-2"])},[E(V,{src:e.song.cover,class:"rounded-md"},null,8,["src"]),r("div",re,[r("p",ue,[E(K,{text:e.song.title},null,8,["text"])]),E(W,{artist:e.song.artist,class:"artist text-muted"},null,8,["artist"])]),r("span",{class:"material-symbols-rounded cursor-pointer",onClick:l},S(((v=e.expanded)==null?void 0:v.source)==e.song.source?"expand_less":"expand_more"),1),((y=e.expanded)==null?void 0:y.source)==e.song.source?(d(),m("div",fe,[(d(),m($,null,D(f,b=>{var k,P;return r("div",{key:b,class:F([{modified:(P=(k=e.diff.modified.find(C=>C.source===e.song.source))==null?void 0:k.changed)==null?void 0:P[b]},"info__table"])},[r("span",pe,S(b),1),r("span",ye,S(p(b)),1)],2)}),64))])):h("",!0)],2))}}}),ge=G(me,[["__scopeId","data-v-1805c709"]]),ve={class:"info"},xe={class:"title"},he={key:0,class:"material-symbols-rounded"},be={key:0,class:"text-muted"},ke={class:"flex flex-row justify-between items-center"},Se={key:0,class:"text-very-muted"},_e={key:0},Ee=M({__name:"PlaylistDiff",props:{playlist:{type:Object,required:!0},diff:{type:Object,required:!0},isBase:{type:Boolean,required:!1},expanded:{type:Boolean,required:!1},expandedSong:{type:Object,required:!1}},emits:["exclude","toggle-expanded","toggle-expanded-song"],setup(e,{emit:c}){const t=e,a=N(()=>t.diff.removed.some(i=>i.playlist.name===t.playlist.name)?"removed":t.diff.modified.some(i=>i.name===t.playlist.name)?"modified":t.isBase?"base":t.diff.added.some(i=>i.playlist.name===t.playlist.name)?"added":"base"),o=c,l=()=>{o("toggle-expanded",t.playlist)},f=i=>{o("toggle-expanded-song",i)},p=i=>{const x=t.diff.modified.find(v=>v.name===i.name);return x||{name:i.name,added:[],removed:[],modified:[]}};return(i,x)=>(d(),B(I,{class:F([a.value,"playlist p-4 rounded-xl relative"])},{default:q(()=>{var v;return[E(V,{src:e.playlist.cover,class:"rounded-xl self-start"},null,8,["src"]),r("div",ve,[r("div",xe,[e.playlist.type!="classic"?(d(),m("span",he,S(e.playlist.type=="smart"?"neurology":"bolt"),1)):h("",!0),r("h2",null,S(e.playlist.name),1)]),e.playlist.description?(d(),m("p",be,S(e.playlist.description),1)):h("",!0),r("div",ke,[e.playlist.type==="classic"?(d(),m("p",Se,[r("strong",null,S((v=e.playlist.songs)==null?void 0:v.length),1),j(" tracks ")])):h("",!0),r("span",{class:"material-symbols-rounded cursor-pointer",title:"Expand",onClick:l},S(e.expanded?"expand_less":"expand_more"),1)])]),e.expanded?(d(),B(I,{key:0,class:"col-span-2 flex flex-col gap-2 z-10 p-4"},{default:q(()=>[e.playlist.type==="classic"?(d(!0),m($,{key:0},D(e.playlist.songs,y=>(d(),B(ge,{key:y.source,diff:p(e.playlist),expanded:e.expandedSong,"is-base":e.isBase,song:y,onToggleExpanded:f},null,8,["diff","expanded","is-base","song"]))),128)):h("",!0),r("pre",null,[j(" "),e.playlist.type==="smart"?(d(),m("code",_e,` `+S(JSON.stringify(e.playlist.definition,null,4))+` `,1)):h("",!0),j(` `)])]),_:1})):h("",!0),a.value!="base"?(d(),m("span",{key:1,class:"material-symbols-rounded exclude",title:"Exclude",onClick:x[0]||(x[0]=y=>i.$emit("exclude",e.playlist))}," block ")):h("",!0)]}),_:1},8,["class"]))}}),T=G(Ee,[["__scopeId","data-v-51b40518"]]),L=e=>(se("data-v-3e5b815e"),e=e(),ae(),e),Pe={class:"pb-4 pr-4 flex flex-col gap-4 h-full"},we={class:"flex flex-row justify-end"},Ce=L(()=>r("div",{class:"grid grid-cols-2 gap-4"},[r("h1",null,"Local"),r("h1",null,"Incoming")],-1)),$e={key:1,class:"fill-page"},Be={key:1,class:"fill-page !grid !grid-cols-2 gap-4"},Oe=L(()=>r("h2",null,[r("span",{class:"material-symbols-rounded"},"file_upload"),j(" From File ")],-1)),je=L(()=>r("h2",null,[r("span",{class:"material-symbols-rounded"},"cloud_download"),j(" GitHub Gist ")],-1)),De=M({__name:"Import",setup(e){const c=_(!1),t=_(null),a=_({}),o=_({}),l=N(()=>ce(a.value,o.value)),f=A();let p=!1;const i=async()=>{var g;if(c.value||p)return;p=!0;const n=[];for(const s of(g=f.playlists)==null?void 0:g.filter(u=>u.type!="special")){const u=Object.assign({},s);n.push(u)}a.value=await Y(n),p=!1};Q(()=>f.playlists,i),R(i);const x=n=>{a.value.collection=a.value.collection.filter(g=>g.playlist.name!==n.name),o.value.collection=o.value.collection.filter(g=>g.playlist.name!==n.name)},v=_(null),y=_(null),b=n=>{var g;((g=v.value)==null?void 0:g.name)===n.name?v.value=null:v.value=n},k=n=>{var g;((g=y.value)==null?void 0:g.id)===n.id?y.value=null:y.value=n},P=async()=>{c.value=!0;const n=[],g=s=>{n.push(le(s.id,s.added));for(const u of s.removed)n.push(ne(s.id,u.id));for(const u of s.modified)for(const w of Object.keys(u.changed))n.push(ie(u.id,w,u.changed[w].to))};for(const s of l.value.added)s.playlist.type!=="special"&&(a.value.collection.push(s),n.push(Z(s.playlist.type,s.playlist.name,s.playlist.description,s.playlist.cover).then(u=>{s.playlist.id=u,s.playlist.type==="classic"?g({id:s.playlist.id,name:s.playlist.name,added:s.playlist.songs,removed:[],modified:[]}):s.playlist.type==="smart"&&n.push(ee(s.playlist.id,s.playlist.definition))})));for(const s of l.value.modified)g(s);for(const s of l.value.removed)n.push(te(s.playlist.id));await Promise.all(n),window.setTimeout(async()=>{await f.fetchPlaylists(),c.value=!1,await i()},1e3)},C=_(!1);J.connected().then(n=>C.value=n);const z=async()=>{const n=document.createElement("input");n.type="file",n.accept=".one.*",n.name="my.one.collection",n.onchange=async()=>{if(!n.files)return;const s=await n.files[0].text(),u=JSON.parse(s);o.value=u,t.value="file"},n.click()},H=async()=>{o.value=await J.getContent(),t.value="gist"};return _(null),(n,g)=>(d(),m("div",Pe,[r("div",we,[E(U,{icon:"merge",label:"Merge",onClick:P})]),t.value?(d(),m($,{key:0},[c.value?(d(),m("div",$e,[E(X)])):(d(),m($,{key:0},[Ce,(d(!0),m($,null,D(a.value.collection,s=>{var u,w;return d(),m("div",{key:s.playlist.name,class:"grid grid-cols-2 gap-4"},[a.value.collection.some(O=>O.playlist.name===s.playlist.name)?(d(),B(T,{key:0,diff:l.value,expanded:((u=v.value)==null?void 0:u.name)===s.playlist.name,"expanded-song":y.value,playlist:s.playlist,class:"grid-1","is-base":"",onExclude:x,onToggleExpanded:b,onToggleExpandedSong:k},null,8,["diff","expanded","expanded-song","playlist"])):h("",!0),o.value.collection.some(O=>O.playlist.name===s.playlist.name)?(d(),B(T,{key:1,diff:l.value,expanded:((w=v.value)==null?void 0:w.name)===s.playlist.name,"expanded-song":y.value,playlist:o.value.collection.find(O=>O.playlist.name===s.playlist.name).playlist,class:"grid-2",onExclude:x,onToggleExpanded:b,onToggleExpandedSong:k},null,8,["diff","expanded","expanded-song","playlist"])):h("",!0)])}),128)),(d(!0),m($,null,D(l.value.added,s=>{var u;return d(),m("div",{key:s.playlist.name,class:"grid grid-cols-2 gap-4"},[o.value.collection.some(w=>w.playlist.name===s.playlist.name)?(d(),B(T,{key:0,diff:l.value,expanded:((u=v.value)==null?void 0:u.name)===s.playlist.name,"expanded-song":y.value,playlist:s.playlist,class:"grid-2",onExclude:x,onToggleExpanded:b,onToggleExpandedSong:k},null,8,["diff","expanded","expanded-song","playlist"])):h("",!0)])}),128))],64))],64)):(d(),m("div",Be,[E(I,{"with-hover":"",class:"cursor-pointer",onClick:z},{default:q(()=>[Oe]),_:1}),E(I,{disabled:!C.value,"with-hover":"",class:"cursor-pointer",onClick:H},{default:q(()=>[je]),_:1},8,["disabled"])]))]))}}),Te=G(De,[["__scopeId","data-v-3e5b815e"]]);export{Te as default}; diff --git a/src/ui/dist/assets/Import-Bi-f60wK.js.gz b/src/ui/dist/assets/Import-Bi-f60wK.js.gz new file mode 100644 index 00000000..930f6412 Binary files /dev/null and b/src/ui/dist/assets/Import-Bi-f60wK.js.gz differ diff --git a/src/ui/dist/assets/ImportLink-rHn6Dtb7.js b/src/ui/dist/assets/ImportLink-BfrRHjui.js similarity index 95% rename from src/ui/dist/assets/ImportLink-rHn6Dtb7.js rename to src/ui/dist/assets/ImportLink-BfrRHjui.js index 27c37eb1..632020d6 100644 --- a/src/ui/dist/assets/ImportLink-rHn6Dtb7.js +++ b/src/ui/dist/assets/ImportLink-BfrRHjui.js @@ -1 +1 @@ -import{e as w,B as b,q as C,n as d,y as B,o as a,c as n,a as s,t as c,b as _,i as I,w as $,F as j,h as N,g as m,I as f,u as L,C as R,aG as V,_ as F}from"./index-K4QaY0Na.js";const S={class:"max-w-[60ch] w-full h-full flex items-center justify-center"},q={class:"flex-col"},A={key:0,class:"text-muted italic text-sm"},D={class:"ml-0"},E={class:"flex gap-2 items-center"},G={class:"text-muted uppercase text-sm"},M=["onClick"],O={class:"buttons flex gap-2"},T=w({__name:"ImportLink",setup(z){const h=b(),l=C(),r=d(""),e=d([]);B(async()=>{const i=h.params.id,o=atob(i),[t,...u]=o.split(":");if(t==="gist"){const[p,g,v]=u,y=`https://gist.githubusercontent.com/${p}/${g}/raw/${v}`,k=await(await fetch(y)).json();e.value=[k],r.value=p}});const x=async()=>{await V(e.value),l.push("/")};return(i,o)=>(a(),n("div",S,[s("div",q,[s("strong",null,c(r.value),1),_(" wants to share: "),e.value.length==0?(a(),n("span",A,"Nothing")):(a(),I(R,{key:1,class:"p-4 mt-4 w-max flex flex-col gap-4"},{default:$(()=>[s("ul",D,[(a(!0),n(j,null,N(e.value,t=>(a(),n("li",E,[s("span",G,c(t.type),1),_(" "+c(t.playlist.name)+" ",1),s("span",{class:"material-symbols-rounded cursor-pointer",onClick:u=>e.value.splice(e.value.indexOf(t),1)}," delete ",8,M)]))),256))]),s("div",O,[m(f,{type:"success",icon:"check",label:"Accept",onClick:x}),m(f,{type:"danger",icon:"close",label:"Reject",onClick:o[0]||(o[0]=t=>L(l).push("/"))})])]),_:1}))])]))}}),K=F(T,[["__scopeId","data-v-608ea9fa"]]);export{K as default}; +import{e as w,B as b,q as C,n as d,y as B,o as a,c as n,a as s,t as c,b as _,i as I,w as $,F as j,h as N,g as m,I as f,u as L,C as R,aG as V,_ as F}from"./index-DwIIj2B2.js";const S={class:"max-w-[60ch] w-full h-full flex items-center justify-center"},q={class:"flex-col"},A={key:0,class:"text-muted italic text-sm"},D={class:"ml-0"},E={class:"flex gap-2 items-center"},G={class:"text-muted uppercase text-sm"},M=["onClick"],O={class:"buttons flex gap-2"},T=w({__name:"ImportLink",setup(z){const h=b(),l=C(),r=d(""),e=d([]);B(async()=>{const i=h.params.id,o=atob(i),[t,...u]=o.split(":");if(t==="gist"){const[p,g,v]=u,y=`https://gist.githubusercontent.com/${p}/${g}/raw/${v}`,k=await(await fetch(y)).json();e.value=[k],r.value=p}});const x=async()=>{await V(e.value),l.push("/")};return(i,o)=>(a(),n("div",S,[s("div",q,[s("strong",null,c(r.value),1),_(" wants to share: "),e.value.length==0?(a(),n("span",A,"Nothing")):(a(),I(R,{key:1,class:"p-4 mt-4 w-max flex flex-col gap-4"},{default:$(()=>[s("ul",D,[(a(!0),n(j,null,N(e.value,t=>(a(),n("li",E,[s("span",G,c(t.type),1),_(" "+c(t.playlist.name)+" ",1),s("span",{class:"material-symbols-rounded cursor-pointer",onClick:u=>e.value.splice(e.value.indexOf(t),1)}," delete ",8,M)]))),256))]),s("div",O,[m(f,{type:"success",icon:"check",label:"Accept",onClick:x}),m(f,{type:"danger",icon:"close",label:"Reject",onClick:o[0]||(o[0]=t=>L(l).push("/"))})])]),_:1}))])]))}}),K=F(T,[["__scopeId","data-v-608ea9fa"]]);export{K as default}; diff --git a/src/ui/dist/assets/ImportLink-BfrRHjui.js.gz b/src/ui/dist/assets/ImportLink-BfrRHjui.js.gz new file mode 100644 index 00000000..2918f4f7 Binary files /dev/null and b/src/ui/dist/assets/ImportLink-BfrRHjui.js.gz differ diff --git a/src/ui/dist/assets/ImportLink-rHn6Dtb7.js.gz b/src/ui/dist/assets/ImportLink-rHn6Dtb7.js.gz deleted file mode 100644 index 1a0ed084..00000000 Binary files a/src/ui/dist/assets/ImportLink-rHn6Dtb7.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Insight-COWQpDb9.js.gz b/src/ui/dist/assets/Insight-COWQpDb9.js.gz deleted file mode 100644 index 06373a1c..00000000 Binary files a/src/ui/dist/assets/Insight-COWQpDb9.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Insight-COWQpDb9.js b/src/ui/dist/assets/Insight-Dcpuaw5C.js similarity index 99% rename from src/ui/dist/assets/Insight-COWQpDb9.js rename to src/ui/dist/assets/Insight-Dcpuaw5C.js index 8b48dae4..08c106d6 100644 --- a/src/ui/dist/assets/Insight-COWQpDb9.js +++ b/src/ui/dist/assets/Insight-Dcpuaw5C.js @@ -1,4 +1,4 @@ -var Kn=Object.defineProperty;var qn=(i,t,e)=>t in i?Kn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var S=(i,t,e)=>qn(i,typeof t!="symbol"?t+"":t,e);import{e as Gn,n as Zt,a7 as Zn,aL as Qn,y as Jn,o as to,c as eo,g as wt,u as Mt,a8 as io,a as I,w as Vt,C as Nt,t as ei,F as so,l as no,m as oo,_ as ao}from"./index-K4QaY0Na.js";/*! +var Kn=Object.defineProperty;var qn=(i,t,e)=>t in i?Kn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var S=(i,t,e)=>qn(i,typeof t!="symbol"?t+"":t,e);import{e as Gn,n as Zt,a7 as Zn,aL as Qn,y as Jn,o as to,c as eo,g as wt,u as Mt,a8 as io,a as I,w as Vt,C as Nt,t as ei,F as so,l as no,m as oo,_ as ao}from"./index-DwIIj2B2.js";/*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme * (c) 2023 Jukka Kurkela diff --git a/src/ui/dist/assets/Insight-Dcpuaw5C.js.gz b/src/ui/dist/assets/Insight-Dcpuaw5C.js.gz new file mode 100644 index 00000000..b6033763 Binary files /dev/null and b/src/ui/dist/assets/Insight-Dcpuaw5C.js.gz differ diff --git a/src/ui/dist/assets/Liked-D4BFut2M.js b/src/ui/dist/assets/Liked-D4BFut2M.js new file mode 100644 index 00000000..6a1c0a54 --- /dev/null +++ b/src/ui/dist/assets/Liked-D4BFut2M.js @@ -0,0 +1 @@ +import{T as o}from"./Template-CpDXJr_0.js";import{i as r,o as t}from"./index-DwIIj2B2.js";import"./PlaylistEntry-oyklgbh5.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-CFJncbti.js";import"./FactCard-DB8qPuqq.js";import"./gistClient-BfrJnK9Z.js";import"./Markdown.vue_vue_type_style_index_0_lang-072OuJni.js";const k={__name:"Liked",setup(p){return(e,i)=>(t(),r(o,{id:"liked"}))}};export{k as default}; diff --git a/src/ui/dist/assets/Liked-DtufEQ-7.js b/src/ui/dist/assets/Liked-DtufEQ-7.js deleted file mode 100644 index e7a5f96c..00000000 --- a/src/ui/dist/assets/Liked-DtufEQ-7.js +++ /dev/null @@ -1 +0,0 @@ -import{T as o}from"./Template-BJ9qkRi1.js";import{i as r,o as t}from"./index-K4QaY0Na.js";import"./PlaylistEntry-9wUfG8hQ.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-YqWWrJTC.js";import"./FactCard-BZwd6pEI.js";import"./gistClient-ZdZsfTR6.js";import"./Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js";const k={__name:"Liked",setup(p){return(e,i)=>(t(),r(o,{id:"liked"}))}};export{k as default}; diff --git a/src/ui/dist/assets/Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js b/src/ui/dist/assets/Markdown.vue_vue_type_style_index_0_lang-072OuJni.js similarity index 99% rename from src/ui/dist/assets/Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js rename to src/ui/dist/assets/Markdown.vue_vue_type_style_index_0_lang-072OuJni.js index 181cad98..eefab529 100644 --- a/src/ui/dist/assets/Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js +++ b/src/ui/dist/assets/Markdown.vue_vue_type_style_index_0_lang-072OuJni.js @@ -1,4 +1,4 @@ -import{aA as Ht,aB as Zt,e as Jt,n as Wt,o as Yt,i as Qt,w as Kt,a as Xt,u as nr,aa as tr}from"./index-K4QaY0Na.js";var q={};const rr="Á",or="á",er="Ă",sr="ă",cr="∾",ir="∿",ar="∾̳",lr="Â",ur="â",pr="´",fr="А",hr="а",dr="Æ",mr="æ",gr="⁡",br="𝔄",_r="𝔞",kr="À",xr="à",vr="ℵ",yr="ℵ",Cr="Α",wr="α",Ar="Ā",qr="ā",Dr="⨿",Er="&",Sr="&",Fr="⩕",Lr="⩓",Tr="∧",Rr="⩜",zr="⩘",Ir="⩚",Br="∠",Nr="⦤",Mr="∠",Pr="⦨",Or="⦩",Ur="⦪",Vr="⦫",$r="⦬",Gr="⦭",jr="⦮",Hr="⦯",Zr="∡",Jr="∟",Wr="⊾",Yr="⦝",Qr="∢",Kr="Å",Xr="⍼",no="Ą",to="ą",ro="𝔸",oo="𝕒",eo="⩯",so="≈",co="⩰",io="≊",ao="≋",lo="'",uo="⁡",po="≈",fo="≊",ho="Å",mo="å",go="𝒜",bo="𝒶",_o="≔",ko="*",xo="≈",vo="≍",yo="Ã",Co="ã",wo="Ä",Ao="ä",qo="∳",Do="⨑",Eo="≌",So="϶",Fo="‵",Lo="∽",To="⋍",Ro="∖",zo="⫧",Io="⊽",Bo="⌅",No="⌆",Mo="⌅",Po="⎵",Oo="⎶",Uo="≌",Vo="Б",$o="б",Go="„",jo="∵",Ho="∵",Zo="∵",Jo="⦰",Wo="϶",Yo="ℬ",Qo="ℬ",Ko="Β",Xo="β",ne="ℶ",te="≬",re="𝔅",oe="𝔟",ee="⋂",se="◯",ce="⋃",ie="⨀",ae="⨁",le="⨂",ue="⨆",pe="★",fe="▽",he="△",de="⨄",me="⋁",ge="⋀",be="⤍",_e="⧫",ke="▪",xe="▴",ve="▾",ye="◂",Ce="▸",we="␣",Ae="▒",qe="░",De="▓",Ee="█",Se="=⃥",Fe="≡⃥",Le="⫭",Te="⌐",Re="𝔹",ze="𝕓",Ie="⊥",Be="⊥",Ne="⋈",Me="⧉",Pe="┐",Oe="╕",Ue="╖",Ve="╗",$e="┌",Ge="╒",je="╓",He="╔",Ze="─",Je="═",We="┬",Ye="╤",Qe="╥",Ke="╦",Xe="┴",ns="╧",ts="╨",rs="╩",os="⊟",es="⊞",ss="⊠",cs="┘",is="╛",as="╜",ls="╝",us="└",ps="╘",fs="╙",hs="╚",ds="│",ms="║",gs="┼",bs="╪",_s="╫",ks="╬",xs="┤",vs="╡",ys="╢",Cs="╣",ws="├",As="╞",qs="╟",Ds="╠",Es="‵",Ss="˘",Fs="˘",Ls="¦",Ts="𝒷",Rs="ℬ",zs="⁏",Is="∽",Bs="⋍",Ns="⧅",Ms="\\",Ps="⟈",Os="•",Us="•",Vs="≎",$s="⪮",Gs="≏",js="≎",Hs="≏",Zs="Ć",Js="ć",Ws="⩄",Ys="⩉",Qs="⩋",Ks="∩",Xs="⋒",nc="⩇",tc="⩀",rc="ⅅ",oc="∩︀",ec="⁁",sc="ˇ",cc="ℭ",ic="⩍",ac="Č",lc="č",uc="Ç",pc="ç",fc="Ĉ",hc="ĉ",dc="∰",mc="⩌",gc="⩐",bc="Ċ",_c="ċ",kc="¸",xc="¸",vc="⦲",yc="¢",Cc="·",wc="·",Ac="𝔠",qc="ℭ",Dc="Ч",Ec="ч",Sc="✓",Fc="✓",Lc="Χ",Tc="χ",Rc="ˆ",zc="≗",Ic="↺",Bc="↻",Nc="⊛",Mc="⊚",Pc="⊝",Oc="⊙",Uc="®",Vc="Ⓢ",$c="⊖",Gc="⊕",jc="⊗",Hc="○",Zc="⧃",Jc="≗",Wc="⨐",Yc="⫯",Qc="⧂",Kc="∲",Xc="”",ni="’",ti="♣",ri="♣",oi=":",ei="∷",si="⩴",ci="≔",ii="≔",ai=",",li="@",ui="∁",pi="∘",fi="∁",hi="ℂ",di="≅",mi="⩭",gi="≡",bi="∮",_i="∯",ki="∮",xi="𝕔",vi="ℂ",yi="∐",Ci="∐",wi="©",Ai="©",qi="℗",Di="∳",Ei="↵",Si="✗",Fi="⨯",Li="𝒞",Ti="𝒸",Ri="⫏",zi="⫑",Ii="⫐",Bi="⫒",Ni="⋯",Mi="⤸",Pi="⤵",Oi="⋞",Ui="⋟",Vi="↶",$i="⤽",Gi="⩈",ji="⩆",Hi="≍",Zi="∪",Ji="⋓",Wi="⩊",Yi="⊍",Qi="⩅",Ki="∪︀",Xi="↷",na="⤼",ta="⋞",ra="⋟",oa="⋎",ea="⋏",sa="¤",ca="↶",ia="↷",aa="⋎",la="⋏",ua="∲",pa="∱",fa="⌭",ha="†",da="‡",ma="ℸ",ga="↓",ba="↡",_a="⇓",ka="‐",xa="⫤",va="⊣",ya="⤏",Ca="˝",wa="Ď",Aa="ď",qa="Д",Da="д",Ea="‡",Sa="⇊",Fa="ⅅ",La="ⅆ",Ta="⤑",Ra="⩷",za="°",Ia="∇",Ba="Δ",Na="δ",Ma="⦱",Pa="⥿",Oa="𝔇",Ua="𝔡",Va="⥥",$a="⇃",Ga="⇂",ja="´",Ha="˙",Za="˝",Ja="`",Wa="˜",Ya="⋄",Qa="⋄",Ka="⋄",Xa="♦",nl="♦",tl="¨",rl="ⅆ",ol="ϝ",el="⋲",sl="÷",cl="÷",il="⋇",al="⋇",ll="Ђ",ul="ђ",pl="⌞",fl="⌍",hl="$",dl="𝔻",ml="𝕕",gl="¨",bl="˙",_l="⃜",kl="≐",xl="≑",vl="≐",yl="∸",Cl="∔",wl="⊡",Al="⌆",ql="∯",Dl="¨",El="⇓",Sl="⇐",Fl="⇔",Ll="⫤",Tl="⟸",Rl="⟺",zl="⟹",Il="⇒",Bl="⊨",Nl="⇑",Ml="⇕",Pl="∥",Ol="⤓",Ul="↓",Vl="↓",$l="⇓",Gl="⇵",jl="̑",Hl="⇊",Zl="⇃",Jl="⇂",Wl="⥐",Yl="⥞",Ql="⥖",Kl="↽",Xl="⥟",nu="⥗",tu="⇁",ru="↧",ou="⊤",eu="⤐",su="⌟",cu="⌌",iu="𝒟",au="𝒹",lu="Ѕ",uu="ѕ",pu="⧶",fu="Đ",hu="đ",du="⋱",mu="▿",gu="▾",bu="⇵",_u="⥯",ku="⦦",xu="Џ",vu="џ",yu="⟿",Cu="É",wu="é",Au="⩮",qu="Ě",Du="ě",Eu="Ê",Su="ê",Fu="≖",Lu="≕",Tu="Э",Ru="э",zu="⩷",Iu="Ė",Bu="ė",Nu="≑",Mu="ⅇ",Pu="≒",Ou="𝔈",Uu="𝔢",Vu="⪚",$u="È",Gu="è",ju="⪖",Hu="⪘",Zu="⪙",Ju="∈",Wu="⏧",Yu="ℓ",Qu="⪕",Ku="⪗",Xu="Ē",np="ē",tp="∅",rp="∅",op="◻",ep="∅",sp="▫",cp=" ",ip=" ",ap=" ",lp="Ŋ",up="ŋ",pp=" ",fp="Ę",hp="ę",dp="𝔼",mp="𝕖",gp="⋕",bp="⧣",_p="⩱",kp="ε",xp="Ε",vp="ε",yp="ϵ",Cp="≖",wp="≕",Ap="≂",qp="⪖",Dp="⪕",Ep="⩵",Sp="=",Fp="≂",Lp="≟",Tp="⇌",Rp="≡",zp="⩸",Ip="⧥",Bp="⥱",Np="≓",Mp="ℯ",Pp="ℰ",Op="≐",Up="⩳",Vp="≂",$p="Η",Gp="η",jp="Ð",Hp="ð",Zp="Ë",Jp="ë",Wp="€",Yp="!",Qp="∃",Kp="∃",Xp="ℰ",nf="ⅇ",tf="ⅇ",rf="≒",of="Ф",ef="ф",sf="♀",cf="ffi",af="ff",lf="ffl",uf="𝔉",pf="𝔣",ff="fi",hf="◼",df="▪",mf="fj",gf="♭",bf="fl",_f="▱",kf="ƒ",xf="𝔽",vf="𝕗",yf="∀",Cf="∀",wf="⋔",Af="⫙",qf="ℱ",Df="⨍",Ef="½",Sf="⅓",Ff="¼",Lf="⅕",Tf="⅙",Rf="⅛",zf="⅔",If="⅖",Bf="¾",Nf="⅗",Mf="⅜",Pf="⅘",Of="⅚",Uf="⅝",Vf="⅞",$f="⁄",Gf="⌢",jf="𝒻",Hf="ℱ",Zf="ǵ",Jf="Γ",Wf="γ",Yf="Ϝ",Qf="ϝ",Kf="⪆",Xf="Ğ",nh="ğ",th="Ģ",rh="Ĝ",oh="ĝ",eh="Г",sh="г",ch="Ġ",ih="ġ",ah="≥",lh="≧",uh="⪌",ph="⋛",fh="≥",hh="≧",dh="⩾",mh="⪩",gh="⩾",bh="⪀",_h="⪂",kh="⪄",xh="⋛︀",vh="⪔",yh="𝔊",Ch="𝔤",wh="≫",Ah="⋙",qh="⋙",Dh="ℷ",Eh="Ѓ",Sh="ѓ",Fh="⪥",Lh="≷",Th="⪒",Rh="⪤",zh="⪊",Ih="⪊",Bh="⪈",Nh="≩",Mh="⪈",Ph="≩",Oh="⋧",Uh="𝔾",Vh="𝕘",$h="`",Gh="≥",jh="⋛",Hh="≧",Zh="⪢",Jh="≷",Wh="⩾",Yh="≳",Qh="𝒢",Kh="ℊ",Xh="≳",nd="⪎",td="⪐",rd="⪧",od="⩺",ed=">",sd=">",cd="≫",id="⋗",ad="⦕",ld="⩼",ud="⪆",pd="⥸",fd="⋗",hd="⋛",dd="⪌",md="≷",gd="≳",bd="≩︀",_d="≩︀",kd="ˇ",xd=" ",vd="½",yd="ℋ",Cd="Ъ",wd="ъ",Ad="⥈",qd="↔",Dd="⇔",Ed="↭",Sd="^",Fd="ℏ",Ld="Ĥ",Td="ĥ",Rd="♥",zd="♥",Id="…",Bd="⊹",Nd="𝔥",Md="ℌ",Pd="ℋ",Od="⤥",Ud="⤦",Vd="⇿",$d="∻",Gd="↩",jd="↪",Hd="𝕙",Zd="ℍ",Jd="―",Wd="─",Yd="𝒽",Qd="ℋ",Kd="ℏ",Xd="Ħ",nm="ħ",tm="≎",rm="≏",om="⁃",em="‐",sm="Í",cm="í",im="⁣",am="Î",lm="î",um="И",pm="и",fm="İ",hm="Е",dm="е",mm="¡",gm="⇔",bm="𝔦",_m="ℑ",km="Ì",xm="ì",vm="ⅈ",ym="⨌",Cm="∭",wm="⧜",Am="℩",qm="IJ",Dm="ij",Em="Ī",Sm="ī",Fm="ℑ",Lm="ⅈ",Tm="ℐ",Rm="ℑ",zm="ı",Im="ℑ",Bm="⊷",Nm="Ƶ",Mm="⇒",Pm="℅",Om="∞",Um="⧝",Vm="ı",$m="⊺",Gm="∫",jm="∬",Hm="ℤ",Zm="∫",Jm="⊺",Wm="⋂",Ym="⨗",Qm="⨼",Km="⁣",Xm="⁢",ng="Ё",tg="ё",rg="Į",og="į",eg="𝕀",sg="𝕚",cg="Ι",ig="ι",ag="⨼",lg="¿",ug="𝒾",pg="ℐ",fg="∈",hg="⋵",dg="⋹",mg="⋴",gg="⋳",bg="∈",_g="⁢",kg="Ĩ",xg="ĩ",vg="І",yg="і",Cg="Ï",wg="ï",Ag="Ĵ",qg="ĵ",Dg="Й",Eg="й",Sg="𝔍",Fg="𝔧",Lg="ȷ",Tg="𝕁",Rg="𝕛",zg="𝒥",Ig="𝒿",Bg="Ј",Ng="ј",Mg="Є",Pg="є",Og="Κ",Ug="κ",Vg="ϰ",$g="Ķ",Gg="ķ",jg="К",Hg="к",Zg="𝔎",Jg="𝔨",Wg="ĸ",Yg="Х",Qg="х",Kg="Ќ",Xg="ќ",n0="𝕂",t0="𝕜",r0="𝒦",o0="𝓀",e0="⇚",s0="Ĺ",c0="ĺ",i0="⦴",a0="ℒ",l0="Λ",u0="λ",p0="⟨",f0="⟪",h0="⦑",d0="⟨",m0="⪅",g0="ℒ",b0="«",_0="⇤",k0="⤟",x0="←",v0="↞",y0="⇐",C0="⤝",w0="↩",A0="↫",q0="⤹",D0="⥳",E0="↢",S0="⤙",F0="⤛",L0="⪫",T0="⪭",R0="⪭︀",z0="⤌",I0="⤎",B0="❲",N0="{",M0="[",P0="⦋",O0="⦏",U0="⦍",V0="Ľ",$0="ľ",G0="Ļ",j0="ļ",H0="⌈",Z0="{",J0="Л",W0="л",Y0="⤶",Q0="“",K0="„",X0="⥧",nb="⥋",tb="↲",rb="≤",ob="≦",eb="⟨",sb="⇤",cb="←",ib="←",ab="⇐",lb="⇆",ub="↢",pb="⌈",fb="⟦",hb="⥡",db="⥙",mb="⇃",gb="⌊",bb="↽",_b="↼",kb="⇇",xb="↔",vb="↔",yb="⇔",Cb="⇆",wb="⇋",Ab="↭",qb="⥎",Db="↤",Eb="⊣",Sb="⥚",Fb="⋋",Lb="⧏",Tb="⊲",Rb="⊴",zb="⥑",Ib="⥠",Bb="⥘",Nb="↿",Mb="⥒",Pb="↼",Ob="⪋",Ub="⋚",Vb="≤",$b="≦",Gb="⩽",jb="⪨",Hb="⩽",Zb="⩿",Jb="⪁",Wb="⪃",Yb="⋚︀",Qb="⪓",Kb="⪅",Xb="⋖",n_="⋚",t_="⪋",r_="⋚",o_="≦",e_="≶",s_="≶",c_="⪡",i_="≲",a_="⩽",l_="≲",u_="⥼",p_="⌊",f_="𝔏",h_="𝔩",d_="≶",m_="⪑",g_="⥢",b_="↽",__="↼",k_="⥪",x_="▄",v_="Љ",y_="љ",C_="⇇",w_="≪",A_="⋘",q_="⌞",D_="⇚",E_="⥫",S_="◺",F_="Ŀ",L_="ŀ",T_="⎰",R_="⎰",z_="⪉",I_="⪉",B_="⪇",N_="≨",M_="⪇",P_="≨",O_="⋦",U_="⟬",V_="⇽",$_="⟦",G_="⟵",j_="⟵",H_="⟸",Z_="⟷",J_="⟷",W_="⟺",Y_="⟼",Q_="⟶",K_="⟶",X_="⟹",nk="↫",tk="↬",rk="⦅",ok="𝕃",ek="𝕝",sk="⨭",ck="⨴",ik="∗",ak="_",lk="↙",uk="↘",pk="◊",fk="◊",hk="⧫",dk="(",mk="⦓",gk="⇆",bk="⌟",_k="⇋",kk="⥭",xk="‎",vk="⊿",yk="‹",Ck="𝓁",wk="ℒ",Ak="↰",qk="↰",Dk="≲",Ek="⪍",Sk="⪏",Fk="[",Lk="‘",Tk="‚",Rk="Ł",zk="ł",Ik="⪦",Bk="⩹",Nk="<",Mk="<",Pk="≪",Ok="⋖",Uk="⋋",Vk="⋉",$k="⥶",Gk="⩻",jk="◃",Hk="⊴",Zk="◂",Jk="⦖",Wk="⥊",Yk="⥦",Qk="≨︀",Kk="≨︀",Xk="¯",nx="♂",tx="✠",rx="✠",ox="↦",ex="↦",sx="↧",cx="↤",ix="↥",ax="▮",lx="⨩",ux="М",px="м",fx="—",hx="∺",dx="∡",mx=" ",gx="ℳ",bx="𝔐",_x="𝔪",kx="℧",xx="µ",vx="*",yx="⫰",Cx="∣",wx="·",Ax="⊟",qx="−",Dx="∸",Ex="⨪",Sx="∓",Fx="⫛",Lx="…",Tx="∓",Rx="⊧",zx="𝕄",Ix="𝕞",Bx="∓",Nx="𝓂",Mx="ℳ",Px="∾",Ox="Μ",Ux="μ",Vx="⊸",$x="⊸",Gx="∇",jx="Ń",Hx="ń",Zx="∠⃒",Jx="≉",Wx="⩰̸",Yx="≋̸",Qx="ʼn",Kx="≉",Xx="♮",nv="ℕ",tv="♮",rv=" ",ov="≎̸",ev="≏̸",sv="⩃",cv="Ň",iv="ň",av="Ņ",lv="ņ",uv="≇",pv="⩭̸",fv="⩂",hv="Н",dv="н",mv="–",gv="⤤",bv="↗",_v="⇗",kv="↗",xv="≠",vv="≐̸",yv="​",Cv="​",wv="​",Av="​",qv="≢",Dv="⤨",Ev="≂̸",Sv="≫",Fv="≪",Lv=` +import{aA as Ht,aB as Zt,e as Jt,n as Wt,o as Yt,i as Qt,w as Kt,a as Xt,u as nr,aa as tr}from"./index-DwIIj2B2.js";var q={};const rr="Á",or="á",er="Ă",sr="ă",cr="∾",ir="∿",ar="∾̳",lr="Â",ur="â",pr="´",fr="А",hr="а",dr="Æ",mr="æ",gr="⁡",br="𝔄",_r="𝔞",kr="À",xr="à",vr="ℵ",yr="ℵ",Cr="Α",wr="α",Ar="Ā",qr="ā",Dr="⨿",Er="&",Sr="&",Fr="⩕",Lr="⩓",Tr="∧",Rr="⩜",zr="⩘",Ir="⩚",Br="∠",Nr="⦤",Mr="∠",Pr="⦨",Or="⦩",Ur="⦪",Vr="⦫",$r="⦬",Gr="⦭",jr="⦮",Hr="⦯",Zr="∡",Jr="∟",Wr="⊾",Yr="⦝",Qr="∢",Kr="Å",Xr="⍼",no="Ą",to="ą",ro="𝔸",oo="𝕒",eo="⩯",so="≈",co="⩰",io="≊",ao="≋",lo="'",uo="⁡",po="≈",fo="≊",ho="Å",mo="å",go="𝒜",bo="𝒶",_o="≔",ko="*",xo="≈",vo="≍",yo="Ã",Co="ã",wo="Ä",Ao="ä",qo="∳",Do="⨑",Eo="≌",So="϶",Fo="‵",Lo="∽",To="⋍",Ro="∖",zo="⫧",Io="⊽",Bo="⌅",No="⌆",Mo="⌅",Po="⎵",Oo="⎶",Uo="≌",Vo="Б",$o="б",Go="„",jo="∵",Ho="∵",Zo="∵",Jo="⦰",Wo="϶",Yo="ℬ",Qo="ℬ",Ko="Β",Xo="β",ne="ℶ",te="≬",re="𝔅",oe="𝔟",ee="⋂",se="◯",ce="⋃",ie="⨀",ae="⨁",le="⨂",ue="⨆",pe="★",fe="▽",he="△",de="⨄",me="⋁",ge="⋀",be="⤍",_e="⧫",ke="▪",xe="▴",ve="▾",ye="◂",Ce="▸",we="␣",Ae="▒",qe="░",De="▓",Ee="█",Se="=⃥",Fe="≡⃥",Le="⫭",Te="⌐",Re="𝔹",ze="𝕓",Ie="⊥",Be="⊥",Ne="⋈",Me="⧉",Pe="┐",Oe="╕",Ue="╖",Ve="╗",$e="┌",Ge="╒",je="╓",He="╔",Ze="─",Je="═",We="┬",Ye="╤",Qe="╥",Ke="╦",Xe="┴",ns="╧",ts="╨",rs="╩",os="⊟",es="⊞",ss="⊠",cs="┘",is="╛",as="╜",ls="╝",us="└",ps="╘",fs="╙",hs="╚",ds="│",ms="║",gs="┼",bs="╪",_s="╫",ks="╬",xs="┤",vs="╡",ys="╢",Cs="╣",ws="├",As="╞",qs="╟",Ds="╠",Es="‵",Ss="˘",Fs="˘",Ls="¦",Ts="𝒷",Rs="ℬ",zs="⁏",Is="∽",Bs="⋍",Ns="⧅",Ms="\\",Ps="⟈",Os="•",Us="•",Vs="≎",$s="⪮",Gs="≏",js="≎",Hs="≏",Zs="Ć",Js="ć",Ws="⩄",Ys="⩉",Qs="⩋",Ks="∩",Xs="⋒",nc="⩇",tc="⩀",rc="ⅅ",oc="∩︀",ec="⁁",sc="ˇ",cc="ℭ",ic="⩍",ac="Č",lc="č",uc="Ç",pc="ç",fc="Ĉ",hc="ĉ",dc="∰",mc="⩌",gc="⩐",bc="Ċ",_c="ċ",kc="¸",xc="¸",vc="⦲",yc="¢",Cc="·",wc="·",Ac="𝔠",qc="ℭ",Dc="Ч",Ec="ч",Sc="✓",Fc="✓",Lc="Χ",Tc="χ",Rc="ˆ",zc="≗",Ic="↺",Bc="↻",Nc="⊛",Mc="⊚",Pc="⊝",Oc="⊙",Uc="®",Vc="Ⓢ",$c="⊖",Gc="⊕",jc="⊗",Hc="○",Zc="⧃",Jc="≗",Wc="⨐",Yc="⫯",Qc="⧂",Kc="∲",Xc="”",ni="’",ti="♣",ri="♣",oi=":",ei="∷",si="⩴",ci="≔",ii="≔",ai=",",li="@",ui="∁",pi="∘",fi="∁",hi="ℂ",di="≅",mi="⩭",gi="≡",bi="∮",_i="∯",ki="∮",xi="𝕔",vi="ℂ",yi="∐",Ci="∐",wi="©",Ai="©",qi="℗",Di="∳",Ei="↵",Si="✗",Fi="⨯",Li="𝒞",Ti="𝒸",Ri="⫏",zi="⫑",Ii="⫐",Bi="⫒",Ni="⋯",Mi="⤸",Pi="⤵",Oi="⋞",Ui="⋟",Vi="↶",$i="⤽",Gi="⩈",ji="⩆",Hi="≍",Zi="∪",Ji="⋓",Wi="⩊",Yi="⊍",Qi="⩅",Ki="∪︀",Xi="↷",na="⤼",ta="⋞",ra="⋟",oa="⋎",ea="⋏",sa="¤",ca="↶",ia="↷",aa="⋎",la="⋏",ua="∲",pa="∱",fa="⌭",ha="†",da="‡",ma="ℸ",ga="↓",ba="↡",_a="⇓",ka="‐",xa="⫤",va="⊣",ya="⤏",Ca="˝",wa="Ď",Aa="ď",qa="Д",Da="д",Ea="‡",Sa="⇊",Fa="ⅅ",La="ⅆ",Ta="⤑",Ra="⩷",za="°",Ia="∇",Ba="Δ",Na="δ",Ma="⦱",Pa="⥿",Oa="𝔇",Ua="𝔡",Va="⥥",$a="⇃",Ga="⇂",ja="´",Ha="˙",Za="˝",Ja="`",Wa="˜",Ya="⋄",Qa="⋄",Ka="⋄",Xa="♦",nl="♦",tl="¨",rl="ⅆ",ol="ϝ",el="⋲",sl="÷",cl="÷",il="⋇",al="⋇",ll="Ђ",ul="ђ",pl="⌞",fl="⌍",hl="$",dl="𝔻",ml="𝕕",gl="¨",bl="˙",_l="⃜",kl="≐",xl="≑",vl="≐",yl="∸",Cl="∔",wl="⊡",Al="⌆",ql="∯",Dl="¨",El="⇓",Sl="⇐",Fl="⇔",Ll="⫤",Tl="⟸",Rl="⟺",zl="⟹",Il="⇒",Bl="⊨",Nl="⇑",Ml="⇕",Pl="∥",Ol="⤓",Ul="↓",Vl="↓",$l="⇓",Gl="⇵",jl="̑",Hl="⇊",Zl="⇃",Jl="⇂",Wl="⥐",Yl="⥞",Ql="⥖",Kl="↽",Xl="⥟",nu="⥗",tu="⇁",ru="↧",ou="⊤",eu="⤐",su="⌟",cu="⌌",iu="𝒟",au="𝒹",lu="Ѕ",uu="ѕ",pu="⧶",fu="Đ",hu="đ",du="⋱",mu="▿",gu="▾",bu="⇵",_u="⥯",ku="⦦",xu="Џ",vu="џ",yu="⟿",Cu="É",wu="é",Au="⩮",qu="Ě",Du="ě",Eu="Ê",Su="ê",Fu="≖",Lu="≕",Tu="Э",Ru="э",zu="⩷",Iu="Ė",Bu="ė",Nu="≑",Mu="ⅇ",Pu="≒",Ou="𝔈",Uu="𝔢",Vu="⪚",$u="È",Gu="è",ju="⪖",Hu="⪘",Zu="⪙",Ju="∈",Wu="⏧",Yu="ℓ",Qu="⪕",Ku="⪗",Xu="Ē",np="ē",tp="∅",rp="∅",op="◻",ep="∅",sp="▫",cp=" ",ip=" ",ap=" ",lp="Ŋ",up="ŋ",pp=" ",fp="Ę",hp="ę",dp="𝔼",mp="𝕖",gp="⋕",bp="⧣",_p="⩱",kp="ε",xp="Ε",vp="ε",yp="ϵ",Cp="≖",wp="≕",Ap="≂",qp="⪖",Dp="⪕",Ep="⩵",Sp="=",Fp="≂",Lp="≟",Tp="⇌",Rp="≡",zp="⩸",Ip="⧥",Bp="⥱",Np="≓",Mp="ℯ",Pp="ℰ",Op="≐",Up="⩳",Vp="≂",$p="Η",Gp="η",jp="Ð",Hp="ð",Zp="Ë",Jp="ë",Wp="€",Yp="!",Qp="∃",Kp="∃",Xp="ℰ",nf="ⅇ",tf="ⅇ",rf="≒",of="Ф",ef="ф",sf="♀",cf="ffi",af="ff",lf="ffl",uf="𝔉",pf="𝔣",ff="fi",hf="◼",df="▪",mf="fj",gf="♭",bf="fl",_f="▱",kf="ƒ",xf="𝔽",vf="𝕗",yf="∀",Cf="∀",wf="⋔",Af="⫙",qf="ℱ",Df="⨍",Ef="½",Sf="⅓",Ff="¼",Lf="⅕",Tf="⅙",Rf="⅛",zf="⅔",If="⅖",Bf="¾",Nf="⅗",Mf="⅜",Pf="⅘",Of="⅚",Uf="⅝",Vf="⅞",$f="⁄",Gf="⌢",jf="𝒻",Hf="ℱ",Zf="ǵ",Jf="Γ",Wf="γ",Yf="Ϝ",Qf="ϝ",Kf="⪆",Xf="Ğ",nh="ğ",th="Ģ",rh="Ĝ",oh="ĝ",eh="Г",sh="г",ch="Ġ",ih="ġ",ah="≥",lh="≧",uh="⪌",ph="⋛",fh="≥",hh="≧",dh="⩾",mh="⪩",gh="⩾",bh="⪀",_h="⪂",kh="⪄",xh="⋛︀",vh="⪔",yh="𝔊",Ch="𝔤",wh="≫",Ah="⋙",qh="⋙",Dh="ℷ",Eh="Ѓ",Sh="ѓ",Fh="⪥",Lh="≷",Th="⪒",Rh="⪤",zh="⪊",Ih="⪊",Bh="⪈",Nh="≩",Mh="⪈",Ph="≩",Oh="⋧",Uh="𝔾",Vh="𝕘",$h="`",Gh="≥",jh="⋛",Hh="≧",Zh="⪢",Jh="≷",Wh="⩾",Yh="≳",Qh="𝒢",Kh="ℊ",Xh="≳",nd="⪎",td="⪐",rd="⪧",od="⩺",ed=">",sd=">",cd="≫",id="⋗",ad="⦕",ld="⩼",ud="⪆",pd="⥸",fd="⋗",hd="⋛",dd="⪌",md="≷",gd="≳",bd="≩︀",_d="≩︀",kd="ˇ",xd=" ",vd="½",yd="ℋ",Cd="Ъ",wd="ъ",Ad="⥈",qd="↔",Dd="⇔",Ed="↭",Sd="^",Fd="ℏ",Ld="Ĥ",Td="ĥ",Rd="♥",zd="♥",Id="…",Bd="⊹",Nd="𝔥",Md="ℌ",Pd="ℋ",Od="⤥",Ud="⤦",Vd="⇿",$d="∻",Gd="↩",jd="↪",Hd="𝕙",Zd="ℍ",Jd="―",Wd="─",Yd="𝒽",Qd="ℋ",Kd="ℏ",Xd="Ħ",nm="ħ",tm="≎",rm="≏",om="⁃",em="‐",sm="Í",cm="í",im="⁣",am="Î",lm="î",um="И",pm="и",fm="İ",hm="Е",dm="е",mm="¡",gm="⇔",bm="𝔦",_m="ℑ",km="Ì",xm="ì",vm="ⅈ",ym="⨌",Cm="∭",wm="⧜",Am="℩",qm="IJ",Dm="ij",Em="Ī",Sm="ī",Fm="ℑ",Lm="ⅈ",Tm="ℐ",Rm="ℑ",zm="ı",Im="ℑ",Bm="⊷",Nm="Ƶ",Mm="⇒",Pm="℅",Om="∞",Um="⧝",Vm="ı",$m="⊺",Gm="∫",jm="∬",Hm="ℤ",Zm="∫",Jm="⊺",Wm="⋂",Ym="⨗",Qm="⨼",Km="⁣",Xm="⁢",ng="Ё",tg="ё",rg="Į",og="į",eg="𝕀",sg="𝕚",cg="Ι",ig="ι",ag="⨼",lg="¿",ug="𝒾",pg="ℐ",fg="∈",hg="⋵",dg="⋹",mg="⋴",gg="⋳",bg="∈",_g="⁢",kg="Ĩ",xg="ĩ",vg="І",yg="і",Cg="Ï",wg="ï",Ag="Ĵ",qg="ĵ",Dg="Й",Eg="й",Sg="𝔍",Fg="𝔧",Lg="ȷ",Tg="𝕁",Rg="𝕛",zg="𝒥",Ig="𝒿",Bg="Ј",Ng="ј",Mg="Є",Pg="є",Og="Κ",Ug="κ",Vg="ϰ",$g="Ķ",Gg="ķ",jg="К",Hg="к",Zg="𝔎",Jg="𝔨",Wg="ĸ",Yg="Х",Qg="х",Kg="Ќ",Xg="ќ",n0="𝕂",t0="𝕜",r0="𝒦",o0="𝓀",e0="⇚",s0="Ĺ",c0="ĺ",i0="⦴",a0="ℒ",l0="Λ",u0="λ",p0="⟨",f0="⟪",h0="⦑",d0="⟨",m0="⪅",g0="ℒ",b0="«",_0="⇤",k0="⤟",x0="←",v0="↞",y0="⇐",C0="⤝",w0="↩",A0="↫",q0="⤹",D0="⥳",E0="↢",S0="⤙",F0="⤛",L0="⪫",T0="⪭",R0="⪭︀",z0="⤌",I0="⤎",B0="❲",N0="{",M0="[",P0="⦋",O0="⦏",U0="⦍",V0="Ľ",$0="ľ",G0="Ļ",j0="ļ",H0="⌈",Z0="{",J0="Л",W0="л",Y0="⤶",Q0="“",K0="„",X0="⥧",nb="⥋",tb="↲",rb="≤",ob="≦",eb="⟨",sb="⇤",cb="←",ib="←",ab="⇐",lb="⇆",ub="↢",pb="⌈",fb="⟦",hb="⥡",db="⥙",mb="⇃",gb="⌊",bb="↽",_b="↼",kb="⇇",xb="↔",vb="↔",yb="⇔",Cb="⇆",wb="⇋",Ab="↭",qb="⥎",Db="↤",Eb="⊣",Sb="⥚",Fb="⋋",Lb="⧏",Tb="⊲",Rb="⊴",zb="⥑",Ib="⥠",Bb="⥘",Nb="↿",Mb="⥒",Pb="↼",Ob="⪋",Ub="⋚",Vb="≤",$b="≦",Gb="⩽",jb="⪨",Hb="⩽",Zb="⩿",Jb="⪁",Wb="⪃",Yb="⋚︀",Qb="⪓",Kb="⪅",Xb="⋖",n_="⋚",t_="⪋",r_="⋚",o_="≦",e_="≶",s_="≶",c_="⪡",i_="≲",a_="⩽",l_="≲",u_="⥼",p_="⌊",f_="𝔏",h_="𝔩",d_="≶",m_="⪑",g_="⥢",b_="↽",__="↼",k_="⥪",x_="▄",v_="Љ",y_="љ",C_="⇇",w_="≪",A_="⋘",q_="⌞",D_="⇚",E_="⥫",S_="◺",F_="Ŀ",L_="ŀ",T_="⎰",R_="⎰",z_="⪉",I_="⪉",B_="⪇",N_="≨",M_="⪇",P_="≨",O_="⋦",U_="⟬",V_="⇽",$_="⟦",G_="⟵",j_="⟵",H_="⟸",Z_="⟷",J_="⟷",W_="⟺",Y_="⟼",Q_="⟶",K_="⟶",X_="⟹",nk="↫",tk="↬",rk="⦅",ok="𝕃",ek="𝕝",sk="⨭",ck="⨴",ik="∗",ak="_",lk="↙",uk="↘",pk="◊",fk="◊",hk="⧫",dk="(",mk="⦓",gk="⇆",bk="⌟",_k="⇋",kk="⥭",xk="‎",vk="⊿",yk="‹",Ck="𝓁",wk="ℒ",Ak="↰",qk="↰",Dk="≲",Ek="⪍",Sk="⪏",Fk="[",Lk="‘",Tk="‚",Rk="Ł",zk="ł",Ik="⪦",Bk="⩹",Nk="<",Mk="<",Pk="≪",Ok="⋖",Uk="⋋",Vk="⋉",$k="⥶",Gk="⩻",jk="◃",Hk="⊴",Zk="◂",Jk="⦖",Wk="⥊",Yk="⥦",Qk="≨︀",Kk="≨︀",Xk="¯",nx="♂",tx="✠",rx="✠",ox="↦",ex="↦",sx="↧",cx="↤",ix="↥",ax="▮",lx="⨩",ux="М",px="м",fx="—",hx="∺",dx="∡",mx=" ",gx="ℳ",bx="𝔐",_x="𝔪",kx="℧",xx="µ",vx="*",yx="⫰",Cx="∣",wx="·",Ax="⊟",qx="−",Dx="∸",Ex="⨪",Sx="∓",Fx="⫛",Lx="…",Tx="∓",Rx="⊧",zx="𝕄",Ix="𝕞",Bx="∓",Nx="𝓂",Mx="ℳ",Px="∾",Ox="Μ",Ux="μ",Vx="⊸",$x="⊸",Gx="∇",jx="Ń",Hx="ń",Zx="∠⃒",Jx="≉",Wx="⩰̸",Yx="≋̸",Qx="ʼn",Kx="≉",Xx="♮",nv="ℕ",tv="♮",rv=" ",ov="≎̸",ev="≏̸",sv="⩃",cv="Ň",iv="ň",av="Ņ",lv="ņ",uv="≇",pv="⩭̸",fv="⩂",hv="Н",dv="н",mv="–",gv="⤤",bv="↗",_v="⇗",kv="↗",xv="≠",vv="≐̸",yv="​",Cv="​",wv="​",Av="​",qv="≢",Dv="⤨",Ev="≂̸",Sv="≫",Fv="≪",Lv=` `,Tv="∄",Rv="∄",zv="𝔑",Iv="𝔫",Bv="≧̸",Nv="≱",Mv="≱",Pv="≧̸",Ov="⩾̸",Uv="⩾̸",Vv="⋙̸",$v="≵",Gv="≫⃒",jv="≯",Hv="≯",Zv="≫̸",Jv="↮",Wv="⇎",Yv="⫲",Qv="∋",Kv="⋼",Xv="⋺",ny="∋",ty="Њ",ry="њ",oy="↚",ey="⇍",sy="‥",cy="≦̸",iy="≰",ay="↚",ly="⇍",uy="↮",py="⇎",fy="≰",hy="≦̸",dy="⩽̸",my="⩽̸",gy="≮",by="⋘̸",_y="≴",ky="≪⃒",xy="≮",vy="⋪",yy="⋬",Cy="≪̸",wy="∤",Ay="⁠",qy=" ",Dy="𝕟",Ey="ℕ",Sy="⫬",Fy="¬",Ly="≢",Ty="≭",Ry="∦",zy="∉",Iy="≠",By="≂̸",Ny="∄",My="≯",Py="≱",Oy="≧̸",Uy="≫̸",Vy="≹",$y="⩾̸",Gy="≵",jy="≎̸",Hy="≏̸",Zy="∉",Jy="⋵̸",Wy="⋹̸",Yy="∉",Qy="⋷",Ky="⋶",Xy="⧏̸",nC="⋪",tC="⋬",rC="≮",oC="≰",eC="≸",sC="≪̸",cC="⩽̸",iC="≴",aC="⪢̸",lC="⪡̸",uC="∌",pC="∌",fC="⋾",hC="⋽",dC="⊀",mC="⪯̸",gC="⋠",bC="∌",_C="⧐̸",kC="⋫",xC="⋭",vC="⊏̸",yC="⋢",CC="⊐̸",wC="⋣",AC="⊂⃒",qC="⊈",DC="⊁",EC="⪰̸",SC="⋡",FC="≿̸",LC="⊃⃒",TC="⊉",RC="≁",zC="≄",IC="≇",BC="≉",NC="∤",MC="∦",PC="∦",OC="⫽⃥",UC="∂̸",VC="⨔",$C="⊀",GC="⋠",jC="⊀",HC="⪯̸",ZC="⪯̸",JC="⤳̸",WC="↛",YC="⇏",QC="↝̸",KC="↛",XC="⇏",nw="⋫",tw="⋭",rw="⊁",ow="⋡",ew="⪰̸",sw="𝒩",cw="𝓃",iw="∤",aw="∦",lw="≁",uw="≄",pw="≄",fw="∤",hw="∦",dw="⋢",mw="⋣",gw="⊄",bw="⫅̸",_w="⊈",kw="⊂⃒",xw="⊈",vw="⫅̸",yw="⊁",Cw="⪰̸",ww="⊅",Aw="⫆̸",qw="⊉",Dw="⊃⃒",Ew="⊉",Sw="⫆̸",Fw="≹",Lw="Ñ",Tw="ñ",Rw="≸",zw="⋪",Iw="⋬",Bw="⋫",Nw="⋭",Mw="Ν",Pw="ν",Ow="#",Uw="№",Vw=" ",$w="≍⃒",Gw="⊬",jw="⊭",Hw="⊮",Zw="⊯",Jw="≥⃒",Ww=">⃒",Yw="⤄",Qw="⧞",Kw="⤂",Xw="≤⃒",n1="<⃒",t1="⊴⃒",r1="⤃",o1="⊵⃒",e1="∼⃒",s1="⤣",c1="↖",i1="⇖",a1="↖",l1="⤧",u1="Ó",p1="ó",f1="⊛",h1="Ô",d1="ô",m1="⊚",g1="О",b1="о",_1="⊝",k1="Ő",x1="ő",v1="⨸",y1="⊙",C1="⦼",w1="Œ",A1="œ",q1="⦿",D1="𝔒",E1="𝔬",S1="˛",F1="Ò",L1="ò",T1="⧁",R1="⦵",z1="Ω",I1="∮",B1="↺",N1="⦾",M1="⦻",P1="‾",O1="⧀",U1="Ō",V1="ō",$1="Ω",G1="ω",j1="Ο",H1="ο",Z1="⦶",J1="⊖",W1="𝕆",Y1="𝕠",Q1="⦷",K1="“",X1="‘",nA="⦹",tA="⊕",rA="↻",oA="⩔",eA="∨",sA="⩝",cA="ℴ",iA="ℴ",aA="ª",lA="º",uA="⊶",pA="⩖",fA="⩗",hA="⩛",dA="Ⓢ",mA="𝒪",gA="ℴ",bA="Ø",_A="ø",kA="⊘",xA="Õ",vA="õ",yA="⨶",CA="⨷",wA="⊗",AA="Ö",qA="ö",DA="⌽",EA="‾",SA="⏞",FA="⎴",LA="⏜",TA="¶",RA="∥",zA="∥",IA="⫳",BA="⫽",NA="∂",MA="∂",PA="П",OA="п",UA="%",VA=".",$A="‰",GA="⊥",jA="‱",HA="𝔓",ZA="𝔭",JA="Φ",WA="φ",YA="ϕ",QA="ℳ",KA="☎",XA="Π",nq="π",tq="⋔",rq="ϖ",oq="ℏ",eq="ℎ",sq="ℏ",cq="⨣",iq="⊞",aq="⨢",lq="+",uq="∔",pq="⨥",fq="⩲",hq="±",dq="±",mq="⨦",gq="⨧",bq="±",_q="ℌ",kq="⨕",xq="𝕡",vq="ℙ",yq="£",Cq="⪷",wq="⪻",Aq="≺",qq="≼",Dq="⪷",Eq="≺",Sq="≼",Fq="≺",Lq="⪯",Tq="≼",Rq="≾",zq="⪯",Iq="⪹",Bq="⪵",Nq="⋨",Mq="⪯",Pq="⪳",Oq="≾",Uq="′",Vq="″",$q="ℙ",Gq="⪹",jq="⪵",Hq="⋨",Zq="∏",Jq="∏",Wq="⌮",Yq="⌒",Qq="⌓",Kq="∝",Xq="∝",nD="∷",tD="∝",rD="≾",oD="⊰",eD="𝒫",sD="𝓅",cD="Ψ",iD="ψ",aD=" ",lD="𝔔",uD="𝔮",pD="⨌",fD="𝕢",hD="ℚ",dD="⁗",mD="𝒬",gD="𝓆",bD="ℍ",_D="⨖",kD="?",xD="≟",vD='"',yD='"',CD="⇛",wD="∽̱",AD="Ŕ",qD="ŕ",DD="√",ED="⦳",SD="⟩",FD="⟫",LD="⦒",TD="⦥",RD="⟩",zD="»",ID="⥵",BD="⇥",ND="⤠",MD="⤳",PD="→",OD="↠",UD="⇒",VD="⤞",$D="↪",GD="↬",jD="⥅",HD="⥴",ZD="⤖",JD="↣",WD="↝",YD="⤚",QD="⤜",KD="∶",XD="ℚ",nE="⤍",tE="⤏",rE="⤐",oE="❳",eE="}",sE="]",cE="⦌",iE="⦎",aE="⦐",lE="Ř",uE="ř",pE="Ŗ",fE="ŗ",hE="⌉",dE="}",mE="Р",gE="р",bE="⤷",_E="⥩",kE="”",xE="”",vE="↳",yE="ℜ",CE="ℛ",wE="ℜ",AE="ℝ",qE="ℜ",DE="▭",EE="®",SE="®",FE="∋",LE="⇋",TE="⥯",RE="⥽",zE="⌋",IE="𝔯",BE="ℜ",NE="⥤",ME="⇁",PE="⇀",OE="⥬",UE="Ρ",VE="ρ",$E="ϱ",GE="⟩",jE="⇥",HE="→",ZE="→",JE="⇒",WE="⇄",YE="↣",QE="⌉",KE="⟧",XE="⥝",nS="⥕",tS="⇂",rS="⌋",oS="⇁",eS="⇀",sS="⇄",cS="⇌",iS="⇉",aS="↝",lS="↦",uS="⊢",pS="⥛",fS="⋌",hS="⧐",dS="⊳",mS="⊵",gS="⥏",bS="⥜",_S="⥔",kS="↾",xS="⥓",vS="⇀",yS="˚",CS="≓",wS="⇄",AS="⇌",qS="‏",DS="⎱",ES="⎱",SS="⫮",FS="⟭",LS="⇾",TS="⟧",RS="⦆",zS="𝕣",IS="ℝ",BS="⨮",NS="⨵",MS="⥰",PS=")",OS="⦔",US="⨒",VS="⇉",$S="⇛",GS="›",jS="𝓇",HS="ℛ",ZS="↱",JS="↱",WS="]",YS="’",QS="’",KS="⋌",XS="⋊",nF="▹",tF="⊵",rF="▸",oF="⧎",eF="⧴",sF="⥨",cF="℞",iF="Ś",aF="ś",lF="‚",uF="⪸",pF="Š",fF="š",hF="⪼",dF="≻",mF="≽",gF="⪰",bF="⪴",_F="Ş",kF="ş",xF="Ŝ",vF="ŝ",yF="⪺",CF="⪶",wF="⋩",AF="⨓",qF="≿",DF="С",EF="с",SF="⊡",FF="⋅",LF="⩦",TF="⤥",RF="↘",zF="⇘",IF="↘",BF="§",NF=";",MF="⤩",PF="∖",OF="∖",UF="✶",VF="𝔖",$F="𝔰",GF="⌢",jF="♯",HF="Щ",ZF="щ",JF="Ш",WF="ш",YF="↓",QF="←",KF="∣",XF="∥",nL="→",tL="↑",rL="­",oL="Σ",eL="σ",sL="ς",cL="ς",iL="∼",aL="⩪",lL="≃",uL="≃",pL="⪞",fL="⪠",hL="⪝",dL="⪟",mL="≆",gL="⨤",bL="⥲",_L="←",kL="∘",xL="∖",vL="⨳",yL="⧤",CL="∣",wL="⌣",AL="⪪",qL="⪬",DL="⪬︀",EL="Ь",SL="ь",FL="⌿",LL="⧄",TL="/",RL="𝕊",zL="𝕤",IL="♠",BL="♠",NL="∥",ML="⊓",PL="⊓︀",OL="⊔",UL="⊔︀",VL="√",$L="⊏",GL="⊑",jL="⊏",HL="⊑",ZL="⊐",JL="⊒",WL="⊐",YL="⊒",QL="□",KL="□",XL="⊓",nT="⊏",tT="⊑",rT="⊐",oT="⊒",eT="⊔",sT="▪",cT="□",iT="▪",aT="→",lT="𝒮",uT="𝓈",pT="∖",fT="⌣",hT="⋆",dT="⋆",mT="☆",gT="★",bT="ϵ",_T="ϕ",kT="¯",xT="⊂",vT="⋐",yT="⪽",CT="⫅",wT="⊆",AT="⫃",qT="⫁",DT="⫋",ET="⊊",ST="⪿",FT="⥹",LT="⊂",TT="⋐",RT="⊆",zT="⫅",IT="⊆",BT="⊊",NT="⫋",MT="⫇",PT="⫕",OT="⫓",UT="⪸",VT="≻",$T="≽",GT="≻",jT="⪰",HT="≽",ZT="≿",JT="⪰",WT="⪺",YT="⪶",QT="⋩",KT="≿",XT="∋",n2="∑",t2="∑",r2="♪",o2="¹",e2="²",s2="³",c2="⊃",i2="⋑",a2="⪾",l2="⫘",u2="⫆",p2="⊇",f2="⫄",h2="⊃",d2="⊇",m2="⟉",g2="⫗",b2="⥻",_2="⫂",k2="⫌",x2="⊋",v2="⫀",y2="⊃",C2="⋑",w2="⊇",A2="⫆",q2="⊋",D2="⫌",E2="⫈",S2="⫔",F2="⫖",L2="⤦",T2="↙",R2="⇙",z2="↙",I2="⤪",B2="ß",N2=" ",M2="⌖",P2="Τ",O2="τ",U2="⎴",V2="Ť",$2="ť",G2="Ţ",j2="ţ",H2="Т",Z2="т",J2="⃛",W2="⌕",Y2="𝔗",Q2="𝔱",K2="∴",X2="∴",nR="∴",tR="Θ",rR="θ",oR="ϑ",eR="ϑ",sR="≈",cR="∼",iR="  ",aR=" ",lR=" ",uR="≈",pR="∼",fR="Þ",hR="þ",dR="˜",mR="∼",gR="≃",bR="≅",_R="≈",kR="⨱",xR="⊠",vR="×",yR="⨰",CR="∭",wR="⤨",AR="⌶",qR="⫱",DR="⊤",ER="𝕋",SR="𝕥",FR="⫚",LR="⤩",TR="‴",RR="™",zR="™",IR="▵",BR="▿",NR="◃",MR="⊴",PR="≜",OR="▹",UR="⊵",VR="◬",$R="≜",GR="⨺",jR="⃛",HR="⨹",ZR="⧍",JR="⨻",WR="⏢",YR="𝒯",QR="𝓉",KR="Ц",XR="ц",nz="Ћ",tz="ћ",rz="Ŧ",oz="ŧ",ez="≬",sz="↞",cz="↠",iz="Ú",az="ú",lz="↑",uz="↟",pz="⇑",fz="⥉",hz="Ў",dz="ў",mz="Ŭ",gz="ŭ",bz="Û",_z="û",kz="У",xz="у",vz="⇅",yz="Ű",Cz="ű",wz="⥮",Az="⥾",qz="𝔘",Dz="𝔲",Ez="Ù",Sz="ù",Fz="⥣",Lz="↿",Tz="↾",Rz="▀",zz="⌜",Iz="⌜",Bz="⌏",Nz="◸",Mz="Ū",Pz="ū",Oz="¨",Uz="_",Vz="⏟",$z="⎵",Gz="⏝",jz="⋃",Hz="⊎",Zz="Ų",Jz="ų",Wz="𝕌",Yz="𝕦",Qz="⤒",Kz="↑",Xz="↑",nI="⇑",tI="⇅",rI="↕",oI="↕",eI="⇕",sI="⥮",cI="↿",iI="↾",aI="⊎",lI="↖",uI="↗",pI="υ",fI="ϒ",hI="ϒ",dI="Υ",mI="υ",gI="↥",bI="⊥",_I="⇈",kI="⌝",xI="⌝",vI="⌎",yI="Ů",CI="ů",wI="◹",AI="𝒰",qI="𝓊",DI="⋰",EI="Ũ",SI="ũ",FI="▵",LI="▴",TI="⇈",RI="Ü",zI="ü",II="⦧",BI="⦜",NI="ϵ",MI="ϰ",PI="∅",OI="ϕ",UI="ϖ",VI="∝",$I="↕",GI="⇕",jI="ϱ",HI="ς",ZI="⊊︀",JI="⫋︀",WI="⊋︀",YI="⫌︀",QI="ϑ",KI="⊲",XI="⊳",nB="⫨",tB="⫫",rB="⫩",oB="В",eB="в",sB="⊢",cB="⊨",iB="⊩",aB="⊫",lB="⫦",uB="⊻",pB="∨",fB="⋁",hB="≚",dB="⋮",mB="|",gB="‖",bB="|",_B="‖",kB="∣",xB="|",vB="❘",yB="≀",CB=" ",wB="𝔙",AB="𝔳",qB="⊲",DB="⊂⃒",EB="⊃⃒",SB="𝕍",FB="𝕧",LB="∝",TB="⊳",RB="𝒱",zB="𝓋",IB="⫋︀",BB="⊊︀",NB="⫌︀",MB="⊋︀",PB="⊪",OB="⦚",UB="Ŵ",VB="ŵ",$B="⩟",GB="∧",jB="⋀",HB="≙",ZB="℘",JB="𝔚",WB="𝔴",YB="𝕎",QB="𝕨",KB="℘",XB="≀",n3="≀",t3="𝒲",r3="𝓌",o3="⋂",e3="◯",s3="⋃",c3="▽",i3="𝔛",a3="𝔵",l3="⟷",u3="⟺",p3="Ξ",f3="ξ",h3="⟵",d3="⟸",m3="⟼",g3="⋻",b3="⨀",_3="𝕏",k3="𝕩",x3="⨁",v3="⨂",y3="⟶",C3="⟹",w3="𝒳",A3="𝓍",q3="⨆",D3="⨄",E3="△",S3="⋁",F3="⋀",L3="Ý",T3="ý",R3="Я",z3="я",I3="Ŷ",B3="ŷ",N3="Ы",M3="ы",P3="¥",O3="𝔜",U3="𝔶",V3="Ї",$3="ї",G3="𝕐",j3="𝕪",H3="𝒴",Z3="𝓎",J3="Ю",W3="ю",Y3="ÿ",Q3="Ÿ",K3="Ź",X3="ź",nN="Ž",tN="ž",rN="З",oN="з",eN="Ż",sN="ż",cN="ℨ",iN="​",aN="Ζ",lN="ζ",uN="𝔷",pN="ℨ",fN="Ж",hN="ж",dN="⇝",mN="𝕫",gN="ℤ",bN="𝒵",_N="𝓏",kN="‍",xN="‌",vN={Aacute:rr,aacute:or,Abreve:er,abreve:sr,ac:cr,acd:ir,acE:ar,Acirc:lr,acirc:ur,acute:pr,Acy:fr,acy:hr,AElig:dr,aelig:mr,af:gr,Afr:br,afr:_r,Agrave:kr,agrave:xr,alefsym:vr,aleph:yr,Alpha:Cr,alpha:wr,Amacr:Ar,amacr:qr,amalg:Dr,amp:Er,AMP:Sr,andand:Fr,And:Lr,and:Tr,andd:Rr,andslope:zr,andv:Ir,ang:Br,ange:Nr,angle:Mr,angmsdaa:Pr,angmsdab:Or,angmsdac:Ur,angmsdad:Vr,angmsdae:$r,angmsdaf:Gr,angmsdag:jr,angmsdah:Hr,angmsd:Zr,angrt:Jr,angrtvb:Wr,angrtvbd:Yr,angsph:Qr,angst:Kr,angzarr:Xr,Aogon:no,aogon:to,Aopf:ro,aopf:oo,apacir:eo,ap:so,apE:co,ape:io,apid:ao,apos:lo,ApplyFunction:uo,approx:po,approxeq:fo,Aring:ho,aring:mo,Ascr:go,ascr:bo,Assign:_o,ast:ko,asymp:xo,asympeq:vo,Atilde:yo,atilde:Co,Auml:wo,auml:Ao,awconint:qo,awint:Do,backcong:Eo,backepsilon:So,backprime:Fo,backsim:Lo,backsimeq:To,Backslash:Ro,Barv:zo,barvee:Io,barwed:Bo,Barwed:No,barwedge:Mo,bbrk:Po,bbrktbrk:Oo,bcong:Uo,Bcy:Vo,bcy:$o,bdquo:Go,becaus:jo,because:Ho,Because:Zo,bemptyv:Jo,bepsi:Wo,bernou:Yo,Bernoullis:Qo,Beta:Ko,beta:Xo,beth:ne,between:te,Bfr:re,bfr:oe,bigcap:ee,bigcirc:se,bigcup:ce,bigodot:ie,bigoplus:ae,bigotimes:le,bigsqcup:ue,bigstar:pe,bigtriangledown:fe,bigtriangleup:he,biguplus:de,bigvee:me,bigwedge:ge,bkarow:be,blacklozenge:_e,blacksquare:ke,blacktriangle:xe,blacktriangledown:ve,blacktriangleleft:ye,blacktriangleright:Ce,blank:we,blk12:Ae,blk14:qe,blk34:De,block:Ee,bne:Se,bnequiv:Fe,bNot:Le,bnot:Te,Bopf:Re,bopf:ze,bot:Ie,bottom:Be,bowtie:Ne,boxbox:Me,boxdl:Pe,boxdL:Oe,boxDl:Ue,boxDL:Ve,boxdr:$e,boxdR:Ge,boxDr:je,boxDR:He,boxh:Ze,boxH:Je,boxhd:We,boxHd:Ye,boxhD:Qe,boxHD:Ke,boxhu:Xe,boxHu:ns,boxhU:ts,boxHU:rs,boxminus:os,boxplus:es,boxtimes:ss,boxul:cs,boxuL:is,boxUl:as,boxUL:ls,boxur:us,boxuR:ps,boxUr:fs,boxUR:hs,boxv:ds,boxV:ms,boxvh:gs,boxvH:bs,boxVh:_s,boxVH:ks,boxvl:xs,boxvL:vs,boxVl:ys,boxVL:Cs,boxvr:ws,boxvR:As,boxVr:qs,boxVR:Ds,bprime:Es,breve:Ss,Breve:Fs,brvbar:Ls,bscr:Ts,Bscr:Rs,bsemi:zs,bsim:Is,bsime:Bs,bsolb:Ns,bsol:Ms,bsolhsub:Ps,bull:Os,bullet:Us,bump:Vs,bumpE:$s,bumpe:Gs,Bumpeq:js,bumpeq:Hs,Cacute:Zs,cacute:Js,capand:Ws,capbrcup:Ys,capcap:Qs,cap:Ks,Cap:Xs,capcup:nc,capdot:tc,CapitalDifferentialD:rc,caps:oc,caret:ec,caron:sc,Cayleys:cc,ccaps:ic,Ccaron:ac,ccaron:lc,Ccedil:uc,ccedil:pc,Ccirc:fc,ccirc:hc,Cconint:dc,ccups:mc,ccupssm:gc,Cdot:bc,cdot:_c,cedil:kc,Cedilla:xc,cemptyv:vc,cent:yc,centerdot:Cc,CenterDot:wc,cfr:Ac,Cfr:qc,CHcy:Dc,chcy:Ec,check:Sc,checkmark:Fc,Chi:Lc,chi:Tc,circ:Rc,circeq:zc,circlearrowleft:Ic,circlearrowright:Bc,circledast:Nc,circledcirc:Mc,circleddash:Pc,CircleDot:Oc,circledR:Uc,circledS:Vc,CircleMinus:$c,CirclePlus:Gc,CircleTimes:jc,cir:Hc,cirE:Zc,cire:Jc,cirfnint:Wc,cirmid:Yc,cirscir:Qc,ClockwiseContourIntegral:Kc,CloseCurlyDoubleQuote:Xc,CloseCurlyQuote:ni,clubs:ti,clubsuit:ri,colon:oi,Colon:ei,Colone:si,colone:ci,coloneq:ii,comma:ai,commat:li,comp:ui,compfn:pi,complement:fi,complexes:hi,cong:di,congdot:mi,Congruent:gi,conint:bi,Conint:_i,ContourIntegral:ki,copf:xi,Copf:vi,coprod:yi,Coproduct:Ci,copy:wi,COPY:Ai,copysr:qi,CounterClockwiseContourIntegral:Di,crarr:Ei,cross:Si,Cross:Fi,Cscr:Li,cscr:Ti,csub:Ri,csube:zi,csup:Ii,csupe:Bi,ctdot:Ni,cudarrl:Mi,cudarrr:Pi,cuepr:Oi,cuesc:Ui,cularr:Vi,cularrp:$i,cupbrcap:Gi,cupcap:ji,CupCap:Hi,cup:Zi,Cup:Ji,cupcup:Wi,cupdot:Yi,cupor:Qi,cups:Ki,curarr:Xi,curarrm:na,curlyeqprec:ta,curlyeqsucc:ra,curlyvee:oa,curlywedge:ea,curren:sa,curvearrowleft:ca,curvearrowright:ia,cuvee:aa,cuwed:la,cwconint:ua,cwint:pa,cylcty:fa,dagger:ha,Dagger:da,daleth:ma,darr:ga,Darr:ba,dArr:_a,dash:ka,Dashv:xa,dashv:va,dbkarow:ya,dblac:Ca,Dcaron:wa,dcaron:Aa,Dcy:qa,dcy:Da,ddagger:Ea,ddarr:Sa,DD:Fa,dd:La,DDotrahd:Ta,ddotseq:Ra,deg:za,Del:Ia,Delta:Ba,delta:Na,demptyv:Ma,dfisht:Pa,Dfr:Oa,dfr:Ua,dHar:Va,dharl:$a,dharr:Ga,DiacriticalAcute:ja,DiacriticalDot:Ha,DiacriticalDoubleAcute:Za,DiacriticalGrave:Ja,DiacriticalTilde:Wa,diam:Ya,diamond:Qa,Diamond:Ka,diamondsuit:Xa,diams:nl,die:tl,DifferentialD:rl,digamma:ol,disin:el,div:sl,divide:cl,divideontimes:il,divonx:al,DJcy:ll,djcy:ul,dlcorn:pl,dlcrop:fl,dollar:hl,Dopf:dl,dopf:ml,Dot:gl,dot:bl,DotDot:_l,doteq:kl,doteqdot:xl,DotEqual:vl,dotminus:yl,dotplus:Cl,dotsquare:wl,doublebarwedge:Al,DoubleContourIntegral:ql,DoubleDot:Dl,DoubleDownArrow:El,DoubleLeftArrow:Sl,DoubleLeftRightArrow:Fl,DoubleLeftTee:Ll,DoubleLongLeftArrow:Tl,DoubleLongLeftRightArrow:Rl,DoubleLongRightArrow:zl,DoubleRightArrow:Il,DoubleRightTee:Bl,DoubleUpArrow:Nl,DoubleUpDownArrow:Ml,DoubleVerticalBar:Pl,DownArrowBar:Ol,downarrow:Ul,DownArrow:Vl,Downarrow:$l,DownArrowUpArrow:Gl,DownBreve:jl,downdownarrows:Hl,downharpoonleft:Zl,downharpoonright:Jl,DownLeftRightVector:Wl,DownLeftTeeVector:Yl,DownLeftVectorBar:Ql,DownLeftVector:Kl,DownRightTeeVector:Xl,DownRightVectorBar:nu,DownRightVector:tu,DownTeeArrow:ru,DownTee:ou,drbkarow:eu,drcorn:su,drcrop:cu,Dscr:iu,dscr:au,DScy:lu,dscy:uu,dsol:pu,Dstrok:fu,dstrok:hu,dtdot:du,dtri:mu,dtrif:gu,duarr:bu,duhar:_u,dwangle:ku,DZcy:xu,dzcy:vu,dzigrarr:yu,Eacute:Cu,eacute:wu,easter:Au,Ecaron:qu,ecaron:Du,Ecirc:Eu,ecirc:Su,ecir:Fu,ecolon:Lu,Ecy:Tu,ecy:Ru,eDDot:zu,Edot:Iu,edot:Bu,eDot:Nu,ee:Mu,efDot:Pu,Efr:Ou,efr:Uu,eg:Vu,Egrave:$u,egrave:Gu,egs:ju,egsdot:Hu,el:Zu,Element:Ju,elinters:Wu,ell:Yu,els:Qu,elsdot:Ku,Emacr:Xu,emacr:np,empty:tp,emptyset:rp,EmptySmallSquare:op,emptyv:ep,EmptyVerySmallSquare:sp,emsp13:cp,emsp14:ip,emsp:ap,ENG:lp,eng:up,ensp:pp,Eogon:fp,eogon:hp,Eopf:dp,eopf:mp,epar:gp,eparsl:bp,eplus:_p,epsi:kp,Epsilon:xp,epsilon:vp,epsiv:yp,eqcirc:Cp,eqcolon:wp,eqsim:Ap,eqslantgtr:qp,eqslantless:Dp,Equal:Ep,equals:Sp,EqualTilde:Fp,equest:Lp,Equilibrium:Tp,equiv:Rp,equivDD:zp,eqvparsl:Ip,erarr:Bp,erDot:Np,escr:Mp,Escr:Pp,esdot:Op,Esim:Up,esim:Vp,Eta:$p,eta:Gp,ETH:jp,eth:Hp,Euml:Zp,euml:Jp,euro:Wp,excl:Yp,exist:Qp,Exists:Kp,expectation:Xp,exponentiale:nf,ExponentialE:tf,fallingdotseq:rf,Fcy:of,fcy:ef,female:sf,ffilig:cf,fflig:af,ffllig:lf,Ffr:uf,ffr:pf,filig:ff,FilledSmallSquare:hf,FilledVerySmallSquare:df,fjlig:mf,flat:gf,fllig:bf,fltns:_f,fnof:kf,Fopf:xf,fopf:vf,forall:yf,ForAll:Cf,fork:wf,forkv:Af,Fouriertrf:qf,fpartint:Df,frac12:Ef,frac13:Sf,frac14:Ff,frac15:Lf,frac16:Tf,frac18:Rf,frac23:zf,frac25:If,frac34:Bf,frac35:Nf,frac38:Mf,frac45:Pf,frac56:Of,frac58:Uf,frac78:Vf,frasl:$f,frown:Gf,fscr:jf,Fscr:Hf,gacute:Zf,Gamma:Jf,gamma:Wf,Gammad:Yf,gammad:Qf,gap:Kf,Gbreve:Xf,gbreve:nh,Gcedil:th,Gcirc:rh,gcirc:oh,Gcy:eh,gcy:sh,Gdot:ch,gdot:ih,ge:ah,gE:lh,gEl:uh,gel:ph,geq:fh,geqq:hh,geqslant:dh,gescc:mh,ges:gh,gesdot:bh,gesdoto:_h,gesdotol:kh,gesl:xh,gesles:vh,Gfr:yh,gfr:Ch,gg:wh,Gg:Ah,ggg:qh,gimel:Dh,GJcy:Eh,gjcy:Sh,gla:Fh,gl:Lh,glE:Th,glj:Rh,gnap:zh,gnapprox:Ih,gne:Bh,gnE:Nh,gneq:Mh,gneqq:Ph,gnsim:Oh,Gopf:Uh,gopf:Vh,grave:$h,GreaterEqual:Gh,GreaterEqualLess:jh,GreaterFullEqual:Hh,GreaterGreater:Zh,GreaterLess:Jh,GreaterSlantEqual:Wh,GreaterTilde:Yh,Gscr:Qh,gscr:Kh,gsim:Xh,gsime:nd,gsiml:td,gtcc:rd,gtcir:od,gt:ed,GT:sd,Gt:cd,gtdot:id,gtlPar:ad,gtquest:ld,gtrapprox:ud,gtrarr:pd,gtrdot:fd,gtreqless:hd,gtreqqless:dd,gtrless:md,gtrsim:gd,gvertneqq:bd,gvnE:_d,Hacek:kd,hairsp:xd,half:vd,hamilt:yd,HARDcy:Cd,hardcy:wd,harrcir:Ad,harr:qd,hArr:Dd,harrw:Ed,Hat:Sd,hbar:Fd,Hcirc:Ld,hcirc:Td,hearts:Rd,heartsuit:zd,hellip:Id,hercon:Bd,hfr:Nd,Hfr:Md,HilbertSpace:Pd,hksearow:Od,hkswarow:Ud,hoarr:Vd,homtht:$d,hookleftarrow:Gd,hookrightarrow:jd,hopf:Hd,Hopf:Zd,horbar:Jd,HorizontalLine:Wd,hscr:Yd,Hscr:Qd,hslash:Kd,Hstrok:Xd,hstrok:nm,HumpDownHump:tm,HumpEqual:rm,hybull:om,hyphen:em,Iacute:sm,iacute:cm,ic:im,Icirc:am,icirc:lm,Icy:um,icy:pm,Idot:fm,IEcy:hm,iecy:dm,iexcl:mm,iff:gm,ifr:bm,Ifr:_m,Igrave:km,igrave:xm,ii:vm,iiiint:ym,iiint:Cm,iinfin:wm,iiota:Am,IJlig:qm,ijlig:Dm,Imacr:Em,imacr:Sm,image:Fm,ImaginaryI:Lm,imagline:Tm,imagpart:Rm,imath:zm,Im,imof:Bm,imped:Nm,Implies:Mm,incare:Pm,in:"∈",infin:Om,infintie:Um,inodot:Vm,intcal:$m,int:Gm,Int:jm,integers:Hm,Integral:Zm,intercal:Jm,Intersection:Wm,intlarhk:Ym,intprod:Qm,InvisibleComma:Km,InvisibleTimes:Xm,IOcy:ng,iocy:tg,Iogon:rg,iogon:og,Iopf:eg,iopf:sg,Iota:cg,iota:ig,iprod:ag,iquest:lg,iscr:ug,Iscr:pg,isin:fg,isindot:hg,isinE:dg,isins:mg,isinsv:gg,isinv:bg,it:_g,Itilde:kg,itilde:xg,Iukcy:vg,iukcy:yg,Iuml:Cg,iuml:wg,Jcirc:Ag,jcirc:qg,Jcy:Dg,jcy:Eg,Jfr:Sg,jfr:Fg,jmath:Lg,Jopf:Tg,jopf:Rg,Jscr:zg,jscr:Ig,Jsercy:Bg,jsercy:Ng,Jukcy:Mg,jukcy:Pg,Kappa:Og,kappa:Ug,kappav:Vg,Kcedil:$g,kcedil:Gg,Kcy:jg,kcy:Hg,Kfr:Zg,kfr:Jg,kgreen:Wg,KHcy:Yg,khcy:Qg,KJcy:Kg,kjcy:Xg,Kopf:n0,kopf:t0,Kscr:r0,kscr:o0,lAarr:e0,Lacute:s0,lacute:c0,laemptyv:i0,lagran:a0,Lambda:l0,lambda:u0,lang:p0,Lang:f0,langd:h0,langle:d0,lap:m0,Laplacetrf:g0,laquo:b0,larrb:_0,larrbfs:k0,larr:x0,Larr:v0,lArr:y0,larrfs:C0,larrhk:w0,larrlp:A0,larrpl:q0,larrsim:D0,larrtl:E0,latail:S0,lAtail:F0,lat:L0,late:T0,lates:R0,lbarr:z0,lBarr:I0,lbbrk:B0,lbrace:N0,lbrack:M0,lbrke:P0,lbrksld:O0,lbrkslu:U0,Lcaron:V0,lcaron:$0,Lcedil:G0,lcedil:j0,lceil:H0,lcub:Z0,Lcy:J0,lcy:W0,ldca:Y0,ldquo:Q0,ldquor:K0,ldrdhar:X0,ldrushar:nb,ldsh:tb,le:rb,lE:ob,LeftAngleBracket:eb,LeftArrowBar:sb,leftarrow:cb,LeftArrow:ib,Leftarrow:ab,LeftArrowRightArrow:lb,leftarrowtail:ub,LeftCeiling:pb,LeftDoubleBracket:fb,LeftDownTeeVector:hb,LeftDownVectorBar:db,LeftDownVector:mb,LeftFloor:gb,leftharpoondown:bb,leftharpoonup:_b,leftleftarrows:kb,leftrightarrow:xb,LeftRightArrow:vb,Leftrightarrow:yb,leftrightarrows:Cb,leftrightharpoons:wb,leftrightsquigarrow:Ab,LeftRightVector:qb,LeftTeeArrow:Db,LeftTee:Eb,LeftTeeVector:Sb,leftthreetimes:Fb,LeftTriangleBar:Lb,LeftTriangle:Tb,LeftTriangleEqual:Rb,LeftUpDownVector:zb,LeftUpTeeVector:Ib,LeftUpVectorBar:Bb,LeftUpVector:Nb,LeftVectorBar:Mb,LeftVector:Pb,lEg:Ob,leg:Ub,leq:Vb,leqq:$b,leqslant:Gb,lescc:jb,les:Hb,lesdot:Zb,lesdoto:Jb,lesdotor:Wb,lesg:Yb,lesges:Qb,lessapprox:Kb,lessdot:Xb,lesseqgtr:n_,lesseqqgtr:t_,LessEqualGreater:r_,LessFullEqual:o_,LessGreater:e_,lessgtr:s_,LessLess:c_,lesssim:i_,LessSlantEqual:a_,LessTilde:l_,lfisht:u_,lfloor:p_,Lfr:f_,lfr:h_,lg:d_,lgE:m_,lHar:g_,lhard:b_,lharu:__,lharul:k_,lhblk:x_,LJcy:v_,ljcy:y_,llarr:C_,ll:w_,Ll:A_,llcorner:q_,Lleftarrow:D_,llhard:E_,lltri:S_,Lmidot:F_,lmidot:L_,lmoustache:T_,lmoust:R_,lnap:z_,lnapprox:I_,lne:B_,lnE:N_,lneq:M_,lneqq:P_,lnsim:O_,loang:U_,loarr:V_,lobrk:$_,longleftarrow:G_,LongLeftArrow:j_,Longleftarrow:H_,longleftrightarrow:Z_,LongLeftRightArrow:J_,Longleftrightarrow:W_,longmapsto:Y_,longrightarrow:Q_,LongRightArrow:K_,Longrightarrow:X_,looparrowleft:nk,looparrowright:tk,lopar:rk,Lopf:ok,lopf:ek,loplus:sk,lotimes:ck,lowast:ik,lowbar:ak,LowerLeftArrow:lk,LowerRightArrow:uk,loz:pk,lozenge:fk,lozf:hk,lpar:dk,lparlt:mk,lrarr:gk,lrcorner:bk,lrhar:_k,lrhard:kk,lrm:xk,lrtri:vk,lsaquo:yk,lscr:Ck,Lscr:wk,lsh:Ak,Lsh:qk,lsim:Dk,lsime:Ek,lsimg:Sk,lsqb:Fk,lsquo:Lk,lsquor:Tk,Lstrok:Rk,lstrok:zk,ltcc:Ik,ltcir:Bk,lt:Nk,LT:Mk,Lt:Pk,ltdot:Ok,lthree:Uk,ltimes:Vk,ltlarr:$k,ltquest:Gk,ltri:jk,ltrie:Hk,ltrif:Zk,ltrPar:Jk,lurdshar:Wk,luruhar:Yk,lvertneqq:Qk,lvnE:Kk,macr:Xk,male:nx,malt:tx,maltese:rx,Map:"⤅",map:ox,mapsto:ex,mapstodown:sx,mapstoleft:cx,mapstoup:ix,marker:ax,mcomma:lx,Mcy:ux,mcy:px,mdash:fx,mDDot:hx,measuredangle:dx,MediumSpace:mx,Mellintrf:gx,Mfr:bx,mfr:_x,mho:kx,micro:xx,midast:vx,midcir:yx,mid:Cx,middot:wx,minusb:Ax,minus:qx,minusd:Dx,minusdu:Ex,MinusPlus:Sx,mlcp:Fx,mldr:Lx,mnplus:Tx,models:Rx,Mopf:zx,mopf:Ix,mp:Bx,mscr:Nx,Mscr:Mx,mstpos:Px,Mu:Ox,mu:Ux,multimap:Vx,mumap:$x,nabla:Gx,Nacute:jx,nacute:Hx,nang:Zx,nap:Jx,napE:Wx,napid:Yx,napos:Qx,napprox:Kx,natural:Xx,naturals:nv,natur:tv,nbsp:rv,nbump:ov,nbumpe:ev,ncap:sv,Ncaron:cv,ncaron:iv,Ncedil:av,ncedil:lv,ncong:uv,ncongdot:pv,ncup:fv,Ncy:hv,ncy:dv,ndash:mv,nearhk:gv,nearr:bv,neArr:_v,nearrow:kv,ne:xv,nedot:vv,NegativeMediumSpace:yv,NegativeThickSpace:Cv,NegativeThinSpace:wv,NegativeVeryThinSpace:Av,nequiv:qv,nesear:Dv,nesim:Ev,NestedGreaterGreater:Sv,NestedLessLess:Fv,NewLine:Lv,nexist:Tv,nexists:Rv,Nfr:zv,nfr:Iv,ngE:Bv,nge:Nv,ngeq:Mv,ngeqq:Pv,ngeqslant:Ov,nges:Uv,nGg:Vv,ngsim:$v,nGt:Gv,ngt:jv,ngtr:Hv,nGtv:Zv,nharr:Jv,nhArr:Wv,nhpar:Yv,ni:Qv,nis:Kv,nisd:Xv,niv:ny,NJcy:ty,njcy:ry,nlarr:oy,nlArr:ey,nldr:sy,nlE:cy,nle:iy,nleftarrow:ay,nLeftarrow:ly,nleftrightarrow:uy,nLeftrightarrow:py,nleq:fy,nleqq:hy,nleqslant:dy,nles:my,nless:gy,nLl:by,nlsim:_y,nLt:ky,nlt:xy,nltri:vy,nltrie:yy,nLtv:Cy,nmid:wy,NoBreak:Ay,NonBreakingSpace:qy,nopf:Dy,Nopf:Ey,Not:Sy,not:Fy,NotCongruent:Ly,NotCupCap:Ty,NotDoubleVerticalBar:Ry,NotElement:zy,NotEqual:Iy,NotEqualTilde:By,NotExists:Ny,NotGreater:My,NotGreaterEqual:Py,NotGreaterFullEqual:Oy,NotGreaterGreater:Uy,NotGreaterLess:Vy,NotGreaterSlantEqual:$y,NotGreaterTilde:Gy,NotHumpDownHump:jy,NotHumpEqual:Hy,notin:Zy,notindot:Jy,notinE:Wy,notinva:Yy,notinvb:Qy,notinvc:Ky,NotLeftTriangleBar:Xy,NotLeftTriangle:nC,NotLeftTriangleEqual:tC,NotLess:rC,NotLessEqual:oC,NotLessGreater:eC,NotLessLess:sC,NotLessSlantEqual:cC,NotLessTilde:iC,NotNestedGreaterGreater:aC,NotNestedLessLess:lC,notni:uC,notniva:pC,notnivb:fC,notnivc:hC,NotPrecedes:dC,NotPrecedesEqual:mC,NotPrecedesSlantEqual:gC,NotReverseElement:bC,NotRightTriangleBar:_C,NotRightTriangle:kC,NotRightTriangleEqual:xC,NotSquareSubset:vC,NotSquareSubsetEqual:yC,NotSquareSuperset:CC,NotSquareSupersetEqual:wC,NotSubset:AC,NotSubsetEqual:qC,NotSucceeds:DC,NotSucceedsEqual:EC,NotSucceedsSlantEqual:SC,NotSucceedsTilde:FC,NotSuperset:LC,NotSupersetEqual:TC,NotTilde:RC,NotTildeEqual:zC,NotTildeFullEqual:IC,NotTildeTilde:BC,NotVerticalBar:NC,nparallel:MC,npar:PC,nparsl:OC,npart:UC,npolint:VC,npr:$C,nprcue:GC,nprec:jC,npreceq:HC,npre:ZC,nrarrc:JC,nrarr:WC,nrArr:YC,nrarrw:QC,nrightarrow:KC,nRightarrow:XC,nrtri:nw,nrtrie:tw,nsc:rw,nsccue:ow,nsce:ew,Nscr:sw,nscr:cw,nshortmid:iw,nshortparallel:aw,nsim:lw,nsime:uw,nsimeq:pw,nsmid:fw,nspar:hw,nsqsube:dw,nsqsupe:mw,nsub:gw,nsubE:bw,nsube:_w,nsubset:kw,nsubseteq:xw,nsubseteqq:vw,nsucc:yw,nsucceq:Cw,nsup:ww,nsupE:Aw,nsupe:qw,nsupset:Dw,nsupseteq:Ew,nsupseteqq:Sw,ntgl:Fw,Ntilde:Lw,ntilde:Tw,ntlg:Rw,ntriangleleft:zw,ntrianglelefteq:Iw,ntriangleright:Bw,ntrianglerighteq:Nw,Nu:Mw,nu:Pw,num:Ow,numero:Uw,numsp:Vw,nvap:$w,nvdash:Gw,nvDash:jw,nVdash:Hw,nVDash:Zw,nvge:Jw,nvgt:Ww,nvHarr:Yw,nvinfin:Qw,nvlArr:Kw,nvle:Xw,nvlt:n1,nvltrie:t1,nvrArr:r1,nvrtrie:o1,nvsim:e1,nwarhk:s1,nwarr:c1,nwArr:i1,nwarrow:a1,nwnear:l1,Oacute:u1,oacute:p1,oast:f1,Ocirc:h1,ocirc:d1,ocir:m1,Ocy:g1,ocy:b1,odash:_1,Odblac:k1,odblac:x1,odiv:v1,odot:y1,odsold:C1,OElig:w1,oelig:A1,ofcir:q1,Ofr:D1,ofr:E1,ogon:S1,Ograve:F1,ograve:L1,ogt:T1,ohbar:R1,ohm:z1,oint:I1,olarr:B1,olcir:N1,olcross:M1,oline:P1,olt:O1,Omacr:U1,omacr:V1,Omega:$1,omega:G1,Omicron:j1,omicron:H1,omid:Z1,ominus:J1,Oopf:W1,oopf:Y1,opar:Q1,OpenCurlyDoubleQuote:K1,OpenCurlyQuote:X1,operp:nA,oplus:tA,orarr:rA,Or:oA,or:eA,ord:sA,order:cA,orderof:iA,ordf:aA,ordm:lA,origof:uA,oror:pA,orslope:fA,orv:hA,oS:dA,Oscr:mA,oscr:gA,Oslash:bA,oslash:_A,osol:kA,Otilde:xA,otilde:vA,otimesas:yA,Otimes:CA,otimes:wA,Ouml:AA,ouml:qA,ovbar:DA,OverBar:EA,OverBrace:SA,OverBracket:FA,OverParenthesis:LA,para:TA,parallel:RA,par:zA,parsim:IA,parsl:BA,part:NA,PartialD:MA,Pcy:PA,pcy:OA,percnt:UA,period:VA,permil:$A,perp:GA,pertenk:jA,Pfr:HA,pfr:ZA,Phi:JA,phi:WA,phiv:YA,phmmat:QA,phone:KA,Pi:XA,pi:nq,pitchfork:tq,piv:rq,planck:oq,planckh:eq,plankv:sq,plusacir:cq,plusb:iq,pluscir:aq,plus:lq,plusdo:uq,plusdu:pq,pluse:fq,PlusMinus:hq,plusmn:dq,plussim:mq,plustwo:gq,pm:bq,Poincareplane:_q,pointint:kq,popf:xq,Popf:vq,pound:yq,prap:Cq,Pr:wq,pr:Aq,prcue:qq,precapprox:Dq,prec:Eq,preccurlyeq:Sq,Precedes:Fq,PrecedesEqual:Lq,PrecedesSlantEqual:Tq,PrecedesTilde:Rq,preceq:zq,precnapprox:Iq,precneqq:Bq,precnsim:Nq,pre:Mq,prE:Pq,precsim:Oq,prime:Uq,Prime:Vq,primes:$q,prnap:Gq,prnE:jq,prnsim:Hq,prod:Zq,Product:Jq,profalar:Wq,profline:Yq,profsurf:Qq,prop:Kq,Proportional:Xq,Proportion:nD,propto:tD,prsim:rD,prurel:oD,Pscr:eD,pscr:sD,Psi:cD,psi:iD,puncsp:aD,Qfr:lD,qfr:uD,qint:pD,qopf:fD,Qopf:hD,qprime:dD,Qscr:mD,qscr:gD,quaternions:bD,quatint:_D,quest:kD,questeq:xD,quot:vD,QUOT:yD,rAarr:CD,race:wD,Racute:AD,racute:qD,radic:DD,raemptyv:ED,rang:SD,Rang:FD,rangd:LD,range:TD,rangle:RD,raquo:zD,rarrap:ID,rarrb:BD,rarrbfs:ND,rarrc:MD,rarr:PD,Rarr:OD,rArr:UD,rarrfs:VD,rarrhk:$D,rarrlp:GD,rarrpl:jD,rarrsim:HD,Rarrtl:ZD,rarrtl:JD,rarrw:WD,ratail:YD,rAtail:QD,ratio:KD,rationals:XD,rbarr:nE,rBarr:tE,RBarr:rE,rbbrk:oE,rbrace:eE,rbrack:sE,rbrke:cE,rbrksld:iE,rbrkslu:aE,Rcaron:lE,rcaron:uE,Rcedil:pE,rcedil:fE,rceil:hE,rcub:dE,Rcy:mE,rcy:gE,rdca:bE,rdldhar:_E,rdquo:kE,rdquor:xE,rdsh:vE,real:yE,realine:CE,realpart:wE,reals:AE,Re:qE,rect:DE,reg:EE,REG:SE,ReverseElement:FE,ReverseEquilibrium:LE,ReverseUpEquilibrium:TE,rfisht:RE,rfloor:zE,rfr:IE,Rfr:BE,rHar:NE,rhard:ME,rharu:PE,rharul:OE,Rho:UE,rho:VE,rhov:$E,RightAngleBracket:GE,RightArrowBar:jE,rightarrow:HE,RightArrow:ZE,Rightarrow:JE,RightArrowLeftArrow:WE,rightarrowtail:YE,RightCeiling:QE,RightDoubleBracket:KE,RightDownTeeVector:XE,RightDownVectorBar:nS,RightDownVector:tS,RightFloor:rS,rightharpoondown:oS,rightharpoonup:eS,rightleftarrows:sS,rightleftharpoons:cS,rightrightarrows:iS,rightsquigarrow:aS,RightTeeArrow:lS,RightTee:uS,RightTeeVector:pS,rightthreetimes:fS,RightTriangleBar:hS,RightTriangle:dS,RightTriangleEqual:mS,RightUpDownVector:gS,RightUpTeeVector:bS,RightUpVectorBar:_S,RightUpVector:kS,RightVectorBar:xS,RightVector:vS,ring:yS,risingdotseq:CS,rlarr:wS,rlhar:AS,rlm:qS,rmoustache:DS,rmoust:ES,rnmid:SS,roang:FS,roarr:LS,robrk:TS,ropar:RS,ropf:zS,Ropf:IS,roplus:BS,rotimes:NS,RoundImplies:MS,rpar:PS,rpargt:OS,rppolint:US,rrarr:VS,Rrightarrow:$S,rsaquo:GS,rscr:jS,Rscr:HS,rsh:ZS,Rsh:JS,rsqb:WS,rsquo:YS,rsquor:QS,rthree:KS,rtimes:XS,rtri:nF,rtrie:tF,rtrif:rF,rtriltri:oF,RuleDelayed:eF,ruluhar:sF,rx:cF,Sacute:iF,sacute:aF,sbquo:lF,scap:uF,Scaron:pF,scaron:fF,Sc:hF,sc:dF,sccue:mF,sce:gF,scE:bF,Scedil:_F,scedil:kF,Scirc:xF,scirc:vF,scnap:yF,scnE:CF,scnsim:wF,scpolint:AF,scsim:qF,Scy:DF,scy:EF,sdotb:SF,sdot:FF,sdote:LF,searhk:TF,searr:RF,seArr:zF,searrow:IF,sect:BF,semi:NF,seswar:MF,setminus:PF,setmn:OF,sext:UF,Sfr:VF,sfr:$F,sfrown:GF,sharp:jF,SHCHcy:HF,shchcy:ZF,SHcy:JF,shcy:WF,ShortDownArrow:YF,ShortLeftArrow:QF,shortmid:KF,shortparallel:XF,ShortRightArrow:nL,ShortUpArrow:tL,shy:rL,Sigma:oL,sigma:eL,sigmaf:sL,sigmav:cL,sim:iL,simdot:aL,sime:lL,simeq:uL,simg:pL,simgE:fL,siml:hL,simlE:dL,simne:mL,simplus:gL,simrarr:bL,slarr:_L,SmallCircle:kL,smallsetminus:xL,smashp:vL,smeparsl:yL,smid:CL,smile:wL,smt:AL,smte:qL,smtes:DL,SOFTcy:EL,softcy:SL,solbar:FL,solb:LL,sol:TL,Sopf:RL,sopf:zL,spades:IL,spadesuit:BL,spar:NL,sqcap:ML,sqcaps:PL,sqcup:OL,sqcups:UL,Sqrt:VL,sqsub:$L,sqsube:GL,sqsubset:jL,sqsubseteq:HL,sqsup:ZL,sqsupe:JL,sqsupset:WL,sqsupseteq:YL,square:QL,Square:KL,SquareIntersection:XL,SquareSubset:nT,SquareSubsetEqual:tT,SquareSuperset:rT,SquareSupersetEqual:oT,SquareUnion:eT,squarf:sT,squ:cT,squf:iT,srarr:aT,Sscr:lT,sscr:uT,ssetmn:pT,ssmile:fT,sstarf:hT,Star:dT,star:mT,starf:gT,straightepsilon:bT,straightphi:_T,strns:kT,sub:xT,Sub:vT,subdot:yT,subE:CT,sube:wT,subedot:AT,submult:qT,subnE:DT,subne:ET,subplus:ST,subrarr:FT,subset:LT,Subset:TT,subseteq:RT,subseteqq:zT,SubsetEqual:IT,subsetneq:BT,subsetneqq:NT,subsim:MT,subsub:PT,subsup:OT,succapprox:UT,succ:VT,succcurlyeq:$T,Succeeds:GT,SucceedsEqual:jT,SucceedsSlantEqual:HT,SucceedsTilde:ZT,succeq:JT,succnapprox:WT,succneqq:YT,succnsim:QT,succsim:KT,SuchThat:XT,sum:n2,Sum:t2,sung:r2,sup1:o2,sup2:e2,sup3:s2,sup:c2,Sup:i2,supdot:a2,supdsub:l2,supE:u2,supe:p2,supedot:f2,Superset:h2,SupersetEqual:d2,suphsol:m2,suphsub:g2,suplarr:b2,supmult:_2,supnE:k2,supne:x2,supplus:v2,supset:y2,Supset:C2,supseteq:w2,supseteqq:A2,supsetneq:q2,supsetneqq:D2,supsim:E2,supsub:S2,supsup:F2,swarhk:L2,swarr:T2,swArr:R2,swarrow:z2,swnwar:I2,szlig:B2,Tab:N2,target:M2,Tau:P2,tau:O2,tbrk:U2,Tcaron:V2,tcaron:$2,Tcedil:G2,tcedil:j2,Tcy:H2,tcy:Z2,tdot:J2,telrec:W2,Tfr:Y2,tfr:Q2,there4:K2,therefore:X2,Therefore:nR,Theta:tR,theta:rR,thetasym:oR,thetav:eR,thickapprox:sR,thicksim:cR,ThickSpace:iR,ThinSpace:aR,thinsp:lR,thkap:uR,thksim:pR,THORN:fR,thorn:hR,tilde:dR,Tilde:mR,TildeEqual:gR,TildeFullEqual:bR,TildeTilde:_R,timesbar:kR,timesb:xR,times:vR,timesd:yR,tint:CR,toea:wR,topbot:AR,topcir:qR,top:DR,Topf:ER,topf:SR,topfork:FR,tosa:LR,tprime:TR,trade:RR,TRADE:zR,triangle:IR,triangledown:BR,triangleleft:NR,trianglelefteq:MR,triangleq:PR,triangleright:OR,trianglerighteq:UR,tridot:VR,trie:$R,triminus:GR,TripleDot:jR,triplus:HR,trisb:ZR,tritime:JR,trpezium:WR,Tscr:YR,tscr:QR,TScy:KR,tscy:XR,TSHcy:nz,tshcy:tz,Tstrok:rz,tstrok:oz,twixt:ez,twoheadleftarrow:sz,twoheadrightarrow:cz,Uacute:iz,uacute:az,uarr:lz,Uarr:uz,uArr:pz,Uarrocir:fz,Ubrcy:hz,ubrcy:dz,Ubreve:mz,ubreve:gz,Ucirc:bz,ucirc:_z,Ucy:kz,ucy:xz,udarr:vz,Udblac:yz,udblac:Cz,udhar:wz,ufisht:Az,Ufr:qz,ufr:Dz,Ugrave:Ez,ugrave:Sz,uHar:Fz,uharl:Lz,uharr:Tz,uhblk:Rz,ulcorn:zz,ulcorner:Iz,ulcrop:Bz,ultri:Nz,Umacr:Mz,umacr:Pz,uml:Oz,UnderBar:Uz,UnderBrace:Vz,UnderBracket:$z,UnderParenthesis:Gz,Union:jz,UnionPlus:Hz,Uogon:Zz,uogon:Jz,Uopf:Wz,uopf:Yz,UpArrowBar:Qz,uparrow:Kz,UpArrow:Xz,Uparrow:nI,UpArrowDownArrow:tI,updownarrow:rI,UpDownArrow:oI,Updownarrow:eI,UpEquilibrium:sI,upharpoonleft:cI,upharpoonright:iI,uplus:aI,UpperLeftArrow:lI,UpperRightArrow:uI,upsi:pI,Upsi:fI,upsih:hI,Upsilon:dI,upsilon:mI,UpTeeArrow:gI,UpTee:bI,upuparrows:_I,urcorn:kI,urcorner:xI,urcrop:vI,Uring:yI,uring:CI,urtri:wI,Uscr:AI,uscr:qI,utdot:DI,Utilde:EI,utilde:SI,utri:FI,utrif:LI,uuarr:TI,Uuml:RI,uuml:zI,uwangle:II,vangrt:BI,varepsilon:NI,varkappa:MI,varnothing:PI,varphi:OI,varpi:UI,varpropto:VI,varr:$I,vArr:GI,varrho:jI,varsigma:HI,varsubsetneq:ZI,varsubsetneqq:JI,varsupsetneq:WI,varsupsetneqq:YI,vartheta:QI,vartriangleleft:KI,vartriangleright:XI,vBar:nB,Vbar:tB,vBarv:rB,Vcy:oB,vcy:eB,vdash:sB,vDash:cB,Vdash:iB,VDash:aB,Vdashl:lB,veebar:uB,vee:pB,Vee:fB,veeeq:hB,vellip:dB,verbar:mB,Verbar:gB,vert:bB,Vert:_B,VerticalBar:kB,VerticalLine:xB,VerticalSeparator:vB,VerticalTilde:yB,VeryThinSpace:CB,Vfr:wB,vfr:AB,vltri:qB,vnsub:DB,vnsup:EB,Vopf:SB,vopf:FB,vprop:LB,vrtri:TB,Vscr:RB,vscr:zB,vsubnE:IB,vsubne:BB,vsupnE:NB,vsupne:MB,Vvdash:PB,vzigzag:OB,Wcirc:UB,wcirc:VB,wedbar:$B,wedge:GB,Wedge:jB,wedgeq:HB,weierp:ZB,Wfr:JB,wfr:WB,Wopf:YB,wopf:QB,wp:KB,wr:XB,wreath:n3,Wscr:t3,wscr:r3,xcap:o3,xcirc:e3,xcup:s3,xdtri:c3,Xfr:i3,xfr:a3,xharr:l3,xhArr:u3,Xi:p3,xi:f3,xlarr:h3,xlArr:d3,xmap:m3,xnis:g3,xodot:b3,Xopf:_3,xopf:k3,xoplus:x3,xotime:v3,xrarr:y3,xrArr:C3,Xscr:w3,xscr:A3,xsqcup:q3,xuplus:D3,xutri:E3,xvee:S3,xwedge:F3,Yacute:L3,yacute:T3,YAcy:R3,yacy:z3,Ycirc:I3,ycirc:B3,Ycy:N3,ycy:M3,yen:P3,Yfr:O3,yfr:U3,YIcy:V3,yicy:$3,Yopf:G3,yopf:j3,Yscr:H3,yscr:Z3,YUcy:J3,yucy:W3,yuml:Y3,Yuml:Q3,Zacute:K3,zacute:X3,Zcaron:nN,zcaron:tN,Zcy:rN,zcy:oN,Zdot:eN,zdot:sN,zeetrf:cN,ZeroWidthSpace:iN,Zeta:aN,zeta:lN,zfr:uN,Zfr:pN,ZHcy:fN,zhcy:hN,zigrarr:dN,zopf:mN,Zopf:gN,Zscr:bN,zscr:_N,zwj:kN,zwnj:xN};var At=vN,Tn=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,Z={},$n={};function yN(r){var n,t,o=$n[r];if(o)return o;for(o=$n[r]=[],n=0;n<128;n++)t=String.fromCharCode(n),/^[0-9a-z]$/i.test(t)?o.push(t):o.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2));for(n=0;n"u"&&(t=!0),c=yN(n),o=0,e=r.length;o=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1=56320&&i<=57343)){a+=encodeURIComponent(r[o]+r[o+1]),o++;continue}a+="%EF%BF%BD";continue}a+=encodeURIComponent(r[o])}return a}cn.defaultChars=";/?:@&=+$,-_.!~*'()#";cn.componentChars="-_.!~*'()";var CN=cn,Gn={};function wN(r){var n,t,o=Gn[r];if(o)return o;for(o=Gn[r]=[],n=0;n<128;n++)t=String.fromCharCode(n),o.push(t);for(n=0;n=55296&&u<=57343?p+="���":p+=String.fromCharCode(u),e+=6;continue}if((i&248)===240&&e+91114111?p+="����":(u-=65536,p+=String.fromCharCode(55296+(u>>10),56320+(u&1023))),e+=9;continue}p+="�"}return p})}an.defaultChars=";/?:@&=+$,#";an.componentChars="";var AN=an,qN=function(n){var t="";return t+=n.protocol||"",t+=n.slashes?"//":"",t+=n.auth?n.auth+"@":"",n.hostname&&n.hostname.indexOf(":")!==-1?t+="["+n.hostname+"]":t+=n.hostname||"",t+=n.port?":"+n.port:"",t+=n.pathname||"",t+=n.search||"",t+=n.hash||"",t};function en(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var DN=/^([a-z0-9.+-]+:)/i,EN=/:[0-9]*$/,SN=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,FN=["<",">",'"',"`"," ","\r",` `," "],LN=["{","}","|","\\","^","`"].concat(FN),TN=["'"].concat(LN),jn=["%","/","?",";","#"].concat(TN),Hn=["/","?","#"],RN=255,Zn=/^[+a-z0-9A-Z_-]{0,63}$/,zN=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Jn={javascript:!0,"javascript:":!0},Wn={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function IN(r,n){if(r&&r instanceof en)return r;var t=new en;return t.parse(r,n),t}en.prototype.parse=function(r,n){var t,o,e,s,i,c=r;if(c=c.trim(),!n&&r.split("#").length===1){var a=SN.exec(c);if(a)return this.pathname=a[1],a[2]&&(this.search=a[2]),this}var l=DN.exec(c);if(l&&(l=l[0],e=l.toLowerCase(),this.protocol=l,c=c.substr(l.length)),(n||l||c.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i=c.substr(0,2)==="//",i&&!(l&&Jn[l])&&(c=c.substr(2),this.slashes=!0)),!Jn[l]&&(i||l&&!Wn[l])){var u=-1;for(t=0;t127?k+="x":k+=v[m];if(!k.match(Zn)){var C=b.slice(0,t),w=b.slice(t+1),g=v.match(zN);g&&(C.push(g[1]),w.unshift(g[2])),w.length&&(c=w.join(".")+c),this.hostname=C.join(".");break}}}}this.hostname.length>RN&&(this.hostname=""),_&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var E=c.indexOf("#");E!==-1&&(this.hash=c.substr(E),c=c.slice(0,E));var S=c.indexOf("?");return S!==-1&&(this.search=c.substr(S),c=c.slice(0,S)),c&&(this.pathname=c),Wn[e]&&this.hostname&&!this.pathname&&(this.pathname=""),this};en.prototype.parseHost=function(r){var n=EN.exec(r);n&&(n=n[0],n!==":"&&(this.port=n.substr(1)),r=r.substr(0,r.length-n.length)),r&&(this.hostname=r)};var BN=IN;Z.encode=CN;Z.decode=AN;Z.format=qN;Z.parse=BN;var U={},gn,Yn;function qt(){return Yn||(Yn=1,gn=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),gn}var bn,Qn;function Dt(){return Qn||(Qn=1,bn=/[\0-\x1F\x7F-\x9F]/),bn}var _n,Kn;function NN(){return Kn||(Kn=1,_n=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/),_n}var kn,Xn;function Et(){return Xn||(Xn=1,kn=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),kn}var nt;function MN(){return nt||(nt=1,U.Any=qt(),U.Cc=Dt(),U.Cf=NN(),U.P=Tn,U.Z=Et()),U}(function(r){function n(d){return Object.prototype.toString.call(d)}function t(d){return n(d)==="[object String]"}var o=Object.prototype.hasOwnProperty;function e(d,A){return o.call(d,A)}function s(d){var A=Array.prototype.slice.call(arguments,1);return A.forEach(function(x){if(x){if(typeof x!="object")throw new TypeError(x+"must be object");Object.keys(x).forEach(function(P){d[P]=x[P]})}}),d}function i(d,A,x){return[].concat(d.slice(0,A),x,d.slice(A+1))}function c(d){return!(d>=55296&&d<=57343||d>=64976&&d<=65007||(d&65535)===65535||(d&65535)===65534||d>=0&&d<=8||d===11||d>=14&&d<=31||d>=127&&d<=159||d>1114111)}function a(d){if(d>65535){d-=65536;var A=55296+(d>>10),x=56320+(d&1023);return String.fromCharCode(A,x)}return String.fromCharCode(d)}var l=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,u=/&([a-z#][a-z0-9]{1,31});/gi,p=new RegExp(l.source+"|"+u.source,"gi"),f=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i,h=At;function _(d,A){var x;return e(h,A)?h[A]:A.charCodeAt(0)===35&&f.test(A)&&(x=A[1].toLowerCase()==="x"?parseInt(A.slice(2),16):parseInt(A.slice(1),10),c(x))?a(x):d}function b(d){return d.indexOf("\\")<0?d:d.replace(l,"$1")}function v(d){return d.indexOf("\\")<0&&d.indexOf("&")<0?d:d.replace(p,function(A,x,P){return x||_(A,P)})}var k=/[&<>"]/,m=/[&<>"]/g,y={"&":"&","<":"<",">":">",'"':"""};function C(d){return y[d]}function w(d){return k.test(d)?d.replace(m,C):d}var g=/[.?*+^$[\]\\(){}|-]/g;function E(d){return d.replace(g,"\\$&")}function S(d){switch(d){case 9:case 32:return!0}return!1}function M(d){if(d>=8192&&d<=8202)return!0;switch(d){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}var D=Tn;function R(d){return D.test(d)}function G(d){switch(d){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Y(d){return d=d.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(d=d.replace(/ẞ/g,"ß")),d.toLowerCase().toUpperCase()}r.lib={},r.lib.mdurl=Z,r.lib.ucmicro=MN(),r.assign=s,r.isString=t,r.has=e,r.unescapeMd=b,r.unescapeAll=v,r.isValidEntityCode=c,r.fromCodePoint=a,r.escapeHtml=w,r.arrayReplaceAt=i,r.isSpace=S,r.isWhiteSpace=M,r.isMdAsciiPunct=G,r.isPunctChar=R,r.escapeRE=E,r.normalizeReference=Y})(q);var ln={},PN=function(n,t,o){var e,s,i,c,a=-1,l=n.posMax,u=n.pos;for(n.pos=t+1,e=1;n.pos32))return c;if(e===41){if(s===0)break;s--}i++}return t===i||s!==0||(c.str=tt(n.slice(t,i)),c.pos=i,c.ok=!0),c},UN=q.unescapeAll,VN=function(n,t,o){var e,s,i=0,c=t,a={ok:!1,pos:0,lines:0,str:""};if(c>=o||(s=n.charCodeAt(c),s!==34&&s!==39&&s!==40))return a;for(c++,s===40&&(s=41);c"+$(s.content)+""};B.code_block=function(r,n,t,o,e){var s=r[n];return""+$(r[n].content)+` `};B.fence=function(r,n,t,o,e){var s=r[n],i=s.info?GN(s.info).trim():"",c="",a="",l,u,p,f,h;return i&&(p=i.split(/(\s+)/g),c=p[0],a=p.slice(2).join("")),t.highlight?l=t.highlight(s.content,c,a)||$(s.content):l=$(s.content),l.indexOf("[t.image?(n(),o("img",{key:0,src:t.image},null,8,F)):S("",!0),r("h4",null,h(t.title),1),r("p",{class:"newsSummary",innerHTML:t.summary},null,8,L),r("p",x,h(`${d.updatedTimestamp}, ${t.source}`),1)]),_:1},8,["onClick"])}const D=f(I,[["render",B],["__scopeId","data-v-ad954c34"]]),U={components:{Loader:k,FullShelf:T,NewsItemBig:D},name:"News",data(){return{news:[]}},mounted(){fetch("/api/news/articles").then(e=>e.json()).then(e=>{this.news.length=0;for(const s of e){const t=this.news.findIndex(i=>i.source==s.source);t>=0?this.news[t].items.push(s):this.news.push({source:s.source,items:[s]})}})}},b=e=>(v("data-v-a520cb40"),e=e(),M(),e),H={class:"padding-20"},A={class:"news"},J=b(()=>r("h1",null,"News",-1)),V={key:0,class:"fillPage"};function O(e,s,t,i,u,d){const l=c("Loader"),C=c("news-item-big"),y=c("full-shelf");return n(),o("div",H,[r("div",A,[J,u.news.length?S("",!0):(n(),o("div",V,[N(l)])),(n(!0),o(p,null,g(u.news,m=>(n(),_(y,{key:m.source,heading:m.source,class:"mt-10"},{default:w(()=>[(n(!0),o(p,null,g(m.items,a=>(n(),_(C,{key:a.url,href:a.link,image:a.image,source:a.source,summary:a.summary,title:a.title,updated:a.updated},null,8,["href","image","source","summary","title","updated"]))),128))]),_:2},1032,["heading"]))),128))])])}const E=f(U,[["render",O],["__scopeId","data-v-a520cb40"]]);export{E as default}; +import{F as T}from"./FullShelf-NKKvCiyP.js";import{_ as f,C as $,f as c,o as n,i as _,w,c as o,d as S,a as r,t as h,L as k,g as N,F as p,h as g,l as v,m as M}from"./index-DwIIj2B2.js";const I={name:"NewsItemBig",components:{Card:$},methods:{redirect(){this.$router.push(this.href)}},computed:{updatedTimestamp(){const e=new Date(this.updated),s=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];return`${s[e.getUTCDay()]} ${e.getUTCDate()} ${t[e.getUTCMonth()]} ${e.getUTCFullYear()} ${e.getUTCHours()}.${e.getUTCMinutes()} GMT`}},props:{image:String,title:String,summary:String,href:String,updated:String,source:String}},F=["src"],L=["innerHTML"],x={class:"small"};function B(e,s,t,i,u,d){const l=c("Card");return n(),_(l,{class:"p-4 col-span-2 cursor-pointer","with-hover":"",onClick:d.redirect},{default:w(()=>[t.image?(n(),o("img",{key:0,src:t.image},null,8,F)):S("",!0),r("h4",null,h(t.title),1),r("p",{class:"newsSummary",innerHTML:t.summary},null,8,L),r("p",x,h(`${d.updatedTimestamp}, ${t.source}`),1)]),_:1},8,["onClick"])}const D=f(I,[["render",B],["__scopeId","data-v-ad954c34"]]),U={components:{Loader:k,FullShelf:T,NewsItemBig:D},name:"News",data(){return{news:[]}},mounted(){fetch("/api/news/articles").then(e=>e.json()).then(e=>{this.news.length=0;for(const s of e){const t=this.news.findIndex(i=>i.source==s.source);t>=0?this.news[t].items.push(s):this.news.push({source:s.source,items:[s]})}})}},b=e=>(v("data-v-a520cb40"),e=e(),M(),e),H={class:"padding-20"},A={class:"news"},J=b(()=>r("h1",null,"News",-1)),V={key:0,class:"fillPage"};function O(e,s,t,i,u,d){const l=c("Loader"),C=c("news-item-big"),y=c("full-shelf");return n(),o("div",H,[r("div",A,[J,u.news.length?S("",!0):(n(),o("div",V,[N(l)])),(n(!0),o(p,null,g(u.news,m=>(n(),_(y,{key:m.source,heading:m.source,class:"mt-10"},{default:w(()=>[(n(!0),o(p,null,g(m.items,a=>(n(),_(C,{key:a.url,href:a.link,image:a.image,source:a.source,summary:a.summary,title:a.title,updated:a.updated},null,8,["href","image","source","summary","title","updated"]))),128))]),_:2},1032,["heading"]))),128))])])}const E=f(U,[["render",O],["__scopeId","data-v-a520cb40"]]);export{E as default}; diff --git a/src/ui/dist/assets/News-BhI18wmL.js.gz b/src/ui/dist/assets/News-BhI18wmL.js.gz new file mode 100644 index 00000000..8decabc7 Binary files /dev/null and b/src/ui/dist/assets/News-BhI18wmL.js.gz differ diff --git a/src/ui/dist/assets/News-CAaoZgKT.js.gz b/src/ui/dist/assets/News-CAaoZgKT.js.gz deleted file mode 100644 index 9f2775e2..00000000 Binary files a/src/ui/dist/assets/News-CAaoZgKT.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/NewsArticle-T_O2nLK5.js b/src/ui/dist/assets/NewsArticle-BuxLkgV9.js similarity index 94% rename from src/ui/dist/assets/NewsArticle-T_O2nLK5.js rename to src/ui/dist/assets/NewsArticle-BuxLkgV9.js index 796025ba..4e10bd43 100644 --- a/src/ui/dist/assets/NewsArticle-T_O2nLK5.js +++ b/src/ui/dist/assets/NewsArticle-BuxLkgV9.js @@ -1 +1 @@ -import{_,L as m,i as d,c,a as i,t as o,b as y,d as p,Q as w,f as u,o as n}from"./index-K4QaY0Na.js";import{E as k}from"./Error-JcTZ1TEX.js";const L={name:"NewsArticle",components:{Loader:m,Error:k},data(){return{error:"",article:{},fullWidth:!1}},methods:{updateData(){fetch(`/api/news/articles/${this.$route.params.url}`).then(async s=>{if(s.status==404){this.error="This wouldn't have happened if you had clicked on the links we provided!
ヽ(ಠ_ಠ)ノ",setTimeout(this.updateData,1e3);return}if(s.status==400){window.open(await s.text()),this.$router.push("/news");return}if(s.status==200){if(this.article=await s.json(),this.article.headline==="N/A"){window.open(this.article.href),this.$router.push("/news");return}let t=this.article.body.split(" ").filter(e=>e.includes('href="/'));t=t.map(e=>e.split('href="')[1].split('"')[0]);const h=this.article.href.split("/")[2],l=t.map(e=>"https://"+h+e);for(const e in t){let a=l[e];fetch("/api/news/articles",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:l[e]})}).then(async r=>{r.status==200?a=await r.text():console.error(await r.text()),this.article.body=this.article.body.replaceAll(t[e],a)})}return}this.error=s.statusText})}},mounted(){this.updateData()}},b={key:2,class:"padding-20 newsArticle"},T=["innerHTML"],g={class:"leading-tight headline"},x=["innerHTML"],v={key:0,class:"date"},N=["href"],H={key:1,class:"my-4"},M=["innerHTML"];function W(s,t,h,l,e,a){const r=u("Error"),f=u("Loader");return e.error?(n(),d(r,{key:0,msg:e.error},null,8,["msg"])):e.article.headline?(n(),c("div",b,[i("span",{class:"toggleWidth material-icons-round",onClick:t[0]||(t[0]=A=>e.fullWidth=!e.fullWidth)},o(e.fullWidth?"close_fullscreen":"open_in_full"),1),i("div",{class:w([{slim:!e.fullWidth},"wrapper"])},[i("h6",{class:"accentLink topic",innerHTML:e.article.topic},null,8,T),i("h1",g,o(e.article.headline),1),i("h4",{class:"standfirst",innerHTML:e.article.standfirst},null,8,x),e.article.date?(n(),c("h6",v,[y(o(e.article.date)+", ",1),i("a",{href:e.article.href},o(e.article.href),9,N)])):p("",!0),e.article.body?(n(),c("hr",H)):p("",!0),i("div",{class:"body leading-relaxed text-md",innerHTML:e.article.body},null,8,M)],2)])):(n(),d(f,{key:1}))}const B=_(L,[["render",W],["__scopeId","data-v-32bc12c0"]]);export{B as default}; +import{_,L as m,i as d,c,a as i,t as o,b as y,d as p,Q as w,f as u,o as n}from"./index-DwIIj2B2.js";import{E as k}from"./Error-B8FoxyVg.js";const L={name:"NewsArticle",components:{Loader:m,Error:k},data(){return{error:"",article:{},fullWidth:!1}},methods:{updateData(){fetch(`/api/news/articles/${this.$route.params.url}`).then(async s=>{if(s.status==404){this.error="This wouldn't have happened if you had clicked on the links we provided!
ヽ(ಠ_ಠ)ノ",setTimeout(this.updateData,1e3);return}if(s.status==400){window.open(await s.text()),this.$router.push("/news");return}if(s.status==200){if(this.article=await s.json(),this.article.headline==="N/A"){window.open(this.article.href),this.$router.push("/news");return}let t=this.article.body.split(" ").filter(e=>e.includes('href="/'));t=t.map(e=>e.split('href="')[1].split('"')[0]);const h=this.article.href.split("/")[2],l=t.map(e=>"https://"+h+e);for(const e in t){let a=l[e];fetch("/api/news/articles",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:l[e]})}).then(async r=>{r.status==200?a=await r.text():console.error(await r.text()),this.article.body=this.article.body.replaceAll(t[e],a)})}return}this.error=s.statusText})}},mounted(){this.updateData()}},b={key:2,class:"padding-20 newsArticle"},T=["innerHTML"],g={class:"leading-tight headline"},x=["innerHTML"],v={key:0,class:"date"},N=["href"],H={key:1,class:"my-4"},M=["innerHTML"];function W(s,t,h,l,e,a){const r=u("Error"),f=u("Loader");return e.error?(n(),d(r,{key:0,msg:e.error},null,8,["msg"])):e.article.headline?(n(),c("div",b,[i("span",{class:"toggleWidth material-icons-round",onClick:t[0]||(t[0]=A=>e.fullWidth=!e.fullWidth)},o(e.fullWidth?"close_fullscreen":"open_in_full"),1),i("div",{class:w([{slim:!e.fullWidth},"wrapper"])},[i("h6",{class:"accentLink topic",innerHTML:e.article.topic},null,8,T),i("h1",g,o(e.article.headline),1),i("h4",{class:"standfirst",innerHTML:e.article.standfirst},null,8,x),e.article.date?(n(),c("h6",v,[y(o(e.article.date)+", ",1),i("a",{href:e.article.href},o(e.article.href),9,N)])):p("",!0),e.article.body?(n(),c("hr",H)):p("",!0),i("div",{class:"body leading-relaxed text-md",innerHTML:e.article.body},null,8,M)],2)])):(n(),d(f,{key:1}))}const B=_(L,[["render",W],["__scopeId","data-v-32bc12c0"]]);export{B as default}; diff --git a/src/ui/dist/assets/NewsArticle-BuxLkgV9.js.gz b/src/ui/dist/assets/NewsArticle-BuxLkgV9.js.gz new file mode 100644 index 00000000..ee56cf14 Binary files /dev/null and b/src/ui/dist/assets/NewsArticle-BuxLkgV9.js.gz differ diff --git a/src/ui/dist/assets/NewsArticle-T_O2nLK5.js.gz b/src/ui/dist/assets/NewsArticle-T_O2nLK5.js.gz deleted file mode 100644 index 0b746a61..00000000 Binary files a/src/ui/dist/assets/NewsArticle-T_O2nLK5.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Normal-6IztdWDo.js b/src/ui/dist/assets/Normal-6IztdWDo.js new file mode 100644 index 00000000..07a28b4e --- /dev/null +++ b/src/ui/dist/assets/Normal-6IztdWDo.js @@ -0,0 +1 @@ +import{e as i,B as n,j as p,D as m,o as c,i as l}from"./index-DwIIj2B2.js";import{T as d}from"./Template-CpDXJr_0.js";import"./PlaylistEntry-oyklgbh5.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-CFJncbti.js";import"./FactCard-DB8qPuqq.js";import"./gistClient-BfrJnK9Z.js";import"./Markdown.vue_vue_type_style_index_0_lang-072OuJni.js";const N=i({__name:"Normal",setup(u){const e=n(),r=p(),t=m(()=>e.params.id),s=async(a,o)=>{await fetch(`/api/playlists/${t.value}/tracks`,{method:"PUT",body:JSON.stringify({songOldIndex:a,songNewIndex:o})}),await r.fetchPlaylists()};return(a,o)=>(c(),l(d,{id:t.value,onRearrange:s},null,8,["id"]))}});export{N as default}; diff --git a/src/ui/dist/assets/Normal-t9fUTLMH.js b/src/ui/dist/assets/Normal-t9fUTLMH.js deleted file mode 100644 index f70e5614..00000000 --- a/src/ui/dist/assets/Normal-t9fUTLMH.js +++ /dev/null @@ -1 +0,0 @@ -import{e as i,B as n,j as p,D as m,o as c,i as l}from"./index-K4QaY0Na.js";import{T as d}from"./Template-BJ9qkRi1.js";import"./PlaylistEntry-9wUfG8hQ.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-YqWWrJTC.js";import"./FactCard-BZwd6pEI.js";import"./gistClient-ZdZsfTR6.js";import"./Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js";const N=i({__name:"Normal",setup(u){const e=n(),r=p(),t=m(()=>e.params.id),s=async(a,o)=>{await fetch(`/api/playlists/${t.value}/tracks`,{method:"PUT",body:JSON.stringify({songOldIndex:a,songNewIndex:o})}),await r.fetchPlaylists()};return(a,o)=>(c(),l(d,{id:t.value,onRearrange:s},null,8,["id"]))}});export{N as default}; diff --git a/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js.gz b/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js.gz deleted file mode 100644 index 430ee5de..00000000 Binary files a/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js b/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js similarity index 86% rename from src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js rename to src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js index cf6203b8..45f10db4 100644 --- a/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js +++ b/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js @@ -1 +1 @@ -import{e as b,n as r,y as x,E as n,o as d,c as q,g as c,P as B,w as C,i as P,u as p,O as w,d as Q}from"./index-K4QaY0Na.js";import{P as E}from"./PlaylistEntry-9wUfG8hQ.js";import{d as y}from"./vuedraggable.umd-YqWWrJTC.js";const _=b({__name:"Playlist",props:{playlist:{type:Object,required:!1},useQueue:{type:Boolean,required:!1,default:!1},draggable:{type:Boolean,required:!1,default:!1}},emits:["rearrange"],setup(u,{expose:f,emit:m}){const i=r(null),s=u,t=r(-1),o=r([]);x(()=>{o.value=s.useQueue?s.playlist.queue:s.playlist.songs}),n(()=>s.playlist,a=>{o.value=s.useQueue?a.queue:a.songs}),n(()=>s.useQueue,()=>{o.value=s.useQueue?s.playlist.queue:s.playlist.songs}),f({scrollToSong:a=>{var l;const e=(l=document.getElementById(`bplayer-entry-${a}`))==null?void 0:l.offsetTop;e>=150&&(i.value.scrollTop=e-150)}});const g=m,v=a=>{const e=a.moved;e&&g("rearrange",e.oldIndex,e.newIndex)};return(a,e)=>u.playlist?(d(),q("div",{key:0,ref_key:"playlistScroll",ref:i,class:"playlist"},[c(B),c(p(y),{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=l=>o.value=l),disabled:!p(y),"item-key":"id",onChange:v,onDragover:e[1]||(e[1]=w(()=>{},["stop"]))},{item:C(({element:l,index:k})=>[(d(),P(E,{id:"bplayer-entry-"+l.id,key:l.source,index:k,selected:t.value==l.id,song:l,"with-cover":"",onClick:I=>t.value==l.id?t.value=-1:t.value=l.id},null,8,["id","index","selected","song","onClick"]))]),_:1},8,["modelValue","disabled"])],512)):Q("",!0)}});export{_}; +import{e as b,n as r,y as x,E as n,o as d,c as q,g as c,P as B,w as C,i as P,u as p,O as w,d as Q}from"./index-DwIIj2B2.js";import{P as E}from"./PlaylistEntry-oyklgbh5.js";import{d as y}from"./vuedraggable.umd-CFJncbti.js";const _=b({__name:"Playlist",props:{playlist:{type:Object,required:!1},useQueue:{type:Boolean,required:!1,default:!1},draggable:{type:Boolean,required:!1,default:!1}},emits:["rearrange"],setup(u,{expose:f,emit:m}){const i=r(null),s=u,t=r(-1),o=r([]);x(()=>{o.value=s.useQueue?s.playlist.queue:s.playlist.songs}),n(()=>s.playlist,a=>{o.value=s.useQueue?a.queue:a.songs}),n(()=>s.useQueue,()=>{o.value=s.useQueue?s.playlist.queue:s.playlist.songs}),f({scrollToSong:a=>{var l;const e=(l=document.getElementById(`bplayer-entry-${a}`))==null?void 0:l.offsetTop;e>=150&&(i.value.scrollTop=e-150)}});const g=m,v=a=>{const e=a.moved;e&&g("rearrange",e.oldIndex,e.newIndex)};return(a,e)=>u.playlist?(d(),q("div",{key:0,ref_key:"playlistScroll",ref:i,class:"playlist"},[c(B),c(p(y),{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=l=>o.value=l),disabled:!p(y),"item-key":"id",onChange:v,onDragover:e[1]||(e[1]=w(()=>{},["stop"]))},{item:C(({element:l,index:k})=>[(d(),P(E,{id:"bplayer-entry-"+l.id,key:l.source,index:k,selected:t.value==l.id,song:l,"with-cover":"",onClick:I=>t.value==l.id?t.value=-1:t.value=l.id},null,8,["id","index","selected","song","onClick"]))]),_:1},8,["modelValue","disabled"])],512)):Q("",!0)}});export{_}; diff --git a/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js.gz b/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js.gz new file mode 100644 index 00000000..830f6d0f Binary files /dev/null and b/src/ui/dist/assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js.gz differ diff --git a/src/ui/dist/assets/PlaylistCard-DXOdXptp.js b/src/ui/dist/assets/PlaylistCard-CLiKXXKR.js similarity index 97% rename from src/ui/dist/assets/PlaylistCard-DXOdXptp.js rename to src/ui/dist/assets/PlaylistCard-CLiKXXKR.js index d1497d96..14487e73 100644 --- a/src/ui/dist/assets/PlaylistCard-DXOdXptp.js +++ b/src/ui/dist/assets/PlaylistCard-CLiKXXKR.js @@ -1 +1 @@ -import{e as _,j as O,n as y,o as f,i as h,w,g as d,u as I,ar as $,aO as j,v as A,aP as D,aa as B,a as u,ac as x,x as N,a7 as q,D as T,f as V,d as g,H as E,O as M,t as v,c as F,C as H,_ as W}from"./index-K4QaY0Na.js";import{p as b}from"./playerInPicture-Dfp9IAsf.js";const z=u("br",null,null,-1),G=_({__name:"ImportSpotifyPlaylist",props:{playlist:{type:Object,required:!0}},setup(a,{expose:o}){const i=O(),e=a,n=y([{name:"playlist",type:"dropdown",required:!0,value:null,options:i.playlistsAsDropdown}]),r=y(null),c=y(null),s=y([]),p=async()=>{if(r.value.load(),s.value.length==0){const t=e.playlist.id==="liked"?"/api/spotify/tracks":`/api/spotify/playlists/${e.playlist.id}`,l=await fetch(t);s.value=await l.json()}r.value.show()},m=()=>{b("Spotify Playlist",e.playlist.name,e.playlist.href)},P=async t=>{if(t==="new"){const l=await N("classic",e.playlist.name,e.playlist.description,e.playlist.cover);return n.value[0].options=i.playlistsAsDropdown,n.value[0].value=l,l}return t},k=async(t,l=null)=>{s.value[t].added||(l??(l=c.value.toObject().playlist),l=await P(l),await x(l,s.value[t]),s.value[t].added=!0)},C=async()=>{let t=c.value.toObject().playlist;t=await P(t),s.value.forEach((l,S)=>{k(S,t)})};return o({show:p}),(t,l)=>(f(),h(B,{ref_key:"modal",ref:r,submit:{label:"Add All",icon:"add"},name:"Import Playlist",onClose:l[0]||(l[0]=S=>t.$emit("close")),onSubmit:C},{default:w(()=>[d(j,{cover:a.playlist.cover,icons:[{name:"share",onClick:()=>I($)(a.playlist.href)},{name:"play_arrow",onClick:m}],title:a.playlist.name},null,8,["cover","icons","title"]),d(A,{ref_key:"form",ref:c,options:n.value},null,8,["options"]),z,d(D,{songs:s.value,onAdd:k},null,8,["songs"])]),_:1},512))}}),J={class:"relative"},K={class:"title"},L={key:0,class:"material-symbols-rounded"},Q=_({__name:"PlaylistCard",props:{playlist:{type:Object,required:!0},isSpotify:{type:Boolean,default:!1}},setup(a){const o=a,i=q(),e=y(),n=T(()=>i.playlistPlayOrPauseIcon(o.playlist.id)),r=()=>{if(o.isSpotify){b(o.playlist.name,"Spotify",o.playlist.href);return}i.playlistId==o.playlist.id?i.playPause():i.loadPlaylist(o.playlist.id)},c=s=>{var p;console.log(o.isSpotify),o.isSpotify&&(s.preventDefault(),s.stopPropagation(),(p=e.value)==null||p.show(),console.log("showing",e.value))};return(s,p)=>{const m=V("router-link");return f(),h(m,{to:a.playlist.href,class:"no-underline"},{default:w(()=>[a.isSpotify?(f(),h(G,{key:0,ref_key:"importSpotify",ref:e,playlist:a.playlist},null,8,["playlist"])):g("",!0),d(H,{class:"home-playlist drop-shadow-md","with-hover":"",onClick:c},{default:w(()=>[u("div",J,[d(E,{src:a.playlist.cover,type:"playlist",name:a.playlist.name},null,8,["src","name"]),u("span",{class:"material-symbols-rounded ms-fill play",onClick:M(r,["stop","prevent"])},v(n.value),1)]),u("div",K,[a.playlist.type!="classic"?(f(),F("span",L,v(a.playlist.type=="smart"?"neurology":"bolt"),1)):g("",!0),u("h4",null,v(a.playlist.name),1)])]),_:1})]),_:1},8,["to"])}}}),X=W(Q,[["__scopeId","data-v-d1d701cc"]]);export{X as P}; +import{e as _,j as O,n as y,o as f,i as h,w,g as d,u as I,ar as $,aO as j,v as A,aP as D,aa as B,a as u,ac as x,x as N,a7 as q,D as T,f as V,d as g,H as E,O as M,t as v,c as F,C as H,_ as W}from"./index-DwIIj2B2.js";import{p as b}from"./playerInPicture-Dfp9IAsf.js";const z=u("br",null,null,-1),G=_({__name:"ImportSpotifyPlaylist",props:{playlist:{type:Object,required:!0}},setup(a,{expose:o}){const i=O(),e=a,n=y([{name:"playlist",type:"dropdown",required:!0,value:null,options:i.playlistsAsDropdown}]),r=y(null),c=y(null),s=y([]),p=async()=>{if(r.value.load(),s.value.length==0){const t=e.playlist.id==="liked"?"/api/spotify/tracks":`/api/spotify/playlists/${e.playlist.id}`,l=await fetch(t);s.value=await l.json()}r.value.show()},m=()=>{b("Spotify Playlist",e.playlist.name,e.playlist.href)},P=async t=>{if(t==="new"){const l=await N("classic",e.playlist.name,e.playlist.description,e.playlist.cover);return n.value[0].options=i.playlistsAsDropdown,n.value[0].value=l,l}return t},k=async(t,l=null)=>{s.value[t].added||(l??(l=c.value.toObject().playlist),l=await P(l),await x(l,s.value[t]),s.value[t].added=!0)},C=async()=>{let t=c.value.toObject().playlist;t=await P(t),s.value.forEach((l,S)=>{k(S,t)})};return o({show:p}),(t,l)=>(f(),h(B,{ref_key:"modal",ref:r,submit:{label:"Add All",icon:"add"},name:"Import Playlist",onClose:l[0]||(l[0]=S=>t.$emit("close")),onSubmit:C},{default:w(()=>[d(j,{cover:a.playlist.cover,icons:[{name:"share",onClick:()=>I($)(a.playlist.href)},{name:"play_arrow",onClick:m}],title:a.playlist.name},null,8,["cover","icons","title"]),d(A,{ref_key:"form",ref:c,options:n.value},null,8,["options"]),z,d(D,{songs:s.value,onAdd:k},null,8,["songs"])]),_:1},512))}}),J={class:"relative"},K={class:"title"},L={key:0,class:"material-symbols-rounded"},Q=_({__name:"PlaylistCard",props:{playlist:{type:Object,required:!0},isSpotify:{type:Boolean,default:!1}},setup(a){const o=a,i=q(),e=y(),n=T(()=>i.playlistPlayOrPauseIcon(o.playlist.id)),r=()=>{if(o.isSpotify){b(o.playlist.name,"Spotify",o.playlist.href);return}i.playlistId==o.playlist.id?i.playPause():i.loadPlaylist(o.playlist.id)},c=s=>{var p;console.log(o.isSpotify),o.isSpotify&&(s.preventDefault(),s.stopPropagation(),(p=e.value)==null||p.show(),console.log("showing",e.value))};return(s,p)=>{const m=V("router-link");return f(),h(m,{to:a.playlist.href,class:"no-underline"},{default:w(()=>[a.isSpotify?(f(),h(G,{key:0,ref_key:"importSpotify",ref:e,playlist:a.playlist},null,8,["playlist"])):g("",!0),d(H,{class:"home-playlist drop-shadow-md","with-hover":"",onClick:c},{default:w(()=>[u("div",J,[d(E,{src:a.playlist.cover,type:"playlist",name:a.playlist.name},null,8,["src","name"]),u("span",{class:"material-symbols-rounded ms-fill play",onClick:M(r,["stop","prevent"])},v(n.value),1)]),u("div",K,[a.playlist.type!="classic"?(f(),F("span",L,v(a.playlist.type=="smart"?"neurology":"bolt"),1)):g("",!0),u("h4",null,v(a.playlist.name),1)])]),_:1})]),_:1},8,["to"])}}}),X=W(Q,[["__scopeId","data-v-d1d701cc"]]);export{X as P}; diff --git a/src/ui/dist/assets/PlaylistCard-CLiKXXKR.js.gz b/src/ui/dist/assets/PlaylistCard-CLiKXXKR.js.gz new file mode 100644 index 00000000..24e3f343 Binary files /dev/null and b/src/ui/dist/assets/PlaylistCard-CLiKXXKR.js.gz differ diff --git a/src/ui/dist/assets/PlaylistCard-DXOdXptp.js.gz b/src/ui/dist/assets/PlaylistCard-DXOdXptp.js.gz deleted file mode 100644 index 800235ce..00000000 Binary files a/src/ui/dist/assets/PlaylistCard-DXOdXptp.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/PlaylistEntry-9wUfG8hQ.js.gz b/src/ui/dist/assets/PlaylistEntry-9wUfG8hQ.js.gz deleted file mode 100644 index dfb9766f..00000000 Binary files a/src/ui/dist/assets/PlaylistEntry-9wUfG8hQ.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/PlaylistEntry-9wUfG8hQ.js b/src/ui/dist/assets/PlaylistEntry-oyklgbh5.js similarity index 98% rename from src/ui/dist/assets/PlaylistEntry-9wUfG8hQ.js rename to src/ui/dist/assets/PlaylistEntry-oyklgbh5.js index 04a5285b..55031671 100644 --- a/src/ui/dist/assets/PlaylistEntry-9wUfG8hQ.js +++ b/src/ui/dist/assets/PlaylistEntry-oyklgbh5.js @@ -1 +1 @@ -import{e as U,j as W,D as k,n as B,f as x,ad as X,a3 as G,o as r,c as g,r as J,g as t,w as o,b as u,F as j,h as H,i as M,t as C,u as p,cN as Z,cO as ee,cP as te,d as I,ak as se,cQ as oe,a as d,ac as ne,N as ae,x as le,aE as ie,cR as de,af as ue,aH as re,a7 as ce,cS as me,Q as T,H as fe,M as L,A as ve,K as ye,cT as ge,aj as pe,cU as _e,_ as he}from"./index-K4QaY0Na.js";import{_ as we}from"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import{p as xe}from"./playerInPicture-Dfp9IAsf.js";const ke=d("span",{class:"material-symbols-rounded"},"preview",-1),be=d("span",{class:"material-symbols-rounded"},"search",-1),Se=d("span",{class:"material-symbols-rounded"},"queue_music",-1),$e=d("span",{class:"material-symbols-rounded"}," play_arrow ",-1),Ce=d("span",{class:"material-symbols-rounded"}," add_to_queue ",-1),qe=d("span",{class:"material-symbols-rounded"}," queue_play_next ",-1),Pe=d("span",{class:"material-symbols-rounded"},"delete",-1),Ne=d("span",{class:"material-symbols-rounded"},"playlist_add",-1),Ae=d("span",{class:"material-symbols-rounded"},"edit",-1),De=d("span",{class:"material-symbols-rounded"},"file_download",-1),Me=d("span",{class:"material-symbols-rounded"},"replay",-1),Ie=d("span",{class:"material-symbols-rounded"},"share",-1),Be=U({__name:"SongContext",props:{song:{type:Object,required:!0},playlistId:{type:String,required:!1,default:""}},emits:["update","edit"],setup(s,{expose:E,emit:F}){const i=W(),b=k(()=>i.playlists.filter(n=>n.type==="classic")),e=s,_=F,f=()=>{xe(e.song.artist,e.song.title,e.song.source)},q=k(()=>{var n;return((n=i.playlists.find(a=>a.id===e.playlistId))==null?void 0:n.type)!=="classic"}),v=async n=>{var a,l;await ne(n,e.song),ae.addSuccess(e.song.title,`Added to ${(a=b.value.find(y=>y.id==n))==null?void 0:a.name}`,3e3,void 0,(l=b.value.find(y=>y.id==n))==null?void 0:l.href),_("update")},P=async()=>{const n=await le("classic",e.song.title,e.song.artist,e.song.cover);await v(n),_("update")},N=async()=>{await ie(e.playlistId,e.song.id),_("update")},A=B(null),h=B(null),O=()=>{h.value.visible?D():m()},D=()=>{h.value.hide()},m=()=>{const n=A.value.getBoundingClientRect(),a={top:n.height+n.top+window.scrollY,left:n.width+n.left+window.scrollX};h.value.show(a)};E({show:m,toggle:O,hide:D});const S=k(()=>({Soundcloud:`https://soundcloud.com/search?q=${e.song.artist} ${e.song.title}`,Audius:`https://audius.co/search/${e.song.artist} ${e.song.title}`,"Youtube Music":`https://music.youtube.com/search?q=${e.song.artist} ${e.song.title}`,Spotify:`https://open.spotify.com/search/${e.song.artist} ${e.song.title}`})),$=()=>{_("edit")},V=n=>{window.open(S.value[n]),$()},R=()=>{const n=de(e.song);ue(n,`${e.song.artist} - ${e.song.title}`)};return(n,a)=>{const l=x("v-contextmenu-item"),y=x("v-contextmenu-submenu"),w=x("v-contextmenu-divider"),Q=x("v-context-menu-divider"),Y=x("v-contextmenu"),z=X("contextmenu");return G((r(),g("div",{ref_key:"box",ref:A},[J(n.$slots,"default"),t(Y,{ref_key:"contextmenu",ref:h},{default:o(()=>[t(l,{onClick:f},{default:o(()=>[ke,u(" Preview ")]),_:1}),t(l,null,{default:o(()=>[be,t(y,{title:"Find source"},{default:o(()=>[(r(!0),g(j,null,H(Object.keys(S.value),c=>(r(),M(l,{key:c,onClick:K=>V(c)},{default:o(()=>[u(C(c),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),t(w),t(l,null,{default:o(()=>[Se,t(y,{title:"Add to queue"},{default:o(()=>[t(l,{onClick:a[0]||(a[0]=()=>p(Z)(e.song.id))},{default:o(()=>[$e,u(" Play Now ")]),_:1}),t(l,{onClick:a[1]||(a[1]=()=>p(ee)(e.song.id))},{default:o(()=>[Ce,u(" Play Next ")]),_:1}),t(l,{onClick:a[2]||(a[2]=()=>p(te)(e.song.id))},{default:o(()=>[qe,u(" Play Last ")]),_:1})]),_:1})]),_:1}),t(w),t(Q),q.value?I("",!0):(r(),M(l,{key:0,onClick:N},{default:o(()=>[Pe,u(" Remove from this playlist ")]),_:1})),t(l,null,{default:o(()=>[Ne,t(y,{title:"Add to playlist"},{default:o(()=>[t(l,{onClick:P},{default:o(()=>[u(" Add to new playlist ")]),_:1}),t(w),(r(!0),g(j,null,H(b.value,c=>(r(),M(l,{key:c.id,onClick:K=>v(c.id)},{default:o(()=>[u(C(c.name),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),t(w),t(l,{onClick:$},{default:o(()=>[Ae,u(" Edit ")]),_:1}),t(w),t(l,{onClick:a[3]||(a[3]=c=>p(se)(s.song.id))},{default:o(()=>[De,u(" Download ")]),_:1}),t(l,{onClick:a[4]||(a[4]=c=>p(oe)(s.song.id))},{default:o(()=>[Me,u(" Uncache ")]),_:1}),t(w),t(l,null,{default:o(()=>[Ie,t(y,{title:"Export..."},{default:o(()=>[t(l,{onClick:a[5]||(a[5]=c=>R())},{default:o(()=>[u(" to file ")]),_:1})]),_:1})]),_:1})]),_:1},512)])),[[z,void 0,"contextmenu"]])}}}),Ee={key:0,class:"index text-right downloading"},Fe={key:2,class:"cover"},Oe={class:"artist-title"},Te={class:"title"},je={class:"artist"},He={key:3,class:"album"},Le={class:"duration text-center"},Ue=U({__name:"PlaylistEntry",props:{song:{type:Object,required:!0},index:{type:Number,required:!0},withCover:{type:Boolean,required:!1,default:!1},withAlbum:{type:Boolean,required:!1,default:!1},withMore:{type:Boolean,required:!1,default:!1},selected:{type:Boolean,required:!1,default:!1},playlistId:{type:String,required:!1,default:null},artist:{type:String,required:!1,default:null},album:{type:String,required:!1,default:null}},emits:["update"],setup(s,{emit:E}){const F=re(),i=s,b=E,e=ce(),_=k(()=>i.song.id==e.song.id),f=B(!1),q=()=>{i.song.favourite=!i.song.favourite,_e(i.song.id,i.song.favourite)},v=k(()=>i.playlistId==null?e.playlist.id:i.playlistId),P=async()=>{if(v.value=="track"){e.loadPlaylist("track",i.song.id);return}if(v.value=="artist"){await e.loadPlaylist("artist",i.artist),e.loadSong(null,i.index);return}if(v.value=="album"){await e.loadPlaylist("album",i.album),e.loadSong(null,i.index);return}e.loadSong(v.value,i.index)},N=B(null),A=()=>{N.value.show()},h=()=>{b("update")},O=k(()=>F.isSongDownloading(i.song.id));return(D,m)=>{const S=x("router-link");return r(),M(Be,{ref:"ctxMenu",liked:s.song.favourite,playlistId:v.value,song:s.song,onEdit:A,onLike:q,onUpdate:h},{default:o(()=>[t(we,{ref_key:"updatePopup",ref:N,song:s.song,onUpdate:m[0]||(m[0]=$=>D.$emit("update"))},null,8,["song"]),d("div",{class:T([{playing:_.value,selected:s.selected,hovering:f.value,withCover:s.withCover,withAlbum:s.withAlbum,withMore:s.withMore},"playlist-entry"]),onDblclick:P,onMouseenter:m[1]||(m[1]=$=>f.value=!0),onMouseleave:m[2]||(m[2]=$=>f.value=!1)},[O.value?(r(),g("div",Ee,[t(me)])):(r(),g("div",{key:1,class:T([{"material-symbols-rounded":f.value},"index text-right"]),onClick:P},C(f.value?"play_arrow":s.index+1),3)),s.withCover?(r(),g("div",Fe,[t(fe,{src:s.song.cover,type:"track"},null,8,["src"])])):I("",!0),d("div",Oe,[d("span",Te,[t(S,{to:`/track/${p(ve)(s.song.id)}`,class:"linkOnHover"},{default:o(()=>[t(L,{text:s.song.title},null,8,["text"])]),_:1},8,["to"])]),d("span",je,[t(ye,{artist:s.song.artist,class:"text-muted text-xs"},null,8,["artist"])])]),s.withAlbum&&!p(ge)?(r(),g("div",He,[t(S,{to:s.song.album.href,class:"linkOnHover"},{default:o(()=>[t(L,{text:s.song.album.name},null,8,["text"])]),_:1},8,["to"])])):I("",!0),s.selected||f.value||s.song.favourite?(r(),g("div",{key:4,class:T([{favourite:s.song.favourite},"favourite-icon icon text-right material-symbols-rounded"]),onClick:q},C(s.song.favourite?"favorite":"heart_plus"),3)):I("",!0),d("div",Le,C(p(pe)(s.song.duration)),1)],34)]),_:1},8,["liked","playlistId","song"])}}}),Ye=he(Ue,[["__scopeId","data-v-67cfb148"]]);export{Ye as P}; +import{e as U,j as W,D as k,n as B,f as x,ad as X,a3 as G,o as r,c as g,r as J,g as t,w as o,b as u,F as j,h as H,i as M,t as C,u as p,cN as Z,cO as ee,cP as te,d as I,ak as se,cQ as oe,a as d,ac as ne,N as ae,x as le,aE as ie,cR as de,af as ue,aH as re,a7 as ce,cS as me,Q as T,H as fe,M as L,A as ve,K as ye,cT as ge,aj as pe,cU as _e,_ as he}from"./index-DwIIj2B2.js";import{_ as we}from"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import{p as xe}from"./playerInPicture-Dfp9IAsf.js";const ke=d("span",{class:"material-symbols-rounded"},"preview",-1),be=d("span",{class:"material-symbols-rounded"},"search",-1),Se=d("span",{class:"material-symbols-rounded"},"queue_music",-1),$e=d("span",{class:"material-symbols-rounded"}," play_arrow ",-1),Ce=d("span",{class:"material-symbols-rounded"}," add_to_queue ",-1),qe=d("span",{class:"material-symbols-rounded"}," queue_play_next ",-1),Pe=d("span",{class:"material-symbols-rounded"},"delete",-1),Ne=d("span",{class:"material-symbols-rounded"},"playlist_add",-1),Ae=d("span",{class:"material-symbols-rounded"},"edit",-1),De=d("span",{class:"material-symbols-rounded"},"file_download",-1),Me=d("span",{class:"material-symbols-rounded"},"replay",-1),Ie=d("span",{class:"material-symbols-rounded"},"share",-1),Be=U({__name:"SongContext",props:{song:{type:Object,required:!0},playlistId:{type:String,required:!1,default:""}},emits:["update","edit"],setup(s,{expose:E,emit:F}){const i=W(),b=k(()=>i.playlists.filter(n=>n.type==="classic")),e=s,_=F,f=()=>{xe(e.song.artist,e.song.title,e.song.source)},q=k(()=>{var n;return((n=i.playlists.find(a=>a.id===e.playlistId))==null?void 0:n.type)!=="classic"}),v=async n=>{var a,l;await ne(n,e.song),ae.addSuccess(e.song.title,`Added to ${(a=b.value.find(y=>y.id==n))==null?void 0:a.name}`,3e3,void 0,(l=b.value.find(y=>y.id==n))==null?void 0:l.href),_("update")},P=async()=>{const n=await le("classic",e.song.title,e.song.artist,e.song.cover);await v(n),_("update")},N=async()=>{await ie(e.playlistId,e.song.id),_("update")},A=B(null),h=B(null),O=()=>{h.value.visible?D():m()},D=()=>{h.value.hide()},m=()=>{const n=A.value.getBoundingClientRect(),a={top:n.height+n.top+window.scrollY,left:n.width+n.left+window.scrollX};h.value.show(a)};E({show:m,toggle:O,hide:D});const S=k(()=>({Soundcloud:`https://soundcloud.com/search?q=${e.song.artist} ${e.song.title}`,Audius:`https://audius.co/search/${e.song.artist} ${e.song.title}`,"Youtube Music":`https://music.youtube.com/search?q=${e.song.artist} ${e.song.title}`,Spotify:`https://open.spotify.com/search/${e.song.artist} ${e.song.title}`})),$=()=>{_("edit")},V=n=>{window.open(S.value[n]),$()},R=()=>{const n=de(e.song);ue(n,`${e.song.artist} - ${e.song.title}`)};return(n,a)=>{const l=x("v-contextmenu-item"),y=x("v-contextmenu-submenu"),w=x("v-contextmenu-divider"),Q=x("v-context-menu-divider"),Y=x("v-contextmenu"),z=X("contextmenu");return G((r(),g("div",{ref_key:"box",ref:A},[J(n.$slots,"default"),t(Y,{ref_key:"contextmenu",ref:h},{default:o(()=>[t(l,{onClick:f},{default:o(()=>[ke,u(" Preview ")]),_:1}),t(l,null,{default:o(()=>[be,t(y,{title:"Find source"},{default:o(()=>[(r(!0),g(j,null,H(Object.keys(S.value),c=>(r(),M(l,{key:c,onClick:K=>V(c)},{default:o(()=>[u(C(c),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),t(w),t(l,null,{default:o(()=>[Se,t(y,{title:"Add to queue"},{default:o(()=>[t(l,{onClick:a[0]||(a[0]=()=>p(Z)(e.song.id))},{default:o(()=>[$e,u(" Play Now ")]),_:1}),t(l,{onClick:a[1]||(a[1]=()=>p(ee)(e.song.id))},{default:o(()=>[Ce,u(" Play Next ")]),_:1}),t(l,{onClick:a[2]||(a[2]=()=>p(te)(e.song.id))},{default:o(()=>[qe,u(" Play Last ")]),_:1})]),_:1})]),_:1}),t(w),t(Q),q.value?I("",!0):(r(),M(l,{key:0,onClick:N},{default:o(()=>[Pe,u(" Remove from this playlist ")]),_:1})),t(l,null,{default:o(()=>[Ne,t(y,{title:"Add to playlist"},{default:o(()=>[t(l,{onClick:P},{default:o(()=>[u(" Add to new playlist ")]),_:1}),t(w),(r(!0),g(j,null,H(b.value,c=>(r(),M(l,{key:c.id,onClick:K=>v(c.id)},{default:o(()=>[u(C(c.name),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),t(w),t(l,{onClick:$},{default:o(()=>[Ae,u(" Edit ")]),_:1}),t(w),t(l,{onClick:a[3]||(a[3]=c=>p(se)(s.song.id))},{default:o(()=>[De,u(" Download ")]),_:1}),t(l,{onClick:a[4]||(a[4]=c=>p(oe)(s.song.id))},{default:o(()=>[Me,u(" Uncache ")]),_:1}),t(w),t(l,null,{default:o(()=>[Ie,t(y,{title:"Export..."},{default:o(()=>[t(l,{onClick:a[5]||(a[5]=c=>R())},{default:o(()=>[u(" to file ")]),_:1})]),_:1})]),_:1})]),_:1},512)])),[[z,void 0,"contextmenu"]])}}}),Ee={key:0,class:"index text-right downloading"},Fe={key:2,class:"cover"},Oe={class:"artist-title"},Te={class:"title"},je={class:"artist"},He={key:3,class:"album"},Le={class:"duration text-center"},Ue=U({__name:"PlaylistEntry",props:{song:{type:Object,required:!0},index:{type:Number,required:!0},withCover:{type:Boolean,required:!1,default:!1},withAlbum:{type:Boolean,required:!1,default:!1},withMore:{type:Boolean,required:!1,default:!1},selected:{type:Boolean,required:!1,default:!1},playlistId:{type:String,required:!1,default:null},artist:{type:String,required:!1,default:null},album:{type:String,required:!1,default:null}},emits:["update"],setup(s,{emit:E}){const F=re(),i=s,b=E,e=ce(),_=k(()=>i.song.id==e.song.id),f=B(!1),q=()=>{i.song.favourite=!i.song.favourite,_e(i.song.id,i.song.favourite)},v=k(()=>i.playlistId==null?e.playlist.id:i.playlistId),P=async()=>{if(v.value=="track"){e.loadPlaylist("track",i.song.id);return}if(v.value=="artist"){await e.loadPlaylist("artist",i.artist),e.loadSong(null,i.index);return}if(v.value=="album"){await e.loadPlaylist("album",i.album),e.loadSong(null,i.index);return}e.loadSong(v.value,i.index)},N=B(null),A=()=>{N.value.show()},h=()=>{b("update")},O=k(()=>F.isSongDownloading(i.song.id));return(D,m)=>{const S=x("router-link");return r(),M(Be,{ref:"ctxMenu",liked:s.song.favourite,playlistId:v.value,song:s.song,onEdit:A,onLike:q,onUpdate:h},{default:o(()=>[t(we,{ref_key:"updatePopup",ref:N,song:s.song,onUpdate:m[0]||(m[0]=$=>D.$emit("update"))},null,8,["song"]),d("div",{class:T([{playing:_.value,selected:s.selected,hovering:f.value,withCover:s.withCover,withAlbum:s.withAlbum,withMore:s.withMore},"playlist-entry"]),onDblclick:P,onMouseenter:m[1]||(m[1]=$=>f.value=!0),onMouseleave:m[2]||(m[2]=$=>f.value=!1)},[O.value?(r(),g("div",Ee,[t(me)])):(r(),g("div",{key:1,class:T([{"material-symbols-rounded":f.value},"index text-right"]),onClick:P},C(f.value?"play_arrow":s.index+1),3)),s.withCover?(r(),g("div",Fe,[t(fe,{src:s.song.cover,type:"track"},null,8,["src"])])):I("",!0),d("div",Oe,[d("span",Te,[t(S,{to:`/track/${p(ve)(s.song.id)}`,class:"linkOnHover"},{default:o(()=>[t(L,{text:s.song.title},null,8,["text"])]),_:1},8,["to"])]),d("span",je,[t(ye,{artist:s.song.artist,class:"text-muted text-xs"},null,8,["artist"])])]),s.withAlbum&&!p(ge)?(r(),g("div",He,[t(S,{to:s.song.album.href,class:"linkOnHover"},{default:o(()=>[t(L,{text:s.song.album.name},null,8,["text"])]),_:1},8,["to"])])):I("",!0),s.selected||f.value||s.song.favourite?(r(),g("div",{key:4,class:T([{favourite:s.song.favourite},"favourite-icon icon text-right material-symbols-rounded"]),onClick:q},C(s.song.favourite?"favorite":"heart_plus"),3)):I("",!0),d("div",Le,C(p(pe)(s.song.duration)),1)],34)]),_:1},8,["liked","playlistId","song"])}}}),Ye=he(Ue,[["__scopeId","data-v-67cfb148"]]);export{Ye as P}; diff --git a/src/ui/dist/assets/PlaylistEntry-oyklgbh5.js.gz b/src/ui/dist/assets/PlaylistEntry-oyklgbh5.js.gz new file mode 100644 index 00000000..c8c6917a Binary files /dev/null and b/src/ui/dist/assets/PlaylistEntry-oyklgbh5.js.gz differ diff --git a/src/ui/dist/assets/Sports-Biicqdtn.js b/src/ui/dist/assets/Sports-2rU2UkOg.js similarity index 97% rename from src/ui/dist/assets/Sports-Biicqdtn.js rename to src/ui/dist/assets/Sports-2rU2UkOg.js index 6ae749c2..0abf36ab 100644 --- a/src/ui/dist/assets/Sports-Biicqdtn.js +++ b/src/ui/dist/assets/Sports-2rU2UkOg.js @@ -1 +1 @@ -import{F as D}from"./FullShelf-LmwXLqci.js";import{_ as C,C as x,f as w,o as p,i as v,w as M,a as r,t as f,Q as A,$ as N,N as F,c as m,g as V,F as S,h as y,d as B,l as O,m as j}from"./index-K4QaY0Na.js";const H={name:"FootballItem",components:{Card:x},methods:{redirect(){window.open(this.oref)},remove(e){e.stopPropagation(),this.$emit("remove")}},props:{result:String,date:String,competition:String,href:String,oref:String,team1:String,team2:String,progress:String}},L={class:"wrapper topalign"},b={class:"wrapper"},J=["innerHTML"],P=["innerHTML"],U=["innerHTML"],W={class:"wrapper bottomalign"},$={class:"small"};function E(e,s,t,c,n,o){const u=w("Card");return p(),v(u,{class:"itemBig","with-hover":""},{default:M(()=>{var h;return[r("div",{class:"item",onClick:s[1]||(s[1]=(...i)=>o.redirect&&o.redirect(...i))},[r("div",L,[r("p",null,f(t.competition),1),r("p",{class:A([{accent:(h=t.progress)==null?void 0:h.includes("'")},"right progress"])},f(t.progress),3)]),r("div",b,[r("p",{class:"team",innerHTML:t.team1},null,8,J),r("h4",{class:"result",innerHTML:t.result},null,8,P),r("p",{class:"team",innerHTML:t.team2},null,8,U)]),r("div",W,[r("p",$,f(t.date)+", "+f(t.href),1),r("span",{class:"deleteIcon small material-icons-round",onClick:s[0]||(s[0]=(...i)=>o.remove&&o.remove(...i))},"clear")])])]}),_:1})}const K=C(H,[["render",E],["__scopeId","data-v-51368764"]]),R={components:{TextInputWithIcon:N,FullShelf:D,FootballItem:K},name:"Sports",data(){return{sports:[],watchMatches:[],sourceToAdd:"",supportedSources:["https://onefootball.com/en/team/","https://onefootball.com/en/match/","https://onefootball.com/en/competition/","https://www.cev.eu/match-centres/","https://championsleague.cev.eu/en/match-centres/","https://www.cev.eu/calendar/","https://cev-nex.tk/#/match/","https://cevnex.tk/#/match/"]}},mounted(){this.watchMatches=JSON.parse(window.localStorage.getItem("sports.watchMatches"))||[],this.updateMatches()},computed:{volleyMatches(){return this.watchMatches.filter(e=>e.includes("cev")).map(e=>{let s=e;return e.includes("nex.tk")&&(s=e.split("/match/")[1]),{src:s,ref:e}})},notVolleyMatches(){return this.watchMatches.filter(e=>!e.includes("cev"))}},methods:{removeSource(e,s,t){this.watchMatches.splice(this.watchMatches.indexOf(e),1),this.sports[s].items.splice(t,1),window.localStorage.setItem("sports.watchMatches",JSON.stringify(this.watchMatches))},removeSourceD(e){this.watchMatches.splice(this.watchMatches.indexOf(e),1),window.localStorage.setItem("sports.watchMatches",JSON.stringify(this.watchMatches))},tryAddSource(){for(const e of this.supportedSources)if(this.sourceToAdd.startsWith(e)){this.addSource();return}F.addError("unsupported source")},addSource(){this.watchMatches.push(this.sourceToAdd),window.localStorage.setItem("sports.watchMatches",JSON.stringify(this.watchMatches)),this.sourceToAdd=""},updateMatches(){(this.$route.path=="/sports"||this.$route.path=="/sports/")&&(fetch("/api/sports",{method:"POST",body:JSON.stringify({urls:this.notVolleyMatches})}).then(e=>e.json()).then(e=>{this.sports=[];for(const s of e){const t=this.sports.findIndex(c=>c.sport==s.sport);t>=0?this.sports[t].items.push(s):this.sports.push({sport:s.sport,icon:s.sportIcon,items:[s]})}for(const s of this.sports)s.items.sort((t,c)=>{if(t.progress=t.progress.replace("Half time","45'"),c.progress=c.progress.replace("Half time","45'"),(t.progress.includes("Pens")||t.progress.includes("N/A"))&&(t.progress="Full time"),(c.progress.includes("Pens")||c.progress.includes("N/A"))&&(c.progress="Full time"),t.progress.includes("'")&&!c.progress.includes("'"))return-1;if(!t.progress.includes("'")&&c.progress.includes("'"))return 1;if(t.progress.includes("'")&&c.progress.includes("'")){const _=Number(t.progress.replace("'","").replace("+","")),k=Number(c.progress.replace("'","").replace("+",""));return __.toISOString().split("T")[0];n=n.replace("Today",a(i)).split("/").reverse().join("-"),n=n.replace("Tomorrow",a(l)).split("/").reverse().join("-"),n=n.replace("Yesterday",a(d)).split("/").reverse().join("-"),o=o.replace("Today",a(i)).split("/").reverse().join("-"),o=o.replace("Tomorrow",a(l)).split("/").reverse().join("-"),o=o.replace("Yesterday",a(d)).split("/").reverse().join("-");let g=new Date(`${n}T${u}`.replace(" ","")),I=new Date(`${o}T${h}`.replace(" ",""));return g>I?-1:g==I?0:1})}),setTimeout(this.updateMatches,1e3*45))}}},T=e=>(O("data-v-e7921c74"),e=e(),j(),e),Y={class:"news"},z=T(()=>r("div",{class:"padding-20"},[r("h1",null,"Sports")],-1)),Q=T(()=>r("hr",null,null,-1)),q={class:"padding-20"},G={class:"small"},X={class:"addWrapper"},Z=T(()=>r("hr",null,null,-1)),ee=["src"],te=["onClick"];function se(e,s,t,c,n,o){const u=w("TextInputWithIcon"),h=w("football-item"),i=w("full-shelf");return p(),m("div",Y,[z,Q,r("div",q,[r("p",G," Supported urls: "+f(n.supportedSources.join("*, ")),1),r("div",X,[V(u,{modelValue:n.sourceToAdd,"onUpdate:modelValue":s[0]||(s[0]=l=>n.sourceToAdd=l),icon:"link",onKeyup:e.enterText},null,8,["modelValue","onKeyup"]),r("span",{id:"addToPlaylist",class:"material-icons-outlined",onClick:s[1]||(s[1]=(...l)=>o.tryAddSource&&o.tryAddSource(...l))},"add_circle")]),Z,(p(!0),m(S,null,y(n.sports,(l,d)=>(p(),v(i,{key:l.sport,heading:l.sport,icon:l.icon},{default:M(()=>[(p(!0),m(S,null,y(l.items,(a,g)=>(p(),v(h,{key:a.href,competition:a.competition,date:a.date,href:a.href,oref:a.oref,progress:a.progress,result:a.result,team1:a.team1,team2:a.team2,onRemove:()=>o.removeSource(a.sref,d,g)},null,8,["competition","date","href","oref","progress","result","team1","team2","onRemove"]))),128))]),_:2},1032,["heading","icon"]))),128)),o.volleyMatches.length?(p(),v(i,{key:0,heading:"Volleyball",icon:"sports_volleyball"},{default:M(()=>[(p(!0),m(S,null,y(o.volleyMatches,(l,d)=>(p(),m("div",{key:d,class:"wrapIframe"},[r("iframe",{src:`https://cev-nex.tk/#/embed?match=${l.src}`},null,8,ee),r("span",{class:"deleteIcon small material-symbols-rounded",onClick:()=>o.removeSourceD(l.ref)},"clear",8,te)]))),128))]),_:1})):B("",!0)])])}const ae=C(R,[["render",se],["__scopeId","data-v-e7921c74"]]);export{ae as default}; +import{F as D}from"./FullShelf-NKKvCiyP.js";import{_ as C,C as x,f as w,o as p,i as v,w as M,a as r,t as f,Q as A,$ as N,N as F,c as m,g as V,F as S,h as y,d as B,l as O,m as j}from"./index-DwIIj2B2.js";const H={name:"FootballItem",components:{Card:x},methods:{redirect(){window.open(this.oref)},remove(e){e.stopPropagation(),this.$emit("remove")}},props:{result:String,date:String,competition:String,href:String,oref:String,team1:String,team2:String,progress:String}},L={class:"wrapper topalign"},b={class:"wrapper"},J=["innerHTML"],P=["innerHTML"],U=["innerHTML"],W={class:"wrapper bottomalign"},$={class:"small"};function E(e,s,t,c,n,o){const u=w("Card");return p(),v(u,{class:"itemBig","with-hover":""},{default:M(()=>{var h;return[r("div",{class:"item",onClick:s[1]||(s[1]=(...i)=>o.redirect&&o.redirect(...i))},[r("div",L,[r("p",null,f(t.competition),1),r("p",{class:A([{accent:(h=t.progress)==null?void 0:h.includes("'")},"right progress"])},f(t.progress),3)]),r("div",b,[r("p",{class:"team",innerHTML:t.team1},null,8,J),r("h4",{class:"result",innerHTML:t.result},null,8,P),r("p",{class:"team",innerHTML:t.team2},null,8,U)]),r("div",W,[r("p",$,f(t.date)+", "+f(t.href),1),r("span",{class:"deleteIcon small material-icons-round",onClick:s[0]||(s[0]=(...i)=>o.remove&&o.remove(...i))},"clear")])])]}),_:1})}const K=C(H,[["render",E],["__scopeId","data-v-51368764"]]),R={components:{TextInputWithIcon:N,FullShelf:D,FootballItem:K},name:"Sports",data(){return{sports:[],watchMatches:[],sourceToAdd:"",supportedSources:["https://onefootball.com/en/team/","https://onefootball.com/en/match/","https://onefootball.com/en/competition/","https://www.cev.eu/match-centres/","https://championsleague.cev.eu/en/match-centres/","https://www.cev.eu/calendar/","https://cev-nex.tk/#/match/","https://cevnex.tk/#/match/"]}},mounted(){this.watchMatches=JSON.parse(window.localStorage.getItem("sports.watchMatches"))||[],this.updateMatches()},computed:{volleyMatches(){return this.watchMatches.filter(e=>e.includes("cev")).map(e=>{let s=e;return e.includes("nex.tk")&&(s=e.split("/match/")[1]),{src:s,ref:e}})},notVolleyMatches(){return this.watchMatches.filter(e=>!e.includes("cev"))}},methods:{removeSource(e,s,t){this.watchMatches.splice(this.watchMatches.indexOf(e),1),this.sports[s].items.splice(t,1),window.localStorage.setItem("sports.watchMatches",JSON.stringify(this.watchMatches))},removeSourceD(e){this.watchMatches.splice(this.watchMatches.indexOf(e),1),window.localStorage.setItem("sports.watchMatches",JSON.stringify(this.watchMatches))},tryAddSource(){for(const e of this.supportedSources)if(this.sourceToAdd.startsWith(e)){this.addSource();return}F.addError("unsupported source")},addSource(){this.watchMatches.push(this.sourceToAdd),window.localStorage.setItem("sports.watchMatches",JSON.stringify(this.watchMatches)),this.sourceToAdd=""},updateMatches(){(this.$route.path=="/sports"||this.$route.path=="/sports/")&&(fetch("/api/sports",{method:"POST",body:JSON.stringify({urls:this.notVolleyMatches})}).then(e=>e.json()).then(e=>{this.sports=[];for(const s of e){const t=this.sports.findIndex(c=>c.sport==s.sport);t>=0?this.sports[t].items.push(s):this.sports.push({sport:s.sport,icon:s.sportIcon,items:[s]})}for(const s of this.sports)s.items.sort((t,c)=>{if(t.progress=t.progress.replace("Half time","45'"),c.progress=c.progress.replace("Half time","45'"),(t.progress.includes("Pens")||t.progress.includes("N/A"))&&(t.progress="Full time"),(c.progress.includes("Pens")||c.progress.includes("N/A"))&&(c.progress="Full time"),t.progress.includes("'")&&!c.progress.includes("'"))return-1;if(!t.progress.includes("'")&&c.progress.includes("'"))return 1;if(t.progress.includes("'")&&c.progress.includes("'")){const _=Number(t.progress.replace("'","").replace("+","")),k=Number(c.progress.replace("'","").replace("+",""));return __.toISOString().split("T")[0];n=n.replace("Today",a(i)).split("/").reverse().join("-"),n=n.replace("Tomorrow",a(l)).split("/").reverse().join("-"),n=n.replace("Yesterday",a(d)).split("/").reverse().join("-"),o=o.replace("Today",a(i)).split("/").reverse().join("-"),o=o.replace("Tomorrow",a(l)).split("/").reverse().join("-"),o=o.replace("Yesterday",a(d)).split("/").reverse().join("-");let g=new Date(`${n}T${u}`.replace(" ","")),I=new Date(`${o}T${h}`.replace(" ",""));return g>I?-1:g==I?0:1})}),setTimeout(this.updateMatches,1e3*45))}}},T=e=>(O("data-v-e7921c74"),e=e(),j(),e),Y={class:"news"},z=T(()=>r("div",{class:"padding-20"},[r("h1",null,"Sports")],-1)),Q=T(()=>r("hr",null,null,-1)),q={class:"padding-20"},G={class:"small"},X={class:"addWrapper"},Z=T(()=>r("hr",null,null,-1)),ee=["src"],te=["onClick"];function se(e,s,t,c,n,o){const u=w("TextInputWithIcon"),h=w("football-item"),i=w("full-shelf");return p(),m("div",Y,[z,Q,r("div",q,[r("p",G," Supported urls: "+f(n.supportedSources.join("*, ")),1),r("div",X,[V(u,{modelValue:n.sourceToAdd,"onUpdate:modelValue":s[0]||(s[0]=l=>n.sourceToAdd=l),icon:"link",onKeyup:e.enterText},null,8,["modelValue","onKeyup"]),r("span",{id:"addToPlaylist",class:"material-icons-outlined",onClick:s[1]||(s[1]=(...l)=>o.tryAddSource&&o.tryAddSource(...l))},"add_circle")]),Z,(p(!0),m(S,null,y(n.sports,(l,d)=>(p(),v(i,{key:l.sport,heading:l.sport,icon:l.icon},{default:M(()=>[(p(!0),m(S,null,y(l.items,(a,g)=>(p(),v(h,{key:a.href,competition:a.competition,date:a.date,href:a.href,oref:a.oref,progress:a.progress,result:a.result,team1:a.team1,team2:a.team2,onRemove:()=>o.removeSource(a.sref,d,g)},null,8,["competition","date","href","oref","progress","result","team1","team2","onRemove"]))),128))]),_:2},1032,["heading","icon"]))),128)),o.volleyMatches.length?(p(),v(i,{key:0,heading:"Volleyball",icon:"sports_volleyball"},{default:M(()=>[(p(!0),m(S,null,y(o.volleyMatches,(l,d)=>(p(),m("div",{key:d,class:"wrapIframe"},[r("iframe",{src:`https://cev-nex.tk/#/embed?match=${l.src}`},null,8,ee),r("span",{class:"deleteIcon small material-symbols-rounded",onClick:()=>o.removeSourceD(l.ref)},"clear",8,te)]))),128))]),_:1})):B("",!0)])])}const ae=C(R,[["render",se],["__scopeId","data-v-e7921c74"]]);export{ae as default}; diff --git a/src/ui/dist/assets/Sports-2rU2UkOg.js.gz b/src/ui/dist/assets/Sports-2rU2UkOg.js.gz new file mode 100644 index 00000000..0fefdb0f Binary files /dev/null and b/src/ui/dist/assets/Sports-2rU2UkOg.js.gz differ diff --git a/src/ui/dist/assets/Sports-Biicqdtn.js.gz b/src/ui/dist/assets/Sports-Biicqdtn.js.gz deleted file mode 100644 index b4977931..00000000 Binary files a/src/ui/dist/assets/Sports-Biicqdtn.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Template-BJ9qkRi1.js.gz b/src/ui/dist/assets/Template-BJ9qkRi1.js.gz deleted file mode 100644 index 827d85d9..00000000 Binary files a/src/ui/dist/assets/Template-BJ9qkRi1.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Template-BJ9qkRi1.js b/src/ui/dist/assets/Template-CpDXJr_0.js similarity index 98% rename from src/ui/dist/assets/Template-BJ9qkRi1.js rename to src/ui/dist/assets/Template-CpDXJr_0.js index 6ce765c0..d9dc6c01 100644 --- a/src/ui/dist/assets/Template-BJ9qkRi1.js +++ b/src/ui/dist/assets/Template-CpDXJr_0.js @@ -1 +1 @@ -import{e as H,n as g,E as N,D as F,y as ee,a2 as be,o as m,c as b,r as ue,a3 as Y,a4 as ke,O as j,a5 as le,Q as K,R as ce,_ as G,a as p,t as O,d as S,F as W,h as ae,b as L,i as A,a6 as $e,a7 as de,a8 as pe,g as x,P as ve,z as Ce,B as Pe,a9 as Se,w as V,v as Ve,aa as me,A as Ie,ab as Me,ac as Te,u as E,I as se,j as te,q as ye,f as Q,ad as fe,a1 as Oe,ae as oe,af as qe,H as Fe,C as ne,$ as Ae,Z as De,ag as ie,l as he,m as _e,ah as Ue}from"./index-K4QaY0Na.js";import{P as Be}from"./PlaylistEntry-9wUfG8hQ.js";import{d as Ee}from"./vuedraggable.umd-YqWWrJTC.js";import{F as Z}from"./FactCard-BZwd6pEI.js";import{G as He}from"./gistClient-ZdZsfTR6.js";import{M as Le,_ as Ne}from"./Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js";const Re=t=>{const{search:f,artist:a,title:n,album:e,order:y,sort:i}=t;return(f==null?void 0:f.length)||(a==null?void 0:a.length)||(n==null?void 0:n.length)||(e==null?void 0:e.length)||y!="asc"||i!="index"},je=(t,f)=>{const{search:a,artist:n,title:e,album:y,sort:i}=f;return t.map(h=>{const s=a!=null&&a.length?h.title.toLowerCase().includes(a.toLowerCase())||h.artist.toLowerCase().includes(a.toLowerCase()):!0,_=n!=null&&n.length?n.includes(h.artist):!0,c=e!=null&&e.length?e.includes(h.title):!0,l=y!=null&&y.length?y.includes(h.album.name):!0;return{...h,show:s&&_&&c&&l,index:t.indexOf(h)}}).sort((h,s)=>{const _=h[i],c=s[i];return _c?1:0})},ze=t=>t.map(f=>({label:f.title,value:f.title})),Ge=t=>t.map(f=>({label:f.album.name,value:f.album.name})),We=t=>{const f=new Set;for(const a of t)for(const n of a.artist.split(", "))f.add(n);return Array.from(f).sort().map(a=>({label:a,value:a}))},Ye=["placeholder"],Ke=H({__name:"EditableText",props:{modelValue:{type:String,required:!0},locked:{type:Boolean,default:!1},noOutline:{type:Boolean,default:!1},placeholder:{type:String,default:"Click to edit"}},emits:["update:modelValue","change"],setup(t,{emit:f}){const a=t,n=g(a.modelValue);N(()=>a.modelValue,l=>n.value=l);const e=g(!1),y=f,i=g(null),h=()=>{a.locked||(e.value=!0,ce(()=>{i.value&&i.value.focus()}))},s=F(()=>a.locked?!0:e.value?!1:n.value),_=l=>{n.value=l,y("change",l),y("update:modelValue",l)},c=()=>{i.value&&(i.value.style.height="auto",i.value.style.height=i.value.scrollHeight+"px")};return ee(()=>c()),be(()=>{e.value&&c()}),(l,o)=>(m(),b("div",{class:K(["editable-text",{outlined:!t.noOutline&&e.value}]),onDblclick:j(h,["stop"])},[s.value?ue(l.$slots,"default",{key:0},void 0,!0):Y((m(),b("textarea",{key:1,ref_key:"area",ref:i,rows:"1","onUpdate:modelValue":o[0]||(o[0]=r=>n.value=r),onChange:o[1]||(o[1]=r=>_(r.target.value)),onInput:o[2]||(o[2]=r=>c()),onClick:o[3]||(o[3]=j(r=>e.value=!0,["stop"])),onKeydown:[o[4]||(o[4]=le(r=>e.value=!1,["enter"])),o[5]||(o[5]=le(r=>e.value=!1,["esc"]))],onBlur:o[6]||(o[6]=r=>e.value=!1),placeholder:t.placeholder},null,40,Ye)),[[ke,n.value]])],34))}}),re=G(Ke,[["__scopeId","data-v-f05f8e35"]]),Xe={class:"flex flex-row gap-2 items-center overflow-hidden"},Qe={key:0,class:"material-symbols-rounded ms-wght-200"},Ze={class:"selected-labels"},Je=["onClick"],et={class:"material-symbols-rounded"},tt=["onClick"],lt={class:"material-symbols-rounded"},at={key:0,class:"material-symbols-rounded"},st=H({__name:"MultiSelect",props:{modelValue:{type:Array,required:!0},options:{type:Array,required:!0},icon:{type:String,required:!1}},emits:["update:modelValue"],setup(t,{emit:f}){const a=t,n=g(a.modelValue),e=g(!1),y=f;N(a,c=>{n.value=c.modelValue},{deep:!0});const i=c=>{n.value.includes(c)?n.value=n.value.filter(l=>l!=c):n.value.push(c),y("update:modelValue",n.value),e.value=!1},h=F(()=>{const c=[];for(const l of n.value){const o=a.options.find(r=>r.value==l);o&&c.push(o.label)}return c}),s=g(null),_=g(null);return N(e,c=>{ce(()=>{if(c){const l=s.value.getBoundingClientRect(),o=_.value.getBoundingClientRect(),r=o.top,d=o.bottom,v=window.innerHeight-d,k=o.width;s.value.style.width=k+"px",s.value.style.left=o.left+"px",v>l.height?(s.value.style.top=d+"px",s.value.style.bottom="auto"):(s.value.style.top="auto",s.value.style.bottom=r-l.height+"px")}})}),window.addEventListener("click",()=>{e.value=!1}),(c,l)=>(m(),b("div",{ref_key:"container",ref:_,class:"dropdown"},[p("div",{class:K([{expanded:e.value},"dropdown__selected"]),onClick:l[0]||(l[0]=j(o=>e.value=!e.value,["stop"]))},[p("div",Xe,[t.icon?(m(),b("span",Qe,O(t.icon),1)):S("",!0),p("div",Ze,[(m(!0),b(W,null,ae(h.value,o=>(m(),b("span",{key:o,class:"selected-label"},[L(O(o)+" ",1),p("i",{class:"material-symbols-rounded",onClick:r=>i(o)}," close ",8,Je)]))),128))])]),p("i",et,O(e.value?"expand_less":"expand_more"),1)],2),(m(),A($e,{to:"#dropdown-target"},[e.value?(m(),b("div",{key:0,ref_key:"trueDropdown",ref:s,class:"dropdown__options"},[(m(!0),b(W,null,ae(t.options,o=>(m(),b("div",{key:o.value,class:"dropdown__option",onClick:j(r=>i(o.value),["stop"])},[p("span",lt,O(o.icon),1),p("span",null,O(o.label),1),n.value.includes(o.value)?(m(),b("span",at,"check")):S("",!0)],8,tt))),128))],512)):S("",!0)]))],512))}}),J=G(st,[["__scopeId","data-v-8ec711b9"]]),ot={class:"upperWrapper"},nt={class:"font-black"},it={class:"padding-20 darkback"},rt=H({__name:"FixedPlaylistHeader",props:{accentColour:{type:String},playlist:{type:Object,required:!0}},setup(t){const f=de(),a=t,n=F(()=>f.playlistPlayOrPauseIcon(a.playlist.id));return(e,y)=>(m(),b("div",{class:"fixedPlaylistHeader",style:Ce({"--colour":t.accentColour})},[t.playlist.cover?(m(),A(pe,{key:0,src:t.playlist.cover},null,8,["src"])):S("",!0),p("div",ot,[p("span",{id:"loadPlaylist",class:"material-symbols-rounded hideIfMobile ms-fill",onClick:y[0]||(y[0]=i=>this.$emit("loadPlaylist"))},O(n.value),1),p("h3",nt,O(t.playlist.name),1)]),p("div",it,[x(ve,{class:"fixedHeader hideIfMobile","with-album":"","with-more":""})])],4))}}),ut=G(rt,[["__scopeId","data-v-34ec84ab"]]),ct=H({__name:"AddNewSong",emits:["update","close"],setup(t,{expose:f,emit:a}){const n=Pe(),e=a,y={title:"",artist:"",artists:[],album:"",cover:"",source:"",href:""},i=async(r,d)=>{const v=Ie(String(new Date().getTime())),k=new FormData,U="."+d.name.split(".").pop();var P=d.slice(0,d.size,d.type),$=new File([P],v+U,{type:d.type});return k.append("file",$),await(await fetch(r,{method:"POST",body:k})).text()},h=g(null),s=g([{name:"source",type:"upload",accept:"audio/mp3",required:!0,onUpload:r=>{i("/api/config/tracks",r).then(d=>s.value.find(v=>v.name=="source").value=d)},onChange:async r=>{const d=await Se(r);s.value.find(v=>v.name==="title").value=d.title,s.value.find(v=>v.name==="artist").value=d.artist,s.value.find(v=>v.name==="album").value=d.album,s.value.find(v=>v.name==="cover").value=d.cover,s.value.find(v=>v.name==="source").value=d.source,h.value=d.track.metadata},value:y.source},{name:"title",type:"text",icon:"title",required:!0,value:y.title},{name:"artist",type:"text",icon:"person",required:!0,value:y.artist},{name:"album",type:"text",icon:"album",value:y.album},{name:"cover",type:"upload",accept:"image/*",imagePreview:!0,value:y.cover,onUpload:r=>{i("/api/config/images",r).then(d=>s.value.find(v=>v.name=="cover").value=d)}}]),_=g(null),c=g(null),l=async()=>{if(_.value.show(),!navigator.clipboard)return;const r=await navigator.clipboard.readText();if(!Me(r))return;const d=s.value.find(v=>v.name==="source");d.value=r,d.onChange(r)},o=async r=>{const d=n.params.id;await Te(d,{...c.value.toObject(),metadata:h.value}),e("update")};return f({show:l,options:s}),(r,d)=>(m(),A(me,{ref_key:"modal",ref:_,submit:{label:"Add",icon:"add"},name:"Add Song",onClose:d[0]||(d[0]=v=>r.$emit("close")),onSubmit:o},{default:V(()=>[x(Ve,{ref_key:"form",ref:c,options:s.value},null,8,["options"])]),_:1},512))}}),dt=["innerHTML"],pt={class:"buttons w-full justify-end flex gap-2"},vt=H({__name:"Confirmation",props:{title:{type:String,required:!0},question:{type:String,required:!0},closeOnNo:{type:Boolean,required:!1,default:!0}},emits:["close","update","yes","no"],setup(t,{expose:f,emit:a}){const n=t,e=a,y=g(null),i=new Le;f({show:()=>{y.value.show()}});const s=()=>{n.closeOnNo&&y.value.hide(),e("no")};return(_,c)=>(m(),A(me,{ref_key:"modal",ref:y,name:t.title,onClose:c[1]||(c[1]=l=>_.$emit("close"))},{default:V(()=>[p("div",{class:"overflow-hidden",innerHTML:E(i).render(t.question)},null,8,dt),p("div",pt,[x(se,{type:"success",icon:"check",label:"Yes",onClick:c[0]||(c[0]=l=>_.$emit("yes"))}),x(se,{type:"danger",icon:"close",label:"No",onClick:s})])]),_:1},8,["name"]))}}),mt=p("span",{class:"material-symbols-rounded"},"edit",-1),yt=p("span",{class:"material-symbols-rounded"},"delete",-1),ft=p("span",{class:"material-symbols-rounded"},"share",-1),ht=H({__name:"PlaylistContext",props:{playlist:{type:Object,required:!0},canEdit:{type:Boolean,required:!1,default:!1}},setup(t,{expose:f}){const a=t,n=te(),e=ye(),y=g(null),i=g(null),h=g(""),s=g(null),_=g(null),c=g(""),l=g(""),o=($=null)=>{i.value.visible?r():d($)},r=()=>{i.value.hide()},d=($=null)=>{const T=y.value.getBoundingClientRect();if($){i.value.show({top:$.clientY,left:$.clientX});return}const I={top:T.height+T.top+window.scrollY,left:T.width+T.left+window.scrollX};i.value.show(I)};f({show:d,toggle:o,hide:r});const v=()=>{e.push(`/playlist/${a.playlist.id}/edit`)},k=async()=>{await Oe(a.playlist.id),await n.fetchPlaylists(),e.push("/")},U=async()=>{const $=await oe(a.playlist);qe($,a.playlist.name)},P=async()=>{const $=await oe(a.playlist),T=`${a.playlist.name}.one.playlist`,I=await He.save({[T]:$},a.playlist.name,!0),R=I.files[T].raw_url,C=I.id,u=I.owner.login,D=R.split("/raw/")[1].split("/")[0],q=`gist:${u}:${C}:${D}`,M=btoa(q);h.value=`http://localhost:1234/import/${M}`,l.value=`Share this URL to import this playlist on another device: [${h.value}](${h.value})`,c.value="Share "+a.playlist.name,s.value.show()};return ee(()=>{document.addEventListener("click",r)}),($,T)=>{const I=Q("v-contextmenu-item"),z=Q("v-contextmenu-submenu"),R=Q("v-contextmenu"),C=fe("contextmenu");return Y((m(),b("div",{ref_key:"box",ref:y},[ue($.$slots,"default"),x(Ne,{ref_key:"markdownRef",ref:s,title:c.value,content:l.value,onClose:r},null,8,["title","content"]),x(vt,{ref_key:"confirmation",ref:_,title:"Delete Playlist",question:"Are you sure you want to delete this playlist?",onYes:k,onNo:r,"close-on-no":""},null,512),x(R,{ref_key:"contextmenu",ref:i},{default:V(()=>[t.canEdit?(m(),A(I,{key:0,onClick:v},{default:V(()=>[mt,L(" Edit ")]),_:1})):S("",!0),x(I,{onClick:T[0]||(T[0]=u=>_.value.show())},{default:V(()=>[yt,L(" Delete ")]),_:1}),x(I,null,{default:V(()=>[ft,x(z,{title:"Export..."},{default:V(()=>[x(I,{onClick:U},{default:V(()=>[L(" to file ")]),_:1}),x(I,{onClick:P},{default:V(()=>[L(" to GitHub Gists ")]),_:1})]),_:1})]),_:1})]),_:1},512)])),[[C,void 0,"contextmenu"]])}}}),ge=t=>(he("data-v-b4875daf"),t=t(),_e(),t),_t={class:"upper relative"},gt={class:"track__info__details"},wt={class:"trac__info__details__normal"},xt={key:0,class:"flex flex-row items-center gap-2 playlist-type"},bt={class:"material-symbols-rounded"},kt={class:"flex flew-row items-center"},$t={class:"font-black text-5xl ml-4 w-full flex-1"},Ct={class:"text-muted"},Pt={class:"features flex flex-row gap-4 pt-4 pb-2 overflow-x-auto"},St=ge(()=>p("span",{class:"text-muted"},"Add a song",-1)),Vt=ge(()=>p("span",{class:"text-muted"},"More...",-1)),It={key:0,class:"filters relative overflow-clip"},Mt=H({__name:"PlaylistMeta",props:{playlist:{type:Object,required:!1},coverIcon:{type:String,required:!0}},setup(t,{expose:f}){var z,R;const a=t,n=g(),e=F(()=>a.playlist),y=g(!0);ye();const i=de(),h=te(),s=g(((z=e.value)==null?void 0:z.name.trim())??""),_=g(((R=e.value)==null?void 0:R.description.trim())??""),c=()=>({sort:"index",order:"asc",search:"",title:[],artist:[],album:[]}),l=g(null),o=()=>{l.value={...c()}};o(),f({songFilters:l}),N(()=>e.value,()=>{var C,u;s.value=((C=e.value)==null?void 0:C.name.trim())??"",_.value=((u=e.value)==null?void 0:u.description.trim())??""}),N([s,_],()=>{var u,D;if(s.value===((u=e.value)==null?void 0:u.name)&&_.value===((D=e.value)==null?void 0:D.description))return;const C={...e.value,name:s.value,description:_.value};ie(C),h.fetchPlaylists(e.value.id)});const r=(C,u)=>{y.value=C},d=F(()=>e.value.type==="classic"),v=F(()=>["smart"].includes(e.value.type)),k=[{value:"title",label:"Title",icon:"title"},{value:"artist",label:"Artist",icon:"person"},{value:"album",label:"Album",icon:"album"},{value:"duration",label:"Duration",icon:"timer"},{value:"index",label:"Added",icon:"date_range"}],U=F(()=>{let C=0,u=!1;if(!e.value.songs.length)return"N/A";for(const B of e.value.songs){u=u||B.duration<=0;const X=B.duration<=0?3*60:B.duration;C+=X}const D=C,q=Math.floor(D/60),M=Math.floor(q/60),w=u?"about ":"";return M?w+`${M} hr ${q-M*60} min`:q?w+`${q} min ${D-q*60} sec`:w+C+" sec"}),P=g(null),$=async C=>{const D=await(async(q,M)=>{const w=new FormData,B="."+M.name.split(".").pop();var X=M.slice(0,M.size,M.type),xe=new File([X],a.playlist.name+B,{type:M.type});return w.append("file",xe),await(await fetch(q,{method:"POST",body:w})).text()})("/api/config/images",P.value.files[0]);ie({...e.value,cover:D})},T=F(()=>i.playlistPlayOrPauseIcon(e.value.id)),I=()=>{i.playlistId===e.value.id?i.playPause():i.loadPlaylist(e.value.id)};return(C,u)=>{const D=fe("observe-visibility");return m(),A(ht,{ref_key:"contextmenu",ref:n,playlist:e.value,"can-edit":v.value},{default:V(()=>{var q,M;return[e.value?(m(),A(ut,{key:0,ref:"fixedHeading",class:K({hidden:y.value}),playlist:e.value,onLoadPlaylist:I},null,8,["class","playlist"])):S("",!0),x(ct,{ref:"addSongPopup",onUpdate:u[0]||(u[0]=w=>E(h).fetchPlaylists())},null,512),Y((m(),b("div",_t,[x(Fe,{placeholder:t.coverIcon,src:e.value.cover,class:"cover rounded-xl",type:"playlist",name:e.value.name,onClick:u[1]||(u[1]=w=>{var B;return(B=P.value)==null?void 0:B.click()})},null,8,["placeholder","src","name"]),v.value?S("",!0):(m(),b("input",{key:0,ref_key:"imgUpload",ref:P,type:"file",accept:"image/*",class:"hidden",onChange:$},null,544)),p("div",gt,[p("div",wt,[e.value.type!="classic"?(m(),b("div",xt,[p("span",bt,O(e.value.type=="smart"?"neurology":"bolt"),1),p("span",null,O(e.value.type)+" Playlist",1)])):S("",!0),p("div",kt,[p("span",{class:"text-5xl cursor-pointer material-symbols-rounded ms-fill my-auto",onClick:I},O(T.value),1),p("h1",$t,[x(re,{modelValue:s.value,"onUpdate:modelValue":u[2]||(u[2]=w=>s.value=w)},{default:V(()=>[L(O(e.value.name),1)]),_:1},8,["modelValue"])])]),p("p",Ct,[x(re,{modelValue:_.value,"onUpdate:modelValue":u[3]||(u[3]=w=>_.value=w),placeholder:"No description"},{default:V(()=>[L(O(e.value.description),1)]),_:1},8,["modelValue"])])]),p("div",Pt,[x(Z,{"primary-text":(q=e.value.songs)==null?void 0:q.length,"secondary-text":((M=e.value.songs)==null?void 0:M.length)===1?"Song":"Songs",class:"w-full"},null,8,["primary-text","secondary-text"]),x(Z,{"primary-text":U.value,class:"w-full","secondary-text":"Total Duration"},null,8,["primary-text"]),e.value.plays?(m(),A(Z,{key:0,"primary-text":e.value.plays,class:"w-full","secondary-text":"Plays"},null,8,["primary-text"])):S("",!0),d.value?(m(),A(ne,{key:1,class:"p-4 w-1/2 flex flex-col items-center justify-center"},{default:V(()=>[p("span",{id:"addToPlaylist",class:"material-symbols-rounded ms-fill",onClick:u[4]||(u[4]=w=>C.$refs.addSongPopup.show())}," add_circle "),St]),_:1})):S("",!0),e.value.type!="special"?(m(),A(ne,{key:2,class:"p-4 w-1/2 flex flex-col items-center justify-center"},{default:V(()=>[p("span",{id:"addToPlaylist",class:"material-symbols-rounded ms-fill",onClick:u[5]||(u[5]=j(w=>n.value.toggle(w),["prevent","stop"]))}," more_horiz "),Vt]),_:1})):S("",!0)]),e.value.songs?(m(),b("div",It,[x(Ae,{modelValue:l.value.search,"onUpdate:modelValue":u[6]||(u[6]=w=>l.value.search=w),icon:"search",placeholder:"Search"},null,8,["modelValue"]),x(J,{modelValue:l.value.title,"onUpdate:modelValue":u[7]||(u[7]=w=>l.value.title=w),options:E(ze)(e.value.songs),class:"multiselect",icon:"title",placeholder:"Title"},null,8,["modelValue","options"]),x(J,{modelValue:l.value.artist,"onUpdate:modelValue":u[8]||(u[8]=w=>l.value.artist=w),options:E(We)(e.value.songs),class:"multiselect",icon:"person",placeholder:"Artist"},null,8,["modelValue","options"]),x(J,{modelValue:l.value.album,"onUpdate:modelValue":u[9]||(u[9]=w=>l.value.album=w),options:E(Ge)(e.value.songs),class:"multiselect",icon:"album",placeholder:"Album"},null,8,["modelValue","options"]),x(De,{modelValue:l.value.sort,"onUpdate:modelValue":u[10]||(u[10]=w=>l.value.sort=w),options:k,icon:"filter_list"},null,8,["modelValue"]),p("span",{class:"cursor-pointer material-symbols-rounded ms-wght-100 text-5xl",onClick:u[11]||(u[11]=w=>l.value.order=l.value.order=="asc"?"desc":"asc")},O(l.value.order=="asc"?"arrow_drop_up":"arrow_drop_down"),1),p("span",{class:"cursor-pointer material-symbols-rounded ms-wght-300 text-3xl mr-2",onClick:o}," delete_sweep ")])):S("",!0)])])),[[D,r]])]}),_:1},8,["playlist","can-edit"])}}}),Tt=G(Mt,[["__scopeId","data-v-b4875daf"]]),we=t=>(he("data-v-8e9c3532"),t=t(),_e(),t),Ot={class:"playlist relative p-4"},qt={key:0,class:"fill-page"},Ft=we(()=>p("h2",{class:"text-2xl text-center error"},"Playlist not found",-1)),At=[Ft],Dt={key:1,class:"wrap"},Ut={class:"track__data"},Bt=we(()=>p("hr",{class:"mb-4"},null,-1)),Et={key:1,class:"items"},Ht={key:2,class:"text-muted italic text-sm text-center mt-10"},Lt=H({__name:"Template",props:{id:{type:String,required:!0},coverIcon:{type:String,required:!1}},emits:["rearrange"],setup(t,{emit:f}){var d;const a=t,n=te(),e=F(()=>n.getPlaylistById(a.id)),y=g(),i=g(((d=e.value)==null?void 0:d.songs)??[]),h=g(null),s=F(()=>{var v;return((v=y.value)==null?void 0:v.songFilters)??{}});N([s,e],()=>{e.value&&_()},{deep:!0});const _=()=>{var v;i.value=je(((v=e.value)==null?void 0:v.songs)??[],s.value)};ee(()=>{_()}),N(e,()=>{_()});const c=F(()=>e.value.type==="classic"&&document.body.clientWidth>950),l=F(()=>e.value.type==="classic"),o=f,r=v=>{const k=v.moved;k&&o("rearrange",k.oldIndex,k.newIndex)};return(v,k)=>{var U;return m(),b(W,null,[(U=e.value)!=null&&U.cover?(m(),A(pe,{key:0,placeholder:t.coverIcon,src:e.value.cover},null,8,["placeholder","src"])):S("",!0),p("div",Ot,[e.value?(m(),b("div",Dt,[p("div",Ut,[x(Tt,{ref_key:"playlistMeta",ref:y,playlist:e.value,coverIcon:t.coverIcon},null,8,["playlist","coverIcon"]),i.value.length?(m(),b(W,{key:0},[x(ve,{class:"hideIfMobile mt-8","with-album":"","with-more":""}),Bt],64)):S("",!0),i.value.length?(m(),b("div",Et,[i.value.length?(m(),A(E(Ee),{key:t.id,modelValue:i.value,"onUpdate:modelValue":k[1]||(k[1]=P=>i.value=P),class:K([s.value.order=="asc"?"flex-col":"flex-col-reverse","flex"]),disabled:E(Re)(s.value)||!c.value,"item-key":"id",onChange:r,onDragover:k[2]||(k[2]=j(()=>{},["stop"]))},{item:V(({element:P})=>[Y(x(Be,{index:e.value.songs.findIndex($=>$.source==P.source),"playlist-id":t.id,selected:h.value==P.id,song:P,"with-album":"","with-cover":"","with-more":"",onClick:$=>h.value==P.id?h.value=-1:h.value=P.id,onUpdate:k[0]||(k[0]=$=>E(n).fetchPlaylists())},null,8,["index","playlist-id","selected","song","onClick"]),[[Ue,P.show]])]),_:1},8,["modelValue","class","disabled"])):S("",!0)])):l.value?(m(),b("p",Ht," No songs. Add some! ")):S("",!0)])])):(m(),b("div",qt,At))])],64)}}}),Kt=G(Lt,[["__scopeId","data-v-8e9c3532"]]);export{Kt as T}; +import{e as H,n as g,E as N,D as F,y as ee,a2 as be,o as m,c as b,r as ue,a3 as Y,a4 as ke,O as j,a5 as le,Q as K,R as ce,_ as G,a as p,t as O,d as S,F as W,h as ae,b as L,i as A,a6 as $e,a7 as de,a8 as pe,g as x,P as ve,z as Ce,B as Pe,a9 as Se,w as V,v as Ve,aa as me,A as Ie,ab as Me,ac as Te,u as E,I as se,j as te,q as ye,f as Q,ad as fe,a1 as Oe,ae as oe,af as qe,H as Fe,C as ne,$ as Ae,Z as De,ag as ie,l as he,m as _e,ah as Ue}from"./index-DwIIj2B2.js";import{P as Be}from"./PlaylistEntry-oyklgbh5.js";import{d as Ee}from"./vuedraggable.umd-CFJncbti.js";import{F as Z}from"./FactCard-DB8qPuqq.js";import{G as He}from"./gistClient-BfrJnK9Z.js";import{M as Le,_ as Ne}from"./Markdown.vue_vue_type_style_index_0_lang-072OuJni.js";const Re=t=>{const{search:f,artist:a,title:n,album:e,order:y,sort:i}=t;return(f==null?void 0:f.length)||(a==null?void 0:a.length)||(n==null?void 0:n.length)||(e==null?void 0:e.length)||y!="asc"||i!="index"},je=(t,f)=>{const{search:a,artist:n,title:e,album:y,sort:i}=f;return t.map(h=>{const s=a!=null&&a.length?h.title.toLowerCase().includes(a.toLowerCase())||h.artist.toLowerCase().includes(a.toLowerCase()):!0,_=n!=null&&n.length?n.includes(h.artist):!0,c=e!=null&&e.length?e.includes(h.title):!0,l=y!=null&&y.length?y.includes(h.album.name):!0;return{...h,show:s&&_&&c&&l,index:t.indexOf(h)}}).sort((h,s)=>{const _=h[i],c=s[i];return _c?1:0})},ze=t=>t.map(f=>({label:f.title,value:f.title})),Ge=t=>t.map(f=>({label:f.album.name,value:f.album.name})),We=t=>{const f=new Set;for(const a of t)for(const n of a.artist.split(", "))f.add(n);return Array.from(f).sort().map(a=>({label:a,value:a}))},Ye=["placeholder"],Ke=H({__name:"EditableText",props:{modelValue:{type:String,required:!0},locked:{type:Boolean,default:!1},noOutline:{type:Boolean,default:!1},placeholder:{type:String,default:"Click to edit"}},emits:["update:modelValue","change"],setup(t,{emit:f}){const a=t,n=g(a.modelValue);N(()=>a.modelValue,l=>n.value=l);const e=g(!1),y=f,i=g(null),h=()=>{a.locked||(e.value=!0,ce(()=>{i.value&&i.value.focus()}))},s=F(()=>a.locked?!0:e.value?!1:n.value),_=l=>{n.value=l,y("change",l),y("update:modelValue",l)},c=()=>{i.value&&(i.value.style.height="auto",i.value.style.height=i.value.scrollHeight+"px")};return ee(()=>c()),be(()=>{e.value&&c()}),(l,o)=>(m(),b("div",{class:K(["editable-text",{outlined:!t.noOutline&&e.value}]),onDblclick:j(h,["stop"])},[s.value?ue(l.$slots,"default",{key:0},void 0,!0):Y((m(),b("textarea",{key:1,ref_key:"area",ref:i,rows:"1","onUpdate:modelValue":o[0]||(o[0]=r=>n.value=r),onChange:o[1]||(o[1]=r=>_(r.target.value)),onInput:o[2]||(o[2]=r=>c()),onClick:o[3]||(o[3]=j(r=>e.value=!0,["stop"])),onKeydown:[o[4]||(o[4]=le(r=>e.value=!1,["enter"])),o[5]||(o[5]=le(r=>e.value=!1,["esc"]))],onBlur:o[6]||(o[6]=r=>e.value=!1),placeholder:t.placeholder},null,40,Ye)),[[ke,n.value]])],34))}}),re=G(Ke,[["__scopeId","data-v-f05f8e35"]]),Xe={class:"flex flex-row gap-2 items-center overflow-hidden"},Qe={key:0,class:"material-symbols-rounded ms-wght-200"},Ze={class:"selected-labels"},Je=["onClick"],et={class:"material-symbols-rounded"},tt=["onClick"],lt={class:"material-symbols-rounded"},at={key:0,class:"material-symbols-rounded"},st=H({__name:"MultiSelect",props:{modelValue:{type:Array,required:!0},options:{type:Array,required:!0},icon:{type:String,required:!1}},emits:["update:modelValue"],setup(t,{emit:f}){const a=t,n=g(a.modelValue),e=g(!1),y=f;N(a,c=>{n.value=c.modelValue},{deep:!0});const i=c=>{n.value.includes(c)?n.value=n.value.filter(l=>l!=c):n.value.push(c),y("update:modelValue",n.value),e.value=!1},h=F(()=>{const c=[];for(const l of n.value){const o=a.options.find(r=>r.value==l);o&&c.push(o.label)}return c}),s=g(null),_=g(null);return N(e,c=>{ce(()=>{if(c){const l=s.value.getBoundingClientRect(),o=_.value.getBoundingClientRect(),r=o.top,d=o.bottom,v=window.innerHeight-d,k=o.width;s.value.style.width=k+"px",s.value.style.left=o.left+"px",v>l.height?(s.value.style.top=d+"px",s.value.style.bottom="auto"):(s.value.style.top="auto",s.value.style.bottom=r-l.height+"px")}})}),window.addEventListener("click",()=>{e.value=!1}),(c,l)=>(m(),b("div",{ref_key:"container",ref:_,class:"dropdown"},[p("div",{class:K([{expanded:e.value},"dropdown__selected"]),onClick:l[0]||(l[0]=j(o=>e.value=!e.value,["stop"]))},[p("div",Xe,[t.icon?(m(),b("span",Qe,O(t.icon),1)):S("",!0),p("div",Ze,[(m(!0),b(W,null,ae(h.value,o=>(m(),b("span",{key:o,class:"selected-label"},[L(O(o)+" ",1),p("i",{class:"material-symbols-rounded",onClick:r=>i(o)}," close ",8,Je)]))),128))])]),p("i",et,O(e.value?"expand_less":"expand_more"),1)],2),(m(),A($e,{to:"#dropdown-target"},[e.value?(m(),b("div",{key:0,ref_key:"trueDropdown",ref:s,class:"dropdown__options"},[(m(!0),b(W,null,ae(t.options,o=>(m(),b("div",{key:o.value,class:"dropdown__option",onClick:j(r=>i(o.value),["stop"])},[p("span",lt,O(o.icon),1),p("span",null,O(o.label),1),n.value.includes(o.value)?(m(),b("span",at,"check")):S("",!0)],8,tt))),128))],512)):S("",!0)]))],512))}}),J=G(st,[["__scopeId","data-v-8ec711b9"]]),ot={class:"upperWrapper"},nt={class:"font-black"},it={class:"padding-20 darkback"},rt=H({__name:"FixedPlaylistHeader",props:{accentColour:{type:String},playlist:{type:Object,required:!0}},setup(t){const f=de(),a=t,n=F(()=>f.playlistPlayOrPauseIcon(a.playlist.id));return(e,y)=>(m(),b("div",{class:"fixedPlaylistHeader",style:Ce({"--colour":t.accentColour})},[t.playlist.cover?(m(),A(pe,{key:0,src:t.playlist.cover},null,8,["src"])):S("",!0),p("div",ot,[p("span",{id:"loadPlaylist",class:"material-symbols-rounded hideIfMobile ms-fill",onClick:y[0]||(y[0]=i=>this.$emit("loadPlaylist"))},O(n.value),1),p("h3",nt,O(t.playlist.name),1)]),p("div",it,[x(ve,{class:"fixedHeader hideIfMobile","with-album":"","with-more":""})])],4))}}),ut=G(rt,[["__scopeId","data-v-34ec84ab"]]),ct=H({__name:"AddNewSong",emits:["update","close"],setup(t,{expose:f,emit:a}){const n=Pe(),e=a,y={title:"",artist:"",artists:[],album:"",cover:"",source:"",href:""},i=async(r,d)=>{const v=Ie(String(new Date().getTime())),k=new FormData,U="."+d.name.split(".").pop();var P=d.slice(0,d.size,d.type),$=new File([P],v+U,{type:d.type});return k.append("file",$),await(await fetch(r,{method:"POST",body:k})).text()},h=g(null),s=g([{name:"source",type:"upload",accept:"audio/mp3",required:!0,onUpload:r=>{i("/api/config/tracks",r).then(d=>s.value.find(v=>v.name=="source").value=d)},onChange:async r=>{const d=await Se(r);s.value.find(v=>v.name==="title").value=d.title,s.value.find(v=>v.name==="artist").value=d.artist,s.value.find(v=>v.name==="album").value=d.album,s.value.find(v=>v.name==="cover").value=d.cover,s.value.find(v=>v.name==="source").value=d.source,h.value=d.track.metadata},value:y.source},{name:"title",type:"text",icon:"title",required:!0,value:y.title},{name:"artist",type:"text",icon:"person",required:!0,value:y.artist},{name:"album",type:"text",icon:"album",value:y.album},{name:"cover",type:"upload",accept:"image/*",imagePreview:!0,value:y.cover,onUpload:r=>{i("/api/config/images",r).then(d=>s.value.find(v=>v.name=="cover").value=d)}}]),_=g(null),c=g(null),l=async()=>{if(_.value.show(),!navigator.clipboard)return;const r=await navigator.clipboard.readText();if(!Me(r))return;const d=s.value.find(v=>v.name==="source");d.value=r,d.onChange(r)},o=async r=>{const d=n.params.id;await Te(d,{...c.value.toObject(),metadata:h.value}),e("update")};return f({show:l,options:s}),(r,d)=>(m(),A(me,{ref_key:"modal",ref:_,submit:{label:"Add",icon:"add"},name:"Add Song",onClose:d[0]||(d[0]=v=>r.$emit("close")),onSubmit:o},{default:V(()=>[x(Ve,{ref_key:"form",ref:c,options:s.value},null,8,["options"])]),_:1},512))}}),dt=["innerHTML"],pt={class:"buttons w-full justify-end flex gap-2"},vt=H({__name:"Confirmation",props:{title:{type:String,required:!0},question:{type:String,required:!0},closeOnNo:{type:Boolean,required:!1,default:!0}},emits:["close","update","yes","no"],setup(t,{expose:f,emit:a}){const n=t,e=a,y=g(null),i=new Le;f({show:()=>{y.value.show()}});const s=()=>{n.closeOnNo&&y.value.hide(),e("no")};return(_,c)=>(m(),A(me,{ref_key:"modal",ref:y,name:t.title,onClose:c[1]||(c[1]=l=>_.$emit("close"))},{default:V(()=>[p("div",{class:"overflow-hidden",innerHTML:E(i).render(t.question)},null,8,dt),p("div",pt,[x(se,{type:"success",icon:"check",label:"Yes",onClick:c[0]||(c[0]=l=>_.$emit("yes"))}),x(se,{type:"danger",icon:"close",label:"No",onClick:s})])]),_:1},8,["name"]))}}),mt=p("span",{class:"material-symbols-rounded"},"edit",-1),yt=p("span",{class:"material-symbols-rounded"},"delete",-1),ft=p("span",{class:"material-symbols-rounded"},"share",-1),ht=H({__name:"PlaylistContext",props:{playlist:{type:Object,required:!0},canEdit:{type:Boolean,required:!1,default:!1}},setup(t,{expose:f}){const a=t,n=te(),e=ye(),y=g(null),i=g(null),h=g(""),s=g(null),_=g(null),c=g(""),l=g(""),o=($=null)=>{i.value.visible?r():d($)},r=()=>{i.value.hide()},d=($=null)=>{const T=y.value.getBoundingClientRect();if($){i.value.show({top:$.clientY,left:$.clientX});return}const I={top:T.height+T.top+window.scrollY,left:T.width+T.left+window.scrollX};i.value.show(I)};f({show:d,toggle:o,hide:r});const v=()=>{e.push(`/playlist/${a.playlist.id}/edit`)},k=async()=>{await Oe(a.playlist.id),await n.fetchPlaylists(),e.push("/")},U=async()=>{const $=await oe(a.playlist);qe($,a.playlist.name)},P=async()=>{const $=await oe(a.playlist),T=`${a.playlist.name}.one.playlist`,I=await He.save({[T]:$},a.playlist.name,!0),R=I.files[T].raw_url,C=I.id,u=I.owner.login,D=R.split("/raw/")[1].split("/")[0],q=`gist:${u}:${C}:${D}`,M=btoa(q);h.value=`http://localhost:1234/import/${M}`,l.value=`Share this URL to import this playlist on another device: [${h.value}](${h.value})`,c.value="Share "+a.playlist.name,s.value.show()};return ee(()=>{document.addEventListener("click",r)}),($,T)=>{const I=Q("v-contextmenu-item"),z=Q("v-contextmenu-submenu"),R=Q("v-contextmenu"),C=fe("contextmenu");return Y((m(),b("div",{ref_key:"box",ref:y},[ue($.$slots,"default"),x(Ne,{ref_key:"markdownRef",ref:s,title:c.value,content:l.value,onClose:r},null,8,["title","content"]),x(vt,{ref_key:"confirmation",ref:_,title:"Delete Playlist",question:"Are you sure you want to delete this playlist?",onYes:k,onNo:r,"close-on-no":""},null,512),x(R,{ref_key:"contextmenu",ref:i},{default:V(()=>[t.canEdit?(m(),A(I,{key:0,onClick:v},{default:V(()=>[mt,L(" Edit ")]),_:1})):S("",!0),x(I,{onClick:T[0]||(T[0]=u=>_.value.show())},{default:V(()=>[yt,L(" Delete ")]),_:1}),x(I,null,{default:V(()=>[ft,x(z,{title:"Export..."},{default:V(()=>[x(I,{onClick:U},{default:V(()=>[L(" to file ")]),_:1}),x(I,{onClick:P},{default:V(()=>[L(" to GitHub Gists ")]),_:1})]),_:1})]),_:1})]),_:1},512)])),[[C,void 0,"contextmenu"]])}}}),ge=t=>(he("data-v-b4875daf"),t=t(),_e(),t),_t={class:"upper relative"},gt={class:"track__info__details"},wt={class:"trac__info__details__normal"},xt={key:0,class:"flex flex-row items-center gap-2 playlist-type"},bt={class:"material-symbols-rounded"},kt={class:"flex flew-row items-center"},$t={class:"font-black text-5xl ml-4 w-full flex-1"},Ct={class:"text-muted"},Pt={class:"features flex flex-row gap-4 pt-4 pb-2 overflow-x-auto"},St=ge(()=>p("span",{class:"text-muted"},"Add a song",-1)),Vt=ge(()=>p("span",{class:"text-muted"},"More...",-1)),It={key:0,class:"filters relative overflow-clip"},Mt=H({__name:"PlaylistMeta",props:{playlist:{type:Object,required:!1},coverIcon:{type:String,required:!0}},setup(t,{expose:f}){var z,R;const a=t,n=g(),e=F(()=>a.playlist),y=g(!0);ye();const i=de(),h=te(),s=g(((z=e.value)==null?void 0:z.name.trim())??""),_=g(((R=e.value)==null?void 0:R.description.trim())??""),c=()=>({sort:"index",order:"asc",search:"",title:[],artist:[],album:[]}),l=g(null),o=()=>{l.value={...c()}};o(),f({songFilters:l}),N(()=>e.value,()=>{var C,u;s.value=((C=e.value)==null?void 0:C.name.trim())??"",_.value=((u=e.value)==null?void 0:u.description.trim())??""}),N([s,_],()=>{var u,D;if(s.value===((u=e.value)==null?void 0:u.name)&&_.value===((D=e.value)==null?void 0:D.description))return;const C={...e.value,name:s.value,description:_.value};ie(C),h.fetchPlaylists(e.value.id)});const r=(C,u)=>{y.value=C},d=F(()=>e.value.type==="classic"),v=F(()=>["smart"].includes(e.value.type)),k=[{value:"title",label:"Title",icon:"title"},{value:"artist",label:"Artist",icon:"person"},{value:"album",label:"Album",icon:"album"},{value:"duration",label:"Duration",icon:"timer"},{value:"index",label:"Added",icon:"date_range"}],U=F(()=>{let C=0,u=!1;if(!e.value.songs.length)return"N/A";for(const B of e.value.songs){u=u||B.duration<=0;const X=B.duration<=0?3*60:B.duration;C+=X}const D=C,q=Math.floor(D/60),M=Math.floor(q/60),w=u?"about ":"";return M?w+`${M} hr ${q-M*60} min`:q?w+`${q} min ${D-q*60} sec`:w+C+" sec"}),P=g(null),$=async C=>{const D=await(async(q,M)=>{const w=new FormData,B="."+M.name.split(".").pop();var X=M.slice(0,M.size,M.type),xe=new File([X],a.playlist.name+B,{type:M.type});return w.append("file",xe),await(await fetch(q,{method:"POST",body:w})).text()})("/api/config/images",P.value.files[0]);ie({...e.value,cover:D})},T=F(()=>i.playlistPlayOrPauseIcon(e.value.id)),I=()=>{i.playlistId===e.value.id?i.playPause():i.loadPlaylist(e.value.id)};return(C,u)=>{const D=fe("observe-visibility");return m(),A(ht,{ref_key:"contextmenu",ref:n,playlist:e.value,"can-edit":v.value},{default:V(()=>{var q,M;return[e.value?(m(),A(ut,{key:0,ref:"fixedHeading",class:K({hidden:y.value}),playlist:e.value,onLoadPlaylist:I},null,8,["class","playlist"])):S("",!0),x(ct,{ref:"addSongPopup",onUpdate:u[0]||(u[0]=w=>E(h).fetchPlaylists())},null,512),Y((m(),b("div",_t,[x(Fe,{placeholder:t.coverIcon,src:e.value.cover,class:"cover rounded-xl",type:"playlist",name:e.value.name,onClick:u[1]||(u[1]=w=>{var B;return(B=P.value)==null?void 0:B.click()})},null,8,["placeholder","src","name"]),v.value?S("",!0):(m(),b("input",{key:0,ref_key:"imgUpload",ref:P,type:"file",accept:"image/*",class:"hidden",onChange:$},null,544)),p("div",gt,[p("div",wt,[e.value.type!="classic"?(m(),b("div",xt,[p("span",bt,O(e.value.type=="smart"?"neurology":"bolt"),1),p("span",null,O(e.value.type)+" Playlist",1)])):S("",!0),p("div",kt,[p("span",{class:"text-5xl cursor-pointer material-symbols-rounded ms-fill my-auto",onClick:I},O(T.value),1),p("h1",$t,[x(re,{modelValue:s.value,"onUpdate:modelValue":u[2]||(u[2]=w=>s.value=w)},{default:V(()=>[L(O(e.value.name),1)]),_:1},8,["modelValue"])])]),p("p",Ct,[x(re,{modelValue:_.value,"onUpdate:modelValue":u[3]||(u[3]=w=>_.value=w),placeholder:"No description"},{default:V(()=>[L(O(e.value.description),1)]),_:1},8,["modelValue"])])]),p("div",Pt,[x(Z,{"primary-text":(q=e.value.songs)==null?void 0:q.length,"secondary-text":((M=e.value.songs)==null?void 0:M.length)===1?"Song":"Songs",class:"w-full"},null,8,["primary-text","secondary-text"]),x(Z,{"primary-text":U.value,class:"w-full","secondary-text":"Total Duration"},null,8,["primary-text"]),e.value.plays?(m(),A(Z,{key:0,"primary-text":e.value.plays,class:"w-full","secondary-text":"Plays"},null,8,["primary-text"])):S("",!0),d.value?(m(),A(ne,{key:1,class:"p-4 w-1/2 flex flex-col items-center justify-center"},{default:V(()=>[p("span",{id:"addToPlaylist",class:"material-symbols-rounded ms-fill",onClick:u[4]||(u[4]=w=>C.$refs.addSongPopup.show())}," add_circle "),St]),_:1})):S("",!0),e.value.type!="special"?(m(),A(ne,{key:2,class:"p-4 w-1/2 flex flex-col items-center justify-center"},{default:V(()=>[p("span",{id:"addToPlaylist",class:"material-symbols-rounded ms-fill",onClick:u[5]||(u[5]=j(w=>n.value.toggle(w),["prevent","stop"]))}," more_horiz "),Vt]),_:1})):S("",!0)]),e.value.songs?(m(),b("div",It,[x(Ae,{modelValue:l.value.search,"onUpdate:modelValue":u[6]||(u[6]=w=>l.value.search=w),icon:"search",placeholder:"Search"},null,8,["modelValue"]),x(J,{modelValue:l.value.title,"onUpdate:modelValue":u[7]||(u[7]=w=>l.value.title=w),options:E(ze)(e.value.songs),class:"multiselect",icon:"title",placeholder:"Title"},null,8,["modelValue","options"]),x(J,{modelValue:l.value.artist,"onUpdate:modelValue":u[8]||(u[8]=w=>l.value.artist=w),options:E(We)(e.value.songs),class:"multiselect",icon:"person",placeholder:"Artist"},null,8,["modelValue","options"]),x(J,{modelValue:l.value.album,"onUpdate:modelValue":u[9]||(u[9]=w=>l.value.album=w),options:E(Ge)(e.value.songs),class:"multiselect",icon:"album",placeholder:"Album"},null,8,["modelValue","options"]),x(De,{modelValue:l.value.sort,"onUpdate:modelValue":u[10]||(u[10]=w=>l.value.sort=w),options:k,icon:"filter_list"},null,8,["modelValue"]),p("span",{class:"cursor-pointer material-symbols-rounded ms-wght-100 text-5xl",onClick:u[11]||(u[11]=w=>l.value.order=l.value.order=="asc"?"desc":"asc")},O(l.value.order=="asc"?"arrow_drop_up":"arrow_drop_down"),1),p("span",{class:"cursor-pointer material-symbols-rounded ms-wght-300 text-3xl mr-2",onClick:o}," delete_sweep ")])):S("",!0)])])),[[D,r]])]}),_:1},8,["playlist","can-edit"])}}}),Tt=G(Mt,[["__scopeId","data-v-b4875daf"]]),we=t=>(he("data-v-8e9c3532"),t=t(),_e(),t),Ot={class:"playlist relative p-4"},qt={key:0,class:"fill-page"},Ft=we(()=>p("h2",{class:"text-2xl text-center error"},"Playlist not found",-1)),At=[Ft],Dt={key:1,class:"wrap"},Ut={class:"track__data"},Bt=we(()=>p("hr",{class:"mb-4"},null,-1)),Et={key:1,class:"items"},Ht={key:2,class:"text-muted italic text-sm text-center mt-10"},Lt=H({__name:"Template",props:{id:{type:String,required:!0},coverIcon:{type:String,required:!1}},emits:["rearrange"],setup(t,{emit:f}){var d;const a=t,n=te(),e=F(()=>n.getPlaylistById(a.id)),y=g(),i=g(((d=e.value)==null?void 0:d.songs)??[]),h=g(null),s=F(()=>{var v;return((v=y.value)==null?void 0:v.songFilters)??{}});N([s,e],()=>{e.value&&_()},{deep:!0});const _=()=>{var v;i.value=je(((v=e.value)==null?void 0:v.songs)??[],s.value)};ee(()=>{_()}),N(e,()=>{_()});const c=F(()=>e.value.type==="classic"&&document.body.clientWidth>950),l=F(()=>e.value.type==="classic"),o=f,r=v=>{const k=v.moved;k&&o("rearrange",k.oldIndex,k.newIndex)};return(v,k)=>{var U;return m(),b(W,null,[(U=e.value)!=null&&U.cover?(m(),A(pe,{key:0,placeholder:t.coverIcon,src:e.value.cover},null,8,["placeholder","src"])):S("",!0),p("div",Ot,[e.value?(m(),b("div",Dt,[p("div",Ut,[x(Tt,{ref_key:"playlistMeta",ref:y,playlist:e.value,coverIcon:t.coverIcon},null,8,["playlist","coverIcon"]),i.value.length?(m(),b(W,{key:0},[x(ve,{class:"hideIfMobile mt-8","with-album":"","with-more":""}),Bt],64)):S("",!0),i.value.length?(m(),b("div",Et,[i.value.length?(m(),A(E(Ee),{key:t.id,modelValue:i.value,"onUpdate:modelValue":k[1]||(k[1]=P=>i.value=P),class:K([s.value.order=="asc"?"flex-col":"flex-col-reverse","flex"]),disabled:E(Re)(s.value)||!c.value,"item-key":"id",onChange:r,onDragover:k[2]||(k[2]=j(()=>{},["stop"]))},{item:V(({element:P})=>[Y(x(Be,{index:e.value.songs.findIndex($=>$.source==P.source),"playlist-id":t.id,selected:h.value==P.id,song:P,"with-album":"","with-cover":"","with-more":"",onClick:$=>h.value==P.id?h.value=-1:h.value=P.id,onUpdate:k[0]||(k[0]=$=>E(n).fetchPlaylists())},null,8,["index","playlist-id","selected","song","onClick"]),[[Ue,P.show]])]),_:1},8,["modelValue","class","disabled"])):S("",!0)])):l.value?(m(),b("p",Ht," No songs. Add some! ")):S("",!0)])])):(m(),b("div",qt,At))])],64)}}}),Kt=G(Lt,[["__scopeId","data-v-8e9c3532"]]);export{Kt as T}; diff --git a/src/ui/dist/assets/Template-CpDXJr_0.js.gz b/src/ui/dist/assets/Template-CpDXJr_0.js.gz new file mode 100644 index 00000000..fc318523 Binary files /dev/null and b/src/ui/dist/assets/Template-CpDXJr_0.js.gz differ diff --git a/src/ui/dist/assets/Track-D6XD9ivf.js.gz b/src/ui/dist/assets/Track-D6XD9ivf.js.gz deleted file mode 100644 index 34570f3c..00000000 Binary files a/src/ui/dist/assets/Track-D6XD9ivf.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Track-D6XD9ivf.js b/src/ui/dist/assets/Track-P44IHcV3.js similarity index 97% rename from src/ui/dist/assets/Track-D6XD9ivf.js rename to src/ui/dist/assets/Track-P44IHcV3.js index c68224e8..8cabd84e 100644 --- a/src/ui/dist/assets/Track-D6XD9ivf.js +++ b/src/ui/dist/assets/Track-P44IHcV3.js @@ -1 +1 @@ -import{e as U,n as f,E as B,y as T,o as a,c as m,_ as M,i as n,w as S,a as s,t as y,d as r,C as I,B as R,a7 as A,D as K,f as O,a8 as W,g as _,H as Q,Q as q,K as G,b as D,u as k,F as $,ai as J,aj as X,ak as Y,al as Z,$ as ee,h as E,am as ae,an as te,ao as se,ap as le,aq as L,ar as oe,L as ne,l as ue,m as re}from"./index-K4QaY0Na.js";import{F as b}from"./FactCard-BZwd6pEI.js";import{_ as ie}from"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import{s as de}from"./spotify-DDsJS6kd.js";const ce=["aria-valuemax","aria-valuenow"],pe=U({__name:"ProgressCircle",props:{max:{type:Number,required:!1,default:100},modelValue:{type:Number,required:!1,default:0},displayValue:{type:String,required:!0}},setup(u){const v=u,i=f(null),w=()=>{if(i.value){const d=v.modelValue/v.max*100;i.value.style.setProperty("--progress",`${d}%`),i.value.innerHTML=v.displayValue}};B(v,w,{deep:!0});const l=()=>{i.value&&(i.value.style.height=i.value.offsetWidth+"px")};return T(()=>{l(),w()}),window.addEventListener("resize",l),(d,x)=>(a(),m("div",{ref_key:"radialProgress",ref:i,"aria-valuemax":u.max,"aria-valuenow":u.modelValue,"aria-valuemin":"0",class:"radialProgress",role:"progressbar"},null,8,ce))}}),N=M(pe,[["__scopeId","data-v-6e1a8d6b"]]),me={class:"material-symbols-rounded ms-fill"},ve={key:0,class:"text-muted"},fe=U({__name:"ButtonCard",props:{icon:{type:String,required:!0},label:{type:String,required:!1}},setup(u){return(v,i)=>(a(),n(I,{class:"p-4 flex flex-col w-full items-center justify-center"},{default:S(()=>[s("span",me,y(u.icon),1),u.label?(a(),m("span",ve,y(u.label),1)):r("",!0)]),_:1}))}}),j=M(fe,[["__scopeId","data-v-98bfdf17"]]),H=u=>(ue("data-v-4d592b47"),u=u(),re(),u),ye={class:"track p-4"},_e={key:2},xe={class:"track__data"},he={class:"upper"},ke={class:"trac__info__details__normal"},ge={class:"text-secondary my-0 text-2xl font-bold"},be={class:"text-muted text-base ml-4 font-light"},we={class:"flex flew-row items-center"},Ce={class:"font-black text-5xl ml-4"},Ve={key:0,class:"features flex flex-row gap-4 pt-4 pb-2 overflow-x-auto"},$e={class:"spotify-infos mt-4"},Se={class:"meta items-center"},Pe={class:"text-muted"},Be={key:0,class:"material-symbols-rounded ms-fill"},Ie={class:"flex flex-row align-items"},Ue=H(()=>s("span",{class:"material-symbols-rounded ms-fill mr-2"},"local_fire_department",-1)),Me={class:"font-bold"},qe={class:"relative w-full mt-4"},De={class:"spotify__features__circles"},Ee={class:"text-muted mb-0 text-center text-sm capitalize flex justify-center"},Le={class:"material-symbols-rounded mr-2"},Ne=H(()=>s("h2",{class:"!text-left"},"Similar Songs",-1)),je=U({__name:"Track",setup(u){const v=R(),i=A(),w=K(()=>v.params.hash),l=f(null),d=f(null),x=f("url"),e=f(null),C=f([]),P=f([]),g=f(!1),z={acousticness:"piano",danceability:"nightlife",energy:"electric_bolt",happiness:"mood",instrumentalness:"mic_off",liveness:"groups_2",speechiness:"mic",loudness:"volume_up"},V=async(c=null)=>{var o;l.value=null,e.value=null,C.value=[],l.value=await te(w.value),window.document.title=`${l.value.title} - reAudioPlayer One`,e.value=await se(l.value.id,!!c,c),d.value=`https://open.spotify.com/track/${e.value.spotify.id}`,x.value="link",g.value=((o=e.value.spotify.id)==null?void 0:o.length)==22,C.value=await le(l.value.id),P.value=[];for(let[p,t]of Object.entries(e.value.spotify.features))["key","mode","tempo","duration_ms","time_signature"].includes(p)||typeof t=="number"&&(p=p.replaceAll("_"," "),p=p.replace("valence","happiness"),p==="loudness"&&(t=60+t),P.value.push({key:p,value:t,icon:z[p]}))};T(V),B(v,()=>V(),{deep:!0}),B(d,()=>{var c,o;if(((o=(c=e.value)==null?void 0:c.spotify)==null?void 0:o.id)==L(d.value,"track")){x.value="link";return}x.value="save"});const F=()=>{if(x.value==="save"){const c=L(d.value,"track");if(!c)return;V(c);return}oe(d.value)};return(c,o)=>{const p=O("RouterLink");return a(),m($,null,[l.value?(a(),n(W,{key:0,src:l.value.cover,class:"-z-10"},null,8,["src"])):r("",!0),s("div",ye,[l.value?(a(),n(ie,{key:0,ref:"updatePopup",song:l.value,onUpdate:o[0]||(o[0]=()=>V())},null,8,["song"])):r("",!0),l.value?(a(),m("div",_e,[s("div",xe,[s("div",he,[_(Q,{src:l.value.cover,class:"max-w-sm rounded-xl"},null,8,["src"]),s("div",{class:q([{"justify-end":e.value,"justify-center":!e.value},"track__info__details flex flex-col"])},[s("div",ke,[s("h3",ge,[_(G,{artist:l.value.artist,class:"inline"},null,8,["artist"]),s("span",be,[_(p,{to:l.value.album.href,class:"linkOnHover"},{default:S(()=>[D(y(l.value.album.name),1)]),_:1},8,["to"])])]),s("div",we,[s("span",{class:"text-5xl cursor-pointer material-symbols-rounded ms-fill my-auto",onClick:o[1]||(o[1]=t=>k(i).loadPlaylist("track",l.value.id))}," play_circle "),s("h1",Ce,y(l.value.title),1)])]),e.value&&e.value.spotify.features?(a(),m($,{key:0},[e.value&&e.value.spotify.features?(a(),m("div",Ve,[e.value?(a(),n(b,{key:0,"primary-text":e.value.spotify.features.key+" "+e.value.spotify.features.mode,class:"w-full","secondary-text":"Key"},null,8,["primary-text"])):r("",!0),e.value?(a(),n(b,{key:1,"primary-text":k(J)(e.value),class:"w-full","secondary-text":"Camelot"},null,8,["primary-text"])):r("",!0),e.value?(a(),n(b,{key:2,"primary-text":Math.round(e.value.spotify.features.tempo),class:"w-full","secondary-text":"BPM"},null,8,["primary-text"])):r("",!0),_(b,{"primary-text":k(X)(l.value.duration),class:"w-full","secondary-text":"Duration"},null,8,["primary-text"]),e.value?(a(),n(b,{key:3,"primary-text":e.value.plays,class:"w-full","secondary-text":"Plays"},null,8,["primary-text"])):r("",!0),_(j,{icon:"edit",label:"Edit",onClick:o[2]||(o[2]=t=>c.$refs.updatePopup.show())}),_(j,{icon:"download",label:"Download",onClick:o[3]||(o[3]=t=>k(Y)(l.value.id))})])):r("",!0),s("div",$e,[s("div",Se,[s("span",Pe,y(k(Z)(e.value.spotify.releaseDate)),1),e.value.spotify.explicit?(a(),m("span",Be,"explicit")):r("",!0),s("span",Ie,[Ue,s("span",Me,y(e.value.spotify.popularity),1)])]),_(k(de),{class:q([{enabled:g.value},"spotify-enable"]),onClick:o[4]||(o[4]=t=>g.value=!g.value)},null,8,["class"]),g.value?(a(),n(ee,{key:0,modelValue:d.value,"onUpdate:modelValue":o[5]||(o[5]=t=>d.value=t),icon:x.value,onClick:F},null,8,["modelValue","icon"])):r("",!0)])],64)):r("",!0)],2)])]),s("div",qe,[s("div",De,[(a(!0),m($,null,E(P.value,t=>(a(),n(I,{class:"p-2"},{default:S(()=>[t.key==="loudness"?(a(),n(N,{key:0,modelValue:t.value,"onUpdate:modelValue":h=>t.value=h,"display-value":Math.round(-60+t.value)+"dB",class:"circle",max:60},null,8,["modelValue","onUpdate:modelValue","display-value"])):(a(),n(N,{key:1,modelValue:t.value,"onUpdate:modelValue":h=>t.value=h,"display-value":Math.round(t.value*100)+"%",class:"circle",max:1},null,8,["modelValue","onUpdate:modelValue","display-value"])),s("p",Ee,[s("span",Le,y(t.icon),1),D(" "+y(t.key),1)])]),_:2},1024))),256))])]),C.value.length?(a(),n(I,{key:0,class:"p-4 mt-4"},{default:S(()=>[Ne,(a(!0),m($,null,E(C.value,(t,h)=>(a(),n(ae,{key:h,index:h,song:t,"can-import":"","cannot-add":"","with-album":"","with-cover":""},null,8,["index","song"]))),128))]),_:1})):r("",!0)])):(a(),n(ne,{key:1}))])],64)}}}),Re=M(je,[["__scopeId","data-v-4d592b47"]]);export{Re as default}; +import{e as U,n as f,E as B,y as T,o as a,c as m,_ as M,i as n,w as S,a as s,t as y,d as r,C as I,B as R,a7 as A,D as K,f as O,a8 as W,g as _,H as Q,Q as q,K as G,b as D,u as k,F as $,ai as J,aj as X,ak as Y,al as Z,$ as ee,h as E,am as ae,an as te,ao as se,ap as le,aq as L,ar as oe,L as ne,l as ue,m as re}from"./index-DwIIj2B2.js";import{F as b}from"./FactCard-DB8qPuqq.js";import{_ as ie}from"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import{s as de}from"./spotify-nGujcJNw.js";const ce=["aria-valuemax","aria-valuenow"],pe=U({__name:"ProgressCircle",props:{max:{type:Number,required:!1,default:100},modelValue:{type:Number,required:!1,default:0},displayValue:{type:String,required:!0}},setup(u){const v=u,i=f(null),w=()=>{if(i.value){const d=v.modelValue/v.max*100;i.value.style.setProperty("--progress",`${d}%`),i.value.innerHTML=v.displayValue}};B(v,w,{deep:!0});const l=()=>{i.value&&(i.value.style.height=i.value.offsetWidth+"px")};return T(()=>{l(),w()}),window.addEventListener("resize",l),(d,x)=>(a(),m("div",{ref_key:"radialProgress",ref:i,"aria-valuemax":u.max,"aria-valuenow":u.modelValue,"aria-valuemin":"0",class:"radialProgress",role:"progressbar"},null,8,ce))}}),N=M(pe,[["__scopeId","data-v-6e1a8d6b"]]),me={class:"material-symbols-rounded ms-fill"},ve={key:0,class:"text-muted"},fe=U({__name:"ButtonCard",props:{icon:{type:String,required:!0},label:{type:String,required:!1}},setup(u){return(v,i)=>(a(),n(I,{class:"p-4 flex flex-col w-full items-center justify-center"},{default:S(()=>[s("span",me,y(u.icon),1),u.label?(a(),m("span",ve,y(u.label),1)):r("",!0)]),_:1}))}}),j=M(fe,[["__scopeId","data-v-98bfdf17"]]),H=u=>(ue("data-v-4d592b47"),u=u(),re(),u),ye={class:"track p-4"},_e={key:2},xe={class:"track__data"},he={class:"upper"},ke={class:"trac__info__details__normal"},ge={class:"text-secondary my-0 text-2xl font-bold"},be={class:"text-muted text-base ml-4 font-light"},we={class:"flex flew-row items-center"},Ce={class:"font-black text-5xl ml-4"},Ve={key:0,class:"features flex flex-row gap-4 pt-4 pb-2 overflow-x-auto"},$e={class:"spotify-infos mt-4"},Se={class:"meta items-center"},Pe={class:"text-muted"},Be={key:0,class:"material-symbols-rounded ms-fill"},Ie={class:"flex flex-row align-items"},Ue=H(()=>s("span",{class:"material-symbols-rounded ms-fill mr-2"},"local_fire_department",-1)),Me={class:"font-bold"},qe={class:"relative w-full mt-4"},De={class:"spotify__features__circles"},Ee={class:"text-muted mb-0 text-center text-sm capitalize flex justify-center"},Le={class:"material-symbols-rounded mr-2"},Ne=H(()=>s("h2",{class:"!text-left"},"Similar Songs",-1)),je=U({__name:"Track",setup(u){const v=R(),i=A(),w=K(()=>v.params.hash),l=f(null),d=f(null),x=f("url"),e=f(null),C=f([]),P=f([]),g=f(!1),z={acousticness:"piano",danceability:"nightlife",energy:"electric_bolt",happiness:"mood",instrumentalness:"mic_off",liveness:"groups_2",speechiness:"mic",loudness:"volume_up"},V=async(c=null)=>{var o;l.value=null,e.value=null,C.value=[],l.value=await te(w.value),window.document.title=`${l.value.title} - reAudioPlayer One`,e.value=await se(l.value.id,!!c,c),d.value=`https://open.spotify.com/track/${e.value.spotify.id}`,x.value="link",g.value=((o=e.value.spotify.id)==null?void 0:o.length)==22,C.value=await le(l.value.id),P.value=[];for(let[p,t]of Object.entries(e.value.spotify.features))["key","mode","tempo","duration_ms","time_signature"].includes(p)||typeof t=="number"&&(p=p.replaceAll("_"," "),p=p.replace("valence","happiness"),p==="loudness"&&(t=60+t),P.value.push({key:p,value:t,icon:z[p]}))};T(V),B(v,()=>V(),{deep:!0}),B(d,()=>{var c,o;if(((o=(c=e.value)==null?void 0:c.spotify)==null?void 0:o.id)==L(d.value,"track")){x.value="link";return}x.value="save"});const F=()=>{if(x.value==="save"){const c=L(d.value,"track");if(!c)return;V(c);return}oe(d.value)};return(c,o)=>{const p=O("RouterLink");return a(),m($,null,[l.value?(a(),n(W,{key:0,src:l.value.cover,class:"-z-10"},null,8,["src"])):r("",!0),s("div",ye,[l.value?(a(),n(ie,{key:0,ref:"updatePopup",song:l.value,onUpdate:o[0]||(o[0]=()=>V())},null,8,["song"])):r("",!0),l.value?(a(),m("div",_e,[s("div",xe,[s("div",he,[_(Q,{src:l.value.cover,class:"max-w-sm rounded-xl"},null,8,["src"]),s("div",{class:q([{"justify-end":e.value,"justify-center":!e.value},"track__info__details flex flex-col"])},[s("div",ke,[s("h3",ge,[_(G,{artist:l.value.artist,class:"inline"},null,8,["artist"]),s("span",be,[_(p,{to:l.value.album.href,class:"linkOnHover"},{default:S(()=>[D(y(l.value.album.name),1)]),_:1},8,["to"])])]),s("div",we,[s("span",{class:"text-5xl cursor-pointer material-symbols-rounded ms-fill my-auto",onClick:o[1]||(o[1]=t=>k(i).loadPlaylist("track",l.value.id))}," play_circle "),s("h1",Ce,y(l.value.title),1)])]),e.value&&e.value.spotify.features?(a(),m($,{key:0},[e.value&&e.value.spotify.features?(a(),m("div",Ve,[e.value?(a(),n(b,{key:0,"primary-text":e.value.spotify.features.key+" "+e.value.spotify.features.mode,class:"w-full","secondary-text":"Key"},null,8,["primary-text"])):r("",!0),e.value?(a(),n(b,{key:1,"primary-text":k(J)(e.value),class:"w-full","secondary-text":"Camelot"},null,8,["primary-text"])):r("",!0),e.value?(a(),n(b,{key:2,"primary-text":Math.round(e.value.spotify.features.tempo),class:"w-full","secondary-text":"BPM"},null,8,["primary-text"])):r("",!0),_(b,{"primary-text":k(X)(l.value.duration),class:"w-full","secondary-text":"Duration"},null,8,["primary-text"]),e.value?(a(),n(b,{key:3,"primary-text":e.value.plays,class:"w-full","secondary-text":"Plays"},null,8,["primary-text"])):r("",!0),_(j,{icon:"edit",label:"Edit",onClick:o[2]||(o[2]=t=>c.$refs.updatePopup.show())}),_(j,{icon:"download",label:"Download",onClick:o[3]||(o[3]=t=>k(Y)(l.value.id))})])):r("",!0),s("div",$e,[s("div",Se,[s("span",Pe,y(k(Z)(e.value.spotify.releaseDate)),1),e.value.spotify.explicit?(a(),m("span",Be,"explicit")):r("",!0),s("span",Ie,[Ue,s("span",Me,y(e.value.spotify.popularity),1)])]),_(k(de),{class:q([{enabled:g.value},"spotify-enable"]),onClick:o[4]||(o[4]=t=>g.value=!g.value)},null,8,["class"]),g.value?(a(),n(ee,{key:0,modelValue:d.value,"onUpdate:modelValue":o[5]||(o[5]=t=>d.value=t),icon:x.value,onClick:F},null,8,["modelValue","icon"])):r("",!0)])],64)):r("",!0)],2)])]),s("div",qe,[s("div",De,[(a(!0),m($,null,E(P.value,t=>(a(),n(I,{class:"p-2"},{default:S(()=>[t.key==="loudness"?(a(),n(N,{key:0,modelValue:t.value,"onUpdate:modelValue":h=>t.value=h,"display-value":Math.round(-60+t.value)+"dB",class:"circle",max:60},null,8,["modelValue","onUpdate:modelValue","display-value"])):(a(),n(N,{key:1,modelValue:t.value,"onUpdate:modelValue":h=>t.value=h,"display-value":Math.round(t.value*100)+"%",class:"circle",max:1},null,8,["modelValue","onUpdate:modelValue","display-value"])),s("p",Ee,[s("span",Le,y(t.icon),1),D(" "+y(t.key),1)])]),_:2},1024))),256))])]),C.value.length?(a(),n(I,{key:0,class:"p-4 mt-4"},{default:S(()=>[Ne,(a(!0),m($,null,E(C.value,(t,h)=>(a(),n(ae,{key:h,index:h,song:t,"can-import":"","cannot-add":"","with-album":"","with-cover":""},null,8,["index","song"]))),128))]),_:1})):r("",!0)])):(a(),n(ne,{key:1}))])],64)}}}),Re=M(je,[["__scopeId","data-v-4d592b47"]]);export{Re as default}; diff --git a/src/ui/dist/assets/Track-P44IHcV3.js.gz b/src/ui/dist/assets/Track-P44IHcV3.js.gz new file mode 100644 index 00000000..9e57c13e Binary files /dev/null and b/src/ui/dist/assets/Track-P44IHcV3.js.gz differ diff --git a/src/ui/dist/assets/TrackCompact-CmSbwToc.js b/src/ui/dist/assets/TrackCompact-CAEHpsO2.js similarity index 97% rename from src/ui/dist/assets/TrackCompact-CmSbwToc.js rename to src/ui/dist/assets/TrackCompact-CAEHpsO2.js index ef603fa4..a70d1bed 100644 --- a/src/ui/dist/assets/TrackCompact-CmSbwToc.js +++ b/src/ui/dist/assets/TrackCompact-CAEHpsO2.js @@ -1 +1 @@ -import{_ as B,q as D,A as H,n,E as N,D as T,ay as i,f as z,o as r,c as S,i as u,J as E,d as p,az as M,g as l,w as d,a,z as O,u as b,M as C,t as R,C as V,l as q,m as A}from"./index-K4QaY0Na.js";const J=e=>(q("data-v-4c18b720"),e=e(),A(),e),P={class:"home-track-compact-wrapper"},j=["src"],F=J(()=>a("div",{class:"play"},[a("span",{class:"material-symbols-rounded"},"play_arrow")],-1)),G={class:"info"},K={class:"title"},L=["href"],Q={class:"artist"},U={__name:"TrackCompact",props:{title:String,artist:String,cover:String,id:Number,href:String},emits:["play"],setup(e,{emit:w}){const t=e,x=w,I=D(),f=`/track/${H(String(t.id))}`,m=n(null),h=n(null),$=c=>{c.stopPropagation(),x("play")},_=()=>{var c,o;if(!((c=t==null?void 0:t.href)!=null&&c.includes("spotify.com"))){I.push(f);return}if((o=t==null?void 0:t.href)!=null&&o.includes("spotify.com/album/")){h.value.show();return}m.value.show()},s=n(t.cover);N(()=>t.cover,()=>{s.value=t.cover});const v=T(()=>i(s.value));return(c,o)=>{var y,g;const k=z("router-link");return r(),S("div",P,[(y=e.href)!=null&&y.includes("spotify.com/album/")?(r(),u(E,{key:0,ref_key:"addRelease",ref:h,album:{cover:v.value,name:e.title,artist:e.artist,id:e.href.replace("https://open.spotify.com/album/",""),href:e.href,releaseDate:null}},null,8,["album"])):p("",!0),(g=e.href)!=null&&g.includes("spotify.com/track/")?(r(),u(M,{key:1,ref_key:"addSong",ref:m,song:{cover:v.value,title:e.title,artist:e.artist,id:e.href.replace("https://open.spotify.com/track/",""),href:e.href,releaseDate:null}},null,8,["song"])):p("",!0),l(V,{class:"home-track-compact","with-hover":"",onClick:_},{default:d(()=>[a("div",{style:O({backgroundImage:`url(${b(i)(s.value)})`}),class:"cover",onClick:$},[a("img",{src:b(i)(s.value),class:"hidden",onError:o[0]||(o[0]=X=>s.value=null)},null,40,j),F],4),a("div",G,[a("span",K,[e.href?(r(),S("a",{key:1,href:e.href,class:"linkOnHover"},[l(C,{text:e.title},null,8,["text"])],8,L)):(r(),u(k,{key:0,to:f,class:"linkOnHover"},{default:d(()=>[l(C,{text:e.title},null,8,["text"])]),_:1}))]),l(k,{to:`/search/artist:${e.artist}`,class:"linkOnHover"},{default:d(()=>[a("span",Q,R(e.artist),1)]),_:1},8,["to"])])]),_:1})])}}},Z=B(U,[["__scopeId","data-v-4c18b720"]]);export{Z as T}; +import{_ as B,q as D,A as H,n,E as N,D as T,ay as i,f as z,o as r,c as S,i as u,J as E,d as p,az as M,g as l,w as d,a,z as O,u as b,M as C,t as R,C as V,l as q,m as A}from"./index-DwIIj2B2.js";const J=e=>(q("data-v-4c18b720"),e=e(),A(),e),P={class:"home-track-compact-wrapper"},j=["src"],F=J(()=>a("div",{class:"play"},[a("span",{class:"material-symbols-rounded"},"play_arrow")],-1)),G={class:"info"},K={class:"title"},L=["href"],Q={class:"artist"},U={__name:"TrackCompact",props:{title:String,artist:String,cover:String,id:Number,href:String},emits:["play"],setup(e,{emit:w}){const t=e,x=w,I=D(),f=`/track/${H(String(t.id))}`,m=n(null),h=n(null),$=c=>{c.stopPropagation(),x("play")},_=()=>{var c,o;if(!((c=t==null?void 0:t.href)!=null&&c.includes("spotify.com"))){I.push(f);return}if((o=t==null?void 0:t.href)!=null&&o.includes("spotify.com/album/")){h.value.show();return}m.value.show()},s=n(t.cover);N(()=>t.cover,()=>{s.value=t.cover});const v=T(()=>i(s.value));return(c,o)=>{var y,g;const k=z("router-link");return r(),S("div",P,[(y=e.href)!=null&&y.includes("spotify.com/album/")?(r(),u(E,{key:0,ref_key:"addRelease",ref:h,album:{cover:v.value,name:e.title,artist:e.artist,id:e.href.replace("https://open.spotify.com/album/",""),href:e.href,releaseDate:null}},null,8,["album"])):p("",!0),(g=e.href)!=null&&g.includes("spotify.com/track/")?(r(),u(M,{key:1,ref_key:"addSong",ref:m,song:{cover:v.value,title:e.title,artist:e.artist,id:e.href.replace("https://open.spotify.com/track/",""),href:e.href,releaseDate:null}},null,8,["song"])):p("",!0),l(V,{class:"home-track-compact","with-hover":"",onClick:_},{default:d(()=>[a("div",{style:O({backgroundImage:`url(${b(i)(s.value)})`}),class:"cover",onClick:$},[a("img",{src:b(i)(s.value),class:"hidden",onError:o[0]||(o[0]=X=>s.value=null)},null,40,j),F],4),a("div",G,[a("span",K,[e.href?(r(),S("a",{key:1,href:e.href,class:"linkOnHover"},[l(C,{text:e.title},null,8,["text"])],8,L)):(r(),u(k,{key:0,to:f,class:"linkOnHover"},{default:d(()=>[l(C,{text:e.title},null,8,["text"])]),_:1}))]),l(k,{to:`/search/artist:${e.artist}`,class:"linkOnHover"},{default:d(()=>[a("span",Q,R(e.artist),1)]),_:1},8,["to"])])]),_:1})])}}},Z=B(U,[["__scopeId","data-v-4c18b720"]]);export{Z as T}; diff --git a/src/ui/dist/assets/TrackCompact-CAEHpsO2.js.gz b/src/ui/dist/assets/TrackCompact-CAEHpsO2.js.gz new file mode 100644 index 00000000..e0ccd31b Binary files /dev/null and b/src/ui/dist/assets/TrackCompact-CAEHpsO2.js.gz differ diff --git a/src/ui/dist/assets/TrackCompact-CmSbwToc.js.gz b/src/ui/dist/assets/TrackCompact-CmSbwToc.js.gz deleted file mode 100644 index a5cb24db..00000000 Binary files a/src/ui/dist/assets/TrackCompact-CmSbwToc.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Welcome-33n2Z_ee.js.gz b/src/ui/dist/assets/Welcome-33n2Z_ee.js.gz deleted file mode 100644 index 47c25df4..00000000 Binary files a/src/ui/dist/assets/Welcome-33n2Z_ee.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/Welcome-33n2Z_ee.js b/src/ui/dist/assets/Welcome-Bb1S_LPL.js similarity index 98% rename from src/ui/dist/assets/Welcome-33n2Z_ee.js rename to src/ui/dist/assets/Welcome-Bb1S_LPL.js index 11612bf9..9b0d5f78 100644 --- a/src/ui/dist/assets/Welcome-33n2Z_ee.js +++ b/src/ui/dist/assets/Welcome-Bb1S_LPL.js @@ -1 +1 @@ -import{_ as u,aw as d,o as i,c,a as e,Q as v,aJ as C,s as g,aK as S,F as T,h as k,b as m,a3 as h,a4 as p,d as w,f as b,i as I,l as R,m as x}from"./index-K4QaY0Na.js";const A={name:"ThemeSmall",props:{name:String},methods:{selected(){return d.getCurrentTheme()==this.name},select(){d.setTheme(this.name),this.$emit("selected")}}},E=["src"];function B(n,s,_,f,o,l){return i(),c("div",{onClick:s[0]||(s[0]=(...a)=>l.select&&l.select(...a)),class:"wrapper"},[e("img",{src:`/assets/img/themes/${this.name}.svg`,class:v({selected:l.selected()})},null,10,E)])}const N=u(A,[["render",B],["__scopeId","data-v-321833b6"]]),V={components:{ThemeSmall:N},methods:{updateThemes(){this.mode++},redirect(n){d.open(n)},finalRedirectRestricted(){this.spotifyClientId||this.spotifyClientSecret||fetch("/api/config/spotify",{method:"POST",body:JSON.stringify({id:"restricted",secret:"restricted"})}).then(n=>{n.status==200&&(setTimeout(()=>fetch("/api/releases"),1e3),this.mode++,setTimeout(()=>{this.$router.push("/")},6*1e3))})},async finalRedirect(){!this.spotifyClientId||!this.spotifyClientSecret||(await C(this.spotifyClientId,this.spotifyClientSecret),setTimeout(()=>fetch("/api/releases"),1e3),setTimeout(()=>fetch("/api/news/articles"),1e3),this.mode++,setTimeout(async()=>{await g(),this.$router.push("/")},6*1e3))}},data(){setInterval(()=>{if(this.mode<3){this.mode++;return}},7*1e3);const n=["dynamic","dark","light"],s=d.getCurrentTheme();return{mode:0,themes:n,themeSelected:s,spotifyClientId:"",spotifyClientSecret:""}},async mounted(){await S()||this.$router.push("/")}},t=n=>(R("data-v-9aa97202"),n=n(),x(),n),Y={class:"welcome bouncy centred-column"},O={key:0,class:"first centred-column"},D=t(()=>e("p",null,"Welcome to",-1)),F=t(()=>e("h1",null,"reAudioPlayer ONE",-1)),L=[D,F],P={key:1,class:"first centred-column"},U=t(()=>e("p",null,"The free audio player with the most extensive catalogue",-1)),H=t(()=>e("h1",null,"ARE YOU READY?",-1)),J=[U,H],M={key:2,class:"first centred-column"},W=t(()=>e("h1",null,"Almost There",-1)),z=t(()=>e("p",null,"After a few configurations you're ready to go",-1)),G=[W,z],K={key:3,class:"permanent centred-column"},Q=t(()=>e("h1",null,"Pick a Theme",-1)),j=t(()=>e("p",null,"You'll be able to change the theme at any point later on",-1)),q=t(()=>e("br",null,null,-1)),X={class:"centred-column appear-delayed"},Z={key:4,class:"permanent centred-column"},$=t(()=>e("h1",null,"Let's integrate Spotify then!",-1)),ee=t(()=>e("p",null,"You'll be able to change the tokens at any point later on",-1)),te=t(()=>e("br",null,null,-1)),se={class:"centred-column appear-delayed"},oe=t(()=>e("p",null,"2) Create An App",-1)),ne=t(()=>e("p",null,"3) Enter any name and any description",-1)),ie=t(()=>e("p",null,[m("4) Edit the settings: set the redirect url to "),e("a",{href:"http://reap.ml/"},"http://reap.ml/")],-1)),le=t(()=>e("p",null,"5) Copy and enter the client id and secret into the corresponding input field",-1)),ce=t(()=>e("br",null,null,-1)),re={class:"wrapTogether"},de=t(()=>e("p",null,"Client ID: ",-1)),ae={class:"wrapTogether"},he=t(()=>e("p",null,"Client Secret: ",-1)),pe={class:"wrapTogether spaceBetween"},ue={key:5,class:"centred-column"},me=t(()=>e("h1",null,"ALRIGHT!",-1)),_e=t(()=>e("p",null,"You're ready to go",-1)),fe=[me,_e];function ye(n,s,_,f,o,l){const a=b("theme-small");return i(),c("div",Y,[o.mode==0?(i(),c("div",O,L)):o.mode==1?(i(),c("div",P,J)):o.mode==2?(i(),c("div",M,G)):o.mode==3?(i(),c("div",K,[Q,j,q,e("div",X,[(i(),c("div",{class:"themes",key:o.themeSelected},[(i(!0),c(T,null,k(o.themes,(r,y)=>(i(),I(a,{onSelected:l.updateThemes,key:y,name:r},null,8,["onSelected","name"]))),128))]))])])):o.mode==4?(i(),c("div",Z,[$,ee,te,e("div",se,[e("p",null,[m("1) Head over to the "),e("a",{onClick:s[0]||(s[0]=()=>l.redirect("https://developer.spotify.com/dashboard/applications"))},"spotify developer dashboard")]),oe,ne,ie,le,ce,e("div",re,[de,h(e("input",{type:"text","onUpdate:modelValue":s[1]||(s[1]=r=>o.spotifyClientId=r)},null,512),[[p,o.spotifyClientId]])]),e("div",ae,[he,h(e("input",{type:"text","onUpdate:modelValue":s[2]||(s[2]=r=>o.spotifyClientSecret=r)},null,512),[[p,o.spotifyClientSecret]])]),e("div",pe,[e("button",{onClick:s[3]||(s[3]=(...r)=>l.finalRedirect&&l.finalRedirect(...r))},"continue"),e("button",{onClick:s[4]||(s[4]=(...r)=>l.finalRedirectRestricted&&l.finalRedirectRestricted(...r)),class:"restrictedMode"},"enter restricted mode")])])])):o.mode==5?(i(),c("div",ue,fe)):w("",!0)])}const Ce=u(V,[["render",ye],["__scopeId","data-v-9aa97202"]]);export{Ce as default}; +import{_ as u,aw as d,o as i,c,a as e,Q as v,aJ as C,s as g,aK as S,F as T,h as k,b as m,a3 as h,a4 as p,d as w,f as b,i as I,l as R,m as x}from"./index-DwIIj2B2.js";const A={name:"ThemeSmall",props:{name:String},methods:{selected(){return d.getCurrentTheme()==this.name},select(){d.setTheme(this.name),this.$emit("selected")}}},E=["src"];function B(n,s,_,f,o,l){return i(),c("div",{onClick:s[0]||(s[0]=(...a)=>l.select&&l.select(...a)),class:"wrapper"},[e("img",{src:`/assets/img/themes/${this.name}.svg`,class:v({selected:l.selected()})},null,10,E)])}const N=u(A,[["render",B],["__scopeId","data-v-321833b6"]]),V={components:{ThemeSmall:N},methods:{updateThemes(){this.mode++},redirect(n){d.open(n)},finalRedirectRestricted(){this.spotifyClientId||this.spotifyClientSecret||fetch("/api/config/spotify",{method:"POST",body:JSON.stringify({id:"restricted",secret:"restricted"})}).then(n=>{n.status==200&&(setTimeout(()=>fetch("/api/releases"),1e3),this.mode++,setTimeout(()=>{this.$router.push("/")},6*1e3))})},async finalRedirect(){!this.spotifyClientId||!this.spotifyClientSecret||(await C(this.spotifyClientId,this.spotifyClientSecret),setTimeout(()=>fetch("/api/releases"),1e3),setTimeout(()=>fetch("/api/news/articles"),1e3),this.mode++,setTimeout(async()=>{await g(),this.$router.push("/")},6*1e3))}},data(){setInterval(()=>{if(this.mode<3){this.mode++;return}},7*1e3);const n=["dynamic","dark","light"],s=d.getCurrentTheme();return{mode:0,themes:n,themeSelected:s,spotifyClientId:"",spotifyClientSecret:""}},async mounted(){await S()||this.$router.push("/")}},t=n=>(R("data-v-9aa97202"),n=n(),x(),n),Y={class:"welcome bouncy centred-column"},O={key:0,class:"first centred-column"},D=t(()=>e("p",null,"Welcome to",-1)),F=t(()=>e("h1",null,"reAudioPlayer ONE",-1)),L=[D,F],P={key:1,class:"first centred-column"},U=t(()=>e("p",null,"The free audio player with the most extensive catalogue",-1)),H=t(()=>e("h1",null,"ARE YOU READY?",-1)),J=[U,H],M={key:2,class:"first centred-column"},W=t(()=>e("h1",null,"Almost There",-1)),z=t(()=>e("p",null,"After a few configurations you're ready to go",-1)),G=[W,z],K={key:3,class:"permanent centred-column"},Q=t(()=>e("h1",null,"Pick a Theme",-1)),j=t(()=>e("p",null,"You'll be able to change the theme at any point later on",-1)),q=t(()=>e("br",null,null,-1)),X={class:"centred-column appear-delayed"},Z={key:4,class:"permanent centred-column"},$=t(()=>e("h1",null,"Let's integrate Spotify then!",-1)),ee=t(()=>e("p",null,"You'll be able to change the tokens at any point later on",-1)),te=t(()=>e("br",null,null,-1)),se={class:"centred-column appear-delayed"},oe=t(()=>e("p",null,"2) Create An App",-1)),ne=t(()=>e("p",null,"3) Enter any name and any description",-1)),ie=t(()=>e("p",null,[m("4) Edit the settings: set the redirect url to "),e("a",{href:"http://reap.ml/"},"http://reap.ml/")],-1)),le=t(()=>e("p",null,"5) Copy and enter the client id and secret into the corresponding input field",-1)),ce=t(()=>e("br",null,null,-1)),re={class:"wrapTogether"},de=t(()=>e("p",null,"Client ID: ",-1)),ae={class:"wrapTogether"},he=t(()=>e("p",null,"Client Secret: ",-1)),pe={class:"wrapTogether spaceBetween"},ue={key:5,class:"centred-column"},me=t(()=>e("h1",null,"ALRIGHT!",-1)),_e=t(()=>e("p",null,"You're ready to go",-1)),fe=[me,_e];function ye(n,s,_,f,o,l){const a=b("theme-small");return i(),c("div",Y,[o.mode==0?(i(),c("div",O,L)):o.mode==1?(i(),c("div",P,J)):o.mode==2?(i(),c("div",M,G)):o.mode==3?(i(),c("div",K,[Q,j,q,e("div",X,[(i(),c("div",{class:"themes",key:o.themeSelected},[(i(!0),c(T,null,k(o.themes,(r,y)=>(i(),I(a,{onSelected:l.updateThemes,key:y,name:r},null,8,["onSelected","name"]))),128))]))])])):o.mode==4?(i(),c("div",Z,[$,ee,te,e("div",se,[e("p",null,[m("1) Head over to the "),e("a",{onClick:s[0]||(s[0]=()=>l.redirect("https://developer.spotify.com/dashboard/applications"))},"spotify developer dashboard")]),oe,ne,ie,le,ce,e("div",re,[de,h(e("input",{type:"text","onUpdate:modelValue":s[1]||(s[1]=r=>o.spotifyClientId=r)},null,512),[[p,o.spotifyClientId]])]),e("div",ae,[he,h(e("input",{type:"text","onUpdate:modelValue":s[2]||(s[2]=r=>o.spotifyClientSecret=r)},null,512),[[p,o.spotifyClientSecret]])]),e("div",pe,[e("button",{onClick:s[3]||(s[3]=(...r)=>l.finalRedirect&&l.finalRedirect(...r))},"continue"),e("button",{onClick:s[4]||(s[4]=(...r)=>l.finalRedirectRestricted&&l.finalRedirectRestricted(...r)),class:"restrictedMode"},"enter restricted mode")])])])):o.mode==5?(i(),c("div",ue,fe)):w("",!0)])}const Ce=u(V,[["render",ye],["__scopeId","data-v-9aa97202"]]);export{Ce as default}; diff --git a/src/ui/dist/assets/Welcome-Bb1S_LPL.js.gz b/src/ui/dist/assets/Welcome-Bb1S_LPL.js.gz new file mode 100644 index 00000000..357a0bd3 Binary files /dev/null and b/src/ui/dist/assets/Welcome-Bb1S_LPL.js.gz differ diff --git a/src/ui/dist/assets/gistClient-ZdZsfTR6.js b/src/ui/dist/assets/gistClient-BfrJnK9Z.js similarity index 97% rename from src/ui/dist/assets/gistClient-ZdZsfTR6.js rename to src/ui/dist/assets/gistClient-BfrJnK9Z.js index 8462f15a..62126776 100644 --- a/src/ui/dist/assets/gistClient-ZdZsfTR6.js +++ b/src/ui/dist/assets/gistClient-BfrJnK9Z.js @@ -1,4 +1,4 @@ -import{at as w,N as d}from"./index-K4QaY0Na.js";const r=async(t=null)=>{const a=await w(),n=t??a.github.githubPat;if(!n)throw new Error("No GitHub PAT found");return{Authorization:"Bearer "+n}},y=(t,a="reAudioPlayer One",n="Fully managed with reAudioPlayer One",e=!1)=>{const s={public:e,description:n,files:{[`_${a}.md`]:{content:`# reAudioPlayer One +import{at as w,N as d}from"./index-DwIIj2B2.js";const r=async(t=null)=>{const a=await w(),n=t??a.github.githubPat;if(!n)throw new Error("No GitHub PAT found");return{Authorization:"Bearer "+n}},y=(t,a="reAudioPlayer One",n="Fully managed with reAudioPlayer One",e=!1)=>{const s={public:e,description:n,files:{[`_${a}.md`]:{content:`# reAudioPlayer One This gist was created with reAudioPlayer One diff --git a/src/ui/dist/assets/gistClient-BfrJnK9Z.js.gz b/src/ui/dist/assets/gistClient-BfrJnK9Z.js.gz new file mode 100644 index 00000000..41c17f16 Binary files /dev/null and b/src/ui/dist/assets/gistClient-BfrJnK9Z.js.gz differ diff --git a/src/ui/dist/assets/gistClient-ZdZsfTR6.js.gz b/src/ui/dist/assets/gistClient-ZdZsfTR6.js.gz deleted file mode 100644 index db3d69d9..00000000 Binary files a/src/ui/dist/assets/gistClient-ZdZsfTR6.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-BHH0-c1C.js.gz b/src/ui/dist/assets/index-BHH0-c1C.js.gz deleted file mode 100644 index 3b32b937..00000000 Binary files a/src/ui/dist/assets/index-BHH0-c1C.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-BHH0-c1C.js b/src/ui/dist/assets/index-BKVCga35.js similarity index 98% rename from src/ui/dist/assets/index-BHH0-c1C.js rename to src/ui/dist/assets/index-BKVCga35.js index 89e9b521..e984a430 100644 --- a/src/ui/dist/assets/index-BHH0-c1C.js +++ b/src/ui/dist/assets/index-BKVCga35.js @@ -1 +1 @@ -import{e as N,aH as S,n as x,a9 as I,y as T,o,c as a,a as s,F as c,h as V,i as C,w as y,b as h,t as i,C as g,g as m,H as q,d as l,u as p,aI as D,z as E,L as F,Q as $,v as z,I as L,N as O,l as j,m as H,_ as M}from"./index-K4QaY0Na.js";const v=f=>(j("data-v-91911899"),f=f(),H(),f),A={class:"downloader py-2 pr-2 grid gap-4 grid-cols-2 items-start"},P={class:"downloads"},Q={class:"main"},Y={class:"m-0 mb-4"},G={class:"status"},J={class:"flex flex-col"},K={key:0,class:"info"},R=v(()=>s("span",{class:"material-symbols-rounded"},"cloud",-1)),U={key:1,class:"info"},W=v(()=>s("span",{class:"material-symbols-rounded"},"file_download",-1));const X=v(()=>s("div",{class:"error"},[s("span",null,"This song could not be downloaded:"),s("ul",{class:"block list-disc ml-8"},[s("li",null," verify that the source link is working "),s("li",null,"try again later")])],-1)),Z={key:0,class:"info"},ee=v(()=>s("span",{class:"material-symbols-rounded"},"link",-1)),oe=["href"],se={class:"wrap-progress"},ae=["aria-valuenow"],ne={key:1,class:"material-symbols-rounded downloading"},le=["onClick"],te=["onClick"],re=["onClick"],de={key:1,class:"col-span-2 flex flex-row justify-center items-center"},ie={class:"new-download"},ce=N({__name:"index",setup(f){const d=S(),w=n=>{O.addYesNo("Are you sure you want to redownload this song?",null,null,()=>{console.log("[downloader] reDownload",n),d.downloadFromDb(n)})},u={title:"",artist:"",album:{name:"",href:"",id:""},cover:"",source:"",href:""},k=x(null),t=x([{name:"source",type:"text",accept:"audio/mp3",required:!0,onChange:async n=>{const r=await I(n);t.value.find(e=>e.name==="title").value=r.title,t.value.find(e=>e.name==="artist").value=r.artist,t.value.find(e=>e.name==="album").value=r.album,t.value.find(e=>e.name==="cover").value=r.cover,t.value.find(e=>e.name==="source").value=r.source},value:u.source},{name:"title",type:"text",icon:"title",required:!0,value:u.title},{name:"artist",type:"text",icon:"person",required:!0,value:u.artist},{name:"album",type:"text",icon:"album",value:u.album.name},{name:"cover",type:"upload",accept:"image/*",imagePreview:!0,value:u.cover}]),B=async()=>{const n=k.value.toObject();n.id=new Date().getTime(),console.log("[downloader] requestDownload",n),d.downloadOther(n)};return T(()=>{var n,r;d.prefill!=null&&(t.value=t.value.map(e=>{var _;return e.value=((_=d.prefill)==null?void 0:_[e.name])??e.value,e}),(r=(n=t.value.find(e=>e.name==="source"))==null?void 0:n.onChange)==null||r.call(n,d.prefill.source))}),(n,r)=>(o(),a("div",A,[s("div",P,[(o(!0),a(c,null,V(p(d).states,e=>{var _;return o(),a(c,{key:e.songId},[e.internal?l("",!0):(o(),C(g,{key:0,class:$([["song",{downloading:((_=p(d).states[e.songId])==null?void 0:_.status)=="downloading"}],"p-4 card items-center"])},{default:y(()=>[e.status!=="pending"?(o(),a(c,{key:0},[s("main",Q,[s("h2",Y,[e.song?(o(),a(c,{key:0},[h(i(e.song.title),1)],64)):(o(),a(c,{key:1},[h(i(e.filename),1)],64))]),s("div",G,[e.song?(o(),C(g,{key:0,class:"info p-4"},{default:y(()=>[m(q,{src:e.song.cover,class:"cover"},null,8,["src"]),s("div",J,[s("span",null,i(e.song.album.name),1),s("span",null,i(e.song.artist),1)])]),_:2},1024)):l("",!0),e.status!=="error"?(o(),a(c,{key:1},[e.downloaded||e.total?(o(),a("div",K,[R,h(" "+i(p(D)(e.downloaded))+" / "+i(p(D)(e.total)),1)])):l("",!0),e.chunk?(o(),a("div",U,[W,h(" "+i(e.chunk),1)])):l("",!0),l("",!0),l("",!0),l("",!0)],64)):(o(),a(c,{key:2},[X,e.song?(o(),a("div",Z,[ee,s("a",{href:e.song.source,target:"_blank",rel:"noopener noreferrer"},i(e.song.source),9,oe)])):l("",!0)],64))])]),s("aside",null,[s("div",se,[e.status=="downloading"?(o(),a("div",{key:0,class:"progress-bar",role:"progressbar","aria-valuenow":e.percent,"aria-valuemin":"0","aria-valuemax":"100",style:E({"--progress":e.percent+"%"})},null,12,ae)):l("",!0),e.status=="downloading"?(o(),a("span",ne," south ")):e.status=="finished"?(o(),a("span",{key:2,class:"material-symbols-rounded cursor-pointer finished",onClick:b=>p(d).download(e.song.id)}," download_for_offline ",8,le)):e.status=="downloaded"?(o(),a("span",{key:3,class:"material-symbols-rounded cursor-pointer downloaded",onClick:b=>w(e.song.id)}," download_done ",8,te)):e.status=="error"?(o(),a("span",{key:4,class:"material-symbols-rounded cursor-pointer error",onClick:b=>w(e.song.id)}," error ",8,re)):l("",!0)])])],64)):(o(),a("div",de,[m(F)]))]),_:2},1032,["class"]))],64)}),128))]),s("div",ie,[m(g,{class:"custom p-4 flex flex-col"},{default:y(()=>[m(z,{ref_key:"form",ref:k,options:t.value},null,8,["options"]),m(L,{icon:"download_for_offline",label:"Download",class:"w-full mt-8",onClick:B})]),_:1})])]))}}),_e=M(ce,[["__scopeId","data-v-91911899"]]);export{_e as default}; +import{e as N,aH as S,n as x,a9 as I,y as T,o,c as a,a as s,F as c,h as V,i as C,w as y,b as h,t as i,C as g,g as m,H as q,d as l,u as p,aI as D,z as E,L as F,Q as $,v as z,I as L,N as O,l as j,m as H,_ as M}from"./index-DwIIj2B2.js";const v=f=>(j("data-v-91911899"),f=f(),H(),f),A={class:"downloader py-2 pr-2 grid gap-4 grid-cols-2 items-start"},P={class:"downloads"},Q={class:"main"},Y={class:"m-0 mb-4"},G={class:"status"},J={class:"flex flex-col"},K={key:0,class:"info"},R=v(()=>s("span",{class:"material-symbols-rounded"},"cloud",-1)),U={key:1,class:"info"},W=v(()=>s("span",{class:"material-symbols-rounded"},"file_download",-1));const X=v(()=>s("div",{class:"error"},[s("span",null,"This song could not be downloaded:"),s("ul",{class:"block list-disc ml-8"},[s("li",null," verify that the source link is working "),s("li",null,"try again later")])],-1)),Z={key:0,class:"info"},ee=v(()=>s("span",{class:"material-symbols-rounded"},"link",-1)),oe=["href"],se={class:"wrap-progress"},ae=["aria-valuenow"],ne={key:1,class:"material-symbols-rounded downloading"},le=["onClick"],te=["onClick"],re=["onClick"],de={key:1,class:"col-span-2 flex flex-row justify-center items-center"},ie={class:"new-download"},ce=N({__name:"index",setup(f){const d=S(),w=n=>{O.addYesNo("Are you sure you want to redownload this song?",null,null,()=>{console.log("[downloader] reDownload",n),d.downloadFromDb(n)})},u={title:"",artist:"",album:{name:"",href:"",id:""},cover:"",source:"",href:""},k=x(null),t=x([{name:"source",type:"text",accept:"audio/mp3",required:!0,onChange:async n=>{const r=await I(n);t.value.find(e=>e.name==="title").value=r.title,t.value.find(e=>e.name==="artist").value=r.artist,t.value.find(e=>e.name==="album").value=r.album,t.value.find(e=>e.name==="cover").value=r.cover,t.value.find(e=>e.name==="source").value=r.source},value:u.source},{name:"title",type:"text",icon:"title",required:!0,value:u.title},{name:"artist",type:"text",icon:"person",required:!0,value:u.artist},{name:"album",type:"text",icon:"album",value:u.album.name},{name:"cover",type:"upload",accept:"image/*",imagePreview:!0,value:u.cover}]),B=async()=>{const n=k.value.toObject();n.id=new Date().getTime(),console.log("[downloader] requestDownload",n),d.downloadOther(n)};return T(()=>{var n,r;d.prefill!=null&&(t.value=t.value.map(e=>{var _;return e.value=((_=d.prefill)==null?void 0:_[e.name])??e.value,e}),(r=(n=t.value.find(e=>e.name==="source"))==null?void 0:n.onChange)==null||r.call(n,d.prefill.source))}),(n,r)=>(o(),a("div",A,[s("div",P,[(o(!0),a(c,null,V(p(d).states,e=>{var _;return o(),a(c,{key:e.songId},[e.internal?l("",!0):(o(),C(g,{key:0,class:$([["song",{downloading:((_=p(d).states[e.songId])==null?void 0:_.status)=="downloading"}],"p-4 card items-center"])},{default:y(()=>[e.status!=="pending"?(o(),a(c,{key:0},[s("main",Q,[s("h2",Y,[e.song?(o(),a(c,{key:0},[h(i(e.song.title),1)],64)):(o(),a(c,{key:1},[h(i(e.filename),1)],64))]),s("div",G,[e.song?(o(),C(g,{key:0,class:"info p-4"},{default:y(()=>[m(q,{src:e.song.cover,class:"cover"},null,8,["src"]),s("div",J,[s("span",null,i(e.song.album.name),1),s("span",null,i(e.song.artist),1)])]),_:2},1024)):l("",!0),e.status!=="error"?(o(),a(c,{key:1},[e.downloaded||e.total?(o(),a("div",K,[R,h(" "+i(p(D)(e.downloaded))+" / "+i(p(D)(e.total)),1)])):l("",!0),e.chunk?(o(),a("div",U,[W,h(" "+i(e.chunk),1)])):l("",!0),l("",!0),l("",!0),l("",!0)],64)):(o(),a(c,{key:2},[X,e.song?(o(),a("div",Z,[ee,s("a",{href:e.song.source,target:"_blank",rel:"noopener noreferrer"},i(e.song.source),9,oe)])):l("",!0)],64))])]),s("aside",null,[s("div",se,[e.status=="downloading"?(o(),a("div",{key:0,class:"progress-bar",role:"progressbar","aria-valuenow":e.percent,"aria-valuemin":"0","aria-valuemax":"100",style:E({"--progress":e.percent+"%"})},null,12,ae)):l("",!0),e.status=="downloading"?(o(),a("span",ne," south ")):e.status=="finished"?(o(),a("span",{key:2,class:"material-symbols-rounded cursor-pointer finished",onClick:b=>p(d).download(e.song.id)}," download_for_offline ",8,le)):e.status=="downloaded"?(o(),a("span",{key:3,class:"material-symbols-rounded cursor-pointer downloaded",onClick:b=>w(e.song.id)}," download_done ",8,te)):e.status=="error"?(o(),a("span",{key:4,class:"material-symbols-rounded cursor-pointer error",onClick:b=>w(e.song.id)}," error ",8,re)):l("",!0)])])],64)):(o(),a("div",de,[m(F)]))]),_:2},1032,["class"]))],64)}),128))]),s("div",ie,[m(g,{class:"custom p-4 flex flex-col"},{default:y(()=>[m(z,{ref_key:"form",ref:k,options:t.value},null,8,["options"]),m(L,{icon:"download_for_offline",label:"Download",class:"w-full mt-8",onClick:B})]),_:1})])]))}}),_e=M(ce,[["__scopeId","data-v-91911899"]]);export{_e as default}; diff --git a/src/ui/dist/assets/index-BKVCga35.js.gz b/src/ui/dist/assets/index-BKVCga35.js.gz new file mode 100644 index 00000000..b09d3706 Binary files /dev/null and b/src/ui/dist/assets/index-BKVCga35.js.gz differ diff --git a/src/ui/dist/assets/index-BVo38SBx.css b/src/ui/dist/assets/index-BVo38SBx.css new file mode 100644 index 00000000..99a18ff1 --- /dev/null +++ b/src/ui/dist/assets/index-BVo38SBx.css @@ -0,0 +1 @@ +.wrapper[data-v-780f7ad5]{display:flex;flex-direction:row;padding:1em;border-top:none;background:none}.link[data-v-780f7ad5]{text-decoration:none}.collection[data-v-780f7ad5]{padding:.5em 1em;border-radius:1000vmax;font-weight:700;color:var(--fg-base);margin-right:10px;font-size:.85em;border:var(--border-container);transition:all .2s ease-in-out}.collection[data-v-780f7ad5]:hover{background:var(--bg-hover-dk);border-color:var(--fg-secondary)}.router-link-active div.collection[data-v-780f7ad5]{background:var(--fg-secondary);color:var(--fg-contrast)}p.note[data-v-19795e3d]{font-size:.7em}div.title[data-v-19795e3d]{display:flex;flex-direction:row;align-items:center;margin-top:1rem;margin-bottom:.25rem;gap:.5em}div.title h4[data-v-19795e3d]{margin-top:0}div.title span[data-v-19795e3d]{color:var(--fg-secondary)}.wrapper[data-v-19795e3d]{background:var(--bg-base-lt);border-radius:20px;min-height:10vh;margin:10px}.wrapper[data-v-19795e3d]:hover{cursor:pointer;background:var(--bg-hover-dk)}.item[data-v-19795e3d]{padding:20px;height:100%;display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width: 950px){.item[data-v-19795e3d]{display:flex;flex-direction:row;align-items:center;height:100%;justify-content:flex-start}}img[data-v-19795e3d]{width:100%;border-radius:12px}@media screen and (max-width: 950px){img[data-v-19795e3d]{width:20%}}h4[data-v-19795e3d]{margin-bottom:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 950px){h4[data-v-19795e3d]{margin-left:20px;margin-top:0}}p[data-v-19795e3d]{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.padding-20[data-v-33e7fc43]{padding:20px}.releases[data-v-fbc407e7]{display:grid;grid-template-columns:2fr 1fr;align-items:center;height:100%}.entry[data-v-fbc407e7]{display:grid;grid-template-columns:50px 1fr 10ch 20px 20px 20px;gap:.5em;padding:.5em;border-radius:1em;cursor:pointer;align-items:center}.entry[data-v-fbc407e7]:hover{background:var(--bg-hover)}h5[data-v-fbc407e7]{text-transform:none;font-weight:700;font-size:.85em;color:var(--fg-base);padding:.25em .5em;border-radius:.5em}h5[data-v-fbc407e7]:hover{background:var(--bg-hover-dk)}h5.selected[data-v-fbc407e7]{background:var(--bg-hover)}.current[data-v-fbc407e7]{display:flex;flex-direction:column;align-items:center;gap:1em}.queue[data-v-fbc407e7]{height:80%;overflow:hidden}.queue>.entries[data-v-fbc407e7]{padding:.5em}.current .cover[data-v-fbc407e7]{max-width:min(50vh,500px)}.followButton[data-v-286e9794]{color:var(--fg-base);background:none;border:1px solid var(--border-base);border-radius:2px;font-family:var(--ff-base);text-transform:uppercase;margin-top:5px;padding:5px 10px;font-weight:700;letter-spacing:1px}.followButton[data-v-286e9794]:hover{cursor:pointer}p.note[data-v-286e9794]{font-size:.7em}.wrapper[data-v-286e9794]{background:var(--bg-base-lt);border-radius:20px;min-height:10vh;margin:10px;padding:20px;position:relative;text-decoration:none!important;height:calc(100% - 20px)}.wrapper[data-v-286e9794]:hover{cursor:pointer;background:var(--bg-hover-dk)}.item[data-v-286e9794]{height:100%;display:flex;flex-direction:column;justify-content:space-between}.item span.material-symbols-rounded[data-v-286e9794]:hover{color:var(--fg-base)}img[data-v-286e9794]{width:100%;border-radius:12px;margin-bottom:1em}h4[data-v-286e9794]{margin:0}p[data-v-286e9794]{margin:0;color:var(--fg-base-dk);font-size:.8em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.artists[data-v-a8a87a8e]{display:flex;flex-direction:column;gap:1em}.header[data-v-3e995f8b]{position:absolute;top:0;z-index:100;width:100%}main[data-v-3e995f8b]{position:relative;height:100%;padding:1em;padding-top:calc(70px + 1em)}main>div[data-v-3e995f8b]{height:100%}.parent[data-v-3e995f8b]{height:100%;position:relative} diff --git a/src/ui/dist/assets/index-BVo38SBx.css.gz b/src/ui/dist/assets/index-BVo38SBx.css.gz new file mode 100644 index 00000000..4abc880e Binary files /dev/null and b/src/ui/dist/assets/index-BVo38SBx.css.gz differ diff --git a/src/ui/dist/assets/index-DDzIGPOz.js b/src/ui/dist/assets/index-BkDfvaJu.js similarity index 95% rename from src/ui/dist/assets/index-DDzIGPOz.js rename to src/ui/dist/assets/index-BkDfvaJu.js index 42b73c56..a0c1520a 100644 --- a/src/ui/dist/assets/index-DDzIGPOz.js +++ b/src/ui/dist/assets/index-BkDfvaJu.js @@ -1 +1 @@ -import{_ as S,o as a,c as o,a as s,b as D,t as P,d as h,r as E,e as I,f as j,g as i,w as d,F as m,h as _,i as p,P as O,u as $,p as R,j as H,N as q,k as g,l as N,m as F,n as y,q as T,s as M,v as V,I as G,C as x,x as L,y as J}from"./index-K4QaY0Na.js";import{P as B}from"./PlaylistCard-DXOdXptp.js";import{T as b}from"./TrackCompact-CmSbwToc.js";import{P as C}from"./PlaylistEntry-9wUfG8hQ.js";import{s as W}from"./spotify-DDsJS6kd.js";import"./playerInPicture-Dfp9IAsf.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";const z={name:"FlexShelf",props:{heading:String,icon:String}},A={class:"shelf"},K={class:"header"},Q={key:0},U={key:0,class:"icon material-symbols-round"},X={class:"items"};function Y(e,t,r,c,l,n){return a(),o("div",A,[s("div",K,[r.heading||r.icon?(a(),o("h2",Q,[D(P(r.heading),1),r.icon?(a(),o("span",U,P(r.icon),1)):h("",!0)])):h("",!0)]),s("div",X,[E(e.$slots,"default",{},void 0,!0)])])}const f=S(z,[["render",Y],["__scopeId","data-v-27a92662"]]),u=e=>(N("data-v-b9b4d097"),e=e(),F(),e),Z={class:"home"},ee={class:"main"},te={key:0,class:"playlists"},se=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," library_music ",-1)),le=u(()=>s("span",{class:"hover:underline"}," Playlists ",-1)),ae={key:1,class:"breaking"},ne=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," trending_up ",-1)),oe=u(()=>s("span",{class:"hover:underline"}," Breaking Songs ",-1)),ie={key:2,class:"liked"},re=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," favorite ",-1)),ce=u(()=>s("span",{class:"hover:underline"}," Liked Songs ",-1)),de={class:"side"},ue={key:0,class:"releases"},pe=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," radar ",-1)),he=u(()=>s("span",{class:"hover:underline"}," Out now ",-1)),me={key:1,class:"disovery"},_e=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," explore ",-1)),fe=u(()=>s("span",{class:"hover:underline"}," Discover ",-1)),ye={key:2,class:"recommendations"},ve=u(()=>s("h2",{class:"flex items-center gap-2"},[s("span",{class:"material-symbols-rounded ms-fill"}," recommend "),D(" Suggested ")],-1)),ke={name:"Home",data(){const e=new Date;return{greeting:e.getHours()<12?"Good morning":e.getHours()<18?"Good afternoon":"Good evening",releases:[],picks:[],songs:[],recommendations:[],data:H()}},mounted(){fetch("/api/releases").then(e=>e.json()).then(e=>{this.releases=e.slice(0,3);const t=e.filter(r=>new Date(r.releaseDate).toDateString()===new Date().toDateString());t.length&&q.addInfo("New releases",`There are ${t.length} new releases today`,5e3,void 0,"/collection/releases")}),this.pick()},computed:{playlists(){return this.data.playlists},liked(){return g("liked").songs.slice(0,3)},breaking(){return g("breaking").songs.slice(0,3)}},methods:{playDiscover(e){fetch("/api/player/load",{method:"POST",body:JSON.stringify({id:e.id,type:"track"})})},playRecommendation(e){const t=new CustomEvent("player.play",{detail:{artist:e.artist,title:e.title,source:e.source||e.url||e.href}});window.dispatchEvent(t)},async pick(){if(!this.data.playlists.length){setTimeout(()=>this.pick(),2e3);return}if(this.songs=this.playlists.map(e=>{var t;return((t=g(e.id))==null?void 0:t.songs)||[]}).flat(),!(this.songs.length<3)){for(let e=0;e<3;e++)this.picks.push(this.songs[Math.floor(Math.random()*this.songs.length)]);fetch("/api/spotify/recommendations",{method:"POST",body:JSON.stringify({query:`${this.picks[0].artist} ${this.picks[0].title}`})}).then(e=>e.json()).then(e=>{this.recommendations=e.slice(0,3)})}}}},ge=I({...ke,setup(e){return(t,r)=>{const c=j("router-link");return a(),o("div",Z,[s("div",ee,[t.playlists.length?(a(),o("div",te,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/playlists"},{default:d(()=>[se,le]),_:1})]),i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.playlists,l=>(a(),p(B,{playlist:l},null,8,["playlist"]))),256))]),_:1})])):h("",!0),t.breaking.length?(a(),o("div",ae,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/tracks/breaking"},{default:d(()=>[ne,oe]),_:1})]),i(O),(a(!0),o(m,null,_(t.breaking,(l,n)=>(a(),p(C,{key:n,index:n,"playlist-id":"breaking",song:l,"with-cover":""},null,8,["index","song"]))),128))])):h("",!0),t.liked.length?(a(),o("div",ie,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/tracks"},{default:d(()=>[re,ce]),_:1})]),i(O),(a(!0),o(m,null,_(t.liked,(l,n)=>(a(),p(C,{key:n,index:n,"playlist-id":"liked",song:l,"with-cover":""},null,8,["index","song"]))),128))])):h("",!0)]),s("div",de,[t.releases.length?(a(),o("div",ue,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/releases"},{default:d(()=>[pe,he]),_:1})]),i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.releases,(l,n)=>(a(),p(b,{key:n,artist:l.artist,cover:l.cover,href:l.url,title:l.title,onPlay:()=>t.playRecommendation(l)},null,8,["artist","cover","href","title","onPlay"]))),128))]),_:1})])):h("",!0),t.picks.length?(a(),o("div",me,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/discover"},{default:d(()=>[_e,fe]),_:1})]),i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.picks,(l,n)=>(a(),p(b,{id:l.id,key:n,artist:l.artist,cover:$(R)(l.cover),href:l.href,title:l.title,onPlay:()=>t.playDiscover(l)},null,8,["id","artist","cover","href","title","onPlay"]))),128))]),_:1})])):h("",!0),t.recommendations.length?(a(),o("div",ye,[ve,i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.recommendations,(l,n)=>(a(),p(b,{key:n,artist:l.artist,cover:l.cover,href:l.href,title:l.title,onPlay:()=>t.playRecommendation(l)},null,8,["artist","cover","href","title","onPlay"]))),128))]),_:1})])):h("",!0)])])}}}),be=S(ge,[["__scopeId","data-v-b9b4d097"]]),v=e=>(N("data-v-2c465748"),e=e(),F(),e),Se={class:"onboarding p-4"},$e=v(()=>s("h1",null,"So nice to meet you!",-1)),we=v(()=>s("p",null,"Let's get you set up",-1)),Pe={class:"grid grid-cols-2 gap-4 mt-8"},Oe=v(()=>s("div",{class:"flex flex-row items-center"},[s("span",{class:"material-symbols-rounded ms-wght-700 text-4xl mr-4"},"add"),s("h2",null,"Create your first playlist")],-1)),xe={class:"flex flex-row justify-end w-full"},Ce={class:"flex flex-row items-center"},De=v(()=>s("h2",null,"Import from Spotify",-1)),Ie={class:"spotify-playlists"},He=I({__name:"Onboarding",setup(e){const t=y([]),r=y(!1),c=y(null);T(),M().then(n=>{r.value=n}),fetch("/api/spotify/playlists").then(n=>n.json()).then(n=>{t.value=n});const l={fields:[{name:"name",placeholder:"Playlist name",icon:"title",type:"text",required:!0},{name:"description",placeholder:"Playlist description",icon:"description",type:"text",required:!1}],submit:{label:"Create",action:async()=>{const n=c.value.toObject();await L(n.name,n.description)}}};return(n,w)=>(a(),o("div",Se,[$e,we,s("div",Pe,[i(x,{class:"p-4"},{default:d(()=>[Oe,i(V,{ref_key:"createForm",ref:c,options:l.fields},null,8,["options"]),s("div",xe,[i(G,{onClick:w[0]||(w[0]=k=>l.submit.action()),icon:"add",label:l.submit.label},null,8,["label"])])]),_:1}),t.value.length?(a(),p(x,{key:0,class:"p-4"},{default:d(()=>[s("div",Ce,[i($(W),{class:"spotify mr-4"}),De]),s("div",Ie,[(a(!0),o(m,null,_(t.value,k=>(a(),p(B,{playlist:{...k,type:"classic",plays:0,href:`https://open.spotify.com/playlist/${k.id}`},"is-spotify":""},null,8,["playlist"]))),256))])]),_:1})):h("",!0)])]))}}),Ne=S(He,[["__scopeId","data-v-2c465748"]]),Me={__name:"index",setup(e){const t=H(),r=y(!1),c=T();return J(()=>{document.body.clientWidth<768&&(r.value=!0,c.push("/collection/playlist"))}),(l,n)=>$(t).notEmpty||r.value?(a(),p(be,{key:0})):(a(),p(Ne,{key:1}))}};export{Me as default}; +import{_ as S,o as a,c as o,a as s,b as D,t as P,d as h,r as E,e as I,f as j,g as i,w as d,F as m,h as _,i as p,P as O,u as $,p as R,j as H,N as q,k as g,l as N,m as F,n as y,q as T,s as M,v as V,I as G,C as x,x as L,y as J}from"./index-DwIIj2B2.js";import{P as B}from"./PlaylistCard-CLiKXXKR.js";import{T as b}from"./TrackCompact-CAEHpsO2.js";import{P as C}from"./PlaylistEntry-oyklgbh5.js";import{s as W}from"./spotify-nGujcJNw.js";import"./playerInPicture-Dfp9IAsf.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";const z={name:"FlexShelf",props:{heading:String,icon:String}},A={class:"shelf"},K={class:"header"},Q={key:0},U={key:0,class:"icon material-symbols-round"},X={class:"items"};function Y(e,t,r,c,l,n){return a(),o("div",A,[s("div",K,[r.heading||r.icon?(a(),o("h2",Q,[D(P(r.heading),1),r.icon?(a(),o("span",U,P(r.icon),1)):h("",!0)])):h("",!0)]),s("div",X,[E(e.$slots,"default",{},void 0,!0)])])}const f=S(z,[["render",Y],["__scopeId","data-v-27a92662"]]),u=e=>(N("data-v-b9b4d097"),e=e(),F(),e),Z={class:"home"},ee={class:"main"},te={key:0,class:"playlists"},se=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," library_music ",-1)),le=u(()=>s("span",{class:"hover:underline"}," Playlists ",-1)),ae={key:1,class:"breaking"},ne=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," trending_up ",-1)),oe=u(()=>s("span",{class:"hover:underline"}," Breaking Songs ",-1)),ie={key:2,class:"liked"},re=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," favorite ",-1)),ce=u(()=>s("span",{class:"hover:underline"}," Liked Songs ",-1)),de={class:"side"},ue={key:0,class:"releases"},pe=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," radar ",-1)),he=u(()=>s("span",{class:"hover:underline"}," Out now ",-1)),me={key:1,class:"disovery"},_e=u(()=>s("span",{class:"material-symbols-rounded ms-fill"}," explore ",-1)),fe=u(()=>s("span",{class:"hover:underline"}," Discover ",-1)),ye={key:2,class:"recommendations"},ve=u(()=>s("h2",{class:"flex items-center gap-2"},[s("span",{class:"material-symbols-rounded ms-fill"}," recommend "),D(" Suggested ")],-1)),ke={name:"Home",data(){const e=new Date;return{greeting:e.getHours()<12?"Good morning":e.getHours()<18?"Good afternoon":"Good evening",releases:[],picks:[],songs:[],recommendations:[],data:H()}},mounted(){fetch("/api/releases").then(e=>e.json()).then(e=>{this.releases=e.slice(0,3);const t=e.filter(r=>new Date(r.releaseDate).toDateString()===new Date().toDateString());t.length&&q.addInfo("New releases",`There are ${t.length} new releases today`,5e3,void 0,"/collection/releases")}),this.pick()},computed:{playlists(){return this.data.playlists},liked(){return g("liked").songs.slice(0,3)},breaking(){return g("breaking").songs.slice(0,3)}},methods:{playDiscover(e){fetch("/api/player/load",{method:"POST",body:JSON.stringify({id:e.id,type:"track"})})},playRecommendation(e){const t=new CustomEvent("player.play",{detail:{artist:e.artist,title:e.title,source:e.source||e.url||e.href}});window.dispatchEvent(t)},async pick(){if(!this.data.playlists.length){setTimeout(()=>this.pick(),2e3);return}if(this.songs=this.playlists.map(e=>{var t;return((t=g(e.id))==null?void 0:t.songs)||[]}).flat(),!(this.songs.length<3)){for(let e=0;e<3;e++)this.picks.push(this.songs[Math.floor(Math.random()*this.songs.length)]);fetch("/api/spotify/recommendations",{method:"POST",body:JSON.stringify({query:`${this.picks[0].artist} ${this.picks[0].title}`})}).then(e=>e.json()).then(e=>{this.recommendations=e.slice(0,3)})}}}},ge=I({...ke,setup(e){return(t,r)=>{const c=j("router-link");return a(),o("div",Z,[s("div",ee,[t.playlists.length?(a(),o("div",te,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/playlists"},{default:d(()=>[se,le]),_:1})]),i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.playlists,l=>(a(),p(B,{playlist:l},null,8,["playlist"]))),256))]),_:1})])):h("",!0),t.breaking.length?(a(),o("div",ae,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/tracks/breaking"},{default:d(()=>[ne,oe]),_:1})]),i(O),(a(!0),o(m,null,_(t.breaking,(l,n)=>(a(),p(C,{key:n,index:n,"playlist-id":"breaking",song:l,"with-cover":""},null,8,["index","song"]))),128))])):h("",!0),t.liked.length?(a(),o("div",ie,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/tracks"},{default:d(()=>[re,ce]),_:1})]),i(O),(a(!0),o(m,null,_(t.liked,(l,n)=>(a(),p(C,{key:n,index:n,"playlist-id":"liked",song:l,"with-cover":""},null,8,["index","song"]))),128))])):h("",!0)]),s("div",de,[t.releases.length?(a(),o("div",ue,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/collection/releases"},{default:d(()=>[pe,he]),_:1})]),i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.releases,(l,n)=>(a(),p(b,{key:n,artist:l.artist,cover:l.cover,href:l.url,title:l.title,onPlay:()=>t.playRecommendation(l)},null,8,["artist","cover","href","title","onPlay"]))),128))]),_:1})])):h("",!0),t.picks.length?(a(),o("div",me,[s("h2",null,[i(c,{class:"linkOnHover flex items-center gap-2 !no-underline",to:"/discover"},{default:d(()=>[_e,fe]),_:1})]),i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.picks,(l,n)=>(a(),p(b,{id:l.id,key:n,artist:l.artist,cover:$(R)(l.cover),href:l.href,title:l.title,onPlay:()=>t.playDiscover(l)},null,8,["id","artist","cover","href","title","onPlay"]))),128))]),_:1})])):h("",!0),t.recommendations.length?(a(),o("div",ye,[ve,i(f,null,{default:d(()=>[(a(!0),o(m,null,_(t.recommendations,(l,n)=>(a(),p(b,{key:n,artist:l.artist,cover:l.cover,href:l.href,title:l.title,onPlay:()=>t.playRecommendation(l)},null,8,["artist","cover","href","title","onPlay"]))),128))]),_:1})])):h("",!0)])])}}}),be=S(ge,[["__scopeId","data-v-b9b4d097"]]),v=e=>(N("data-v-2c465748"),e=e(),F(),e),Se={class:"onboarding p-4"},$e=v(()=>s("h1",null,"So nice to meet you!",-1)),we=v(()=>s("p",null,"Let's get you set up",-1)),Pe={class:"grid grid-cols-2 gap-4 mt-8"},Oe=v(()=>s("div",{class:"flex flex-row items-center"},[s("span",{class:"material-symbols-rounded ms-wght-700 text-4xl mr-4"},"add"),s("h2",null,"Create your first playlist")],-1)),xe={class:"flex flex-row justify-end w-full"},Ce={class:"flex flex-row items-center"},De=v(()=>s("h2",null,"Import from Spotify",-1)),Ie={class:"spotify-playlists"},He=I({__name:"Onboarding",setup(e){const t=y([]),r=y(!1),c=y(null);T(),M().then(n=>{r.value=n}),fetch("/api/spotify/playlists").then(n=>n.json()).then(n=>{t.value=n});const l={fields:[{name:"name",placeholder:"Playlist name",icon:"title",type:"text",required:!0},{name:"description",placeholder:"Playlist description",icon:"description",type:"text",required:!1}],submit:{label:"Create",action:async()=>{const n=c.value.toObject();await L(n.name,n.description)}}};return(n,w)=>(a(),o("div",Se,[$e,we,s("div",Pe,[i(x,{class:"p-4"},{default:d(()=>[Oe,i(V,{ref_key:"createForm",ref:c,options:l.fields},null,8,["options"]),s("div",xe,[i(G,{onClick:w[0]||(w[0]=k=>l.submit.action()),icon:"add",label:l.submit.label},null,8,["label"])])]),_:1}),t.value.length?(a(),p(x,{key:0,class:"p-4"},{default:d(()=>[s("div",Ce,[i($(W),{class:"spotify mr-4"}),De]),s("div",Ie,[(a(!0),o(m,null,_(t.value,k=>(a(),p(B,{playlist:{...k,type:"classic",plays:0,href:`https://open.spotify.com/playlist/${k.id}`},"is-spotify":""},null,8,["playlist"]))),256))])]),_:1})):h("",!0)])]))}}),Ne=S(He,[["__scopeId","data-v-2c465748"]]),Me={__name:"index",setup(e){const t=H(),r=y(!1),c=T();return J(()=>{document.body.clientWidth<768&&(r.value=!0,c.push("/collection/playlist"))}),(l,n)=>$(t).notEmpty||r.value?(a(),p(be,{key:0})):(a(),p(Ne,{key:1}))}};export{Me as default}; diff --git a/src/ui/dist/assets/index-BkDfvaJu.js.gz b/src/ui/dist/assets/index-BkDfvaJu.js.gz new file mode 100644 index 00000000..3702a9f8 Binary files /dev/null and b/src/ui/dist/assets/index-BkDfvaJu.js.gz differ diff --git a/src/ui/dist/assets/index-TQtME7qg.js b/src/ui/dist/assets/index-C-fi8mVG.js similarity index 97% rename from src/ui/dist/assets/index-TQtME7qg.js rename to src/ui/dist/assets/index-C-fi8mVG.js index 9bfc2581..71f63d8b 100644 --- a/src/ui/dist/assets/index-TQtME7qg.js +++ b/src/ui/dist/assets/index-C-fi8mVG.js @@ -1 +1 @@ -import{e as S,o as s,c as p,t as k,Q as B,_ as A,n as _,y as X,D as N,i as g,d as P,a as t,b as D,F as w,l as U,m as E,a7 as Z,g as m,I as $,h as V,w as G,H as ee,M as q,C as j,as as te,at as F,au as M,av as W,aw as R,ax as O,u as b,E as Y,$ as T,N as ae,B as le,q as se,U as oe}from"./index-K4QaY0Na.js";import{_ as ne}from"./Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js";import{T as J}from"./TrackCompact-CmSbwToc.js";import{G as ie}from"./gistClient-ZdZsfTR6.js";const re=S({__name:"TabButton",props:{name:{type:String,required:!0},active:{type:Boolean,default:!1}},setup(o){return(e,l)=>(s(),p("button",{class:B(["btn",{active:o.active}])},k(o.name),3))}}),ce=A(re,[["__scopeId","data-v-3f038910"]]),ue="1.1.1",z=o=>(U("data-v-5c362a3b"),o=o(),E(),o),de={class:"flex flex-col"},pe={key:0,class:"text-sm flex items-center gap-2 latest"},me=z(()=>t("span",{class:"material-symbols-rounded"},"check",-1)),he={key:1,class:"text-sm flex items-center gap-2 update"},ve=z(()=>t("span",{class:"material-symbols-rounded"},"update",-1)),H="1.1.0",_e=S({__name:"About",setup(o){const e=_(""),l=_("");X(async()=>{const c=await(await fetch("https://api.github.com/repos/reAudioPlayer/one/releases/latest")).json();e.value=c.tag_name,l.value=c.body});const h=N(()=>e.value===H),n=N(()=>ue.split(".").pop()),u=_(null);return(a,c)=>(s(),p("div",de,[l.value?(s(),g(ne,{key:0,content:l.value,title:"What's new in "+e.value,ref_key:"changelog",ref:u,onClose:c[0]||(c[0]=()=>l.value="")},null,8,["content","title"])):P("",!0),t("span",null,[t("strong",null,"v"+k(H)),D(" (Build "+k(n.value)+") ",1)]),e.value?(s(),p(w,{key:1},[h.value?(s(),p("span",pe,[me,D(" You're on the latest version "),t("a",{class:"cursor-pointer",onClick:c[1]||(c[1]=f=>{var d;return(d=u.value)==null?void 0:d.show()})}," What's changed? ")])):(s(),p("span",he,[ve,D(" Update available: "+k(e.value)+" ",1),t("a",{class:"cursor-pointer",onClick:c[2]||(c[2]=f=>{var d;return(d=u.value)==null?void 0:d.show()})}," What's changed? ")]))],64)):P("",!0)]))}}),fe=A(_e,[["__scopeId","data-v-5c362a3b"]]),L=o=>(U("data-v-4062735d"),o=o(),E(),o),ye={class:"wrap"},be=L(()=>t("h3",null,"Browser Data",-1)),ge=L(()=>t("h3",null,"Import / Export",-1)),ke={class:"flex gap-4 mb-4"},we={class:"covers mb-2"},$e=L(()=>t("h3",null,"Local covers",-1)),Se={key:0,class:"items gap-4"},Ce={class:"flex justify-between w-full mb-4"},xe={class:"overflow-hidden"},Ve=["onClick"],Pe={key:1,class:"text-muted italic"},Ie={class:"tracks"},Ae=L(()=>t("h3",null,"Local tracks",-1)),Ne={key:0,class:"items gap-4"},De={class:"flex justify-between w-full mb-4"},Te={class:"overflow-hidden"},Be=["onClick"],Ue={class:"flex justify-center w-full mb-4"},Ee=["src"],Oe={key:1,class:"text-muted italic"},Le={__name:"LocalData",setup(o){const e=_([]),l=_([]),h=Z(),n=()=>{fetch("/api/config/images").then(d=>d.json()).then(d=>e.value=d),fetch("/api/config/tracks").then(d=>d.json()).then(d=>l.value=d)},u=async d=>{await fetch("/api/config/images",{method:"DELETE",body:JSON.stringify({name:d})}),n()},a=async d=>{fetch("/api/config/tracks",{method:"DELETE",body:JSON.stringify({name:d})}),n()},c=d=>{h.loadPlaylist("track",d)};n();const f=()=>{localStorage.clear(),sessionStorage.clear(),window.location.reload()};return(d,C)=>(s(),p("div",ye,[be,m($,{class:"mb-4",icon:"delete",label:"Clean browser settings",onClick:f}),ge,t("div",ke,[m($,{icon:"backup",label:"Back up / Export",onClick:C[0]||(C[0]=v=>d.$router.push("/export"))}),m($,{icon:"cloud_download",label:"Import",onClick:C[1]||(C[1]=v=>d.$router.push("/import"))})]),t("div",we,[$e,e.value.length?(s(),p("div",Se,[(s(!0),p(w,null,V(e.value,(v,x)=>(s(),g(j,{key:x,class:"cover-wrapper p-4"},{default:G(()=>[m(ee,{src:v.name,class:"rounded-xl mb-4"},null,8,["src"]),t("div",Ce,[t("p",xe,[m(q,{text:v.name},null,8,["text"])]),t("span",{class:"ml-2 material-symbols-rounded cursor-pointer",onClick:i=>u(v.name)},"delete",8,Ve)]),(s(!0),p(w,null,V(v.songs,(i,r)=>(s(),g(J,{id:i.id,key:r,artist:i.artist,cover:i.cover,title:i.title,onPlay:y=>c(i.id)},null,8,["id","artist","cover","title","onPlay"]))),128))]),_:2},1024))),128))])):(s(),p("span",Pe,"No local covers"))]),t("div",Ie,[Ae,l.value.length?(s(),p("div",Ne,[(s(!0),p(w,null,V(l.value,(v,x)=>(s(),g(j,{key:x,class:"track p-4"},{default:G(()=>[t("div",De,[t("p",Te,[m(q,{text:v.name},null,8,["text"])]),t("span",{class:"material-symbols-rounded cursor-pointer",onClick:i=>a(v.name)},"delete",8,Be)]),t("div",Ue,[t("audio",{src:"/api/"+v.name.replace("local:","/src/tracks/"),controls:""},null,8,Ee)]),(s(!0),p(w,null,V(v.songs,(i,r)=>(s(),g(J,{id:i.id,key:r,artist:i.artist,cover:i.cover,title:i.title,onPlay:y=>c(i.id)},null,8,["id","artist","cover","title","onPlay"]))),128))]),_:2},1024))),128))])):(s(),p("span",Oe,"No local tracks"))])]))}},Ge=A(Le,[["__scopeId","data-v-4062735d"]]),je={class:"markdown-body"},qe=te("

By default, reAudioPlayer does not share any data with third parties.

Optionally, when entering your Spotify credentials, reAudioPlayer can access your Spotify data to offer the following features:

  • Display your Spotify playlists and offer importing them
  • Search songs on Spotify without leaving reAudioPlayer and adding them to your playlists
  • Display song information (BPM, key, etc.) from Spotify
  • Search artists on Spotify without leaving reAudioPlayer to display their information and follow them on Spotify
  • Display artist information (genres, popularity, etc.) from Spotify
  • Provide the release radar

Optionally, when entering your GitHub credentials, reAudioPlayer can access your GitHub data to offer the following features:

  • Storing your library in a GitHub Gist
  • Importing your library from a GitHub Gist

All data stays between your device and Spotify or Github, respectively.

Depending on the cache policy, reAudioPlayer stores songs locally to improve performance and reduce network traffic. The browser additionally stores the following user preferences in local storage:

  • Theme
  • Selected audio player
  • Volume
  • Repeat mode
  • Picture in Picture mode
  • pre-rendered placeholder images

You can manage your local data, that you manually uploaded to reAudioPlayer, in section “Local Data”. None of this data left or will leave your device.

",9),Re=[qe],Je={__name:"Privacy",setup(o,{expose:e}){return e({frontmatter:{}}),(h,n)=>(s(),p("div",je,Re))}},He={class:"material-symbols-rounded ms-wght-300 cursor-pointer"},Fe={class:"checkbox__label"},Me={class:"checkbox__label__title"},We={class:"checkbox__label__sublabel italic"},Ye=S({__name:"Checkbox",props:{modelValue:{type:Boolean,required:!0},label:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1},sublabel:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(o,{emit:e}){const l=o,h=e,n=a=>h("update:modelValue",a),u=()=>{l.disabled||n(!l.modelValue)};return(a,c)=>(s(),p("div",{class:B([{"opacity-50":o.disabled},"checkbox"]),onClick:u},[t("span",He,k(o.modelValue?"check_box":"check_box_outline_blank"),1),t("div",Fe,[t("div",Me,k(o.label),1),t("div",We,k(o.sublabel),1)])],2))}}),I=A(Ye,[["__scopeId","data-v-be9fa887"]]),ze={class:"relative"},Ke=S({__name:"Cache",setup(o){const e=_(null),l=_("");F().then(u=>{e.value=u,l.value=JSON.stringify(u)});const h=N(()=>e.value?JSON.stringify(e.value)!==l.value:!1),n=async()=>{h.value&&(await W(e.value),l.value=JSON.stringify(e.value))};return(u,a)=>(s(),p("div",ze,[e.value?(s(),g(I,{key:0,modelValue:e.value.cache.preserve,"onUpdate:modelValue":a[0]||(a[0]=c=>e.value.cache.preserve=c),label:"Preserve cache"},null,8,["modelValue"])):P("",!0),e.value?(s(),g(I,{key:1,modelValue:e.value.cache.preserveInSession,"onUpdate:modelValue":a[1]||(a[1]=c=>e.value.cache.preserveInSession=c),disabled:e.value.cache.preserve,label:"Preserve cache in session"},null,8,["modelValue","disabled"])):P("",!0),e.value?(s(),g(M,{key:2,modelValue:e.value.cache.strategy,"onUpdate:modelValue":a[2]||(a[2]=c=>e.value.cache.strategy=c),options:[{value:"all",label:"All Songs"},{value:"playlist",label:"Current Playlist"},{value:"currentNext",label:"Current + Next Song "},{value:"current",label:"Current Song Only"}],icon:"cached"},null,8,["modelValue"])):P("",!0),m($,{disabled:!e.value||!h.value,class:"ml-auto mt-4",icon:"save",label:"Save",onClick:n},null,8,["disabled"])]))}}),Qe={name:"Theme",props:{name:String},methods:{selected(){return R.getCurrentTheme()==this.name},select(){R.setTheme(this.name),this.$emit("selected")}}},Xe=["src"];function Ze(o,e,l,h,n,u){return s(),p("div",{onClick:e[0]||(e[0]=(...a)=>u.select&&u.select(...a)),class:"wrapper"},[t("p",{class:B(["mb-4",{selected:u.selected()}])},k(l.name),3),t("img",{src:`/assets/img/themes/${this.name}.svg`,class:B({selected:u.selected()})},null,10,Xe)])}const et=A(Qe,[["render",Ze],["__scopeId","data-v-74855c2d"]]),K=o=>(U("data-v-5cc6477c"),o=o(),E(),o),tt=K(()=>t("h3",{class:"mt-[10px]"},"Theme",-1)),at={class:"themes"},lt=K(()=>t("h3",{class:"mt-[10px]"},"Sidebar",-1)),st=S({__name:"Appearance",setup(o){const e=O(),l=["dynamic","light","dark"];return(h,n)=>(s(),p(w,null,[tt,m(I,{modelValue:b(e).ambient,"onUpdate:modelValue":n[0]||(n[0]=u=>b(e).ambient=u),disabled:!b(e).themeSupportsAmbient,label:"Ambient"},null,8,["modelValue","disabled"]),t("div",at,[(s(),p(w,null,V(l,(u,a)=>m(et,{key:a,name:u},null,8,["name"])),64))]),lt,m(I,{modelValue:b(e).sidebar.news,"onUpdate:modelValue":n[1]||(n[1]=u=>b(e).sidebar.news=u),label:"Show 'News' Tab"},null,8,["modelValue"]),m(I,{modelValue:b(e).sidebar.sports,"onUpdate:modelValue":n[2]||(n[2]=u=>b(e).sidebar.sports=u),label:"Show 'Sports' Tab"},null,8,["modelValue"])],64))}}),ot=A(st,[["__scopeId","data-v-5cc6477c"]]),nt={class:"relative"},it=S({__name:"Player",setup(o){const e=O();return(l,h)=>(s(),p("div",nt,[m(I,{modelValue:b(e).player.pictureInPicture,"onUpdate:modelValue":h[0]||(h[0]=n=>b(e).player.pictureInPicture=n),label:"Support Picture in Picture",sublabel:"this will slightly reduce performance"},null,8,["modelValue"]),m(M,{modelValue:b(e).player.type,"onUpdate:modelValue":h[1]||(h[1]=n=>b(e).player.type=n),options:[{value:"web",label:"Native player",icon:"horizontal_rule"},{value:"web/wave",label:"Wave player",icon:"graphic_eq"}],icon:"music_note"},null,8,["modelValue"])]))}}),Q="reAudioPlayer One",rt=`https://audius.co/oauth/auth?scope=read&app_name=${Q}&redirect_uri=`,ct="/audius/callback",ut=()=>{const o=encodeURIComponent(`${window.location.origin}${ct}`),e=`${rt}${o}`;window.open(e,Q,"width=500,height=800")},dt=t("summary",{class:"cursor-pointer"},"How to",-1),pt=t("p",null,[D(" 1) Head over to the "),t("a",{href:"https://developer.spotify.com/dashboard/applications",target:"_blank"},"spotify developer dashboard")],-1),mt=t("p",null,"2) Create An App",-1),ht=t("p",null,"3) Enter any name and any description",-1),vt=t("p",null," 5) Copy and enter the client id and secret into the corresponding input field ",-1),_t=t("hr",{class:"my-4"},null,-1),ft=t("h5",null,"Client ID:",-1),yt=t("h5",{class:"mt-4"},"Client Secret:",-1),bt=t("h3",{class:"mt-[10px]"},"Github",-1),gt=t("h5",{class:"mt-4"},"PAT:",-1),kt=t("h5",{class:"mt-4"},"Gist ID:",-1),wt={class:"flex gap-4 justify-end mt-4"},$t=t("h3",{class:"mt-[10px]"},"Audius",-1),St=S({__name:"Integration",setup(o){const e=_(!1),l=_({id:"",secret:""}),h=N(()=>e.value?Object.values(l.value).some(i=>i==="")?!1:l.value.id!==n.value.id||l.value.secret!==n.value.secret||e.value!==n.value.enabled:n.value.enabled),n=_({id:"",secret:"",enabled:!1});fetch("/api/config/spotify").then(async i=>{let r={id:"",secret:"",enabled:!1};if(i.status==200)r=await i.json();else if([204,401].includes(i.status))r={id:"restricted",secret:"restricted",enabled:!1};else throw new Error("Failed to fetch spotify config");n.value=r,n.value.enabled=![r.id,r.secret].includes("restricted"),e.value=n.value.enabled,l.value.id=r.id.replace("restricted",""),l.value.secret=r.secret.replace("restricted","")});const u=async()=>{if(!h.value)return;let i=l.value.id,r=l.value.secret;e.value||(r=i="restricted"),(await fetch("/api/config/spotify",{method:"POST",body:JSON.stringify({id:i,secret:r})})).ok&&(n.value={id:i,secret:r,enabled:e.value})},a=_(null),c=_("");F().then(i=>{a.value=i,c.value=JSON.stringify(i)});const f=N(()=>a.value?JSON.stringify(a.value)!==c.value:!1),d=async()=>{f.value&&(await W(a.value),c.value=JSON.stringify(a.value))},v=`http://${window.location.host}/api/spotify/callback`,x=async()=>{var i,r;(r=(i=a.value)==null?void 0:i.github)!=null&&r.githubPat&&(a.value.github.gistId||(a.value.github.gistId=await ie.search(a.value.github.githubPat),a.value.github.gistId||ae.addError("Failed to find gist","You can start syncing directly in 'Local Data' (a Gist will be created for you) or enter the gist id manually")))};return Y(()=>{var i,r;return(r=(i=a.value)==null?void 0:i.github)==null?void 0:r.githubPat},x),(i,r)=>(s(),p(w,null,[m(I,{modelValue:e.value,"onUpdate:modelValue":r[0]||(r[0]=y=>e.value=y),class:"h3 mb-2",label:"Spotify"},null,8,["modelValue"]),t("details",null,[dt,pt,mt,ht,t("p",null,[D(" 4) Edit the settings: set the redirect url to "),t("a",{href:v},k(v))]),vt]),_t,ft,m(T,{modelValue:l.value.id,"onUpdate:modelValue":r[1]||(r[1]=y=>l.value.id=y),disabled:!e.value,type:"password",icon:"token"},null,8,["modelValue","disabled"]),yt,m(T,{modelValue:l.value.secret,"onUpdate:modelValue":r[2]||(r[2]=y=>l.value.secret=y),disabled:!e.value,type:"password",icon:"lock"},null,8,["modelValue","disabled"]),m($,{disabled:!h.value,class:"ml-auto mt-4",icon:"save",label:"Save",onClick:u},null,8,["disabled"]),bt,gt,a.value?(s(),g(T,{key:0,modelValue:a.value.github.githubPat,"onUpdate:modelValue":r[3]||(r[3]=y=>a.value.github.githubPat=y),icon:"lock",type:"password"},null,8,["modelValue"])):P("",!0),kt,a.value?(s(),g(T,{key:1,modelValue:a.value.github.gistId,"onUpdate:modelValue":r[4]||(r[4]=y=>a.value.github.gistId=y),icon:"numbers"},null,8,["modelValue"])):P("",!0),t("div",wt,[m($,{disabled:!a.value||!a.value.github.githubPat||!!a.value.github.gistId,icon:"search",label:"Search",onClick:x},null,8,["disabled"]),m($,{disabled:!a.value||!f.value,icon:"save",label:"Save",onClick:d},null,8,["disabled"])]),$t,m($,{icon:"link",label:"Connect",onClick:b(ut)},null,8,["onClick"])],64))}}),Ct={class:"flex items-center gap-2"},xt=S({__name:"Developer",setup(o){O();const e=()=>{fetch("/api/system/kill")},l=()=>{fetch("/api/system/restart/nginx")};return(h,n)=>(s(),p("div",Ct,[m($,{icon:"refresh",label:"Restart",onClick:e,type:"danger"}),m($,{icon:"refresh",label:"Restart Nginx",onClick:l})]))}}),Vt=o=>(U("data-v-2a5c5e34"),o=o(),E(),o),Pt={class:"p-[10px] preferences"},It=Vt(()=>t("h1",{class:"w-full"},"Preferences",-1)),At={class:"wrapper"},Nt={class:"sections flex flex-col"},Dt={class:"section p-2"},Tt={class:"h5 text-sm"},Bt=S({__name:"index",setup(o){const e=O(),l={About:fe,Privacy:Je,"Local Data":Ge,Integrations:St,"Cache Policy":Ke,Appearance:ot,Player:it,Developer:xt},h=N(()=>{const f=[{name:"General",items:["About"]},{name:"My Data",items:["Privacy","Local Data","Integrations"]},{name:"Player",items:["Player","Cache Policy"]},{name:"Appearance",items:["Appearance"]}];return e.mode.dev&&f.push({name:"Developer",items:["Developer"]}),f}),n=le(),u=se();let a=n.query.tab;const c=_("About");return Object.keys(l).includes(a)&&(c.value=a),Y(c,f=>{const d={tab:f};u.replace({query:d})}),(f,d)=>(s(),p("div",Pt,[It,t("div",At,[t("div",Nt,[(s(!0),p(w,null,V(h.value,C=>(s(),p("div",Dt,[t("span",Tt,k(C.name),1),(s(!0),p(w,null,V(C.items,v=>(s(),g(ce,{key:v,name:v,active:c.value===v,onClick:x=>c.value=v},null,8,["name","active","onClick"]))),128))]))),256))]),m(j,{class:"content h-max p-4 pt-0"},{default:G(()=>[t("h2",null,k(c.value),1),(s(),g(oe(l[c.value])))]),_:1})])]))}}),Gt=A(Bt,[["__scopeId","data-v-2a5c5e34"]]);export{Gt as default}; +import{e as S,o as s,c as p,t as k,Q as B,_ as A,n as _,y as X,D as N,i as g,d as P,a as t,b as D,F as w,l as U,m as E,a7 as Z,g as m,I as $,h as V,w as G,H as ee,M as q,C as j,as as te,at as F,au as M,av as W,aw as R,ax as O,u as b,E as Y,$ as T,N as ae,B as le,q as se,U as oe}from"./index-DwIIj2B2.js";import{_ as ne}from"./Markdown.vue_vue_type_style_index_0_lang-072OuJni.js";import{T as J}from"./TrackCompact-CAEHpsO2.js";import{G as ie}from"./gistClient-BfrJnK9Z.js";const re=S({__name:"TabButton",props:{name:{type:String,required:!0},active:{type:Boolean,default:!1}},setup(o){return(e,l)=>(s(),p("button",{class:B(["btn",{active:o.active}])},k(o.name),3))}}),ce=A(re,[["__scopeId","data-v-3f038910"]]),ue="1.1.2",z=o=>(U("data-v-5c362a3b"),o=o(),E(),o),de={class:"flex flex-col"},pe={key:0,class:"text-sm flex items-center gap-2 latest"},me=z(()=>t("span",{class:"material-symbols-rounded"},"check",-1)),he={key:1,class:"text-sm flex items-center gap-2 update"},ve=z(()=>t("span",{class:"material-symbols-rounded"},"update",-1)),H="1.1.0",_e=S({__name:"About",setup(o){const e=_(""),l=_("");X(async()=>{const c=await(await fetch("https://api.github.com/repos/reAudioPlayer/one/releases/latest")).json();e.value=c.tag_name,l.value=c.body});const h=N(()=>e.value===H),n=N(()=>ue.split(".").pop()),u=_(null);return(a,c)=>(s(),p("div",de,[l.value?(s(),g(ne,{key:0,content:l.value,title:"What's new in "+e.value,ref_key:"changelog",ref:u,onClose:c[0]||(c[0]=()=>l.value="")},null,8,["content","title"])):P("",!0),t("span",null,[t("strong",null,"v"+k(H)),D(" (Build "+k(n.value)+") ",1)]),e.value?(s(),p(w,{key:1},[h.value?(s(),p("span",pe,[me,D(" You're on the latest version "),t("a",{class:"cursor-pointer",onClick:c[1]||(c[1]=f=>{var d;return(d=u.value)==null?void 0:d.show()})}," What's changed? ")])):(s(),p("span",he,[ve,D(" Update available: "+k(e.value)+" ",1),t("a",{class:"cursor-pointer",onClick:c[2]||(c[2]=f=>{var d;return(d=u.value)==null?void 0:d.show()})}," What's changed? ")]))],64)):P("",!0)]))}}),fe=A(_e,[["__scopeId","data-v-5c362a3b"]]),L=o=>(U("data-v-4062735d"),o=o(),E(),o),ye={class:"wrap"},be=L(()=>t("h3",null,"Browser Data",-1)),ge=L(()=>t("h3",null,"Import / Export",-1)),ke={class:"flex gap-4 mb-4"},we={class:"covers mb-2"},$e=L(()=>t("h3",null,"Local covers",-1)),Se={key:0,class:"items gap-4"},Ce={class:"flex justify-between w-full mb-4"},xe={class:"overflow-hidden"},Ve=["onClick"],Pe={key:1,class:"text-muted italic"},Ie={class:"tracks"},Ae=L(()=>t("h3",null,"Local tracks",-1)),Ne={key:0,class:"items gap-4"},De={class:"flex justify-between w-full mb-4"},Te={class:"overflow-hidden"},Be=["onClick"],Ue={class:"flex justify-center w-full mb-4"},Ee=["src"],Oe={key:1,class:"text-muted italic"},Le={__name:"LocalData",setup(o){const e=_([]),l=_([]),h=Z(),n=()=>{fetch("/api/config/images").then(d=>d.json()).then(d=>e.value=d),fetch("/api/config/tracks").then(d=>d.json()).then(d=>l.value=d)},u=async d=>{await fetch("/api/config/images",{method:"DELETE",body:JSON.stringify({name:d})}),n()},a=async d=>{fetch("/api/config/tracks",{method:"DELETE",body:JSON.stringify({name:d})}),n()},c=d=>{h.loadPlaylist("track",d)};n();const f=()=>{localStorage.clear(),sessionStorage.clear(),window.location.reload()};return(d,C)=>(s(),p("div",ye,[be,m($,{class:"mb-4",icon:"delete",label:"Clean browser settings",onClick:f}),ge,t("div",ke,[m($,{icon:"backup",label:"Back up / Export",onClick:C[0]||(C[0]=v=>d.$router.push("/export"))}),m($,{icon:"cloud_download",label:"Import",onClick:C[1]||(C[1]=v=>d.$router.push("/import"))})]),t("div",we,[$e,e.value.length?(s(),p("div",Se,[(s(!0),p(w,null,V(e.value,(v,x)=>(s(),g(j,{key:x,class:"cover-wrapper p-4"},{default:G(()=>[m(ee,{src:v.name,class:"rounded-xl mb-4"},null,8,["src"]),t("div",Ce,[t("p",xe,[m(q,{text:v.name},null,8,["text"])]),t("span",{class:"ml-2 material-symbols-rounded cursor-pointer",onClick:i=>u(v.name)},"delete",8,Ve)]),(s(!0),p(w,null,V(v.songs,(i,r)=>(s(),g(J,{id:i.id,key:r,artist:i.artist,cover:i.cover,title:i.title,onPlay:y=>c(i.id)},null,8,["id","artist","cover","title","onPlay"]))),128))]),_:2},1024))),128))])):(s(),p("span",Pe,"No local covers"))]),t("div",Ie,[Ae,l.value.length?(s(),p("div",Ne,[(s(!0),p(w,null,V(l.value,(v,x)=>(s(),g(j,{key:x,class:"track p-4"},{default:G(()=>[t("div",De,[t("p",Te,[m(q,{text:v.name},null,8,["text"])]),t("span",{class:"material-symbols-rounded cursor-pointer",onClick:i=>a(v.name)},"delete",8,Be)]),t("div",Ue,[t("audio",{src:"/api/"+v.name.replace("local:","/src/tracks/"),controls:""},null,8,Ee)]),(s(!0),p(w,null,V(v.songs,(i,r)=>(s(),g(J,{id:i.id,key:r,artist:i.artist,cover:i.cover,title:i.title,onPlay:y=>c(i.id)},null,8,["id","artist","cover","title","onPlay"]))),128))]),_:2},1024))),128))])):(s(),p("span",Oe,"No local tracks"))])]))}},Ge=A(Le,[["__scopeId","data-v-4062735d"]]),je={class:"markdown-body"},qe=te("

By default, reAudioPlayer does not share any data with third parties.

Optionally, when entering your Spotify credentials, reAudioPlayer can access your Spotify data to offer the following features:

  • Display your Spotify playlists and offer importing them
  • Search songs on Spotify without leaving reAudioPlayer and adding them to your playlists
  • Display song information (BPM, key, etc.) from Spotify
  • Search artists on Spotify without leaving reAudioPlayer to display their information and follow them on Spotify
  • Display artist information (genres, popularity, etc.) from Spotify
  • Provide the release radar

Optionally, when entering your GitHub credentials, reAudioPlayer can access your GitHub data to offer the following features:

  • Storing your library in a GitHub Gist
  • Importing your library from a GitHub Gist

All data stays between your device and Spotify or Github, respectively.

Depending on the cache policy, reAudioPlayer stores songs locally to improve performance and reduce network traffic. The browser additionally stores the following user preferences in local storage:

  • Theme
  • Selected audio player
  • Volume
  • Repeat mode
  • Picture in Picture mode
  • pre-rendered placeholder images

You can manage your local data, that you manually uploaded to reAudioPlayer, in section “Local Data”. None of this data left or will leave your device.

",9),Re=[qe],Je={__name:"Privacy",setup(o,{expose:e}){return e({frontmatter:{}}),(h,n)=>(s(),p("div",je,Re))}},He={class:"material-symbols-rounded ms-wght-300 cursor-pointer"},Fe={class:"checkbox__label"},Me={class:"checkbox__label__title"},We={class:"checkbox__label__sublabel italic"},Ye=S({__name:"Checkbox",props:{modelValue:{type:Boolean,required:!0},label:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1},sublabel:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(o,{emit:e}){const l=o,h=e,n=a=>h("update:modelValue",a),u=()=>{l.disabled||n(!l.modelValue)};return(a,c)=>(s(),p("div",{class:B([{"opacity-50":o.disabled},"checkbox"]),onClick:u},[t("span",He,k(o.modelValue?"check_box":"check_box_outline_blank"),1),t("div",Fe,[t("div",Me,k(o.label),1),t("div",We,k(o.sublabel),1)])],2))}}),I=A(Ye,[["__scopeId","data-v-be9fa887"]]),ze={class:"relative"},Ke=S({__name:"Cache",setup(o){const e=_(null),l=_("");F().then(u=>{e.value=u,l.value=JSON.stringify(u)});const h=N(()=>e.value?JSON.stringify(e.value)!==l.value:!1),n=async()=>{h.value&&(await W(e.value),l.value=JSON.stringify(e.value))};return(u,a)=>(s(),p("div",ze,[e.value?(s(),g(I,{key:0,modelValue:e.value.cache.preserve,"onUpdate:modelValue":a[0]||(a[0]=c=>e.value.cache.preserve=c),label:"Preserve cache"},null,8,["modelValue"])):P("",!0),e.value?(s(),g(I,{key:1,modelValue:e.value.cache.preserveInSession,"onUpdate:modelValue":a[1]||(a[1]=c=>e.value.cache.preserveInSession=c),disabled:e.value.cache.preserve,label:"Preserve cache in session"},null,8,["modelValue","disabled"])):P("",!0),e.value?(s(),g(M,{key:2,modelValue:e.value.cache.strategy,"onUpdate:modelValue":a[2]||(a[2]=c=>e.value.cache.strategy=c),options:[{value:"all",label:"All Songs"},{value:"playlist",label:"Current Playlist"},{value:"currentNext",label:"Current + Next Song "},{value:"current",label:"Current Song Only"}],icon:"cached"},null,8,["modelValue"])):P("",!0),m($,{disabled:!e.value||!h.value,class:"ml-auto mt-4",icon:"save",label:"Save",onClick:n},null,8,["disabled"])]))}}),Qe={name:"Theme",props:{name:String},methods:{selected(){return R.getCurrentTheme()==this.name},select(){R.setTheme(this.name),this.$emit("selected")}}},Xe=["src"];function Ze(o,e,l,h,n,u){return s(),p("div",{onClick:e[0]||(e[0]=(...a)=>u.select&&u.select(...a)),class:"wrapper"},[t("p",{class:B(["mb-4",{selected:u.selected()}])},k(l.name),3),t("img",{src:`/assets/img/themes/${this.name}.svg`,class:B({selected:u.selected()})},null,10,Xe)])}const et=A(Qe,[["render",Ze],["__scopeId","data-v-74855c2d"]]),K=o=>(U("data-v-5cc6477c"),o=o(),E(),o),tt=K(()=>t("h3",{class:"mt-[10px]"},"Theme",-1)),at={class:"themes"},lt=K(()=>t("h3",{class:"mt-[10px]"},"Sidebar",-1)),st=S({__name:"Appearance",setup(o){const e=O(),l=["dynamic","light","dark"];return(h,n)=>(s(),p(w,null,[tt,m(I,{modelValue:b(e).ambient,"onUpdate:modelValue":n[0]||(n[0]=u=>b(e).ambient=u),disabled:!b(e).themeSupportsAmbient,label:"Ambient"},null,8,["modelValue","disabled"]),t("div",at,[(s(),p(w,null,V(l,(u,a)=>m(et,{key:a,name:u},null,8,["name"])),64))]),lt,m(I,{modelValue:b(e).sidebar.news,"onUpdate:modelValue":n[1]||(n[1]=u=>b(e).sidebar.news=u),label:"Show 'News' Tab"},null,8,["modelValue"]),m(I,{modelValue:b(e).sidebar.sports,"onUpdate:modelValue":n[2]||(n[2]=u=>b(e).sidebar.sports=u),label:"Show 'Sports' Tab"},null,8,["modelValue"])],64))}}),ot=A(st,[["__scopeId","data-v-5cc6477c"]]),nt={class:"relative"},it=S({__name:"Player",setup(o){const e=O();return(l,h)=>(s(),p("div",nt,[m(I,{modelValue:b(e).player.pictureInPicture,"onUpdate:modelValue":h[0]||(h[0]=n=>b(e).player.pictureInPicture=n),label:"Support Picture in Picture",sublabel:"this will slightly reduce performance"},null,8,["modelValue"]),m(M,{modelValue:b(e).player.type,"onUpdate:modelValue":h[1]||(h[1]=n=>b(e).player.type=n),options:[{value:"web",label:"Native player",icon:"horizontal_rule"},{value:"web/wave",label:"Wave player",icon:"graphic_eq"}],icon:"music_note"},null,8,["modelValue"])]))}}),Q="reAudioPlayer One",rt=`https://audius.co/oauth/auth?scope=read&app_name=${Q}&redirect_uri=`,ct="/audius/callback",ut=()=>{const o=encodeURIComponent(`${window.location.origin}${ct}`),e=`${rt}${o}`;window.open(e,Q,"width=500,height=800")},dt=t("summary",{class:"cursor-pointer"},"How to",-1),pt=t("p",null,[D(" 1) Head over to the "),t("a",{href:"https://developer.spotify.com/dashboard/applications",target:"_blank"},"spotify developer dashboard")],-1),mt=t("p",null,"2) Create An App",-1),ht=t("p",null,"3) Enter any name and any description",-1),vt=t("p",null," 5) Copy and enter the client id and secret into the corresponding input field ",-1),_t=t("hr",{class:"my-4"},null,-1),ft=t("h5",null,"Client ID:",-1),yt=t("h5",{class:"mt-4"},"Client Secret:",-1),bt=t("h3",{class:"mt-[10px]"},"Github",-1),gt=t("h5",{class:"mt-4"},"PAT:",-1),kt=t("h5",{class:"mt-4"},"Gist ID:",-1),wt={class:"flex gap-4 justify-end mt-4"},$t=t("h3",{class:"mt-[10px]"},"Audius",-1),St=S({__name:"Integration",setup(o){const e=_(!1),l=_({id:"",secret:""}),h=N(()=>e.value?Object.values(l.value).some(i=>i==="")?!1:l.value.id!==n.value.id||l.value.secret!==n.value.secret||e.value!==n.value.enabled:n.value.enabled),n=_({id:"",secret:"",enabled:!1});fetch("/api/config/spotify").then(async i=>{let r={id:"",secret:"",enabled:!1};if(i.status==200)r=await i.json();else if([204,401].includes(i.status))r={id:"restricted",secret:"restricted",enabled:!1};else throw new Error("Failed to fetch spotify config");n.value=r,n.value.enabled=![r.id,r.secret].includes("restricted"),e.value=n.value.enabled,l.value.id=r.id.replace("restricted",""),l.value.secret=r.secret.replace("restricted","")});const u=async()=>{if(!h.value)return;let i=l.value.id,r=l.value.secret;e.value||(r=i="restricted"),(await fetch("/api/config/spotify",{method:"POST",body:JSON.stringify({id:i,secret:r})})).ok&&(n.value={id:i,secret:r,enabled:e.value})},a=_(null),c=_("");F().then(i=>{a.value=i,c.value=JSON.stringify(i)});const f=N(()=>a.value?JSON.stringify(a.value)!==c.value:!1),d=async()=>{f.value&&(await W(a.value),c.value=JSON.stringify(a.value))},v=`http://${window.location.host}/api/spotify/callback`,x=async()=>{var i,r;(r=(i=a.value)==null?void 0:i.github)!=null&&r.githubPat&&(a.value.github.gistId||(a.value.github.gistId=await ie.search(a.value.github.githubPat),a.value.github.gistId||ae.addError("Failed to find gist","You can start syncing directly in 'Local Data' (a Gist will be created for you) or enter the gist id manually")))};return Y(()=>{var i,r;return(r=(i=a.value)==null?void 0:i.github)==null?void 0:r.githubPat},x),(i,r)=>(s(),p(w,null,[m(I,{modelValue:e.value,"onUpdate:modelValue":r[0]||(r[0]=y=>e.value=y),class:"h3 mb-2",label:"Spotify"},null,8,["modelValue"]),t("details",null,[dt,pt,mt,ht,t("p",null,[D(" 4) Edit the settings: set the redirect url to "),t("a",{href:v},k(v))]),vt]),_t,ft,m(T,{modelValue:l.value.id,"onUpdate:modelValue":r[1]||(r[1]=y=>l.value.id=y),disabled:!e.value,type:"password",icon:"token"},null,8,["modelValue","disabled"]),yt,m(T,{modelValue:l.value.secret,"onUpdate:modelValue":r[2]||(r[2]=y=>l.value.secret=y),disabled:!e.value,type:"password",icon:"lock"},null,8,["modelValue","disabled"]),m($,{disabled:!h.value,class:"ml-auto mt-4",icon:"save",label:"Save",onClick:u},null,8,["disabled"]),bt,gt,a.value?(s(),g(T,{key:0,modelValue:a.value.github.githubPat,"onUpdate:modelValue":r[3]||(r[3]=y=>a.value.github.githubPat=y),icon:"lock",type:"password"},null,8,["modelValue"])):P("",!0),kt,a.value?(s(),g(T,{key:1,modelValue:a.value.github.gistId,"onUpdate:modelValue":r[4]||(r[4]=y=>a.value.github.gistId=y),icon:"numbers"},null,8,["modelValue"])):P("",!0),t("div",wt,[m($,{disabled:!a.value||!a.value.github.githubPat||!!a.value.github.gistId,icon:"search",label:"Search",onClick:x},null,8,["disabled"]),m($,{disabled:!a.value||!f.value,icon:"save",label:"Save",onClick:d},null,8,["disabled"])]),$t,m($,{icon:"link",label:"Connect",onClick:b(ut)},null,8,["onClick"])],64))}}),Ct={class:"flex items-center gap-2"},xt=S({__name:"Developer",setup(o){O();const e=()=>{fetch("/api/system/kill")},l=()=>{fetch("/api/system/restart/nginx")};return(h,n)=>(s(),p("div",Ct,[m($,{icon:"refresh",label:"Restart",onClick:e,type:"danger"}),m($,{icon:"refresh",label:"Restart Nginx",onClick:l})]))}}),Vt=o=>(U("data-v-2a5c5e34"),o=o(),E(),o),Pt={class:"p-[10px] preferences"},It=Vt(()=>t("h1",{class:"w-full"},"Preferences",-1)),At={class:"wrapper"},Nt={class:"sections flex flex-col"},Dt={class:"section p-2"},Tt={class:"h5 text-sm"},Bt=S({__name:"index",setup(o){const e=O(),l={About:fe,Privacy:Je,"Local Data":Ge,Integrations:St,"Cache Policy":Ke,Appearance:ot,Player:it,Developer:xt},h=N(()=>{const f=[{name:"General",items:["About"]},{name:"My Data",items:["Privacy","Local Data","Integrations"]},{name:"Player",items:["Player","Cache Policy"]},{name:"Appearance",items:["Appearance"]}];return e.mode.dev&&f.push({name:"Developer",items:["Developer"]}),f}),n=le(),u=se();let a=n.query.tab;const c=_("About");return Object.keys(l).includes(a)&&(c.value=a),Y(c,f=>{const d={tab:f};u.replace({query:d})}),(f,d)=>(s(),p("div",Pt,[It,t("div",At,[t("div",Nt,[(s(!0),p(w,null,V(h.value,C=>(s(),p("div",Dt,[t("span",Tt,k(C.name),1),(s(!0),p(w,null,V(C.items,v=>(s(),g(ce,{key:v,name:v,active:c.value===v,onClick:x=>c.value=v},null,8,["name","active","onClick"]))),128))]))),256))]),m(j,{class:"content h-max p-4 pt-0"},{default:G(()=>[t("h2",null,k(c.value),1),(s(),g(oe(l[c.value])))]),_:1})])]))}}),Gt=A(Bt,[["__scopeId","data-v-2a5c5e34"]]);export{Gt as default}; diff --git a/src/ui/dist/assets/index-C-fi8mVG.js.gz b/src/ui/dist/assets/index-C-fi8mVG.js.gz new file mode 100644 index 00000000..d066d659 Binary files /dev/null and b/src/ui/dist/assets/index-C-fi8mVG.js.gz differ diff --git a/src/ui/dist/assets/index-DdmtJEKo.js b/src/ui/dist/assets/index-CAOgyRuZ.js similarity index 97% rename from src/ui/dist/assets/index-DdmtJEKo.js rename to src/ui/dist/assets/index-CAOgyRuZ.js index 11478d8c..cafaa7ed 100644 --- a/src/ui/dist/assets/index-DdmtJEKo.js +++ b/src/ui/dist/assets/index-CAOgyRuZ.js @@ -1 +1 @@ -import{_ as D,f as E,o,c as p,g as m,w as h,l as se,m as le,a as t,C as U,H as Q,i as y,t as b,d as x,e as M,n as f,y as j,E as P,r as ue,L as ae,h as T,F as R,j as ce,D as N,q as de,J as pe,M as G,K as Z,O as C,Q as A,b as ee,R as te,B as ve,U as me}from"./index-K4QaY0Na.js";import{F}from"./FullShelf-LmwXLqci.js";import{E as _e}from"./Error-JcTZ1TEX.js";import{P as J}from"./PlaylistCard-DXOdXptp.js";import{p as fe}from"./playerInPicture-Dfp9IAsf.js";const he={name:"CollectionHeader",props:{href:String}},q=c=>(se("data-v-780f7ad5"),c=c(),le(),c),ye={class:"wrapper"},ge=q(()=>t("div",{class:"collection"},"Playlists",-1)),xe=q(()=>t("div",{class:"collection"},"Releases",-1)),we=q(()=>t("div",{class:"collection"},"Artists",-1)),ke=q(()=>t("div",{class:"collection"},"Albums",-1));function $e(c,r,e,d,_,n){const u=E("router-link");return o(),p("div",ye,[m(u,{class:"link",to:"/collection/playlists"},{default:h(()=>[ge]),_:1}),m(u,{class:"link",to:"/collection/releases"},{default:h(()=>[xe]),_:1}),m(u,{class:"link",to:"/collection/artists"},{default:h(()=>[we]),_:1}),m(u,{class:"link",to:"/collection/albums"},{default:h(()=>[ke]),_:1})])}const Ce=D(he,[["render",$e],["__scopeId","data-v-780f7ad5"]]),be={components:{Card:U,Cover:Q},name:"CardWithImageAndText",props:{cover:String,title:String,description:String,playlistType:{type:String,default:null},imageType:{type:String,default:"playlist"}}},Se={class:"item"},Ie={class:"title"},De={key:0,class:"material-symbols-rounded"},Te=["title"],Re=["title","innerHTML"];function Me(c,r,e,d,_,n){const u=E("Cover"),a=E("Card");return o(),y(a,{class:"wrapper drop-shadow-md","with-hover":""},{default:h(()=>[t("div",Se,[m(u,{src:e.cover,type:e.imageType,name:e.title},null,8,["src","type","name"]),t("div",null,[t("div",Ie,[[null,"classic"].includes(e.playlistType)?x("",!0):(o(),p("span",De,b(e.playlistType=="smart"?"neurology":"bolt"),1)),t("h4",{title:e.title},b(e.title),9,Te)]),t("p",{class:"text-muted text-xs hideIfMobile",title:e.description,innerHTML:e.description},null,8,Re)])])]),_:1})}const oe=D(be,[["render",Me],["__scopeId","data-v-19795e3d"]]),B=M({__name:"FetchLoader",props:{response:{type:Promise,required:!0},error:{type:Function,default:c=>`Failed to fetch (${c.status})`}},setup(c){const r=c,e=f(!1),d=f(""),_=async()=>{if(!r.response)return;e.value=!0,d.value="";const n=await r.response;e.value=!1,n.ok||(d.value=r.error(n))};return j(_),P(()=>r.response,_),(n,u)=>e.value?(o(),y(ae,{key:0})):d.value?(o(),y(_e,{key:1,msg:d.value},null,8,["msg"])):c.response?ue(n.$slots,"default",{key:2}):x("",!0)}}),Ae={class:"albums"},Pe=M({__name:"Albums",setup(c){const r=f([]),e=f(null);return j(async()=>{e.value=fetch("/api/albums");const _=await(await e.value).json();r.value=_.sort((n,u)=>n.name.localeCompare(u.name))}),(d,_)=>(o(),y(B,{response:e.value},{default:h(()=>[t("div",Ae,[m(F,{heading:"In your library"},{default:h(()=>[(o(!0),p(R,null,T(r.value,n=>(o(),y(oe,{title:n.name,description:n.artists.join(", "),cover:n.image,onClick:u=>d.$router.push(n.href),imageType:"album"},null,8,["title","description","cover","onClick"]))),256))]),_:1})])]),_:1},8,["response"]))}}),Ee=D(Pe,[["__scopeId","data-v-33e7fc43"]]),Fe={class:"playlists"},je=M({__name:"Playlists",setup(c){const r=ce(),e=N(()=>r.playlists),d=f([]),_=f(null);return j(async()=>{_.value=fetch("/api/spotify/playlists");const u=await(await _.value).json();d.value=u}),(n,u)=>(o(),p("div",Fe,[e.value.length?(o(),y(F,{key:0,heading:"Playlists"},{default:h(()=>[(o(!0),p(R,null,T(e.value,a=>(o(),y(J,{playlist:a},null,8,["playlist"]))),256))]),_:1})):x("",!0),m(B,{response:_.value,error:a=>`Failed to fetch Spotify playlists (${a.status})`},{default:h(()=>[d.value.length?(o(),y(F,{key:0,heading:"Import From Spotify"},{default:h(()=>[m(J,{playlist:{href:"/liked",name:"Liked",description:"your liked tracks",type:"classic",cover:null,id:"liked",plays:0},"is-spotify":""}),(o(!0),p(R,null,T(d.value,a=>(o(),y(J,{playlist:{...a,href:`https://open.spotify.com/playlist/${a.id}`,type:"classic"},"is-spotify":""},null,8,["playlist"]))),256))]),_:1})):x("",!0)]),_:1},8,["response","error"])]))}}),H=c=>(se("data-v-924f3e91"),c=c(),le(),c),Le={key:0,class:"fill-page"},Ne={key:1},Be={class:"releases w-full"},qe={class:"current"},He={key:0,class:"w-max flex flex-col gap-4"},Oe={class:"flex justify-between w-full items-center"},Ye={class:"flex gap-4 items-center"},Je={class:"info"},Ve={key:0},Ke={key:1,class:"m-0 text-muted text-sm"},Qe=["title"],Ue={class:"actions"},We={key:1,class:"h-96 flex flex-col justify-center"},ze=H(()=>t("span",{class:"italic text-sm text-muted"}," Nothing to preview ",-1)),Xe=[ze],Ge={class:"flex items-center gap-4 w-max"},Ze={key:0,class:"flex justify-between mb-2"},et=H(()=>t("span",{class:"material-symbols-rounded"}," refresh ",-1)),tt=H(()=>t("span",{class:"material-symbols-rounded"}," done_all ",-1)),st={class:"entries overflow-y-auto flex flex-col gap-2"},lt=["onClick"],at={class:"info overflow-hidden"},ot={class:"m-0 overflow-hidden"},nt={class:"m-0 overflow-hidden text-sm text-muted"},rt=["title"],it=["onClick"],ut=["onClick"],ct=["onClick"],dt={key:1,class:"flex flex-col items-center"},pt=H(()=>t("span",{class:"italic text-sm text-muted"}," No releases in this queue ",-1)),vt=[pt],V="reap.releases.seen",K="reap.releases.remember",mt=M({__name:"Releases",setup(c){const r=f(!0),e=f("unseen"),d=l=>{const s=new Date(l),g=Math.floor((Date.now()-s.getTime())/1e3/60/60/24);return g==0?"Today":g==1?"Yesterday":g<100?`${g} days ago`:g<365?`${Math.floor(g/30)} months ago`:s.toLocaleDateString()},_=de();P(e,l=>{const s={queue:l};_.replace({query:s})});const n=N(()=>{switch(e.value){case"unseen":return S.value.filter(l=>!$.value.includes(l.url));case"out-today":return ne.value;case"watching":return k.value;case"all":return S.value;case"seen":return $.value.map(l=>S.value.find(s=>s.url==l)).filter(l=>l)}}),u=l=>{fe(l.artist,l.title,l.url)},a=f(null),w=f(null),O=new Date,S=f([]),W=l=>{a.value=l,te(()=>{var s;(s=w.value)==null||s.show()})},ne=N(()=>S.value.filter(l=>{const s=new Date(l.releaseDate);return O.getMonth()==s.getMonth()&&O.getDate()==s.getDate()&&O.getFullYear()==s.getFullYear()})),z=l=>{k.value.find(s=>s.url==l.url)||k.value.push(l)},X=l=>{k.value=k.value.filter(s=>s.url!=l.url)},Y=l=>{var g;let s=!1;l.url===((g=v.value)==null?void 0:g.url)&&(s=!0),$.value.includes(l.url)||$.value.push(l.url),s&&te(()=>u(v.value))},$=f([]),k=f([]),v=f(null),re=()=>{r.value=!0,fetch("/api/releases",{headers:{"X-Cache-Control":"no-cache"}}).then(l=>l.json()).then(l=>{S.value=l,r.value=!1})};return j(async()=>{var s;r.value=!0;const l=await fetch("/api/releases");S.value=await l.json(),r.value=!1,$.value=((s=localStorage.getItem(V))==null?void 0:s.split(","))??[],$.value=$.value.filter(g=>S.value.find(L=>L.url==g)),k.value=JSON.parse(localStorage.getItem(K)??"[]")}),P(n,l=>{v.value=l[0]??null}),P($,l=>{l.length?localStorage.setItem(V,l.join(",")):localStorage.removeItem(V)},{deep:!0}),P(k,l=>{l.length?localStorage.setItem(K,JSON.stringify(l)):localStorage.removeItem(K)},{deep:!0}),(l,s)=>{var g,L;return r.value?(o(),p("div",Le,[m(ae)])):(o(),p("div",Ne,[a.value?(o(),y(pe,{key:0,id:(g=a.value.url)==null?void 0:g.replace("https://open.spotify.com/album/",""),ref_key:"addReleaseRef",ref:w,album:{id:(L=a.value.url)==null?void 0:L.replace("https://open.spotify.com/album/",""),title:a.value.title,artist:a.value.artists.join(", "),cover:a.value.cover,href:a.value.url,releaseDate:a.value.releaseDate},artist:a.value.artist,cover:a.value.cover,href:a.value.url,title:a.value.title},null,8,["id","album","artist","cover","href","title"])):x("",!0),t("div",Be,[t("div",qe,[v.value?(o(),p("div",He,[v.value?(o(),y(Q,{key:0,class:"rounded-3xl",src:v.value.cover,"with-ambient":""},null,8,["src"])):x("",!0),t("div",Oe,[t("div",Ye,[t("span",{class:"preview material-symbols-rounded ms-fill text-5xl cursor-pointer",onClick:s[0]||(s[0]=i=>u(v.value))}," play_circle "),t("div",Je,[v.value?(o(),p("h3",Ve,[m(G,{text:v.value.title},null,8,["text"])])):x("",!0),v.value?(o(),p("p",Ke,[m(Z,{artist:v.value.artist},null,8,["artist"])])):x("",!0),v.value?(o(),p("p",{key:2,class:"m-0 text-muted text-xs",title:v.value.releaseDate},b(d(v.value.releaseDate)),9,Qe)):x("",!0)])]),t("div",Ue,[t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:s[1]||(s[1]=C(i=>W(v.value),["stop"])),title:"Add to playlist"}," add "),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:s[2]||(s[2]=C(i=>k.value.find(I=>I.url===v.value.url)?X(v.value):z(v.value),["stop"])),title:"Pin"},b(k.value.find(i=>i.url===v.value.url)?"playlist_remove":"push_pin"),1),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:s[3]||(s[3]=C(i=>Y(v.value),["stop"])),title:"Mark as seen"}," done_all ")])])])):(o(),p("div",We,Xe))]),m(U,{class:"queue w-full p-2 h-full flex flex-col gap-2 relative"},{default:h(()=>[t("div",Ge,[t("h5",{class:A(["cursor-pointer",{selected:e.value=="unseen"}]),onClick:s[4]||(s[4]=i=>e.value="unseen")}," Unseen ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="out-today"}]),onClick:s[5]||(s[5]=i=>e.value="out-today")}," Out Today ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="watching"}]),onClick:s[6]||(s[6]=i=>e.value="watching")}," Pinned ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="seen"}]),onClick:s[7]||(s[7]=i=>e.value="seen")}," Seen ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="all"}]),onClick:s[8]||(s[8]=i=>e.value="all")}," All ",2)]),e.value==="unseen"&&n.value.length?(o(),p("div",Ze,[t("span",{class:"cursor-pointer text-sm text-muted hover:text-primary flex items-center gap-2",onClick:re},[ee(" Refresh "),et]),t("span",{class:"cursor-pointer text-sm text-muted hover:text-primary flex items-center gap-2",onClick:s[9]||(s[9]=i=>n.value.forEach(Y))},[ee(" Mark all as seen "),tt])])):x("",!0),t("div",st,[n.value.length?(o(!0),p(R,{key:0},T(n.value,i=>(o(),p("div",{class:"entry",onClick:I=>{v.value=i,u(i)}},[m(Q,{class:"rounded-xl",src:i.cover},null,8,["src"]),t("div",at,[t("p",ot,[m(G,{text:i.title},null,8,["text"])]),t("p",nt,[m(Z,{artist:i.artist},null,8,["artist"])])]),t("p",{class:"text-sm m-0 text-muted",title:i.releaseDate},b(d(i.releaseDate)),9,rt),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:C(I=>W(i),["stop"]),title:"Add to playlist"}," add ",8,it),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:C(I=>k.value.find(ie=>ie.url===i.url)?X(i):z(i),["stop"]),title:"Pin"},b(k.value.find(I=>I.url===i.url)?"playlist_remove":"push_pin"),9,ut),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:C(I=>Y(i),["stop"]),title:"Mark as seen"}," done_all ",8,ct)],8,lt))),256)):x("",!0)]),n.value.length?x("",!0):(o(),p("div",dt,vt))]),_:1})])]))}}}),_t=D(mt,[["__scopeId","data-v-924f3e91"]]),ft={components:{Card:U},name:"ArtistItem",methods:{follow(c){c.stopPropagation();const r=this.following?"DELETE":"POST";fetch("/api/spotify/following",{method:r,body:JSON.stringify({artistId:this.id})}).then(e=>{e.status==200&&(this.following=!this.following)})}},data(){return{following:this.initiallyFollowing}},props:{cover:String,name:String,description:String,id:String,initiallyFollowing:Boolean,showFollowButton:Boolean}},ht={class:"item"},yt=["src"],gt={class:"flex gap-2 items-center justify-between"},xt=["innerHTML"];function wt(c,r,e,d,_,n){const u=E("add-artist-to-playlist"),a=E("Card");return o(),y(a,{class:"wrapper","with-hover":"",onClick:r[1]||(r[1]=C(w=>c.$router.push("/artist/"+e.name),["stop"]))},{default:h(()=>[m(u,{ref:"import",artist:{id:e.id,name:e.name,href:`https://open.spotify.com/artist/${e.id}`,image:e.cover}},null,8,["artist"]),t("div",ht,[t("img",{src:e.cover},null,8,yt),t("div",gt,[t("div",null,[t("h4",null,b(e.name),1),t("p",{innerHTML:e.description},null,8,xt)]),e.showFollowButton?(o(),p("span",{key:0,class:"material-symbols-rounded text-muted text-md",onClick:r[0]||(r[0]=C((...w)=>n.follow&&n.follow(...w),["stop"]))},b(_.following?"person_check":"person_add"),1)):x("",!0)])])]),_:1})}const kt=D(ft,[["render",wt],["__scopeId","data-v-286e9794"]]),$t={class:"artists"},Ct=M({__name:"Artists",setup(c){const r=f([]),e=f([]),d=f(null),_=f(null);return j(async()=>{d.value=fetch("/api/artists");let n=await d.value,u=await n.json();e.value=u.sort((a,w)=>a.name.localeCompare(w.name)),_.value=fetch("/api/spotify/artists"),n=await _.value,u=await n.json(),r.value=u.sort((a,w)=>a.name.localeCompare(w.name))}),(n,u)=>(o(),p("div",$t,[m(B,{response:d.value},{default:h(()=>[m(F,{heading:"In your library"},{default:h(()=>[(o(!0),p(R,null,T(e.value,a=>(o(),y(oe,{title:a.name,cover:a.image,onClick:w=>n.$router.push(`/artist/${a.name}`),imageType:"artist"},null,8,["title","cover","onClick"]))),256))]),_:1})]),_:1},8,["response"]),m(B,{response:_.value},{default:h(()=>[m(F,{heading:"Following on Spotify"},{default:h(()=>[(o(!0),p(R,null,T(r.value,(a,w)=>(o(),y(kt,{id:a.id,key:w,cover:a.cover,description:a.description,name:a.name,"initially-following":"","show-follow-button":""},null,8,["id","cover","description","name"]))),128))]),_:1})]),_:1},8,["response"])]))}}),bt=D(Ct,[["__scopeId","data-v-a8a87a8e"]]),St={class:"parent"},It={class:"collection"},Dt=M({__name:"index",setup(c){const r=ve(),e=N(()=>{switch(r.path.split("/")[2]){case"albums":return Ee;case"playlists":return je;case"releases":return _t;case"artists":return bt}});return(d,_)=>(o(),p("div",St,[m(Ce,{class:"header"}),t("main",It,[(o(),y(me(e.value)))])]))}}),Et=D(Dt,[["__scopeId","data-v-3e995f8b"]]);export{Et as default}; +import{_ as D,f as E,o,c as p,g as m,w as h,l as se,m as le,a as t,C as U,H as Q,i as y,t as b,d as x,e as M,n as f,y as j,E as P,r as ue,L as ae,h as T,F as R,j as ce,D as N,q as de,J as pe,M as G,K as Z,O as C,Q as A,b as ee,R as te,B as ve,U as me}from"./index-DwIIj2B2.js";import{F}from"./FullShelf-NKKvCiyP.js";import{E as _e}from"./Error-B8FoxyVg.js";import{P as J}from"./PlaylistCard-CLiKXXKR.js";import{p as fe}from"./playerInPicture-Dfp9IAsf.js";const he={name:"CollectionHeader",props:{href:String}},q=c=>(se("data-v-780f7ad5"),c=c(),le(),c),ye={class:"wrapper"},ge=q(()=>t("div",{class:"collection"},"Playlists",-1)),xe=q(()=>t("div",{class:"collection"},"Releases",-1)),we=q(()=>t("div",{class:"collection"},"Artists",-1)),ke=q(()=>t("div",{class:"collection"},"Albums",-1));function $e(c,r,e,d,_,n){const u=E("router-link");return o(),p("div",ye,[m(u,{class:"link",to:"/collection/playlists"},{default:h(()=>[ge]),_:1}),m(u,{class:"link",to:"/collection/releases"},{default:h(()=>[xe]),_:1}),m(u,{class:"link",to:"/collection/artists"},{default:h(()=>[we]),_:1}),m(u,{class:"link",to:"/collection/albums"},{default:h(()=>[ke]),_:1})])}const Ce=D(he,[["render",$e],["__scopeId","data-v-780f7ad5"]]),be={components:{Card:U,Cover:Q},name:"CardWithImageAndText",props:{cover:String,title:String,description:String,playlistType:{type:String,default:null},imageType:{type:String,default:"playlist"}}},Se={class:"item"},Ie={class:"title"},De={key:0,class:"material-symbols-rounded"},Te=["title"],Re=["title","innerHTML"];function Me(c,r,e,d,_,n){const u=E("Cover"),a=E("Card");return o(),y(a,{class:"wrapper drop-shadow-md","with-hover":""},{default:h(()=>[t("div",Se,[m(u,{src:e.cover,type:e.imageType,name:e.title},null,8,["src","type","name"]),t("div",null,[t("div",Ie,[[null,"classic"].includes(e.playlistType)?x("",!0):(o(),p("span",De,b(e.playlistType=="smart"?"neurology":"bolt"),1)),t("h4",{title:e.title},b(e.title),9,Te)]),t("p",{class:"text-muted text-xs hideIfMobile",title:e.description,innerHTML:e.description},null,8,Re)])])]),_:1})}const oe=D(be,[["render",Me],["__scopeId","data-v-19795e3d"]]),B=M({__name:"FetchLoader",props:{response:{type:Promise,required:!0},error:{type:Function,default:c=>`Failed to fetch (${c.status})`}},setup(c){const r=c,e=f(!1),d=f(""),_=async()=>{if(!r.response)return;e.value=!0,d.value="";const n=await r.response;e.value=!1,n.ok||(d.value=r.error(n))};return j(_),P(()=>r.response,_),(n,u)=>e.value?(o(),y(ae,{key:0})):d.value?(o(),y(_e,{key:1,msg:d.value},null,8,["msg"])):c.response?ue(n.$slots,"default",{key:2}):x("",!0)}}),Ae={class:"albums"},Pe=M({__name:"Albums",setup(c){const r=f([]),e=f(null);return j(async()=>{e.value=fetch("/api/albums");const _=await(await e.value).json();r.value=_.sort((n,u)=>n.name.localeCompare(u.name))}),(d,_)=>(o(),y(B,{response:e.value},{default:h(()=>[t("div",Ae,[m(F,{heading:"In your library"},{default:h(()=>[(o(!0),p(R,null,T(r.value,n=>(o(),y(oe,{title:n.name,description:n.artists.join(", "),cover:n.image,onClick:u=>d.$router.push(n.href),imageType:"album"},null,8,["title","description","cover","onClick"]))),256))]),_:1})])]),_:1},8,["response"]))}}),Ee=D(Pe,[["__scopeId","data-v-33e7fc43"]]),Fe={class:"playlists"},je=M({__name:"Playlists",setup(c){const r=ce(),e=N(()=>r.playlists),d=f([]),_=f(null);return j(async()=>{_.value=fetch("/api/spotify/playlists");const u=await(await _.value).json();d.value=u}),(n,u)=>(o(),p("div",Fe,[e.value.length?(o(),y(F,{key:0,heading:"Playlists"},{default:h(()=>[(o(!0),p(R,null,T(e.value,a=>(o(),y(J,{playlist:a},null,8,["playlist"]))),256))]),_:1})):x("",!0),m(B,{response:_.value,error:a=>`Failed to fetch Spotify playlists (${a.status})`},{default:h(()=>[d.value.length?(o(),y(F,{key:0,heading:"Import From Spotify"},{default:h(()=>[m(J,{playlist:{href:"/liked",name:"Liked",description:"your liked tracks",type:"classic",cover:null,id:"liked",plays:0},"is-spotify":""}),(o(!0),p(R,null,T(d.value,a=>(o(),y(J,{playlist:{...a,href:`https://open.spotify.com/playlist/${a.id}`,type:"classic"},"is-spotify":""},null,8,["playlist"]))),256))]),_:1})):x("",!0)]),_:1},8,["response","error"])]))}}),H=c=>(se("data-v-fbc407e7"),c=c(),le(),c),Le={key:0,class:"fill-page"},Ne={key:1},Be={class:"releases w-full"},qe={class:"current"},He={key:0,class:"w-max flex flex-col gap-4"},Oe={class:"flex justify-between w-full items-center"},Ye={class:"flex gap-4 items-center"},Je={class:"info"},Ve={key:0},Ke={key:1,class:"m-0 text-muted text-sm"},Qe=["title"],Ue={class:"actions"},We={key:1,class:"h-96 flex flex-col justify-center"},ze=H(()=>t("span",{class:"italic text-sm text-muted"}," Nothing to preview ",-1)),Xe=[ze],Ge={class:"flex items-center gap-4 w-max"},Ze={key:0,class:"flex justify-between mb-2"},et=H(()=>t("span",{class:"material-symbols-rounded"}," refresh ",-1)),tt=H(()=>t("span",{class:"material-symbols-rounded"}," done_all ",-1)),st={class:"entries overflow-y-auto flex flex-col gap-2"},lt=["onClick"],at={class:"info overflow-hidden"},ot={class:"m-0 overflow-hidden"},nt={class:"m-0 overflow-hidden text-sm text-muted"},rt=["title"],it=["onClick"],ut=["onClick"],ct=["onClick"],dt={key:1,class:"flex flex-col items-center"},pt=H(()=>t("span",{class:"italic text-sm text-muted"}," No releases in this queue ",-1)),vt=[pt],V="reap.releases.seen",K="reap.releases.remember",mt=M({__name:"Releases",setup(c){const r=f(!0),e=f("unseen"),d=l=>{const s=new Date(l),g=Math.floor((Date.now()-s.getTime())/1e3/60/60/24);return g==0?"Today":g==1?"Yesterday":g<100?`${g} days ago`:g<365?`${Math.floor(g/30)} months ago`:s.toLocaleDateString()},_=de();P(e,l=>{const s={queue:l};_.replace({query:s})});const n=N(()=>{switch(e.value){case"unseen":return S.value.filter(l=>!$.value.includes(l.url));case"out-today":return ne.value;case"watching":return k.value;case"all":return S.value;case"seen":return $.value.map(l=>S.value.find(s=>s.url==l)).filter(l=>l)}}),u=l=>{fe(l.artist,l.title,l.url)},a=f(null),w=f(null),O=new Date,S=f([]),W=l=>{a.value=l,te(()=>{var s;(s=w.value)==null||s.show()})},ne=N(()=>S.value.filter(l=>{const s=new Date(l.releaseDate);return O.getMonth()==s.getMonth()&&O.getDate()==s.getDate()&&O.getFullYear()==s.getFullYear()})),z=l=>{k.value.find(s=>s.url==l.url)||k.value.push(l)},X=l=>{k.value=k.value.filter(s=>s.url!=l.url)},Y=l=>{var g;let s=!1;l.url===((g=v.value)==null?void 0:g.url)&&(s=!0),$.value.includes(l.url)||$.value.push(l.url),s&&te(()=>u(v.value))},$=f([]),k=f([]),v=f(null),re=()=>{r.value=!0,fetch("/api/releases",{headers:{"X-Cache-Control":"no-cache"}}).then(l=>l.json()).then(l=>{S.value=l,r.value=!1})};return j(async()=>{var s;r.value=!0;const l=await fetch("/api/releases");S.value=await l.json(),r.value=!1,$.value=((s=localStorage.getItem(V))==null?void 0:s.split(","))??[],$.value=$.value.filter(g=>S.value.find(L=>L.url==g)),k.value=JSON.parse(localStorage.getItem(K)??"[]")}),P(n,l=>{v.value=l[0]??null}),P($,l=>{l.length?localStorage.setItem(V,l.join(",")):localStorage.removeItem(V)},{deep:!0}),P(k,l=>{l.length?localStorage.setItem(K,JSON.stringify(l)):localStorage.removeItem(K)},{deep:!0}),(l,s)=>{var g,L;return r.value?(o(),p("div",Le,[m(ae)])):(o(),p("div",Ne,[a.value?(o(),y(pe,{key:0,id:(g=a.value.url)==null?void 0:g.replace("https://open.spotify.com/album/",""),ref_key:"addReleaseRef",ref:w,album:{id:(L=a.value.url)==null?void 0:L.replace("https://open.spotify.com/album/",""),title:a.value.title,artist:a.value.artists.join(", "),cover:a.value.cover,href:a.value.url,releaseDate:a.value.releaseDate},artist:a.value.artist,cover:a.value.cover,href:a.value.url,title:a.value.title},null,8,["id","album","artist","cover","href","title"])):x("",!0),t("div",Be,[t("div",qe,[v.value?(o(),p("div",He,[v.value?(o(),y(Q,{key:0,class:"rounded-3xl",src:v.value.cover,"with-ambient":""},null,8,["src"])):x("",!0),t("div",Oe,[t("div",Ye,[t("span",{class:"preview material-symbols-rounded ms-fill text-5xl cursor-pointer",onClick:s[0]||(s[0]=i=>u(v.value))}," play_circle "),t("div",Je,[v.value?(o(),p("h3",Ve,[m(G,{text:v.value.title},null,8,["text"])])):x("",!0),v.value?(o(),p("p",Ke,[m(Z,{artist:v.value.artist},null,8,["artist"])])):x("",!0),v.value?(o(),p("p",{key:2,class:"m-0 text-muted text-xs",title:v.value.releaseDate},b(d(v.value.releaseDate)),9,Qe)):x("",!0)])]),t("div",Ue,[t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:s[1]||(s[1]=C(i=>W(v.value),["stop"])),title:"Add to playlist"}," add "),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:s[2]||(s[2]=C(i=>k.value.find(I=>I.url===v.value.url)?X(v.value):z(v.value),["stop"])),title:"Pin"},b(k.value.find(i=>i.url===v.value.url)?"playlist_remove":"push_pin"),1),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:s[3]||(s[3]=C(i=>Y(v.value),["stop"])),title:"Mark as seen"}," done_all ")])])])):(o(),p("div",We,Xe))]),m(U,{class:"queue w-full p-2 h-full flex flex-col gap-2 relative"},{default:h(()=>[t("div",Ge,[t("h5",{class:A(["cursor-pointer",{selected:e.value=="unseen"}]),onClick:s[4]||(s[4]=i=>e.value="unseen")}," Unseen ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="out-today"}]),onClick:s[5]||(s[5]=i=>e.value="out-today")}," Out Today ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="watching"}]),onClick:s[6]||(s[6]=i=>e.value="watching")}," Pinned ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="seen"}]),onClick:s[7]||(s[7]=i=>e.value="seen")}," Seen ",2),t("h5",{class:A(["cursor-pointer",{selected:e.value=="all"}]),onClick:s[8]||(s[8]=i=>e.value="all")}," All ",2)]),e.value==="unseen"&&n.value.length?(o(),p("div",Ze,[t("span",{class:"cursor-pointer text-sm text-muted hover:text-primary flex items-center gap-2",onClick:re},[ee(" Refresh "),et]),t("span",{class:"cursor-pointer text-sm text-muted hover:text-primary flex items-center gap-2",onClick:s[9]||(s[9]=i=>n.value.forEach(Y))},[ee(" Mark all as seen "),tt])])):x("",!0),t("div",st,[n.value.length?(o(!0),p(R,{key:0},T(n.value,i=>(o(),p("div",{class:"entry",onClick:I=>{v.value=i,u(i)}},[m(Q,{class:"rounded-xl",src:i.cover},null,8,["src"]),t("div",at,[t("p",ot,[m(G,{text:i.title},null,8,["text"])]),t("p",nt,[m(Z,{artist:i.artist},null,8,["artist"])])]),t("p",{class:"text-sm m-0 text-muted",title:i.releaseDate},b(d(i.releaseDate)),9,rt),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:C(I=>W(i),["stop"]),title:"Add to playlist"}," add ",8,it),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:C(I=>k.value.find(ie=>ie.url===i.url)?X(i):z(i),["stop"]),title:"Pin"},b(k.value.find(I=>I.url===i.url)?"playlist_remove":"push_pin"),9,ut),t("span",{class:"material-symbols-rounded cursor-pointer text-muted hover:text-primary",onClick:C(I=>Y(i),["stop"]),title:"Mark as seen"}," done_all ",8,ct)],8,lt))),256)):x("",!0)]),n.value.length?x("",!0):(o(),p("div",dt,vt))]),_:1})])]))}}}),_t=D(mt,[["__scopeId","data-v-fbc407e7"]]),ft={components:{Card:U},name:"ArtistItem",methods:{follow(c){c.stopPropagation();const r=this.following?"DELETE":"POST";fetch("/api/spotify/following",{method:r,body:JSON.stringify({artistId:this.id})}).then(e=>{e.status==200&&(this.following=!this.following)})}},data(){return{following:this.initiallyFollowing}},props:{cover:String,name:String,description:String,id:String,initiallyFollowing:Boolean,showFollowButton:Boolean}},ht={class:"item"},yt=["src"],gt={class:"flex gap-2 items-center justify-between"},xt=["innerHTML"];function wt(c,r,e,d,_,n){const u=E("add-artist-to-playlist"),a=E("Card");return o(),y(a,{class:"wrapper","with-hover":"",onClick:r[1]||(r[1]=C(w=>c.$router.push("/artist/"+e.name),["stop"]))},{default:h(()=>[m(u,{ref:"import",artist:{id:e.id,name:e.name,href:`https://open.spotify.com/artist/${e.id}`,image:e.cover}},null,8,["artist"]),t("div",ht,[t("img",{src:e.cover},null,8,yt),t("div",gt,[t("div",null,[t("h4",null,b(e.name),1),t("p",{innerHTML:e.description},null,8,xt)]),e.showFollowButton?(o(),p("span",{key:0,class:"material-symbols-rounded text-muted text-md",onClick:r[0]||(r[0]=C((...w)=>n.follow&&n.follow(...w),["stop"]))},b(_.following?"person_check":"person_add"),1)):x("",!0)])])]),_:1})}const kt=D(ft,[["render",wt],["__scopeId","data-v-286e9794"]]),$t={class:"artists"},Ct=M({__name:"Artists",setup(c){const r=f([]),e=f([]),d=f(null),_=f(null);return j(async()=>{d.value=fetch("/api/artists");let n=await d.value,u=await n.json();e.value=u.sort((a,w)=>a.name.localeCompare(w.name)),_.value=fetch("/api/spotify/artists"),n=await _.value,u=await n.json(),r.value=u.sort((a,w)=>a.name.localeCompare(w.name))}),(n,u)=>(o(),p("div",$t,[m(B,{response:d.value},{default:h(()=>[m(F,{heading:"In your library"},{default:h(()=>[(o(!0),p(R,null,T(e.value,a=>(o(),y(oe,{title:a.name,cover:a.image,onClick:w=>n.$router.push(`/artist/${a.name}`),imageType:"artist"},null,8,["title","cover","onClick"]))),256))]),_:1})]),_:1},8,["response"]),m(B,{response:_.value},{default:h(()=>[m(F,{heading:"Following on Spotify"},{default:h(()=>[(o(!0),p(R,null,T(r.value,(a,w)=>(o(),y(kt,{id:a.id,key:w,cover:a.cover,description:a.description,name:a.name,"initially-following":"","show-follow-button":""},null,8,["id","cover","description","name"]))),128))]),_:1})]),_:1},8,["response"])]))}}),bt=D(Ct,[["__scopeId","data-v-a8a87a8e"]]),St={class:"parent"},It={class:"collection"},Dt=M({__name:"index",setup(c){const r=ve(),e=N(()=>{switch(r.path.split("/")[2]){case"albums":return Ee;case"playlists":return je;case"releases":return _t;case"artists":return bt}});return(d,_)=>(o(),p("div",St,[m(Ce,{class:"header"}),t("main",It,[(o(),y(me(e.value)))])]))}}),Et=D(Dt,[["__scopeId","data-v-3e995f8b"]]);export{Et as default}; diff --git a/src/ui/dist/assets/index-CAOgyRuZ.js.gz b/src/ui/dist/assets/index-CAOgyRuZ.js.gz new file mode 100644 index 00000000..a9a136bc Binary files /dev/null and b/src/ui/dist/assets/index-CAOgyRuZ.js.gz differ diff --git a/src/ui/dist/assets/index-COJauJk7.js.gz b/src/ui/dist/assets/index-COJauJk7.js.gz deleted file mode 100644 index 2001f756..00000000 Binary files a/src/ui/dist/assets/index-COJauJk7.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-Cv8GyS-k.css b/src/ui/dist/assets/index-Cv8GyS-k.css new file mode 100644 index 00000000..37c3dc47 --- /dev/null +++ b/src/ui/dist/assets/index-Cv8GyS-k.css @@ -0,0 +1 @@ +.cover[data-v-4dbd10b1]{width:min(40%,600px);height:auto;max-width:600px;border-radius:20px;transition:transform .5s}.cover[data-v-4dbd10b1]:not(.playing){transform:scale(.95);animation:none}.fullscreen[data-v-4dbd10b1]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;width:100svw;height:100vh;height:100svh;padding:2em;display:flex;justify-content:flex-end;flex-direction:column;isolation:isolate;color:#fff;background:#000;overflow:clip}.now[data-v-4dbd10b1]{display:flex;flex-direction:row;align-items:flex-end;gap:2em;margin-bottom:1em}.now .artist[data-v-4dbd10b1]{color:#bbb}.now .playlist[data-v-4dbd10b1]{text-transform:uppercase;letter-spacing:.25ch;color:#aaa}.bg-img[data-v-4dbd10b1]{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;z-index:-1;scale:1.1;filter:blur(50px) brightness(.25)}.controls[data-v-4dbd10b1]{overflow:clip;gap:1em;max-height:0;transition:max-height 1s}.controls .progress[data-v-4dbd10b1]{margin-top:1em;display:grid;grid-template-columns:5ch 1fr 5ch;gap:1em;align-items:center}.controls.showControls[data-v-4dbd10b1]{max-height:50vh}.lower[data-v-4dbd10b1]{display:grid;align-items:center;margin-top:1em;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)}.lower .volume[data-v-4dbd10b1]{display:grid;justify-content:end;gap:1em;grid-template-columns:20px minmax(auto,8vw)}.lower .actions[data-v-4dbd10b1]{display:grid;align-items:center;gap:1em;grid-template-columns:repeat(5,minmax(0,5ch));justify-content:center}.bigPlayer .upNow img{width:80%;height:auto;max-width:min(600px,100vh - 300px);border-radius:20px;transition:transform .5s;animation:pump 20s infinite ease-in-out}.bigPlayer .upNow img:not(.playing){transform:scale(.95);animation:none}.bigPlayer .upNow img:not(.animate){animation:none}div.body:has(.bigPlayer){overflow:visible!important}@keyframes pump{0%{transform:scale(1);opacity:0}6%{transform:scale(1);opacity:0}7%{transform:scale(1);opacity:1}85%{transform:scale(1);opacity:1}95%{transform:scale(5);opacity:0}97%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:0}}.settings[data-v-40f8527c]{position:absolute;bottom:0;left:0;display:flex;flex-direction:row;justify-content:flex-end;padding:10px}.playlist-overflow[data-v-40f8527c]{flex:2;height:70%;margin:100px 0;overflow:hidden}.playlist-overflow .playlist[data-v-40f8527c]{overflow-y:auto;height:100%;padding:10px 20px}.iconButton[data-v-40f8527c]{font-size:2em;border-radius:10px;padding:5px;font-variation-settings:"wght" 200}.iconButton[data-v-40f8527c]:hover{cursor:pointer;background-clip:text;-webkit-background-clip:text;color:transparent;background:var(--bg-hover-lt);color:var(--fg-secondary)}.bigPlayer[data-v-40f8527c]{position:relative;display:flex;flex-direction:row;padding:40px;align-items:center;z-index:1;height:100%;filter:none}.bigPlayer .upNow[data-v-40f8527c]{flex:3;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1em;position:relative}.bigPlayer .upNow .blocks[data-v-40f8527c]{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;width:80%;height:100%;max-width:min(80%,600px);border-radius:20px;position:absolute}@keyframes increase1-40f8527c{0%{transform:scaleX(0);transform-origin:0% 50%}1%{transform:scaleX(0)}4%{transform:scaleX(1);transform-origin:0% 50%}6%{transform:scaleX(1);transform-origin:100% 50%}9%{transform:scaleX(0)}to{transform:scaleX(0);transform-origin:100% 50%}}.bigPlayer .upNow .blocks .block[data-v-40f8527c]{transform:scaleX(0);background:var(--fg-contrast);width:100%;flex:1;transform-origin:0% 50%;animation:increase1-40f8527c 20s infinite ease-in-out}.bigPlayer .upNow .blocks .block[data-v-40f8527c]:first-child{border-radius:20px 20px 0 0}.bigPlayer .upNow .blocks .block[data-v-40f8527c]:last-child{border-radius:0 0 20px 20px}.bigPlayer .upNow .blocks:not(.animate) .block[data-v-40f8527c],.bigPlayer .upNow .blocks:not(.playing) .block[data-v-40f8527c]{animation:none;opacity:0}.no-playlist-selected[data-v-40f8527c]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%}.no-playlist-selected .wrapper[data-v-40f8527c]{width:80%;background:var(--bg-base-lt);border-radius:20px;overflow:hidden;padding:20px}.no-playlist-selected .wrapper h2[data-v-40f8527c]{margin-top:0}.no-playlist-selected .wrapper .playlists[data-v-40f8527c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.no-playlist-selected .wrapper .playlists .wrapper[data-v-40f8527c]{padding:0} diff --git a/src/ui/dist/assets/index-Cv8GyS-k.css.gz b/src/ui/dist/assets/index-Cv8GyS-k.css.gz new file mode 100644 index 00000000..1eaed1eb Binary files /dev/null and b/src/ui/dist/assets/index-Cv8GyS-k.css.gz differ diff --git a/src/ui/dist/assets/index-CzJaiVRe.js.gz b/src/ui/dist/assets/index-CzJaiVRe.js.gz deleted file mode 100644 index 19176068..00000000 Binary files a/src/ui/dist/assets/index-CzJaiVRe.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-D0hrk0n_.css b/src/ui/dist/assets/index-D0hrk0n_.css deleted file mode 100644 index a3cc009e..00000000 --- a/src/ui/dist/assets/index-D0hrk0n_.css +++ /dev/null @@ -1 +0,0 @@ -.wrapper[data-v-780f7ad5]{display:flex;flex-direction:row;padding:1em;border-top:none;background:none}.link[data-v-780f7ad5]{text-decoration:none}.collection[data-v-780f7ad5]{padding:.5em 1em;border-radius:1000vmax;font-weight:700;color:var(--fg-base);margin-right:10px;font-size:.85em;border:var(--border-container);transition:all .2s ease-in-out}.collection[data-v-780f7ad5]:hover{background:var(--bg-hover-dk);border-color:var(--fg-secondary)}.router-link-active div.collection[data-v-780f7ad5]{background:var(--fg-secondary);color:var(--fg-contrast)}p.note[data-v-19795e3d]{font-size:.7em}div.title[data-v-19795e3d]{display:flex;flex-direction:row;align-items:center;margin-top:1rem;margin-bottom:.25rem;gap:.5em}div.title h4[data-v-19795e3d]{margin-top:0}div.title span[data-v-19795e3d]{color:var(--fg-secondary)}.wrapper[data-v-19795e3d]{background:var(--bg-base-lt);border-radius:20px;min-height:10vh;margin:10px}.wrapper[data-v-19795e3d]:hover{cursor:pointer;background:var(--bg-hover-dk)}.item[data-v-19795e3d]{padding:20px;height:100%;display:flex;flex-direction:column;justify-content:space-between}@media screen and (max-width: 950px){.item[data-v-19795e3d]{display:flex;flex-direction:row;align-items:center;height:100%;justify-content:flex-start}}img[data-v-19795e3d]{width:100%;border-radius:12px}@media screen and (max-width: 950px){img[data-v-19795e3d]{width:20%}}h4[data-v-19795e3d]{margin-bottom:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 950px){h4[data-v-19795e3d]{margin-left:20px;margin-top:0}}p[data-v-19795e3d]{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.padding-20[data-v-33e7fc43]{padding:20px}.releases[data-v-924f3e91]{display:grid;grid-template-columns:2fr 1fr;align-items:center;height:100%}.entry[data-v-924f3e91]{display:grid;grid-template-columns:50px 1fr 10ch 20px 20px 20px;gap:.5em;padding:.5em;border-radius:1em;cursor:pointer;align-items:center}.entry[data-v-924f3e91]:hover{background:var(--bg-hover)}h5[data-v-924f3e91]{text-transform:none;font-weight:700;font-size:.85em;color:var(--fg-base);padding:.25em .5em;border-radius:.5em}h5[data-v-924f3e91]:hover{background:var(--bg-hover-dk)}h5.selected[data-v-924f3e91]{background:var(--bg-hover)}.current[data-v-924f3e91]{display:flex;flex-direction:column;align-items:center;gap:1em}.queue[data-v-924f3e91]{height:calc(100% - 150px);overflow:hidden}.queue>.entries[data-v-924f3e91]{padding:.5em}.current .cover[data-v-924f3e91]{max-width:min(50vh,500px)}.followButton[data-v-286e9794]{color:var(--fg-base);background:none;border:1px solid var(--border-base);border-radius:2px;font-family:var(--ff-base);text-transform:uppercase;margin-top:5px;padding:5px 10px;font-weight:700;letter-spacing:1px}.followButton[data-v-286e9794]:hover{cursor:pointer}p.note[data-v-286e9794]{font-size:.7em}.wrapper[data-v-286e9794]{background:var(--bg-base-lt);border-radius:20px;min-height:10vh;margin:10px;padding:20px;position:relative;text-decoration:none!important;height:calc(100% - 20px)}.wrapper[data-v-286e9794]:hover{cursor:pointer;background:var(--bg-hover-dk)}.item[data-v-286e9794]{height:100%;display:flex;flex-direction:column;justify-content:space-between}.item span.material-symbols-rounded[data-v-286e9794]:hover{color:var(--fg-base)}img[data-v-286e9794]{width:100%;border-radius:12px;margin-bottom:1em}h4[data-v-286e9794]{margin:0}p[data-v-286e9794]{margin:0;color:var(--fg-base-dk);font-size:.8em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.artists[data-v-a8a87a8e]{display:flex;flex-direction:column;gap:1em}.header[data-v-3e995f8b]{position:absolute;top:0;z-index:100;width:100%}main[data-v-3e995f8b]{position:relative;height:100%;padding:1em;padding-top:calc(70px + 1em)}main>div[data-v-3e995f8b]{height:100%}.parent[data-v-3e995f8b]{height:100%;position:relative} diff --git a/src/ui/dist/assets/index-D0hrk0n_.css.gz b/src/ui/dist/assets/index-D0hrk0n_.css.gz deleted file mode 100644 index 320ff85c..00000000 Binary files a/src/ui/dist/assets/index-D0hrk0n_.css.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-DDzIGPOz.js.gz b/src/ui/dist/assets/index-DDzIGPOz.js.gz deleted file mode 100644 index b6e8c101..00000000 Binary files a/src/ui/dist/assets/index-DDzIGPOz.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-DFsHKh13.js b/src/ui/dist/assets/index-DFsHKh13.js deleted file mode 100644 index 1bd8e451..00000000 --- a/src/ui/dist/assets/index-DFsHKh13.js +++ /dev/null @@ -1 +0,0 @@ -import{e as L,a7 as F,j as R,D as r,n as u,E as B,W as j,o as g,i as M,a as t,z as T,g as _,u as s,Q as I,H as z,t as i,aM as q,a6 as H,d as A,aN as W,l as O,m as Q,_ as U,y as G,f as J,c as S,F as D,w as K,h as X}from"./index-K4QaY0Na.js";import{_ as Y}from"./Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js";import{P as Z}from"./PlaylistCard-DXOdXptp.js";import"./PlaylistEntry-9wUfG8hQ.js";import"./EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-YqWWrJTC.js";const ee=c=>(O("data-v-4dbd10b1"),c=c(),Q(),c),se={class:"fullscreen"},te={class:"now"},le={class:"details"},oe={class:"playlist"},ae={class:"title text-6xl mb-4"},ne={class:"artist text-3xl"},ie={class:"progress"},re={class:"text-xs text-muted text-right cursor-pointer"},ce={class:"text-xs text-muted text-left"},ue={class:"lower"},de=ee(()=>t("div",null,null,-1)),me={class:"actions"},pe={class:"volume"},ve=L({__name:"BiggerPlayer",emits:["close"],setup(c,{expose:N,emit:a}){const e=F(),C=R(),f=r(()=>e.playing),w=r(()=>e.song.cover),y=r(()=>e.loaded?`${e.song.title} • ${e.song.artist}`:"reAudioPlayer One");r(()=>C.playlists);const $=r(()=>{var v;return(v=e.playlist)==null?void 0:v.name}),h=u(!1),m=u(!1),x=u(0),V=u(null);document.title=y.value,B(y,v=>{document.title=v}),B(()=>e.song.cover,async()=>{V.value=await W(e.song.cover,y.value,1e3)}),B(()=>e.progressPercent,v=>{x.value=v});const b=a,p=()=>{h.value=!0,document.addEventListener("fullscreenchange",k),document.addEventListener("mousemove",P),document.fullscreenEnabled&&document.documentElement.requestFullscreen()},n=()=>{console.log("hiding..."),h.value=!1,document.addEventListener("fullscreenchange",k),document.removeEventListener("mousemove",P),b("close")};N({show:p,hide:n});const d=j.debounce(()=>{m.value=!1},1e3),P=()=>{m.value=!0,d()},k=()=>{document.fullscreenElement||n()};return(v,l)=>h.value?(g(),M(H,{key:0,to:"#fullscreen-target"},[t("div",se,[t("div",{class:"bg-img",style:T({backgroundImage:`url(${w.value})`})},null,4),t("div",te,[_(z,{name:s(e).song.title,src:w.value,alt:y.value,class:I(["cover",{playing:f.value}])},null,8,["name","src","alt","class"]),t("div",le,[t("p",oe," playing from "+i($.value),1),t("h1",ae,i(s(e).song.title),1),t("h3",ne,i(s(e).song.artist),1)])]),t("div",{class:I(["controls",{showControls:m.value||!f.value}])},[t("div",ie,[t("span",re,i(s(e).displayProgress),1),_(q,{modelValue:x.value,"onUpdate:modelValue":l[0]||(l[0]=o=>x.value=o),max:1e3,onChange:l[1]||(l[1]=o=>s(e).seekPercent(o/10))},null,8,["modelValue"]),t("span",ce,i(s(e).displayDuration),1)]),t("div",ue,[de,t("div",me,[t("span",{class:"icon cursor-pointer material-symbols-rounded ms-wght-300",onClick:l[2]||(l[2]=(...o)=>s(e).toggleShuffle&&s(e).toggleShuffle(...o))},i(s(e).shuffleIcon),1),t("span",{class:"icon cursor-pointer material-symbols-rounded ms-fill",onClick:l[3]||(l[3]=(...o)=>s(e).previous&&s(e).previous(...o))}," skip_previous "),t("span",{class:"cursor-pointer material-symbols-rounded ms-fill text-5xl",onClick:l[4]||(l[4]=(...o)=>s(e).playPause&&s(e).playPause(...o))},i(s(e).playing?"pause_circle":"play_circle"),1),t("span",{class:"icon cursor-pointer material-symbols-rounded ms-fill",onClick:l[5]||(l[5]=(...o)=>s(e).next&&s(e).next(...o))}," skip_next "),t("span",{class:"icon cursor-pointer material-symbols-rounded ms-wght-300",onClick:l[6]||(l[6]=(...o)=>s(e).toggleRepeat&&s(e).toggleRepeat(...o))},i(s(e).repeat),1)]),t("div",pe,[t("span",{class:"icon cursor-pointer material-symbols-rounded ms-fill select-none",onClick:l[7]||(l[7]=(...o)=>s(e).toggleMute&&s(e).toggleMute(...o))},i(s(e).muteIcon),1),_(q,{modelValue:s(e).volume,"onUpdate:modelValue":l[8]||(l[8]=o=>s(e).volume=o),max:100,onChange:l[9]||(l[9]=o=>s(e).setVolume(o))},null,8,["modelValue"])])])],2)])])):A("",!0)}}),ge=U(ve,[["__scopeId","data-v-4dbd10b1"]]),E=c=>(O("data-v-03c3dfcb"),c=c(),Q(),c),ye={class:"bigPlayer"},_e={class:"upNow"},fe=E(()=>t("div",{style:{"animation-delay":"0s"},class:"block"},null,-1)),he=E(()=>t("div",{style:{"animation-delay":".25s"},class:"block"},null,-1)),xe=E(()=>t("div",{style:{"animation-delay":".5s"},class:"block"},null,-1)),be=[fe,he,xe],ke={class:"settings"},Ce={key:1,class:"no-playlist-selected"},we={class:"wrapper"},$e=E(()=>t("h2",null,"Nothing playing yet...",-1)),Pe={class:"playlists"},Se=L({__name:"index",emits:["maximise"],setup(c,{emit:N}){const a=F(),e=R(),C=u(),f=r(()=>a.playing),w=r(()=>a.song.cover),y=r(()=>a.song.id),$=r(()=>a.loaded?`${a.song.title} • ${a.song.artist}`:"reAudioPlayer One"),h=r(()=>e.playlists),m=u(null);document.title=$.value,B($,n=>{document.title=n}),G(()=>{window.setTimeout(()=>{var n;(n=m.value)!=null&&n.scrollTop||m.value.scrollToSong(y.value)},1e3)});let x=u(!1);const V=()=>{var n;(n=C.value)==null||n.show()},b=u(!1),p=u(!1);return(n,d)=>{const P=J("Card");return g(),S("div",ye,[_(ge,{ref_key:"biggerPlayer",ref:C},null,512),s(a).loaded?(g(),S(D,{key:0},[t("div",_e,[_(z,{class:I([{playing:f.value,animate:p.value},"drop-shadow-2xl"]),src:w.value,type:"track","with-ambient":"",name:s(a).song.title},null,8,["class","src","name"]),t("div",{class:I([{playing:f.value,animate:p.value},"blocks"])},be,2)]),s(a).queue&&s(a).playlist?(g(),M(P,{class:"playlist-overflow drop-shadow-2xl relative",key:s(a).playlist.id},{default:K(()=>[_(Y,{ref_key:"playlistScroll",ref:m,playlist:{...s(a).playlist,queue:s(a).queue},"use-queue":"",draggable:"",onRearrange:s(a).rearrangeQueue},null,8,["playlist","onRearrange"])]),_:1})):A("",!0),t("div",ke,[t("span",{class:"iconButton material-symbols-rounded",onClick:V},i(s(x)?"fullscreen_exit":"fullscreen"),1),t("span",{style:T({transform:`rotate(${b.value?0:180}deg)`}),class:"iconButton material-symbols-rounded",onClick:d[0]||(d[0]=()=>b.value=!b.value)},"menu_open",4),t("span",{class:"iconButton material-symbols-rounded",onClick:d[1]||(d[1]=()=>p.value=!p.value)},i(p.value?"motion_photos_off":"animation"),1),t("span",{class:"iconButton material-symbols-rounded",onClick:d[2]||(d[2]=k=>n.$router.push("/player/insights"))}," insights ")])],64)):(g(),S("div",Ce,[t("div",we,[$e,t("div",Pe,[(g(!0),S(D,null,X(h.value,k=>(g(),M(Z,{playlist:k},null,8,["playlist"]))),256))])])]))])}}}),De=U(Se,[["__scopeId","data-v-03c3dfcb"]]);export{De as default}; diff --git a/src/ui/dist/assets/index-DFsHKh13.js.gz b/src/ui/dist/assets/index-DFsHKh13.js.gz deleted file mode 100644 index 41f63bc3..00000000 Binary files a/src/ui/dist/assets/index-DFsHKh13.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-DROyR8KO.css b/src/ui/dist/assets/index-DROyR8KO.css deleted file mode 100644 index 5d0595da..00000000 --- a/src/ui/dist/assets/index-DROyR8KO.css +++ /dev/null @@ -1 +0,0 @@ -.cover[data-v-4dbd10b1]{width:min(40%,600px);height:auto;max-width:600px;border-radius:20px;transition:transform .5s}.cover[data-v-4dbd10b1]:not(.playing){transform:scale(.95);animation:none}.fullscreen[data-v-4dbd10b1]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;width:100svw;height:100vh;height:100svh;padding:2em;display:flex;justify-content:flex-end;flex-direction:column;isolation:isolate;color:#fff;background:#000;overflow:clip}.now[data-v-4dbd10b1]{display:flex;flex-direction:row;align-items:flex-end;gap:2em;margin-bottom:1em}.now .artist[data-v-4dbd10b1]{color:#bbb}.now .playlist[data-v-4dbd10b1]{text-transform:uppercase;letter-spacing:.25ch;color:#aaa}.bg-img[data-v-4dbd10b1]{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;z-index:-1;scale:1.1;filter:blur(50px) brightness(.25)}.controls[data-v-4dbd10b1]{overflow:clip;gap:1em;max-height:0;transition:max-height 1s}.controls .progress[data-v-4dbd10b1]{margin-top:1em;display:grid;grid-template-columns:5ch 1fr 5ch;gap:1em;align-items:center}.controls.showControls[data-v-4dbd10b1]{max-height:50vh}.lower[data-v-4dbd10b1]{display:grid;align-items:center;margin-top:1em;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)}.lower .volume[data-v-4dbd10b1]{display:grid;justify-content:end;gap:1em;grid-template-columns:20px minmax(auto,8vw)}.lower .actions[data-v-4dbd10b1]{display:grid;align-items:center;gap:1em;grid-template-columns:repeat(5,minmax(0,5ch));justify-content:center}.bigPlayer .upNow img{width:80%;height:auto;max-width:600px;border-radius:20px;transition:transform .5s;animation:pump 20s infinite ease-in-out}.bigPlayer .upNow img:not(.playing){transform:scale(.95);animation:none}.bigPlayer .upNow img:not(.animate){animation:none}div.body:has(.bigPlayer){overflow:visible!important}@keyframes pump{0%{transform:scale(1);opacity:0}6%{transform:scale(1);opacity:0}7%{transform:scale(1);opacity:1}85%{transform:scale(1);opacity:1}95%{transform:scale(5);opacity:0}97%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:0}}.settings[data-v-03c3dfcb]{position:absolute;bottom:0;left:0;display:flex;flex-direction:row;justify-content:flex-end;padding:10px}.playlist-overflow[data-v-03c3dfcb]{flex:2;height:calc(100% - 220px);margin:100px 0;overflow:hidden}.playlist-overflow .playlist[data-v-03c3dfcb]{overflow-y:auto;height:100%;padding:10px 20px}.iconButton[data-v-03c3dfcb]{font-size:2em;border-radius:10px;padding:5px;font-variation-settings:"wght" 200}.iconButton[data-v-03c3dfcb]:hover{cursor:pointer;background-clip:text;-webkit-background-clip:text;color:transparent;background:var(--bg-hover-lt);color:var(--fg-secondary)}.bigPlayer[data-v-03c3dfcb]{position:relative;display:flex;flex-direction:row;padding:40px;align-items:center;z-index:1;height:100%;filter:none}.bigPlayer .upNow[data-v-03c3dfcb]{flex:3;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1em;position:relative}.bigPlayer .upNow .blocks[data-v-03c3dfcb]{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;width:80%;height:100%;max-width:min(80%,600px);border-radius:20px;position:absolute}@keyframes increase1-03c3dfcb{0%{transform:scaleX(0);transform-origin:0% 50%}1%{transform:scaleX(0)}4%{transform:scaleX(1);transform-origin:0% 50%}6%{transform:scaleX(1);transform-origin:100% 50%}9%{transform:scaleX(0)}to{transform:scaleX(0);transform-origin:100% 50%}}.bigPlayer .upNow .blocks .block[data-v-03c3dfcb]{transform:scaleX(0);background:var(--fg-contrast);width:100%;flex:1;transform-origin:0% 50%;animation:increase1-03c3dfcb 20s infinite ease-in-out}.bigPlayer .upNow .blocks .block[data-v-03c3dfcb]:first-child{border-radius:20px 20px 0 0}.bigPlayer .upNow .blocks .block[data-v-03c3dfcb]:last-child{border-radius:0 0 20px 20px}.bigPlayer .upNow .blocks:not(.animate) .block[data-v-03c3dfcb],.bigPlayer .upNow .blocks:not(.playing) .block[data-v-03c3dfcb]{animation:none;opacity:0}.no-playlist-selected[data-v-03c3dfcb]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%}.no-playlist-selected .wrapper[data-v-03c3dfcb]{width:80%;background:var(--bg-base-lt);border-radius:20px;overflow:hidden;padding:20px}.no-playlist-selected .wrapper h2[data-v-03c3dfcb]{margin-top:0}.no-playlist-selected .wrapper .playlists[data-v-03c3dfcb]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.no-playlist-selected .wrapper .playlists .wrapper[data-v-03c3dfcb]{padding:0} diff --git a/src/ui/dist/assets/index-DROyR8KO.css.gz b/src/ui/dist/assets/index-DROyR8KO.css.gz deleted file mode 100644 index 27df0e1b..00000000 Binary files a/src/ui/dist/assets/index-DROyR8KO.css.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-Dd7hxnjE.js b/src/ui/dist/assets/index-Dd7hxnjE.js new file mode 100644 index 00000000..80ee3bc6 --- /dev/null +++ b/src/ui/dist/assets/index-Dd7hxnjE.js @@ -0,0 +1 @@ +import{e as L,a7 as F,j as R,D as r,n as c,E as B,W as j,o as g,i as M,a as t,z as T,g as f,u as s,Q as I,H as z,t as i,aM as q,a6 as H,d as A,aN as W,l as O,m as Q,_ as U,y as G,f as J,c as S,F as D,w as K,h as X}from"./index-DwIIj2B2.js";import{_ as Y}from"./Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js";import{P as Z}from"./PlaylistCard-CLiKXXKR.js";import"./PlaylistEntry-oyklgbh5.js";import"./EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js";import"./playerInPicture-Dfp9IAsf.js";import"./vuedraggable.umd-CFJncbti.js";const ee=u=>(O("data-v-4dbd10b1"),u=u(),Q(),u),se={class:"fullscreen"},te={class:"now"},le={class:"details"},oe={class:"playlist"},ae={class:"title text-6xl mb-4"},ne={class:"artist text-3xl"},ie={class:"progress"},re={class:"text-xs text-muted text-right cursor-pointer"},ue={class:"text-xs text-muted text-left"},ce={class:"lower"},de=ee(()=>t("div",null,null,-1)),me={class:"actions"},pe={class:"volume"},ve=L({__name:"BiggerPlayer",emits:["close"],setup(u,{expose:N,emit:a}){const e=F(),C=R(),h=r(()=>e.playing),w=r(()=>e.song.cover),y=r(()=>e.loaded?`${e.song.title} • ${e.song.artist}`:"reAudioPlayer One");r(()=>C.playlists);const $=r(()=>{var v;return(v=e.playlist)==null?void 0:v.name}),x=c(!1),m=c(!1),b=c(0),V=c(null);document.title=y.value,B(y,v=>{document.title=v}),B(()=>e.song.cover,async()=>{V.value=await W(e.song.cover,y.value,1e3)}),B(()=>e.progressPercent,v=>{b.value=v});const _=a,p=()=>{x.value=!0,document.addEventListener("fullscreenchange",k),document.addEventListener("mousemove",P),document.fullscreenEnabled&&document.documentElement.requestFullscreen()},n=()=>{console.log("hiding..."),x.value=!1,document.addEventListener("fullscreenchange",k),document.removeEventListener("mousemove",P),_("close")};N({show:p,hide:n});const d=j.debounce(()=>{m.value=!1},1e3),P=()=>{m.value=!0,d()},k=()=>{document.fullscreenElement||n()};return(v,l)=>x.value?(g(),M(H,{key:0,to:"#fullscreen-target"},[t("div",se,[t("div",{class:"bg-img",style:T({backgroundImage:`url(${w.value})`})},null,4),t("div",te,[f(z,{name:s(e).song.title,src:w.value,alt:y.value,class:I(["cover",{playing:h.value}])},null,8,["name","src","alt","class"]),t("div",le,[t("p",oe," playing from "+i($.value),1),t("h1",ae,i(s(e).song.title),1),t("h3",ne,i(s(e).song.artist),1)])]),t("div",{class:I(["controls",{showControls:m.value||!h.value}])},[t("div",ie,[t("span",re,i(s(e).displayProgress),1),f(q,{modelValue:b.value,"onUpdate:modelValue":l[0]||(l[0]=o=>b.value=o),max:1e3,onChange:l[1]||(l[1]=o=>s(e).seekPercent(o/10))},null,8,["modelValue"]),t("span",ue,i(s(e).displayDuration),1)]),t("div",ce,[de,t("div",me,[t("span",{class:"icon cursor-pointer material-symbols-rounded ms-wght-300",onClick:l[2]||(l[2]=(...o)=>s(e).toggleShuffle&&s(e).toggleShuffle(...o))},i(s(e).shuffleIcon),1),t("span",{class:"icon cursor-pointer material-symbols-rounded ms-fill",onClick:l[3]||(l[3]=(...o)=>s(e).previous&&s(e).previous(...o))}," skip_previous "),t("span",{class:"cursor-pointer material-symbols-rounded ms-fill text-5xl",onClick:l[4]||(l[4]=(...o)=>s(e).playPause&&s(e).playPause(...o))},i(s(e).playing?"pause_circle":"play_circle"),1),t("span",{class:"icon cursor-pointer material-symbols-rounded ms-fill",onClick:l[5]||(l[5]=(...o)=>s(e).next&&s(e).next(...o))}," skip_next "),t("span",{class:"icon cursor-pointer material-symbols-rounded ms-wght-300",onClick:l[6]||(l[6]=(...o)=>s(e).toggleRepeat&&s(e).toggleRepeat(...o))},i(s(e).repeat),1)]),t("div",pe,[t("span",{class:"icon cursor-pointer material-symbols-rounded ms-fill select-none",onClick:l[7]||(l[7]=(...o)=>s(e).toggleMute&&s(e).toggleMute(...o))},i(s(e).muteIcon),1),f(q,{modelValue:s(e).volume,"onUpdate:modelValue":l[8]||(l[8]=o=>s(e).volume=o),max:100,onChange:l[9]||(l[9]=o=>s(e).setVolume(o))},null,8,["modelValue"])])])],2)])])):A("",!0)}}),ge=U(ve,[["__scopeId","data-v-4dbd10b1"]]),E=u=>(O("data-v-40f8527c"),u=u(),Q(),u),ye={class:"bigPlayer"},_e={class:"upNow"},fe=E(()=>t("div",{style:{"animation-delay":"0s"},class:"block"},null,-1)),he=E(()=>t("div",{style:{"animation-delay":".25s"},class:"block"},null,-1)),xe=E(()=>t("div",{style:{"animation-delay":".5s"},class:"block"},null,-1)),be=[fe,he,xe],ke={class:"settings"},Ce={key:1,class:"no-playlist-selected"},we={class:"wrapper"},$e=E(()=>t("h2",null,"Nothing playing yet...",-1)),Pe={class:"playlists"},Se=L({__name:"index",emits:["maximise"],setup(u,{emit:N}){const a=F(),e=R(),C=c(),h=r(()=>a.playing),w=r(()=>a.song.cover),y=r(()=>a.song.id),$=r(()=>a.loaded?`${a.song.title} • ${a.song.artist}`:"reAudioPlayer One"),x=r(()=>e.playlists),m=c(null);document.title=$.value,B($,n=>{document.title=n}),G(()=>{window.setTimeout(()=>{var n;(n=m.value)!=null&&n.scrollTop||m.value.scrollToSong(y.value)},1e3)});let b=c(!1);const V=()=>{var n;(n=C.value)==null||n.show()},_=c(!1),p=c(!1);return(n,d)=>{const P=J("Card");return g(),S("div",ye,[f(ge,{ref_key:"biggerPlayer",ref:C},null,512),s(a).loaded?(g(),S(D,{key:0},[t("div",_e,[f(z,{class:I([{playing:h.value,animate:p.value},"drop-shadow-2xl"]),src:w.value,type:"track","with-ambient":"",name:s(a).song.title},null,8,["class","src","name"]),t("div",{class:I([{playing:h.value,animate:p.value},"blocks"])},be,2)]),s(a).queue&&s(a).playlist&&!_.value?(g(),M(P,{class:"playlist-overflow drop-shadow-2xl relative",key:s(a).playlist.id},{default:K(()=>[f(Y,{ref_key:"playlistScroll",ref:m,playlist:{...s(a).playlist,queue:s(a).queue},"use-queue":"",draggable:"",onRearrange:s(a).rearrangeQueue},null,8,["playlist","onRearrange"])]),_:1})):A("",!0),t("div",ke,[t("span",{class:"iconButton material-symbols-rounded",onClick:V},i(s(b)?"fullscreen_exit":"fullscreen"),1),t("span",{style:T({transform:`rotate(${_.value?0:180}deg)`}),class:"iconButton material-symbols-rounded",onClick:d[0]||(d[0]=()=>_.value=!_.value)},"menu_open",4),t("span",{class:"iconButton material-symbols-rounded",onClick:d[1]||(d[1]=()=>p.value=!p.value)},i(p.value?"motion_photos_off":"animation"),1),t("span",{class:"iconButton material-symbols-rounded",onClick:d[2]||(d[2]=k=>n.$router.push("/player/insights"))}," insights ")])],64)):(g(),S("div",Ce,[t("div",we,[$e,t("div",Pe,[(g(!0),S(D,null,X(x.value,k=>(g(),M(Z,{playlist:k},null,8,["playlist"]))),256))])])]))])}}}),De=U(Se,[["__scopeId","data-v-40f8527c"]]);export{De as default}; diff --git a/src/ui/dist/assets/index-Dd7hxnjE.js.gz b/src/ui/dist/assets/index-Dd7hxnjE.js.gz new file mode 100644 index 00000000..0eadb6a4 Binary files /dev/null and b/src/ui/dist/assets/index-Dd7hxnjE.js.gz differ diff --git a/src/ui/dist/assets/index-DdmtJEKo.js.gz b/src/ui/dist/assets/index-DdmtJEKo.js.gz deleted file mode 100644 index d0c3e21d..00000000 Binary files a/src/ui/dist/assets/index-DdmtJEKo.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-CzJaiVRe.js b/src/ui/dist/assets/index-Do9z4lKS.js similarity index 99% rename from src/ui/dist/assets/index-CzJaiVRe.js rename to src/ui/dist/assets/index-Do9z4lKS.js index 895e494b..8e92f0fb 100644 --- a/src/ui/dist/assets/index-CzJaiVRe.js +++ b/src/ui/dist/assets/index-Do9z4lKS.js @@ -1 +1 @@ -import{e as U,a7 as W,o as p,c as w,g as H,u as f,a8 as K,t as B,i as I,d as C,a as x,I as N,F as j,h as G,Q as P,b as $,O as F,L as V,_ as q}from"./index-K4QaY0Na.js";var T={d:(s,r)=>{for(var t in r)T.o(r,t)&&!T.o(s,t)&&Object.defineProperty(s,t,{enumerable:!0,get:r[t]})},o:(s,r)=>Object.prototype.hasOwnProperty.call(s,r)},v={};T.d(v,{Ce:()=>L,ZP:()=>Z,j1:()=>z,Eb:()=>R,e6:()=>E,Iu:()=>O});var g={from:"auto",to:"en",hl:"en",tld:"com",rpcids:"MkEWBc"};function z(s){var r=s===void 0?{}:s,t=r.rpcids,a=t===void 0?g.rpcids:t,n=r.hl,l=n===void 0?g.hl:n,i=r.tld,c=i===void 0?g.tld:i;if(!function(o){return!!o.match(/^[a-zA-Z]{2,63}$/)}(c))throw new Error("Invalid TLD: Must be 2-63 letters only");var d=new URLSearchParams({rpcids:a,"source-path":"/",hl:l,"soc-app":"1","soc-platform":"1","soc-device":"1",rt:"c"});return"https://translate.google.".concat(c,"/_/TranslateWebserverUi/data/batchexecute?").concat(d)}const D={auto:"Automatic",af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",ceb:"Cebuano",ny:"Chichewa",zh:"Chinese Simplified","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",fy:"Frisian",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",haw:"Hawaiian",he:"Hebrew",iw:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",rw:"Kinyarwanda",ko:"Korean",ku:"Kurdish (Kurmanji)",ky:"Kyrgyz",lo:"Lao",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mn:"Mongolian",my:"Myanmar (Burmese)",ne:"Nepali",no:"Norwegian",or:"Odia (Oriya)",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese",pa:"Punjabi",ro:"Romanian",ru:"Russian",sm:"Samoan",gd:"Scots Gaelic",sr:"Serbian",st:"Sesotho",sn:"Shona",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:"Swedish",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",tr:"Turkish",tk:"Turkmen",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",zu:"Zulu"};var R=function(s){return!!D[s]};function E(s,r){r===void 0&&(r=!1);var t=s.match(/"\[.*]"/),a=null;if(t){var n=t[0];a=JSON.parse(JSON.parse(n))}if(!a)throw new Error("Data is either empty or corrupted");var l={text:a[1][0][0][5].reduce(function(i,c){return i?"".concat(i," ").concat(c[0]):c[0]},""),pronunciation:a[1][0][0][1],from:{language:{didYouMean:!!a[0][1],iso:a[2]},text:{autoCorrected:!!a[1][0][0][3],value:a[0][1]?a[0][1][0][4]:a[0][6][0],didYouMean:!!a[0][1]}}};return r&&(l.raw=s),l}function L(s,r){var t=r===void 0?{}:r,a=t.rpcids,n=a===void 0?g.rpcids:a,l=t.from,i=l===void 0?g.from:l,c=t.to,d=c===void 0?g.to:c,o=s.trim().replace(/["]/g,"\\\\\\$&").replace(/\r\n|\r|\n/g,"\\\\n"),e=encodeURIComponent('[[["'.concat(n,'","[[\\"').concat(o,'\\",\\"').concat(i,'\\",\\"').concat(d,'\\",1],[]]",null,"generic"]]]'));return"f.req=".concat(e,"&")}var S=function(){return S=Object.assign||function(s){for(var r,t=1,a=arguments.length;t0&&n[n.length-1])||e[0]!==6&&e[0]!==2)){i=0;continue}if(e[0]===3&&(!n||e[1]>n[0]&&e[1]{var m,b;if(!((m=r.lyrics)!=null&&m.lyrics))return!1;const e=r.progress*1e3,u=r.lyrics.lyrics[o],h=parseInt(u.startTimeMs),y=parseInt(u.endTimeMs)?parseInt(u.endTimeMs):parseInt((b=r.lyrics.lyrics[o+1])==null?void 0:b.startTimeMs);if(e>=h&&e=y?"past":"future"},a=o=>{r.lyrics.lyrics[o].originalWorlds?l(o):n(o)},n=async o=>{const e=r.lyrics.lyrics[o];if(e.originalWorlds)return;const u=await Q(e.words,{to:"en",corsUrl:"/api/cors/"});e.originalWorlds=e.words,e.words=u.text},l=o=>{const e=r.lyrics.lyrics[o];e.originalWorlds&&(e.words=e.originalWorlds,e.originalWorlds=null)},i=()=>{var o,e;(e=(o=r.lyrics)==null?void 0:o.lyrics)==null||e.forEach((u,h)=>{n(h)})},c=()=>{var o,e;(e=(o=r.lyrics)==null?void 0:o.lyrics)==null||e.forEach((u,h)=>{l(h)})},d=()=>{var e,u,h,y;const o=(u=(e=r.lyrics)==null?void 0:e.lyrics)==null?void 0:u.filter(m=>m.originalWorlds).length;return o&&o>((y=(h=r.lyrics)==null?void 0:h.lyrics)==null?void 0:y.length)/2};return(o,e)=>{var u,h,y,m,b,k;return p(),w(j,null,[H(K,{src:f(r).song.cover},null,8,["src"]),!f(r).lyrics||(u=f(r).lyrics)!=null&&u.error?(p(),w("div",X,[(h=f(r).lyrics)!=null&&h.error?(p(),w("h1",ee,B((y=f(r).lyrics)==null?void 0:y.error),1)):(p(),I(V,{key:1}))])):C("",!0),x("div",re,[(m=f(r).lyrics)!=null&&m.lyrics?(p(),I(N,{key:0,icon:"translate",label:d()?"Show original":"Translate all",class:"mr-2",onClick:e[0]||(e[0]=_=>d()?c():i())},null,8,["label"])):C("",!0)]),(b=f(r).lyrics)!=null&&b.lyrics?(p(),w("div",ne,[(p(!0),w(j,null,G((k=f(r).lyrics)==null?void 0:k.lyrics,(_,M)=>(p(),w("div",{class:P(["line",t(M)]),onClick:A=>f(r).seek(parseInt(_.startTimeMs)/1e3)},[$(B(_.words)+" ",1),x("span",{class:P(["material-symbols-rounded translate",{translated:_.originalWorlds}]),onClick:F(A=>a(M),["stop"])}," translate ",10,te)],10,ae))),256))])):C("",!0)],64)}}}),se=q(oe,[["__scopeId","data-v-896d6a6d"]]);export{se as default}; +import{e as U,a7 as W,o as p,c as w,g as H,u as f,a8 as K,t as B,i as I,d as C,a as x,I as N,F as j,h as G,Q as P,b as $,O as F,L as V,_ as q}from"./index-DwIIj2B2.js";var T={d:(s,r)=>{for(var t in r)T.o(r,t)&&!T.o(s,t)&&Object.defineProperty(s,t,{enumerable:!0,get:r[t]})},o:(s,r)=>Object.prototype.hasOwnProperty.call(s,r)},v={};T.d(v,{Ce:()=>L,ZP:()=>Z,j1:()=>z,Eb:()=>R,e6:()=>E,Iu:()=>O});var g={from:"auto",to:"en",hl:"en",tld:"com",rpcids:"MkEWBc"};function z(s){var r=s===void 0?{}:s,t=r.rpcids,a=t===void 0?g.rpcids:t,n=r.hl,l=n===void 0?g.hl:n,i=r.tld,c=i===void 0?g.tld:i;if(!function(o){return!!o.match(/^[a-zA-Z]{2,63}$/)}(c))throw new Error("Invalid TLD: Must be 2-63 letters only");var d=new URLSearchParams({rpcids:a,"source-path":"/",hl:l,"soc-app":"1","soc-platform":"1","soc-device":"1",rt:"c"});return"https://translate.google.".concat(c,"/_/TranslateWebserverUi/data/batchexecute?").concat(d)}const D={auto:"Automatic",af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",ceb:"Cebuano",ny:"Chichewa",zh:"Chinese Simplified","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",fy:"Frisian",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",haw:"Hawaiian",he:"Hebrew",iw:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",rw:"Kinyarwanda",ko:"Korean",ku:"Kurdish (Kurmanji)",ky:"Kyrgyz",lo:"Lao",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mn:"Mongolian",my:"Myanmar (Burmese)",ne:"Nepali",no:"Norwegian",or:"Odia (Oriya)",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese",pa:"Punjabi",ro:"Romanian",ru:"Russian",sm:"Samoan",gd:"Scots Gaelic",sr:"Serbian",st:"Sesotho",sn:"Shona",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:"Swedish",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",tr:"Turkish",tk:"Turkmen",uk:"Ukrainian",ur:"Urdu",ug:"Uyghur",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",zu:"Zulu"};var R=function(s){return!!D[s]};function E(s,r){r===void 0&&(r=!1);var t=s.match(/"\[.*]"/),a=null;if(t){var n=t[0];a=JSON.parse(JSON.parse(n))}if(!a)throw new Error("Data is either empty or corrupted");var l={text:a[1][0][0][5].reduce(function(i,c){return i?"".concat(i," ").concat(c[0]):c[0]},""),pronunciation:a[1][0][0][1],from:{language:{didYouMean:!!a[0][1],iso:a[2]},text:{autoCorrected:!!a[1][0][0][3],value:a[0][1]?a[0][1][0][4]:a[0][6][0],didYouMean:!!a[0][1]}}};return r&&(l.raw=s),l}function L(s,r){var t=r===void 0?{}:r,a=t.rpcids,n=a===void 0?g.rpcids:a,l=t.from,i=l===void 0?g.from:l,c=t.to,d=c===void 0?g.to:c,o=s.trim().replace(/["]/g,"\\\\\\$&").replace(/\r\n|\r|\n/g,"\\\\n"),e=encodeURIComponent('[[["'.concat(n,'","[[\\"').concat(o,'\\",\\"').concat(i,'\\",\\"').concat(d,'\\",1],[]]",null,"generic"]]]'));return"f.req=".concat(e,"&")}var S=function(){return S=Object.assign||function(s){for(var r,t=1,a=arguments.length;t0&&n[n.length-1])||e[0]!==6&&e[0]!==2)){i=0;continue}if(e[0]===3&&(!n||e[1]>n[0]&&e[1]{var m,b;if(!((m=r.lyrics)!=null&&m.lyrics))return!1;const e=r.progress*1e3,u=r.lyrics.lyrics[o],h=parseInt(u.startTimeMs),y=parseInt(u.endTimeMs)?parseInt(u.endTimeMs):parseInt((b=r.lyrics.lyrics[o+1])==null?void 0:b.startTimeMs);if(e>=h&&e=y?"past":"future"},a=o=>{r.lyrics.lyrics[o].originalWorlds?l(o):n(o)},n=async o=>{const e=r.lyrics.lyrics[o];if(e.originalWorlds)return;const u=await Q(e.words,{to:"en",corsUrl:"/api/cors/"});e.originalWorlds=e.words,e.words=u.text},l=o=>{const e=r.lyrics.lyrics[o];e.originalWorlds&&(e.words=e.originalWorlds,e.originalWorlds=null)},i=()=>{var o,e;(e=(o=r.lyrics)==null?void 0:o.lyrics)==null||e.forEach((u,h)=>{n(h)})},c=()=>{var o,e;(e=(o=r.lyrics)==null?void 0:o.lyrics)==null||e.forEach((u,h)=>{l(h)})},d=()=>{var e,u,h,y;const o=(u=(e=r.lyrics)==null?void 0:e.lyrics)==null?void 0:u.filter(m=>m.originalWorlds).length;return o&&o>((y=(h=r.lyrics)==null?void 0:h.lyrics)==null?void 0:y.length)/2};return(o,e)=>{var u,h,y,m,b,k;return p(),w(j,null,[H(K,{src:f(r).song.cover},null,8,["src"]),!f(r).lyrics||(u=f(r).lyrics)!=null&&u.error?(p(),w("div",X,[(h=f(r).lyrics)!=null&&h.error?(p(),w("h1",ee,B((y=f(r).lyrics)==null?void 0:y.error),1)):(p(),I(V,{key:1}))])):C("",!0),x("div",re,[(m=f(r).lyrics)!=null&&m.lyrics?(p(),I(N,{key:0,icon:"translate",label:d()?"Show original":"Translate all",class:"mr-2",onClick:e[0]||(e[0]=_=>d()?c():i())},null,8,["label"])):C("",!0)]),(b=f(r).lyrics)!=null&&b.lyrics?(p(),w("div",ne,[(p(!0),w(j,null,G((k=f(r).lyrics)==null?void 0:k.lyrics,(_,M)=>(p(),w("div",{class:P(["line",t(M)]),onClick:A=>f(r).seek(parseInt(_.startTimeMs)/1e3)},[$(B(_.words)+" ",1),x("span",{class:P(["material-symbols-rounded translate",{translated:_.originalWorlds}]),onClick:F(A=>a(M),["stop"])}," translate ",10,te)],10,ae))),256))])):C("",!0)],64)}}}),se=q(oe,[["__scopeId","data-v-896d6a6d"]]);export{se as default}; diff --git a/src/ui/dist/assets/index-Do9z4lKS.js.gz b/src/ui/dist/assets/index-Do9z4lKS.js.gz new file mode 100644 index 00000000..bed42504 Binary files /dev/null and b/src/ui/dist/assets/index-Do9z4lKS.js.gz differ diff --git a/src/ui/dist/assets/index-K4QaY0Na.js b/src/ui/dist/assets/index-DwIIj2B2.js similarity index 99% rename from src/ui/dist/assets/index-K4QaY0Na.js rename to src/ui/dist/assets/index-DwIIj2B2.js index 1a703107..3b537755 100644 --- a/src/ui/dist/assets/index-K4QaY0Na.js +++ b/src/ui/dist/assets/index-DwIIj2B2.js @@ -1,4 +1,4 @@ -const __vite__fileDeps=["assets/index-DDzIGPOz.js","assets/PlaylistCard-DXOdXptp.js","assets/playerInPicture-Dfp9IAsf.js","assets/PlaylistCard-cgcHOGv5.css","assets/TrackCompact-CmSbwToc.js","assets/TrackCompact-BEkVSTOB.css","assets/PlaylistEntry-9wUfG8hQ.js","assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js","assets/PlaylistEntry-D6o1lH9d.css","assets/spotify-DDsJS6kd.js","assets/index-DxYRwVd6.css","assets/Explore-EWf9xSFe.js","assets/Explore-BBlOvIn4.css","assets/index-COJauJk7.js","assets/index-DlDXuqe7.css","assets/index-DdmtJEKo.js","assets/FullShelf-LmwXLqci.js","assets/FullShelf-CoDkvkMi.css","assets/Error-JcTZ1TEX.js","assets/Error-BUy8S0OX.css","assets/index-D0hrk0n_.css","assets/Liked-DtufEQ-7.js","assets/Template-BJ9qkRi1.js","assets/vuedraggable.umd-YqWWrJTC.js","assets/FactCard-BZwd6pEI.js","assets/FactCard-ei9UWMOf.css","assets/gistClient-ZdZsfTR6.js","assets/Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js","assets/Markdown-BUqZ792e.css","assets/Template-CUtHidNi.css","assets/Breaking-CrRiZrK7.js","assets/Create-BFG6u1_V.js","assets/Create-Cv1N05w-.css","assets/Editor-DmbfXMQK.js","assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js","assets/Editor-DJucXreQ.css","assets/Normal-t9fUTLMH.js","assets/Track-D6XD9ivf.js","assets/Track-DHk9ReWZ.css","assets/Artist-CKIwJZOU.js","assets/Artist-DAREyzq0.css","assets/Album-bC2Ph2Go.js","assets/Album-BkvN1zsQ.css","assets/index-TQtME7qg.js","assets/index-BbxuzHud.css","assets/Import-BQAn0foy.js","assets/Import-D3M1Q5kJ.css","assets/ImportLink-rHn6Dtb7.js","assets/ImportLink-CQI6kQMZ.css","assets/Export-CIApTPl3.js","assets/Export-DQXjuUsA.css","assets/index-CzJaiVRe.js","assets/index-CdmmmwlV.css","assets/index-BHH0-c1C.js","assets/index-C079_Y4G.css","assets/Welcome-33n2Z_ee.js","assets/Welcome-C-n9EV-1.css","assets/News-CAaoZgKT.js","assets/News-BoNOrken.css","assets/Sports-Biicqdtn.js","assets/Sports-_g5alLYh.css","assets/NewsArticle-T_O2nLK5.js","assets/NewsArticle-usse9HTo.css","assets/Insight-COWQpDb9.js","assets/Insight-BJxao_m3.css","assets/index-DFsHKh13.js","assets/index-DROyR8KO.css"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); +const __vite__fileDeps=["assets/index-BkDfvaJu.js","assets/PlaylistCard-CLiKXXKR.js","assets/playerInPicture-Dfp9IAsf.js","assets/PlaylistCard-cgcHOGv5.css","assets/TrackCompact-CAEHpsO2.js","assets/TrackCompact-BEkVSTOB.css","assets/PlaylistEntry-oyklgbh5.js","assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js","assets/PlaylistEntry-D6o1lH9d.css","assets/spotify-nGujcJNw.js","assets/index-DxYRwVd6.css","assets/Explore-BOB5-8ee.js","assets/Explore-BBlOvIn4.css","assets/index-Zw6xiVdA.js","assets/index-DlDXuqe7.css","assets/index-CAOgyRuZ.js","assets/FullShelf-NKKvCiyP.js","assets/FullShelf-CoDkvkMi.css","assets/Error-B8FoxyVg.js","assets/Error-BUy8S0OX.css","assets/index-BVo38SBx.css","assets/Liked-D4BFut2M.js","assets/Template-CpDXJr_0.js","assets/vuedraggable.umd-CFJncbti.js","assets/FactCard-DB8qPuqq.js","assets/FactCard-ei9UWMOf.css","assets/gistClient-BfrJnK9Z.js","assets/Markdown.vue_vue_type_style_index_0_lang-072OuJni.js","assets/Markdown-BUqZ792e.css","assets/Template-CUtHidNi.css","assets/Breaking-DPRuvGTm.js","assets/Create-DYwjg1i9.js","assets/Create-Cv1N05w-.css","assets/Editor-B5ahq8UX.js","assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js","assets/Editor-DJucXreQ.css","assets/Normal-6IztdWDo.js","assets/Track-P44IHcV3.js","assets/Track-DHk9ReWZ.css","assets/Artist-Dyg_PWZj.js","assets/Artist-DAREyzq0.css","assets/Album-wn0mZK3Y.js","assets/Album-BkvN1zsQ.css","assets/index-C-fi8mVG.js","assets/index-BbxuzHud.css","assets/Import-Bi-f60wK.js","assets/Import-D3M1Q5kJ.css","assets/ImportLink-BfrRHjui.js","assets/ImportLink-CQI6kQMZ.css","assets/Export-83uFVYPm.js","assets/Export-DQXjuUsA.css","assets/index-Do9z4lKS.js","assets/index-CdmmmwlV.css","assets/index-BKVCga35.js","assets/index-C079_Y4G.css","assets/Welcome-Bb1S_LPL.js","assets/Welcome-C-n9EV-1.css","assets/News-BhI18wmL.js","assets/News-BoNOrken.css","assets/Sports-2rU2UkOg.js","assets/Sports-_g5alLYh.css","assets/NewsArticle-BuxLkgV9.js","assets/NewsArticle-usse9HTo.css","assets/Insight-Dcpuaw5C.js","assets/Insight-BJxao_m3.css","assets/index-Dd7hxnjE.js","assets/index-Cv8GyS-k.css"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); var KA=Object.defineProperty;var GA=(e,t,r)=>t in e?KA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ki=(e,t,r)=>GA(e,typeof t!="symbol"?t+"":t,r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function r(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function s(o){if(o.ep)return;o.ep=!0;const l=r(o);fetch(o.href,l)}})();/** * @vue/shared v3.4.30 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -24,7 +24,7 @@ var KA=Object.defineProperty;var GA=(e,t,r)=>t in e?KA(e,t,{enumerable:!0,config * (c) 2024 Eduardo San Martin Morote * @license MIT */const Ii=typeof document<"u";function xE(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const ct=Object.assign;function vu(e,t){const r={};for(const s in t){const o=t[s];r[s]=$n(o)?o.map(e):e(o)}return r}const Ls=()=>{},$n=Array.isArray,Ig=/#/g,CE=/&/g,EE=/\//g,SE=/=/g,kE=/\?/g,Mg=/\+/g,OE=/%5B/g,RE=/%5D/g,Lg=/%5E/g,TE=/%60/g,$g=/%7B/g,IE=/%7C/g,Dg=/%7D/g,ME=/%20/g;function Oc(e){return encodeURI(""+e).replace(IE,"|").replace(OE,"[").replace(RE,"]")}function LE(e){return Oc(e).replace($g,"{").replace(Dg,"}").replace(Lg,"^")}function Zu(e){return Oc(e).replace(Mg,"%2B").replace(ME,"+").replace(Ig,"%23").replace(CE,"%26").replace(TE,"`").replace($g,"{").replace(Dg,"}").replace(Lg,"^")}function $E(e){return Zu(e).replace(SE,"%3D")}function DE(e){return Oc(e).replace(Ig,"%23").replace(kE,"%3F")}function NE(e){return e==null?"":DE(e).replace(EE,"%2F")}function Ks(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const BE=/\/$/,VE=e=>e.replace(BE,"");function yu(e,t,r="/"){let s,o={},l="",u="";const c=t.indexOf("#");let f=t.indexOf("?");return c=0&&(f=-1),f>-1&&(s=t.slice(0,f),l=t.slice(f+1,c>-1?c:t.length),o=e(l)),c>-1&&(s=s||t.slice(0,c),u=t.slice(c,t.length)),s=UE(s??t,r),{fullPath:s+(l&&"?")+l+u,path:s,query:o,hash:Ks(u)}}function WE(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function cp(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function FE(e,t,r){const s=t.matched.length-1,o=r.matched.length-1;return s>-1&&s===o&&zi(t.matched[s],r.matched[o])&&Ng(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function zi(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ng(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!HE(e[r],t[r]))return!1;return!0}function HE(e,t){return $n(e)?fp(e,t):$n(t)?fp(t,e):e===t}function fp(e,t){return $n(t)?e.length===t.length&&e.every((r,s)=>r===t[s]):e.length===1&&e[0]===t}function UE(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),s=e.split("/"),o=s[s.length-1];(o===".."||o===".")&&s.push("");let l=r.length-1,u,c;for(u=0;u1&&l--;else break;return r.slice(0,l).join("/")+"/"+s.slice(u).join("/")}const Er={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Gs;(function(e){e.pop="pop",e.push="push"})(Gs||(Gs={}));var $s;(function(e){e.back="back",e.forward="forward",e.unknown=""})($s||($s={}));function qE(e){if(!e)if(Ii){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),VE(e)}const jE=/^[^#]+#/;function KE(e,t){return e.replace(jE,"#")+t}function GE(e,t){const r=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-r.left-(t.left||0),top:s.top-r.top-(t.top||0)}}const qa=()=>({left:window.scrollX,top:window.scrollY});function zE(e){let t;if("el"in e){const r=e.el,s=typeof r=="string"&&r.startsWith("#"),o=typeof r=="string"?s?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!o)return;t=GE(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function dp(e,t){return(history.state?history.state.position-t:-1)+e}const Ju=new Map;function YE(e,t){Ju.set(e,t)}function ZE(e){const t=Ju.get(e);return Ju.delete(e),t}let JE=()=>location.protocol+"//"+location.host;function Bg(e,t){const{pathname:r,search:s,hash:o}=t,l=e.indexOf("#");if(l>-1){let c=o.includes(e.slice(l))?e.slice(l).length:1,f=o.slice(c);return f[0]!=="/"&&(f="/"+f),cp(f,"")}return cp(r,e)+s+o}function XE(e,t,r,s){let o=[],l=[],u=null;const c=({state:v})=>{const g=Bg(e,location),S=r.value,C=t.value;let I=0;if(v){if(r.value=g,t.value=v,u&&u===S){u=null;return}I=C?v.position-C.position:0}else s(g);o.forEach(V=>{V(r.value,S,{delta:I,type:Gs.pop,direction:I?I>0?$s.forward:$s.back:$s.unknown})})};function f(){u=r.value}function h(v){o.push(v);const g=()=>{const S=o.indexOf(v);S>-1&&o.splice(S,1)};return l.push(g),g}function p(){const{history:v}=window;v.state&&v.replaceState(ct({},v.state,{scroll:qa()}),"")}function m(){for(const v of l)v();l=[],window.removeEventListener("popstate",c),window.removeEventListener("beforeunload",p)}return window.addEventListener("popstate",c),window.addEventListener("beforeunload",p,{passive:!0}),{pauseListeners:f,listen:h,destroy:m}}function hp(e,t,r,s=!1,o=!1){return{back:e,current:t,forward:r,replaced:s,position:window.history.length,scroll:o?qa():null}}function QE(e){const{history:t,location:r}=window,s={value:Bg(e,r)},o={value:t.state};o.value||l(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(f,h,p){const m=e.indexOf("#"),v=m>-1?(r.host&&document.querySelector("base")?e:e.slice(m))+f:JE()+e+f;try{t[p?"replaceState":"pushState"](h,"",v),o.value=h}catch(g){console.error(g),r[p?"replace":"assign"](v)}}function u(f,h){const p=ct({},t.state,hp(o.value.back,f,o.value.forward,!0),h,{position:o.value.position});l(f,p,!0),s.value=f}function c(f,h){const p=ct({},o.value,t.state,{forward:f,scroll:qa()});l(p.current,p,!0);const m=ct({},hp(s.value,f,null),{position:p.position+1},h);l(f,m,!1),s.value=f}return{location:s,state:o,push:c,replace:u}}function eS(e){e=qE(e);const t=QE(e),r=XE(e,t.state,t.location,t.replace);function s(l,u=!0){u||r.pauseListeners(),history.go(l)}const o=ct({location:"",base:e,go:s,createHref:KE.bind(null,e)},t,r);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function tS(e){return typeof e=="string"||e&&typeof e=="object"}function Vg(e){return typeof e=="string"||typeof e=="symbol"}const Wg=Symbol("");var pp;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(pp||(pp={}));function Yi(e,t){return ct(new Error,{type:e,[Wg]:!0},t)}function ir(e,t){return e instanceof Error&&Wg in e&&(t==null||!!(e.type&t))}const mp="[^/]+?",nS={sensitive:!1,strict:!1,start:!0,end:!0},rS=/[.+*?^${}()[\]/\\]/g;function iS(e,t){const r=ct({},nS,t),s=[];let o=r.start?"^":"";const l=[];for(const h of e){const p=h.length?[]:[90];r.strict&&!h.length&&(o+="/");for(let m=0;mt.length?t.length===1&&t[0]===80?1:-1:0}function Fg(e,t){let r=0;const s=e.score,o=t.score;for(;r0&&t[t.length-1]<0}const oS={type:0,value:""},aS=/[a-zA-Z0-9_]/;function lS(e){if(!e)return[[]];if(e==="/")return[[oS]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${r})/"${h}": ${g}`)}let r=0,s=r;const o=[];let l;function u(){l&&o.push(l),l=[]}let c=0,f,h="",p="";function m(){h&&(r===0?l.push({type:0,value:h}):r===1||r===2||r===3?(l.length>1&&(f==="*"||f==="+")&&t(`A repeatable param (${h}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:h,regexp:p,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):t("Invalid state to consume buffer"),h="")}function v(){h+=f}for(;c{u(A)}:Ls}function u(m){if(Vg(m)){const v=s.get(m);v&&(s.delete(m),r.splice(r.indexOf(v),1),v.children.forEach(u),v.alias.forEach(u))}else{const v=r.indexOf(m);v>-1&&(r.splice(v,1),m.record.name&&s.delete(m.record.name),m.children.forEach(u),m.alias.forEach(u))}}function c(){return r}function f(m){const v=pS(m,r);r.splice(v,0,m),m.record.name&&!yp(m)&&s.set(m.record.name,m)}function h(m,v){let g,S={},C,I;if("name"in m&&m.name){if(g=s.get(m.name),!g)throw Yi(1,{location:m});I=g.record.name,S=ct(vp(v.params,g.keys.filter(A=>!A.optional).concat(g.parent?g.parent.keys.filter(A=>A.optional):[]).map(A=>A.name)),m.params&&vp(m.params,g.keys.map(A=>A.name))),C=g.stringify(S)}else if(m.path!=null)C=m.path,g=r.find(A=>A.re.test(C)),g&&(S=g.parse(C),I=g.record.name);else{if(g=v.name?s.get(v.name):r.find(A=>A.re.test(v.path)),!g)throw Yi(1,{location:m,currentLocation:v});I=g.record.name,S=ct({},v.params,m.params),C=g.stringify(S)}const V=[];let D=g;for(;D;)V.unshift(D.record),D=D.parent;return{name:I,path:C,params:S,matched:V,meta:hS(V)}}e.forEach(m=>l(m));function p(){r.length=0,s.clear()}return{addRoute:l,resolve:h,removeRoute:u,clearRoutes:p,getRoutes:c,getRecordMatcher:o}}function vp(e,t){const r={};for(const s of t)s in e&&(r[s]=e[s]);return r}function fS(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:dS(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function dS(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const s in e.components)t[s]=typeof r=="object"?r[s]:r;return t}function yp(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hS(e){return e.reduce((t,r)=>ct(t,r.meta),{})}function _p(e,t){const r={};for(const s in e)r[s]=s in t?t[s]:e[s];return r}function pS(e,t){let r=0,s=t.length;for(;r!==s;){const l=r+s>>1;Fg(e,t[l])<0?s=l:r=l+1}const o=mS(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function mS(e){let t=e;for(;t=t.parent;)if(Hg(t)&&Fg(e,t)===0)return t}function Hg({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function gS(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;ol&&Zu(l)):[s&&Zu(s)]).forEach(l=>{l!==void 0&&(t+=(t.length?"&":"")+r,l!=null&&(t+="="+l))})}return t}function vS(e){const t={};for(const r in e){const s=e[r];s!==void 0&&(t[r]=$n(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const yS=Symbol(""),wp=Symbol(""),ja=Symbol(""),Rc=Symbol(""),Xu=Symbol("");function _s(){let e=[];function t(s){return e.push(s),()=>{const o=e.indexOf(s);o>-1&&e.splice(o,1)}}function r(){e=[]}return{add:t,list:()=>e.slice(),reset:r}}function Ir(e,t,r,s,o,l=u=>u()){const u=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((c,f)=>{const h=v=>{v===!1?f(Yi(4,{from:r,to:t})):v instanceof Error?f(v):tS(v)?f(Yi(2,{from:t,to:v})):(u&&s.enterCallbacks[o]===u&&typeof v=="function"&&u.push(v),c())},p=l(()=>e.call(s&&s.instances[o],t,r,h));let m=Promise.resolve(p);e.length<3&&(m=m.then(h)),m.catch(v=>f(v))})}function _u(e,t,r,s,o=l=>l()){const l=[];for(const u of e)for(const c in u.components){let f=u.components[c];if(!(t!=="beforeRouteEnter"&&!u.instances[c]))if(_S(f)){const p=(f.__vccOpts||f)[t];p&&l.push(Ir(p,r,s,u,c,o))}else{let h=f();l.push(()=>h.then(p=>{if(!p)return Promise.reject(new Error(`Couldn't resolve component "${c}" at "${u.path}"`));const m=xE(p)?p.default:p;u.components[c]=m;const g=(m.__vccOpts||m)[t];return g&&Ir(g,r,s,u,c,o)()}))}}return l}function _S(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ap(e){const t=on(ja),r=on(Rc),s=Ve(()=>{const f=oe(e.to);return t.resolve(f)}),o=Ve(()=>{const{matched:f}=s.value,{length:h}=f,p=f[h-1],m=r.matched;if(!p||!m.length)return-1;const v=m.findIndex(zi.bind(null,p));if(v>-1)return v;const g=Pp(f[h-2]);return h>1&&Pp(p)===g&&m[m.length-1].path!==g?m.findIndex(zi.bind(null,f[h-2])):v}),l=Ve(()=>o.value>-1&&PS(r.params,s.value.params)),u=Ve(()=>o.value>-1&&o.value===r.matched.length-1&&Ng(r.params,s.value.params));function c(f={}){return AS(f)?t[oe(e.replace)?"replace":"push"](oe(e.to)).catch(Ls):Promise.resolve()}return{route:s,href:Ve(()=>s.value.href),isActive:l,isExactActive:u,navigate:c}}const bS=Ge({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Ap,setup(e,{slots:t}){const r=Ji(Ap(e)),{options:s}=on(ja),o=Ve(()=>({[xp(e.activeClass,s.linkActiveClass,"router-link-active")]:r.isActive,[xp(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const l=t.default&&t.default(r);return e.custom?l:Ac("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:o.value},l)}}}),wS=bS;function AS(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function PS(e,t){for(const r in t){const s=t[r],o=e[r];if(typeof s=="string"){if(s!==o)return!1}else if(!$n(o)||o.length!==s.length||s.some((l,u)=>l!==o[u]))return!1}return!0}function Pp(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const xp=(e,t,r)=>e??t??r,xS=Ge({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const s=on(Xu),o=Ve(()=>e.route||s.value),l=on(wp,0),u=Ve(()=>{let h=oe(l);const{matched:p}=o.value;let m;for(;(m=p[h])&&!m.components;)h++;return h}),c=Ve(()=>o.value.matched[u.value]);Lr(wp,Ve(()=>u.value+1)),Lr(yS,c),Lr(Xu,o);const f=xe();return at(()=>[f.value,c.value,e.name],([h,p,m],[v,g,S])=>{p&&(p.instances[m]=h,g&&g!==p&&h&&h===v&&(p.leaveGuards.size||(p.leaveGuards=g.leaveGuards),p.updateGuards.size||(p.updateGuards=g.updateGuards))),h&&p&&(!g||!zi(p,g)||!v)&&(p.enterCallbacks[m]||[]).forEach(C=>C(h))},{flush:"post"}),()=>{const h=o.value,p=e.name,m=c.value,v=m&&m.components[p];if(!v)return Cp(r.default,{Component:v,route:h});const g=m.props[p],S=g?g===!0?h.params:typeof g=="function"?g(h):g:null,I=Ac(v,ct({},S,t,{onVnodeUnmounted:V=>{V.component.isUnmounted&&(m.instances[p]=null)},ref:f}));return Cp(r.default,{Component:I,route:h})||I}}});function Cp(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const CS=xS;function ES(e){const t=cS(e.routes,e),r=e.parseQuery||gS,s=e.stringifyQuery||bp,o=e.history,l=_s(),u=_s(),c=_s(),f=TP(Er);let h=Er;Ii&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const p=vu.bind(null,X=>""+X),m=vu.bind(null,NE),v=vu.bind(null,Ks);function g(X,se){let he,Ae;return Vg(X)?(he=t.getRecordMatcher(X),Ae=se):Ae=X,t.addRoute(Ae,he)}function S(X){const se=t.getRecordMatcher(X);se&&t.removeRoute(se)}function C(){return t.getRoutes().map(X=>X.record)}function I(X){return!!t.getRecordMatcher(X)}function V(X,se){if(se=ct({},se||f.value),typeof X=="string"){const L=yu(r,X,se.path),J=t.resolve({path:L.path},se),ue=o.createHref(L.fullPath);return ct(L,J,{params:v(J.params),hash:Ks(L.hash),redirectedFrom:void 0,href:ue})}let he;if(X.path!=null)he=ct({},X,{path:yu(r,X.path,se.path).path});else{const L=ct({},X.params);for(const J in L)L[J]==null&&delete L[J];he=ct({},X,{params:m(L)}),se.params=m(se.params)}const Ae=t.resolve(he,se),Oe=X.hash||"";Ae.params=p(v(Ae.params));const je=WE(s,ct({},X,{hash:LE(Oe),path:Ae.path})),O=o.createHref(je);return ct({fullPath:je,hash:Oe,query:s===bp?vS(X.query):X.query||{}},Ae,{redirectedFrom:void 0,href:O})}function D(X){return typeof X=="string"?yu(r,X,f.value.path):ct({},X)}function A(X,se){if(h!==X)return Yi(8,{from:se,to:X})}function k(X){return q(X)}function R(X){return k(ct(D(X),{replace:!0}))}function T(X){const se=X.matched[X.matched.length-1];if(se&&se.redirect){const{redirect:he}=se;let Ae=typeof he=="function"?he(X):he;return typeof Ae=="string"&&(Ae=Ae.includes("?")||Ae.includes("#")?Ae=D(Ae):{path:Ae},Ae.params={}),ct({query:X.query,hash:X.hash,params:Ae.path!=null?{}:X.params},Ae)}}function q(X,se){const he=h=V(X),Ae=f.value,Oe=X.state,je=X.force,O=X.replace===!0,L=T(he);if(L)return q(ct(D(L),{state:typeof L=="object"?ct({},Oe,L.state):Oe,force:je,replace:O}),se||he);const J=he;J.redirectedFrom=se;let ue;return!je&&FE(s,Ae,he)&&(ue=Yi(16,{to:J,from:Ae}),b(Ae,Ae,!0,!1)),(ue?Promise.resolve(ue):F(J,Ae)).catch(ne=>ir(ne)?ir(ne,2)?ne:N(ne):_(ne,J,Ae)).then(ne=>{if(ne){if(ir(ne,2))return q(ct({replace:O},D(ne.to),{state:typeof ne.to=="object"?ct({},Oe,ne.to.state):Oe,force:je}),se||J)}else ne=j(J,Ae,!0,O,Oe);return K(J,Ae,ne),ne})}function G(X,se){const he=A(X,se);return he?Promise.reject(he):Promise.resolve()}function W(X){const se=Ce.values().next().value;return se&&typeof se.runWithContext=="function"?se.runWithContext(X):X()}function F(X,se){let he;const[Ae,Oe,je]=SS(X,se);he=_u(Ae.reverse(),"beforeRouteLeave",X,se);for(const L of Ae)L.leaveGuards.forEach(J=>{he.push(Ir(J,X,se))});const O=G.bind(null,X,se);return he.push(O),ke(he).then(()=>{he=[];for(const L of l.list())he.push(Ir(L,X,se));return he.push(O),ke(he)}).then(()=>{he=_u(Oe,"beforeRouteUpdate",X,se);for(const L of Oe)L.updateGuards.forEach(J=>{he.push(Ir(J,X,se))});return he.push(O),ke(he)}).then(()=>{he=[];for(const L of je)if(L.beforeEnter)if($n(L.beforeEnter))for(const J of L.beforeEnter)he.push(Ir(J,X,se));else he.push(Ir(L.beforeEnter,X,se));return he.push(O),ke(he)}).then(()=>(X.matched.forEach(L=>L.enterCallbacks={}),he=_u(je,"beforeRouteEnter",X,se,W),he.push(O),ke(he))).then(()=>{he=[];for(const L of u.list())he.push(Ir(L,X,se));return he.push(O),ke(he)}).catch(L=>ir(L,8)?L:Promise.reject(L))}function K(X,se,he){c.list().forEach(Ae=>W(()=>Ae(X,se,he)))}function j(X,se,he,Ae,Oe){const je=A(X,se);if(je)return je;const O=se===Er,L=Ii?history.state:{};he&&(Ae||O?o.replace(X.fullPath,ct({scroll:O&&L&&L.scroll},Oe)):o.push(X.fullPath,Oe)),f.value=X,b(X,se,he,O),N()}let U;function E(){U||(U=o.listen((X,se,he)=>{if(!be.listening)return;const Ae=V(X),Oe=T(Ae);if(Oe){q(ct(Oe,{replace:!0}),Ae).catch(Ls);return}h=Ae;const je=f.value;Ii&&YE(dp(je.fullPath,he.delta),qa()),F(Ae,je).catch(O=>ir(O,12)?O:ir(O,2)?(q(O.to,Ae).then(L=>{ir(L,20)&&!he.delta&&he.type===Gs.pop&&o.go(-1,!1)}).catch(Ls),Promise.reject()):(he.delta&&o.go(-he.delta,!1),_(O,Ae,je))).then(O=>{O=O||j(Ae,je,!1),O&&(he.delta&&!ir(O,8)?o.go(-he.delta,!1):he.type===Gs.pop&&ir(O,20)&&o.go(-1,!1)),K(Ae,je,O)}).catch(Ls)}))}let M=_s(),B=_s(),P;function _(X,se,he){N(X);const Ae=B.list();return Ae.length?Ae.forEach(Oe=>Oe(X,se,he)):console.error(X),Promise.reject(X)}function Y(){return P&&f.value!==Er?Promise.resolve():new Promise((X,se)=>{M.add([X,se])})}function N(X){return P||(P=!X,E(),M.list().forEach(([se,he])=>X?he(X):se()),M.reset()),X}function b(X,se,he,Ae){const{scrollBehavior:Oe}=e;if(!Ii||!Oe)return Promise.resolve();const je=!he&&ZE(dp(X.fullPath,0))||(Ae||!he)&&history.state&&history.state.scroll||null;return Gn().then(()=>Oe(X,se,je)).then(O=>O&&zE(O)).catch(O=>_(O,X,se))}const Q=X=>o.go(X);let de;const Ce=new Set,be={currentRoute:f,listening:!0,addRoute:g,removeRoute:S,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:C,resolve:V,options:e,push:k,replace:R,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:l.add,beforeResolve:u.add,afterEach:c.add,onError:B.add,isReady:Y,install(X){const se=this;X.component("RouterLink",wS),X.component("RouterView",CS),X.config.globalProperties.$router=se,Object.defineProperty(X.config.globalProperties,"$route",{enumerable:!0,get:()=>oe(f)}),Ii&&!de&&f.value===Er&&(de=!0,k(o.location).catch(Oe=>{}));const he={};for(const Oe in Er)Object.defineProperty(he,Oe,{get:()=>f.value[Oe],enumerable:!0});X.provide(ja,se),X.provide(Rc,cm(he)),X.provide(Xu,f);const Ae=X.unmount;Ce.add(X),X.unmount=function(){Ce.delete(X),Ce.size<1&&(h=Er,U&&U(),U=null,f.value=Er,de=!1,P=!1),Ae()}}};function ke(X){return X.reduce((se,he)=>se.then(()=>W(he)),Promise.resolve())}return be}function SS(e,t){const r=[],s=[],o=[],l=Math.max(t.matched.length,e.matched.length);for(let u=0;uzi(h,c))?s.push(c):r.push(c));const f=e.matched[u];f&&(t.matched.find(h=>zi(h,f))||o.push(f))}return[r,s,o]}function Ka(){return on(ja)}function Tc(e){return on(Rc)}const Ga=eo({id:"downloader",state:()=>({ws:null,states:{},onDownload:[],prefill:null}),getters:{empty(){return Object.keys(this.states).length===0}},actions:{_fireDownload(e){this.onDownload.forEach(t=>t(e))},initialise(){const e=()=>{console.log("[downloader] attempting reconnect"),this.ws=new WebSocket(kc()+"/download/ws"),this.ws.onclose=()=>{console.log("[downloader] ws closed"),setTimeout(()=>e(),1e3)},this.ws.onopen=()=>{console.log("[downloader] ws connected")},this.ws.onmessage=t=>{const r=JSON.parse(t.data);if(r.status=="finished"){this.states[r.song.id]={...this.states[r.song.id],...r};return}this.states[r.song.id]=r}};e()},send(e){var t;(t=this.ws)==null||t.send(JSON.stringify(e))},downloadFromDb(e){this.send({action:"download",source:"db",songId:e}),this.states[e]={songId:e,status:"pending"},this._fireDownload(e)},downloadViaDownloader(e){this.prefill=e,Ka().push("/download")},downloadOther(e){this.send({action:"download",source:"other",...e}),this.states[e.id]={songId:e.id,status:"pending"},this._fireDownload(e.id)},download(e){window.open(`/api/tracks/${e}/download`,"_blank","noopener noreferrer"),this.states[e].status="downloaded"},isSongDownloading(e){const t=this.states[e];return t!=null&&t.internal?t.status==="downloading":!1}}}),no=async()=>{await Yt().fetchPlaylists()},pI=async e=>{await fetch(`/api/tracks/${e.id}`,{method:"PUT",body:JSON.stringify({source:e.source,title:e.title,artist:e.artist,album:e.album,cover:e.cover})}),await no()},mI=async(e,t,r)=>{await fetch(`/api/tracks/${e}`,{method:"PUT",body:JSON.stringify({[t]:r})}),await no()},gI=async e=>await(await fetch("/api/browse/track",{method:"POST",body:JSON.stringify({url:e})})).json(),Ug=e=>({source:e.source,title:e.title,artist:e.artist,album:e.album,cover:e.cover,spotify:e.metadata?JSON.stringify(e.metadata.spotify):""}),qg=async(e,t)=>{e==="new"&&(e=await Ec()),await fetch(`/api/playlists/${e}/tracks`,{method:"POST",body:JSON.stringify(Ug(t))}),await no()},jg=async(e,t)=>{e==="new"&&(e=await Ec()),await fetch(`/api/playlists/${e}/tracks`,{method:"POST",body:JSON.stringify(t.map(r=>Ug(r)))}),await no()},vI=async(e,t=!0)=>{await fetch(`/api/tracks/${e}`,{method:"PUT",body:JSON.stringify({favourite:t})}),await no()},yI=e=>{Ga().downloadFromDb(e)},kS=async e=>await(await fetch(`/api/tracks/${e}`)).json(),_I=async e=>{const t=aE(e);return await kS(t)},OS=async(e,t=!1,r=null)=>{const s={id:e};return t&&(s.forceFetch=!0),r&&(s.spotifyId=r),await(await fetch("/api/spotify/meta",{method:"POST",body:JSON.stringify(s)})).json()},bI=async e=>await(await fetch(`/api/spotify/recommendations/${e}`)).json(),wI=async e=>{await fetch(`/api/player/stream/${e}`,{method:"DELETE"})},RS=async e=>({error:"Lyrics temporarily not supported.",lyrics:[]}),TS=async(e=!1)=>{var o,l;const r=Mt().song;let s=(o=r.metadata.spotify)==null?void 0:o.id;return!s&&e&&(s=(l=(await OS(r.id)).spotify)==null?void 0:l.id),s?await RS():{error:"Spotify equivalent unknown."}},Mt=eo({id:"player",state:()=>({playing:!1,progress:0,ready:!1,muted:!1,shuffle:!1,song:{title:null,artist:null,album:null,cover:zu(null),source:null,duration:null,favourite:!1,id:-1,metadata:{plays:0,spotify:{id:null}}},playlistId:null,lyrics:null,volume:50,repeat:"repeat",sharedPlayer:null,player:null,queue:[]}),actions:{playPause(){this.playing?this.pause():this.play()},toggleRepeat(){var e;switch(this.repeat){case"repeat":this.repeat="repeat_on";break;case"repeat_on":this.repeat="repeat_one_on";break;case"repeat_one_on":this.repeat="repeat";break}localStorage.setItem("reap.repeat",this.repeat),(e=this.player)==null||e.setRepeat(this.repeat)},setRepeat(e){this.repeat=e},setMute(e){var t;this.muted=e,(t=this.player)==null||t.setMute(e)},toggleMute(){this.setMute(!this.muted)},setShuffle(e){this.shuffle=e,wE(e),Yt().fetchPlaylists()},toggleShuffle(){this.setShuffle(!this.shuffle)},onSongEnded(){if(this.repeat==="repeat_one_on")this.play();else{if(this.repeat==="repeat"&&this.playlist.index.value===this.playlist.songs.length-1)return;this.next()}},play(){this.player.play()},pause(){this.player.pause()},next(){Tg()},previous(){bE()},setPlayer(e){e&&this.player!==e&&(this.player=e)},setQueue(e){this.queue=e.queue},async setSong(e){e.id!=this.song.id&&(this.song=e,this.song.cover=zu(e.cover),this.progress=0,this.lyrics=null,this.lyrics=await TS(!0))},setReady(e){this.ready!==e&&(this.ready=e,e?Yt().initialise():(this.$reset(),Yt().$reset()))},setDuration(e){this.song.duration=e,fetch(`/api/tracks/${this.song.id}`,{method:"PUT",body:JSON.stringify({duration:e})})},setPlaying(e){this.playing=e},seek(e){this.player.seek(e)},seekPercent(e){this.seek(this.durationSeconds*e/100)},setProgress(e){this.progress=Math.round(e)},setFavourite(e){this.song.favourite=e,fetch(`/api/tracks/${this.song.id}`,{method:"PUT",body:JSON.stringify({favourite:e})})},setPlaylist(e){this.playlistId=e},setVolume(e){var t;e!=this.volume&&(this.volume=e,localStorage.setItem("reap.volume",e),this.player.setVolume&&((t=this.player)==null||t.setVolume(e)))},toggleFavourite(){this.setFavourite(!this.song.favourite)},async initialise(){this.volume=localStorage.getItem("reap.volume")||50,this.repeat=localStorage.getItem("reap.repeat")||"repeat_on",this.sharedPlayer=new _E,this.shuffle=await AE()},async loadPlaylist(e,t=null){const r={type:"playlist",id:e};["track","album"].includes(e)&&(r.type=e,r.id=t),e==="artist"&&(r.type=e,r.name=t,delete r.id),await fetch("/api/player/load",{method:"POST",body:JSON.stringify(r)})},loadSong(e,t){const r={index:t};e==="track"?r.type=e:r.playlist=e,fetch("/api/player/at",{method:"POST",body:JSON.stringify(r)})},rearrangeQueue(e,t){fetch(`/api/player/queue/${e}/${t}`,{method:"PUT"})},playlistPlayOrPauseIcon(e){return this.playlistId===e&&this.playing?"pause_circle":"play_circle"}},getters:{playlist(e){return Yt().playlists.find(t=>t.id===e.playlistId)},hasLyrics(e){var t;return(t=e.lyrics)==null?void 0:t.lyrics},durationSeconds(e){return e.song.duration},displayDuration(e){const t=e.song.duration;return isNaN(t)?"0:00":`${Math.floor(t/60)}:${Gu(Math.floor(t%60),2)}`},stream(e){return`/api/player/stream/${e.song.id}`},cover(e){return e.song.cover},progressPercent(e){return e.progress/this.durationSeconds*1e3},displayProgress(e){const t=e.progress;return isNaN(t)?"0:00":`${Math.floor(t/60)}:${Gu(Math.floor(t%60),2)}`},loaded(e){return e.song.id!=-1},shuffleIcon(e){return e.shuffle?"shuffle_on":"shuffle"},muteIcon(e){return e.muted?"volume_off":e.volume>50?"volume_up":e.volume>0?"volume_down":"volume_mute"}}}),IS=(e,t,r)=>{const s=new CustomEvent("player.play",{detail:{title:e,artist:t,source:r}});window.dispatchEvent(s)},MS={components:{Marquee:ar},name:"PlayerInPicture",props:{expandCover:Boolean},watch:{disabled(){this.disabled||this.$nextTick(()=>{this.$refs.player.addEventListener("mousedown",this.mouseDown,!1),window.addEventListener("mouseup",this.mouseUp,!1)})}},methods:{mouseDown(e){const t=this.$refs.player,r=document.getElementById("appRoot");e=e||window.event;var s=e.clientX,o=e.clientY,l=t.offsetTop,u=t.offsetLeft,c=parseInt(t.offsetWidth),f=parseInt(t.offsetHeight),h=parseInt(r.offsetWidth)-8,p=parseInt(r.offsetHeight)-8;r.style.cursor="move";var m=s-u,v=o-l;document.onmousemove=g=>{g=g||window.event,g.preventDefault(),g.stopPropagation();var S=g.clientX,C=g.clientY,I=S-m,V=C-v;I<8&&(I=8),V<8&&(V=8),I+c>h&&(I=h-c),V+f>p&&(V=p-f),this.divMove(t,I,V)}},mouseUp(){document.getElementById("appRoot").style.cursor="default",document.onmousemove=function(){}},divMove(e,t,r){e.style.bottom="auto",e.style.right="auto",e.style.left=t+"px",e.style.top=r+"px"}},data(){const e=Mt();return window.addEventListener("player.play",t=>{const r=t.detail,s=r.source;if(this.name=`${r.artist} - ${r.title}`,e.pause(),s.includes("youtu")){var o=/youtu(?:.*\/v\/|.*v\=|\.be\/)([A-Za-z0-9_\-]{11})/;const l=s.match(o);if(l!=null&&l[1]){this.el=``,this.minimised=!1,this.disabled=!1;return}}if(s.includes("audius")){var o=/audius.co\/([A-Za-z0-9]+)\/([A-Za-z0-9\-]+)/;const u=s.match(o);if(u!=null&&u[1]&&(u!=null&&u[2])){fetch(`https://blockdaemon-audius-discovery-01.bdnodes.net/v1/full/tracks?handle=${u[1]}&slug=${u[2]}`).then(c=>c.json()).then(c=>{const f=c.data.id;this.el=``}),this.minimised=!1,this.disabled=!1;return}}if(s.includes("spotify")){var o=/spotify(?:.*\/(album|track|playlist)\/)([A-Za-z0-9_\-]{22})/;const u=s.match(o);if(u!=null&&u[1]){this.el=``,this.minimised=!1,this.disabled=!1;return}}s.includes("soundcloud")&&(fetch(`https://soundcloud.com/oembed?url=${s}&format=json`).then(l=>l.json()).then(l=>{this.el=l.html.replace('height="400"','height="70"').replace("&show_artwork=true","&show_artwork=true&auto_play=true").replace("o.minimised=!o.minimised)},Ne(o.minimised?"zoom_out_map":"zoom_in_map"),1),te("span",{class:"material-symbols-rounded ms-wght-500",onClick:t[1]||(t[1]=c=>o.disabled=!o.disabled)},"close")])],2),te("div",{class:Ye([{minimised:o.minimised},"frame"]),innerHTML:o.el},null,10,NS)],512))}const VS=lt(MS,[["render",BS]]),WS={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 809.48 395.8"},FS=te("path",{d:"M80.09 254.67c-4.84 0-9.04-1.72-12.6-5.16-3.57-3.43-5.35-7.7-5.35-12.79V79.04c0-4.84 1.78-8.97 5.35-12.41 3.56-3.44 7.76-5.16 12.6-5.16s8.97 1.72 12.41 5.16c3.43 3.43 5.15 7.57 5.15 12.41v157.68c0 5.09-1.72 9.36-5.15 12.79-3.44 3.44-7.58 5.16-12.41 5.16Zm70.63 61.47c-4.84 0-8.97-1.78-12.41-5.34-3.44-3.57-5.16-7.77-5.16-12.6V17.57c0-4.58 1.72-8.66 5.16-12.22 3.43-3.56 7.57-5.34 12.41-5.34s9.04 1.78 12.6 5.34c3.56 3.57 5.34 7.64 5.34 12.22V298.2c0 4.83-1.78 9.03-5.34 12.6-3.56 3.56-7.76 5.34-12.6 5.34ZM17.38 193.2c-4.79 0-8.88-1.7-12.27-5.1-3.4-3.4-5.1-7.61-5.1-12.65v-35.13c0-4.79 1.7-8.88 5.1-12.27 3.4-3.4 7.49-5.1 12.27-5.1s9 1.7 12.66 5.1c3.65 3.4 5.48 7.49 5.48 12.27v35.33c0 3.92-1.25 7.85-3.85 10.77-4.01 4.51-8.78 6.77-14.28 6.77Zm195.29 60.46c-4.78 0-8.87-1.7-12.28-5.11-3.4-3.4-5.1-7.62-5.1-12.66V79.86c0-4.79 1.7-8.88 5.1-12.28 3.4-3.4 7.5-5.11 12.28-5.11s9.01 1.7 12.66 5.11c3.65 3.4 5.48 7.49 5.48 12.28V235.9c0 5.04-1.76 9.26-5.29 12.66-3.52 3.4-7.81 5.11-12.85 5.11Zm62.52-60.46c-4.78 0-8.94-1.7-12.46-5.1-3.52-3.4-5.29-7.61-5.29-12.65v-35.13c0-4.79 1.76-8.88 5.29-12.27 3.53-3.4 7.68-5.1 12.46-5.1s8.94 1.7 12.46 5.1c3.53 3.4 5.29 7.49 5.29 12.27v35.13c0 5.03-1.76 9.25-5.29 12.65-3.52 3.4-7.68 5.1-12.46 5.1ZM436.15 266.18c-10.94-6.13-19.61-14.63-26-25.51-6.39-10.88-9.59-23.17-9.59-36.88s3.2-26 9.59-36.88c6.39-10.88 15.06-19.34 26-25.41 10.94-6.06 22.94-9.1 35.99-9.1s25.21 3.03 36.09 9.1c10.88 6.06 19.48 14.53 25.8 25.41 6.33 10.88 9.49 23.17 9.49 36.88s-3.16 26-9.49 36.88-14.96 19.38-25.9 25.51c-10.94 6.13-22.94 9.19-35.99 9.19s-25.05-3.06-35.99-9.19Zm59.42-36.48c5.73-6.46 8.6-15.09 8.6-25.9s-2.87-19.8-8.6-26.2c-5.73-6.39-13.54-9.59-23.43-9.59s-17.87 3.2-23.53 9.59c-5.67 6.4-8.5 15.13-8.5 26.2s2.83 19.61 8.5 26c5.67 6.4 13.51 9.59 23.53 9.59s17.7-3.23 23.43-9.69ZM690.05 273.99h-38.76l-51.61-77.91v77.91h-38.76V134.58h38.76l51.61 78.9v-78.9h38.76v139.41ZM750.95 165.63v22.74h44.49v29.46h-44.49v25.11h50.42v31.04h-89.18v-139.4h89.18v31.04h-50.42ZM414.68 76.05c1.71-1 3.8-1.5 6.27-1.5v5.43h-1.39c-5.89 0-8.84 3.2-8.84 9.59v17.21h-5.25V75.13h5.25v5.14c.92-1.81 2.24-3.21 3.96-4.22ZM455.71 92.91h-25.29c.19 3.12 1.26 5.55 3.21 7.31 1.94 1.75 4.3 2.63 7.07 2.63 2.27 0 4.17-.53 5.69-1.59 1.52-1.06 2.59-2.47 3.21-4.24h5.66c-.85 3.04-2.54 5.52-5.08 7.42s-5.7 2.86-9.47 2.86c-3 0-5.69-.67-8.06-2.02s-4.23-3.26-5.57-5.75c-1.35-2.48-2.02-5.36-2.02-8.63s.65-6.14 1.96-8.6 3.15-4.36 5.52-5.69 5.09-1.99 8.17-1.99 5.66.65 7.97 1.96c2.31 1.31 4.09 3.11 5.34 5.4 1.25 2.29 1.88 4.88 1.88 7.77 0 1-.06 2.06-.17 3.18Zm-6.58-9.44a8.686 8.686 0 0 0-3.61-3.29c-1.52-.75-3.21-1.13-5.05-1.13-2.66 0-4.92.85-6.79 2.54s-2.94 4.04-3.21 7.05h19.98c0-2-.44-3.72-1.33-5.17ZM486.61 97.82h-17.56l-3.23 8.95h-5.54l14.55-40.02h6.06l14.5 40.02h-5.54l-3.23-8.95Zm-1.5-4.27-7.28-20.33-7.28 20.33h14.55ZM529.81 75.13v31.65h-5.25v-4.68c-1 1.62-2.4 2.88-4.19 3.78-1.79.9-3.76 1.36-5.92 1.36-2.46 0-4.68-.51-6.64-1.53s-3.51-2.55-4.65-4.59c-1.14-2.04-1.7-4.52-1.7-7.45V75.13h5.2v17.85c0 3.12.79 5.52 2.37 7.19 1.58 1.67 3.73 2.51 6.47 2.51s5.02-.87 6.64-2.6 2.43-4.25 2.43-7.57V75.13h5.25ZM538.7 82.32c1.31-2.44 3.11-4.34 5.4-5.69 2.29-1.35 4.86-2.02 7.71-2.02 2.46 0 4.75.57 6.87 1.7 2.12 1.14 3.73 2.63 4.85 4.48V64.04h5.31v42.74h-5.31v-5.95c-1.04 1.89-2.58 3.44-4.62 4.65s-4.43 1.82-7.16 1.82-5.36-.69-7.65-2.08c-2.29-1.39-4.09-3.33-5.4-5.83-1.31-2.5-1.96-5.35-1.96-8.55s.65-6.07 1.96-8.52Zm23.39 2.34c-.96-1.77-2.26-3.13-3.9-4.07-1.64-.94-3.44-1.42-5.4-1.42s-3.75.46-5.37 1.39-2.91 2.27-3.87 4.04-1.44 3.85-1.44 6.24.48 4.53 1.44 6.32 2.25 3.16 3.87 4.1c1.62.94 3.41 1.42 5.37 1.42s3.76-.47 5.4-1.42c1.64-.94 2.94-2.31 3.9-4.1.96-1.79 1.44-3.88 1.44-6.27s-.48-4.47-1.44-6.24ZM577.91 68.95c-.69-.69-1.04-1.54-1.04-2.54s.35-1.85 1.04-2.54 1.54-1.04 2.54-1.04 1.78.35 2.45 1.04 1.01 1.54 1.01 2.54-.34 1.85-1.01 2.54-1.49 1.04-2.45 1.04-1.85-.35-2.54-1.04Zm5.08 6.18v31.65h-5.25V75.13h5.25ZM597.69 105.27c-2.41-1.35-4.29-3.26-5.66-5.75-1.37-2.48-2.05-5.36-2.05-8.63s.7-6.09 2.11-8.58 3.32-4.39 5.75-5.72 5.14-1.99 8.14-1.99 5.72.66 8.14 1.99 4.34 3.23 5.75 5.69c1.41 2.46 2.11 5.33 2.11 8.6s-.72 6.15-2.17 8.63c-1.44 2.48-3.4 4.4-5.86 5.75-2.46 1.35-5.2 2.02-8.2 2.02s-5.65-.67-8.06-2.02Zm13.37-3.93c1.65-.89 2.99-2.21 4.01-3.98 1.02-1.77 1.53-3.93 1.53-6.47s-.5-4.7-1.5-6.47c-1-1.77-2.31-3.09-3.93-3.96-1.62-.87-3.37-1.3-5.25-1.3s-3.69.43-5.28 1.3c-1.6.87-2.88 2.19-3.84 3.96s-1.44 3.93-1.44 6.47.47 4.76 1.41 6.53c.94 1.77 2.2 3.09 3.78 3.96 1.58.87 3.31 1.3 5.2 1.3s3.66-.44 5.31-1.33ZM652.38 86.65c-2.29 2.21-5.79 3.32-10.48 3.32h-7.74v16.81h-5.25V66.53h12.99c4.54 0 8 1.1 10.37 3.29 2.37 2.19 3.55 5.02 3.55 8.49s-1.15 6.13-3.44 8.35Zm-4.01-2.92c1.39-1.27 2.08-3.08 2.08-5.43 0-4.97-2.85-7.45-8.55-7.45h-7.74v14.78h7.74c2.93 0 5.08-.64 6.47-1.91ZM667.6 64.04v42.74h-5.25V64.04h5.25ZM676.55 82.32c1.31-2.44 3.11-4.34 5.4-5.69 2.29-1.35 4.84-2.02 7.65-2.02s5.18.6 7.22 1.79 3.56 2.7 4.56 4.5v-5.78h5.31v31.65h-5.31v-5.89c-1.04 1.85-2.59 3.38-4.65 4.59-2.06 1.21-4.46 1.82-7.19 1.82s-5.35-.69-7.62-2.08c-2.27-1.39-4.06-3.33-5.37-5.83-1.31-2.5-1.96-5.35-1.96-8.55s.65-6.07 1.96-8.52Zm23.39 2.34c-.96-1.77-2.26-3.13-3.9-4.07-1.64-.94-3.44-1.42-5.4-1.42s-3.75.46-5.37 1.39-2.91 2.27-3.87 4.04-1.44 3.85-1.44 6.24.48 4.53 1.44 6.32 2.25 3.16 3.87 4.1c1.62.94 3.41 1.42 5.37 1.42s3.76-.47 5.4-1.42c1.64-.94 2.94-2.31 3.9-4.1.96-1.79 1.44-3.88 1.44-6.27s-.48-4.47-1.44-6.24ZM742.85 75.13l-19.06 46.55h-5.43l6.24-15.25-12.76-31.3h5.83l9.93 25.64 9.82-25.64h5.43ZM776.8 92.91h-25.29c.19 3.12 1.26 5.55 3.21 7.31 1.94 1.75 4.3 2.63 7.07 2.63 2.27 0 4.17-.53 5.69-1.59 1.52-1.06 2.59-2.47 3.21-4.24h5.66c-.85 3.04-2.54 5.52-5.08 7.42s-5.7 2.86-9.47 2.86c-3 0-5.69-.67-8.06-2.02s-4.23-3.26-5.57-5.75c-1.35-2.48-2.02-5.36-2.02-8.63s.65-6.14 1.96-8.6 3.15-4.36 5.51-5.69 5.09-1.99 8.17-1.99 5.66.65 7.97 1.96c2.31 1.31 4.09 3.11 5.34 5.4 1.25 2.29 1.88 4.88 1.88 7.77 0 1-.06 2.06-.17 3.18Zm-6.58-9.44a8.686 8.686 0 0 0-3.61-3.29c-1.52-.75-3.21-1.13-5.05-1.13-2.66 0-4.92.85-6.79 2.54s-2.94 4.04-3.21 7.05h19.98c0-2-.44-3.72-1.33-5.17ZM793.12 76.05c1.71-1 3.8-1.5 6.27-1.5v5.43H798c-5.89 0-8.84 3.2-8.84 9.59v17.21h-5.25V75.13h5.25v5.14c.92-1.81 2.24-3.21 3.96-4.22Z"},null,-1),HS=[FS];function US(e,t){return re(),ve("svg",WS,[...HS])}const qS={render:US},jS=2,Ep=window.localStorage.getItem("renderedIcons"),bu=Ep?new Map(JSON.parse(Ep)):new Map,Sa=async(e,t,r=500,s="track")=>e?Sg(e,s):await Ic(t,r),KS="/assets/img/bg-1024x1024.png",Ic=async(e,t=512)=>{await document.fonts.ready;const r=`${jS}-${e}-${t}`;if(bu.has(r))return bu.get(r);const s=document.createElement("canvas"),o=s.getContext("2d");s.style.position="fixed",s.style.top=-t+"px",s.style.left=-t+"px",s.style.opacity="0",document.body.appendChild(s),s.height=t,s.width=t,s.style.height=t+"px",s.style.width=t+"px";const l=new Image;return l.src=KS,await new Promise(u=>{l.onload=()=>{o.drawImage(l,0,0,s.width,s.height),o.fillStyle="white",o.font="900 50px 'Poppins'",o.textAlign="center",o.shadowColor="rgba(0, 0, 0, 0.7)",o.shadowBlur=50,o.fillText(e,s.width/2,s.height/2+72/2,s.width),o.fillStyle="white",o.fillRect(0,0,s.width,14),o.fillStyle="black",o.font="400 italic 8px 'Poppins'",o.textAlign="left",o.fillText(" reAudioPlayer ".repeat(100),2,10);const c=20;o.fillStyle="white",o.font="600 10px 'Poppins'",o.textAlign="left",o.fillText((e==null?void 0:e.toUpperCase())??e,c,s.height-35+8+2);const f=o.measureText(e).width+c+16;o.fillStyle="white",o.fillRect(f,s.height-30,s.width-f-c,2);const h=s.toDataURL();bu.set(r,h),u(h)}})};/*! Fast Average Color | © 2023 Denis Seleznev | MIT License | https://github.com/fast-average-color/fast-average-color */function GS(e){var t=e.toString(16);return t.length===1?"0"+t:t}function Sp(e){return"#"+e.map(GS).join("")}function zS(e){var t=(e[0]*299+e[1]*587+e[2]*114)/1e3;return t<128}function YS(e){return e?ZS(e)?e:[e]:[]}function ZS(e){return Array.isArray(e[0])}function Mc(e,t,r){for(var s=0;s=t-r&&e<=t+r}function ek(e,t,r){var s=r[0],o=r[1],l=r[2],u=r[3],c=r[4],f=e[t+3],h=oa(f,u,c);return u?!!(!f&&h||oa(e[t],s,c)&&oa(e[t+1],o,c)&&oa(e[t+2],l,c)&&h):h}var tk=24;function nk(e,t,r){for(var s={},o=r.dominantDivider||tk,l=r.ignoredColor,u=r.step,c=[0,0,0,0,0],f=0;fl?(f=o/l,u=Qu,c=Math.round(u/f)):(f=l/o,c=Qu,u=Math.round(c/f)),(u>o||c>l||u"u";function hk(){return dk?Gg?new OffscreenCanvas(1,1):null:document.createElement("canvas")}var pk="FastAverageColor: ";function Wn(e){return Error(pk+e)}function bs(e,t){t||console.error(e)}var mk=function(){function e(){this.canvas=null,this.ctx=null}return e.prototype.getColorAsync=function(t,r){if(!t)return Promise.reject(Wn("call .getColorAsync() without resource"));if(typeof t=="string"){if(typeof Image>"u")return Promise.reject(Wn("resource as string is not supported in this environment"));var s=new Image;return s.crossOrigin=r&&r.crossOrigin||"",s.src=t,this.bindImageEvents(s,r)}else{if(Kg(t)&&!t.complete)return this.bindImageEvents(t,r);var o=this.getColor(t,r);return o.error?Promise.reject(o.error):Promise.resolve(o)}},e.prototype.getColor=function(t,r){r=r||{};var s=kp(r);if(!t){var o=Wn("call .getColor() without resource");return bs(o,r.silent),this.prepareResult(s,o)}var l=ok(t),u=fk(l,r);if(!u.srcWidth||!u.srcHeight||!u.destWidth||!u.destHeight){var o=Wn('incorrect sizes for resource "'.concat(Rp(t),'"'));return bs(o,r.silent),this.prepareResult(s,o)}if(!this.canvas&&(this.canvas=hk(),!this.canvas)){var o=Wn("OffscreenCanvas is not supported in this browser");return bs(o,r.silent),this.prepareResult(s,o)}if(!this.ctx){if(this.ctx=this.canvas.getContext("2d",{willReadFrequently:!0}),!this.ctx){var o=Wn("Canvas Context 2D is not supported in this browser");return bs(o,r.silent),this.prepareResult(s)}this.ctx.imageSmoothingEnabled=!1}this.canvas.width=u.destWidth,this.canvas.height=u.destHeight;try{this.ctx.clearRect(0,0,u.destWidth,u.destHeight),this.ctx.drawImage(t,u.srcLeft,u.srcTop,u.srcWidth,u.srcHeight,0,0,u.destWidth,u.destHeight);var c=this.ctx.getImageData(0,0,u.destWidth,u.destHeight).data;return this.prepareResult(this.getColorFromArray4(c,r))}catch(f){var o=Wn("security error (CORS) for resource ".concat(Rp(t),`. -Details: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image`));return bs(o,r.silent),!r.silent&&console.error(f),this.prepareResult(s,o)}},e.prototype.getColorFromArray4=function(t,r){r=r||{};var s=4,o=t.length,l=kp(r);if(o{const r=e.hex,s=Math.round(t*255).toString(16);return r+s},gk=async(e,t,r=.25)=>{if(!qr().ambient)return;var o=e.width/100,l=e.height/100,u=e.naturalWidth,c=e.naturalHeight;const f=await Promise.all([Ss.getColorAsync(t,{height:l}),Ss.getColorAsync(t,{left:u-o,width:o}),Ss.getColorAsync(t,{width:o}),Ss.getColorAsync(t,{top:c-l,height:l})]);o*=40,l*=40;var h=ks(f[0],r),p=ks(f[1],r),m=ks(f[2],r),v=ks(f[3],r);const g=" 10px",S=` ${o}px `,C=o+"px",I=l+"px";e.style.boxShadow=["0 -".concat(I," ").concat(S," ").concat(g," ").concat(h),"".concat(C," 0 ").concat(S," ").concat(g," ").concat(p),"0 ".concat(I," ").concat(S," ").concat(g," ").concat(m),"-".concat(C," 0 ").concat(S," ").concat(g," ").concat(v)].join(", ")},vk=async(e,t,r="to top right",s=.2)=>{if(!qr().ambient)return;const l=await Ss.getColorAsync(t),u=ks(l,s),c=`linear-gradient(${r}, ${u}, transparent)`;e.style.background=c},yk={dark:!1,dynamic:!0},_k={dark:!0,dynamic:!1},ci={"fg-secondary":{dark:"#1ed760",dynamic:"#00c48b",light:"#18a74b"},"fg-secondary-dk":{dark:"#217e41",dynamic:"#00c48b",light:"#80dda0"},"bg-contrast":{dark:"white",dynamic:"whitesmoke",light:"#181c2f"},"fg-contrast":{dark:"#121212",dynamic:"#1e1e1e",light:"white"},"fg-base":{dark:"white",dynamic:"whitesmoke",light:"#181c2f"},"fg-base-dk":{dark:"#a7a7a7",dynamic:"#c2bebe",light:"#8b8c91"},"fg-base-dkr":{dark:"#999",light:"#8b8c91",dynamic:"#999"},"bg-hover-ltr":{dark:"#242424"},"bg-hover-lt":{dark:"hsla(0,0%,100%,0.04)",light:"#b3b3b31f"},"bg-hover":{dark:"hsla(0,0%,100%,0.3)",dynamic:"#00c48b82",light:"#7c828f5e"},"bg-hover-dk":{dark:"#2a2a2a",dynamic:"#00c48b42",light:"#E3E7EB"},"bg-gradient":{dark:"linear-gradient(to left bottom, #1ed760, #217e41)",dynamic:"linear-gradient(to left bottom, #00a53c, #00297f)",light:"linear-gradient(to left bottom, #18a74b, #80dda0)"},"bg-gradient-placeholder":{dark:"linear-gradient(to left bottom, #00a53c, #00297f)"},"bg-base":{dark:"#121212",light:"white"},"bg-base-lt":{dark:"#181818",dynamic:"linear-gradient(to right bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3))",light:"#f3f7fb"},"bg-base-dk":{dark:"black",dynamic:"linear-gradient(to right bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3))",light:"#f3f7fb"},"bg-input":{dark:"var(--background-light)",light:"var(--background)"},"bg-fixedPlaylistHeader":{dark:"var(--bg-base-lt)",dynamic:"#374148"},"border-fixedPlaylistHeader":{dark:"#303030",dynamic:"none",light:"#D0D0D0"},"border-base":{dark:"hsla(0,0%,100%,0.1)",light:"#E3E7EB"},"border-container":{dark:"1px solid var(--border-base)",light:"1px solid var(--border-base)",dynamic:"1px solid transparent"},"ff-base":{dark:"Poppins, sans-serif"},"h-playlistEntry":{dark:"64px"},"h-player":{dark:"88px"},"h-player-mobile":{dark:"64px"},"h-header":{dark:"64px"},coverAsBackground:yk,supportsAmbient:_k},za=()=>qr();window.getThemes=()=>{window.themes=[];for(const e of Object.keys(ci))for(const t of Object.keys(ci[e]))window.themes.includes(t)||window.themes.push(t);return window.themes};window.getCurrentTheme=()=>za().theme;window.setTheme=e=>{if(window.getThemes().includes(e)){za().theme=e;for(const t of Object.keys(ci)){const r=ci[t];t!="coverAsBackground"&&document.documentElement.style.setProperty(`--${t}`,r[e]??r.dark)}}};window.restoreTheme=()=>window.setTheme(za().theme||"dynamic");window.getCurrentThemeProperty=e=>{const t=ci[e];return t[za().theme]??t.dark};const zg=window,bk=["alt","src"],Nr=Ge({__name:"Cover",props:{src:{type:String,required:!0},type:{type:String,required:!1,default:"track"},placeholder:{type:String,required:!1},withAmbient:{type:Boolean,required:!1,default:!1},ambientOpacity:{type:Number,required:!1,default:.2},name:{type:String,required:!1}},setup(e){const t=e,r=xe(null),s=async()=>{console.error("Failed to load cover",t.src),r.value=await Ic(t.name??"N/A")},o=xe(null),l=async()=>{t.withAmbient&&o.value&&zg.getCurrentThemeProperty("supportsAmbient")&&gk(o.value,r.value,t.ambientOpacity)};return at(()=>t.src,async()=>{r.value=await Sa(t.src,t.name??"N/A",500,t.type)}),Wt(async()=>{r.value=await Sa(t.src,t.name??"N/A",500,t.type)}),(u,c)=>(re(),ve("img",{ref_key:"element",ref:o,alt:t.type,src:r.value,class:"cover rounded-md",onError:s,onLoad:l,lazy:""},null,40,bk))}}),wk={name:"NavEntry",components:{Cover:Nr},props:{icon:String,img:String,name:String,href:String,hasChildSites:Boolean,parentHref:String,minimised:Boolean},computed:{showImg(){return this.img?!0:/^\/playlist\/\w{22}$/.exec(this.href)},active(){return this.hasChildSites?this.$route.path.includes(this.href)?!0:this.parentHref&&this.$route.path.includes(this.parentHref):!1}}},Ak={key:0,class:"material-icons-round icon"},Pk={key:2,class:"name hideIfMobile"};function xk(e,t,r,s,o,l){const u=Ui("Cover"),c=Ui("router-link");return re(),Ze(c,{to:r.href,class:"link",title:r.name},{default:kt(()=>[te("div",{class:Ye([{active:l.active,img:l.showImg},"navEntry"])},[r.icon?(re(),ve("span",Ak,Ne(r.icon),1)):Me("",!0),l.showImg?(re(),Ze(u,{key:1,src:r.img,class:"icon",type:"playlist",name:r.name},null,8,["src","name"])):Me("",!0),r.minimised?Me("",!0):(re(),ve("span",Pk,Ne(r.name),1))],2)]),_:1},8,["to","title"])}const Hn=lt(wk,[["render",xk],["__scopeId","data-v-1857dcd0"]]),Ck="modulepreload",Ek=function(e){return"/"+e},Tp={},pt=function(t,r,s){let o=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));o=Promise.all(r.map(c=>{if(c=Ek(c),c in Tp)return;Tp[c]=!0;const f=c.endsWith(".css"),h=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const p=document.createElement("link");if(p.rel=f?"stylesheet":Ck,f||(p.as="script",p.crossOrigin=""),p.href=c,u&&p.setAttribute("nonce",u),document.head.appendChild(p),f)return new Promise((m,v)=>{p.addEventListener("load",m),p.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}return o.then(()=>t()).catch(l=>{const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=l,window.dispatchEvent(u),!u.defaultPrevented)throw l})},Sk=[{path:"/",component:()=>pt(()=>import("./index-DDzIGPOz.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/discover",component:()=>pt(()=>import("./Explore-EWf9xSFe.js"),__vite__mapDeps([11,12])),meta:{title:"Discover - reAudioPlayer One"}},{path:"/audius/callback",redirect:e=>(window.location.href=window.location.origin+"/api/audius/callback"+e.hash.replace("#","?"),null)},{name:"Search",path:"/search/:query",component:()=>pt(()=>import("./index-COJauJk7.js"),__vite__mapDeps([13,14])),meta:{title:"Search - reAudioPlayer One"}},{path:"/collection/albums",component:()=>pt(()=>import("./index-DdmtJEKo.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Your Library - reAudioPlayer One"}},{path:"/collection/artists",component:()=>pt(()=>import("./index-DdmtJEKo.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Your Library - reAudioPlayer One"}},{path:"/collection/playlists",component:()=>pt(()=>import("./index-DdmtJEKo.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Your Library - reAudioPlayer One"}},{path:"/collection/releases",component:()=>pt(()=>import("./index-DdmtJEKo.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Releases - reAudioPlayer One"}},{path:"/collection/tracks",component:()=>pt(()=>import("./Liked-DtufEQ-7.js"),__vite__mapDeps([21,22,6,7,2,8,23,24,25,26,27,28,29])),meta:{title:"Liked Songs - reAudioPlayer One"}},{path:"/collection/tracks/breaking",component:()=>pt(()=>import("./Breaking-CrRiZrK7.js"),__vite__mapDeps([30,22,6,7,2,8,23,24,25,26,27,28,29])),meta:{title:"Breaking Songs - reAudioPlayer One"}},{path:"/playlist/create",component:()=>pt(()=>import("./Create-BFG6u1_V.js"),__vite__mapDeps([31,32])),meta:{title:"Create Playlist - reAudioPlayer One"}},{path:"/playlist/:id/edit",component:()=>pt(()=>import("./Editor-DmbfXMQK.js"),__vite__mapDeps([33,34,6,7,2,8,23,35])),meta:{title:"Smart Playlist Editor - reAudioPlayer One"}},{path:"/playlist/:id",component:()=>pt(()=>import("./Normal-t9fUTLMH.js"),__vite__mapDeps([36,22,6,7,2,8,23,24,25,26,27,28,29])),meta:{title:"Playlist - reAudioPlayer One"}},{path:"/track/:hash",component:()=>pt(()=>import("./Track-D6XD9ivf.js"),__vite__mapDeps([37,24,25,7,9,38])),meta:{title:"Track - reAudioPlayer One"}},{path:"/artist/:name",component:()=>pt(()=>import("./Artist-CKIwJZOU.js"),__vite__mapDeps([39,24,25,6,7,2,8,9,40])),meta:{title:"Artist - reAudioPlayer One"}},{path:"/album/:hash",component:()=>pt(()=>import("./Album-bC2Ph2Go.js"),__vite__mapDeps([41,6,7,2,8,42])),meta:{title:"Album - reAudioPlayer One"}},{path:"/preferences",component:()=>pt(()=>import("./index-TQtME7qg.js"),__vite__mapDeps([43,27,28,4,5,26,44])),meta:{title:"Preferences - reAudioPlayer One"}},{path:"/import",component:()=>pt(()=>import("./Import-BQAn0foy.js"),__vite__mapDeps([45,26,46])),meta:{title:"Import - reAudioPlayer One"}},{path:"/import/:id",component:()=>pt(()=>import("./ImportLink-rHn6Dtb7.js"),__vite__mapDeps([47,48])),meta:{title:"Import - reAudioPlayer One"}},{path:"/export",component:()=>pt(()=>import("./Export-CIApTPl3.js"),__vite__mapDeps([49,26,50])),meta:{title:"Export - reAudioPlayer One"}},{path:"/sing-along",component:()=>pt(()=>import("./index-CzJaiVRe.js"),__vite__mapDeps([51,52])),meta:{title:"Sing Along - reAudioPlayer One"}},{path:"/download",component:()=>pt(()=>import("./index-BHH0-c1C.js"),__vite__mapDeps([53,54])),meta:{title:"Download - reAudioPlayer One"}},{path:"/welcome",component:()=>pt(()=>import("./Welcome-33n2Z_ee.js"),__vite__mapDeps([55,56])),meta:{title:"Welcome to reAudioPlayer One"}},{path:"/news",component:()=>pt(()=>import("./News-CAaoZgKT.js"),__vite__mapDeps([57,16,17,58])),meta:{title:"News - reAudioPlayer One"}},{path:"/sports",component:()=>pt(()=>import("./Sports-Biicqdtn.js"),__vite__mapDeps([59,16,17,60])),meta:{title:"Sports - reAudioPlayer One"}},{path:"/news/:url",component:()=>pt(()=>import("./NewsArticle-T_O2nLK5.js"),__vite__mapDeps([61,18,19,62])),meta:{title:"News - reAudioPlayer One"}},{path:"/player/insights",component:()=>pt(()=>import("./Insight-COWQpDb9.js"),__vite__mapDeps([63,64])),meta:{title:"Insights - reAudioPlayer One"}},{path:"/player",component:()=>pt(()=>import("./index-DFsHKh13.js"),__vite__mapDeps([65,34,6,7,2,8,23,1,3,66])),meta:{title:"reAudioPlayer One"}}],Mi=ES({history:eS(),routes:Sk}),kk={class:"flex flex-row gap-2 items-center"},Ok={class:"relative flex-1"},Rk=["type","placeholder"],Tk=Ge({__name:"TextInputWithIcon",props:{icon:String,label:String,placeholder:{type:String,required:!1,default:""},modelValue:{type:String,required:!1,default:""},type:{type:String,required:!1,default:"text"},onClick:{type:Function,required:!1},expanded:{type:Boolean,required:!1,default:!1},onKeyUp:{type:Function,required:!1}},emits:["update:modelValue","change","submit","focusout"],setup(e,{expose:t,emit:r}){const s=e,o=xe(s.modelValue),l=xe(!1);at(()=>s.modelValue,p=>{o.value=p});const u=r,c=()=>{u("update:modelValue",o.value),u("change",o.value)},f=p=>{s.onKeyUp&&s.onKeyUp(p)||p.key==="Enter"&&u("submit",o)},h=xe();return t({focus:()=>{var p;(p=h.value)==null||p.focus()}}),(p,m)=>(re(),ve("div",{class:Ye(["text-input-with-icon rounded-xl flex flex-col justify-center px-4",{expanded:e.expanded}])},[te("div",kk,[e.icon?(re(),ve("span",{key:0,class:Ye([{"cursor-pointer":e.onClick},"material-symbols-rounded ms-wght-200"]),onClick:m[0]||(m[0]=(...v)=>e.onClick&&e.onClick(...v))},Ne(e.icon),3)):Me("",!0),te("div",Ok,[e.label?(re(),ve("span",{key:0,class:Ye(["text-sm label-placeholder capitalize",{atTop:!!o.value}])},Ne(e.label),3)):Me("",!0),Us(te("input",{"onUpdate:modelValue":m[1]||(m[1]=v=>o.value=v),type:e.type=="password"&&l.value?"text":e.type,placeholder:e.placeholder,onInput:c,onKeyup:f,onFocusout:m[2]||(m[2]=v=>p.$emit("focusout")),ref_key:"element",ref:h},null,40,Rk),[[xc,o.value]])]),e.type=="password"?(re(),ve("span",{key:1,class:"material-symbols-rounded cursor-pointer",onClick:m[3]||(m[3]=v=>l.value=!l.value)},Ne(l.value?"visibility":"visibility_off"),1)):Me("",!0)])],2))}}),ec=lt(Tk,[["__scopeId","data-v-7bfb9f4a"]]);var ws=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ik(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function AI(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function s(){return this instanceof s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(s){var o=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,o.get?o:{enumerable:!0,get:function(){return e[s]}})}),r}var ka={exports:{}};/** +Details: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image`));return bs(o,r.silent),!r.silent&&console.error(f),this.prepareResult(s,o)}},e.prototype.getColorFromArray4=function(t,r){r=r||{};var s=4,o=t.length,l=kp(r);if(o{const r=e.hex,s=Math.round(t*255).toString(16);return r+s},gk=async(e,t,r=.25)=>{if(!qr().ambient)return;var o=e.width/100,l=e.height/100,u=e.naturalWidth,c=e.naturalHeight;const f=await Promise.all([Ss.getColorAsync(t,{height:l}),Ss.getColorAsync(t,{left:u-o,width:o}),Ss.getColorAsync(t,{width:o}),Ss.getColorAsync(t,{top:c-l,height:l})]);o*=40,l*=40;var h=ks(f[0],r),p=ks(f[1],r),m=ks(f[2],r),v=ks(f[3],r);const g=" 10px",S=` ${o}px `,C=o+"px",I=l+"px";e.style.boxShadow=["0 -".concat(I," ").concat(S," ").concat(g," ").concat(h),"".concat(C," 0 ").concat(S," ").concat(g," ").concat(p),"0 ".concat(I," ").concat(S," ").concat(g," ").concat(m),"-".concat(C," 0 ").concat(S," ").concat(g," ").concat(v)].join(", ")},vk=async(e,t,r="to top right",s=.2)=>{if(!qr().ambient)return;const l=await Ss.getColorAsync(t),u=ks(l,s),c=`linear-gradient(${r}, ${u}, transparent)`;e.style.background=c},yk={dark:!1,dynamic:!0},_k={dark:!0,dynamic:!1},ci={"fg-secondary":{dark:"#1ed760",dynamic:"#00c48b",light:"#18a74b"},"fg-secondary-dk":{dark:"#217e41",dynamic:"#00c48b",light:"#80dda0"},"bg-contrast":{dark:"white",dynamic:"whitesmoke",light:"#181c2f"},"fg-contrast":{dark:"#121212",dynamic:"#1e1e1e",light:"white"},"fg-base":{dark:"white",dynamic:"whitesmoke",light:"#181c2f"},"fg-base-dk":{dark:"#a7a7a7",dynamic:"#c2bebe",light:"#8b8c91"},"fg-base-dkr":{dark:"#999",light:"#8b8c91",dynamic:"#999"},"bg-hover-ltr":{dark:"#242424"},"bg-hover-lt":{dark:"hsla(0,0%,100%,0.04)",light:"#b3b3b31f"},"bg-hover":{dark:"hsla(0,0%,100%,0.3)",dynamic:"#00c48b82",light:"#7c828f5e"},"bg-hover-dk":{dark:"#2a2a2a",dynamic:"#00c48b42",light:"#E3E7EB"},"bg-gradient":{dark:"linear-gradient(to left bottom, #1ed760, #217e41)",dynamic:"linear-gradient(to left bottom, #00a53c, #00297f)",light:"linear-gradient(to left bottom, #18a74b, #80dda0)"},"bg-gradient-placeholder":{dark:"linear-gradient(to left bottom, #00a53c, #00297f)"},"bg-base":{dark:"#121212",light:"white"},"bg-base-lt":{dark:"#181818",dynamic:"linear-gradient(to right bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3))",light:"#f3f7fb"},"bg-base-dk":{dark:"black",dynamic:"linear-gradient(to right bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3))",light:"#f3f7fb"},"bg-input":{dark:"var(--background-light)",light:"var(--background)"},"bg-fixedPlaylistHeader":{dark:"var(--bg-base-lt)",dynamic:"#374148"},"border-fixedPlaylistHeader":{dark:"#303030",dynamic:"none",light:"#D0D0D0"},"border-base":{dark:"hsla(0,0%,100%,0.1)",light:"#E3E7EB"},"border-container":{dark:"1px solid var(--border-base)",light:"1px solid var(--border-base)",dynamic:"1px solid transparent"},"ff-base":{dark:"Poppins, sans-serif"},"h-playlistEntry":{dark:"64px"},"h-player":{dark:"88px"},"h-player-mobile":{dark:"64px"},"h-header":{dark:"64px"},coverAsBackground:yk,supportsAmbient:_k},za=()=>qr();window.getThemes=()=>{window.themes=[];for(const e of Object.keys(ci))for(const t of Object.keys(ci[e]))window.themes.includes(t)||window.themes.push(t);return window.themes};window.getCurrentTheme=()=>za().theme;window.setTheme=e=>{if(window.getThemes().includes(e)){za().theme=e;for(const t of Object.keys(ci)){const r=ci[t];t!="coverAsBackground"&&document.documentElement.style.setProperty(`--${t}`,r[e]??r.dark)}}};window.restoreTheme=()=>window.setTheme(za().theme||"dynamic");window.getCurrentThemeProperty=e=>{const t=ci[e];return t[za().theme]??t.dark};const zg=window,bk=["alt","src"],Nr=Ge({__name:"Cover",props:{src:{type:String,required:!0},type:{type:String,required:!1,default:"track"},placeholder:{type:String,required:!1},withAmbient:{type:Boolean,required:!1,default:!1},ambientOpacity:{type:Number,required:!1,default:.2},name:{type:String,required:!1}},setup(e){const t=e,r=xe(null),s=async()=>{console.error("Failed to load cover",t.src),r.value=await Ic(t.name??"N/A")},o=xe(null),l=async()=>{t.withAmbient&&o.value&&zg.getCurrentThemeProperty("supportsAmbient")&&gk(o.value,r.value,t.ambientOpacity)};return at(()=>t.src,async()=>{r.value=await Sa(t.src,t.name??"N/A",500,t.type)}),Wt(async()=>{r.value=await Sa(t.src,t.name??"N/A",500,t.type)}),(u,c)=>(re(),ve("img",{ref_key:"element",ref:o,alt:t.type,src:r.value,class:"cover rounded-md",onError:s,onLoad:l,lazy:""},null,40,bk))}}),wk={name:"NavEntry",components:{Cover:Nr},props:{icon:String,img:String,name:String,href:String,hasChildSites:Boolean,parentHref:String,minimised:Boolean},computed:{showImg(){return this.img?!0:/^\/playlist\/\w{22}$/.exec(this.href)},active(){return this.hasChildSites?this.$route.path.includes(this.href)?!0:this.parentHref&&this.$route.path.includes(this.parentHref):!1}}},Ak={key:0,class:"material-icons-round icon"},Pk={key:2,class:"name hideIfMobile"};function xk(e,t,r,s,o,l){const u=Ui("Cover"),c=Ui("router-link");return re(),Ze(c,{to:r.href,class:"link",title:r.name},{default:kt(()=>[te("div",{class:Ye([{active:l.active,img:l.showImg},"navEntry"])},[r.icon?(re(),ve("span",Ak,Ne(r.icon),1)):Me("",!0),l.showImg?(re(),Ze(u,{key:1,src:r.img,class:"icon",type:"playlist",name:r.name},null,8,["src","name"])):Me("",!0),r.minimised?Me("",!0):(re(),ve("span",Pk,Ne(r.name),1))],2)]),_:1},8,["to","title"])}const Hn=lt(wk,[["render",xk],["__scopeId","data-v-1857dcd0"]]),Ck="modulepreload",Ek=function(e){return"/"+e},Tp={},pt=function(t,r,s){let o=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));o=Promise.all(r.map(c=>{if(c=Ek(c),c in Tp)return;Tp[c]=!0;const f=c.endsWith(".css"),h=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const p=document.createElement("link");if(p.rel=f?"stylesheet":Ck,f||(p.as="script",p.crossOrigin=""),p.href=c,u&&p.setAttribute("nonce",u),document.head.appendChild(p),f)return new Promise((m,v)=>{p.addEventListener("load",m),p.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}return o.then(()=>t()).catch(l=>{const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=l,window.dispatchEvent(u),!u.defaultPrevented)throw l})},Sk=[{path:"/",component:()=>pt(()=>import("./index-BkDfvaJu.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/discover",component:()=>pt(()=>import("./Explore-BOB5-8ee.js"),__vite__mapDeps([11,12])),meta:{title:"Discover - reAudioPlayer One"}},{path:"/audius/callback",redirect:e=>(window.location.href=window.location.origin+"/api/audius/callback"+e.hash.replace("#","?"),null)},{name:"Search",path:"/search/:query",component:()=>pt(()=>import("./index-Zw6xiVdA.js"),__vite__mapDeps([13,14])),meta:{title:"Search - reAudioPlayer One"}},{path:"/collection/albums",component:()=>pt(()=>import("./index-CAOgyRuZ.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Your Library - reAudioPlayer One"}},{path:"/collection/artists",component:()=>pt(()=>import("./index-CAOgyRuZ.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Your Library - reAudioPlayer One"}},{path:"/collection/playlists",component:()=>pt(()=>import("./index-CAOgyRuZ.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Your Library - reAudioPlayer One"}},{path:"/collection/releases",component:()=>pt(()=>import("./index-CAOgyRuZ.js"),__vite__mapDeps([15,16,17,18,19,1,2,3,20])),meta:{title:"Releases - reAudioPlayer One"}},{path:"/collection/tracks",component:()=>pt(()=>import("./Liked-D4BFut2M.js"),__vite__mapDeps([21,22,6,7,2,8,23,24,25,26,27,28,29])),meta:{title:"Liked Songs - reAudioPlayer One"}},{path:"/collection/tracks/breaking",component:()=>pt(()=>import("./Breaking-DPRuvGTm.js"),__vite__mapDeps([30,22,6,7,2,8,23,24,25,26,27,28,29])),meta:{title:"Breaking Songs - reAudioPlayer One"}},{path:"/playlist/create",component:()=>pt(()=>import("./Create-DYwjg1i9.js"),__vite__mapDeps([31,32])),meta:{title:"Create Playlist - reAudioPlayer One"}},{path:"/playlist/:id/edit",component:()=>pt(()=>import("./Editor-B5ahq8UX.js"),__vite__mapDeps([33,34,6,7,2,8,23,35])),meta:{title:"Smart Playlist Editor - reAudioPlayer One"}},{path:"/playlist/:id",component:()=>pt(()=>import("./Normal-6IztdWDo.js"),__vite__mapDeps([36,22,6,7,2,8,23,24,25,26,27,28,29])),meta:{title:"Playlist - reAudioPlayer One"}},{path:"/track/:hash",component:()=>pt(()=>import("./Track-P44IHcV3.js"),__vite__mapDeps([37,24,25,7,9,38])),meta:{title:"Track - reAudioPlayer One"}},{path:"/artist/:name",component:()=>pt(()=>import("./Artist-Dyg_PWZj.js"),__vite__mapDeps([39,24,25,6,7,2,8,9,40])),meta:{title:"Artist - reAudioPlayer One"}},{path:"/album/:hash",component:()=>pt(()=>import("./Album-wn0mZK3Y.js"),__vite__mapDeps([41,6,7,2,8,42])),meta:{title:"Album - reAudioPlayer One"}},{path:"/preferences",component:()=>pt(()=>import("./index-C-fi8mVG.js"),__vite__mapDeps([43,27,28,4,5,26,44])),meta:{title:"Preferences - reAudioPlayer One"}},{path:"/import",component:()=>pt(()=>import("./Import-Bi-f60wK.js"),__vite__mapDeps([45,26,46])),meta:{title:"Import - reAudioPlayer One"}},{path:"/import/:id",component:()=>pt(()=>import("./ImportLink-BfrRHjui.js"),__vite__mapDeps([47,48])),meta:{title:"Import - reAudioPlayer One"}},{path:"/export",component:()=>pt(()=>import("./Export-83uFVYPm.js"),__vite__mapDeps([49,26,50])),meta:{title:"Export - reAudioPlayer One"}},{path:"/sing-along",component:()=>pt(()=>import("./index-Do9z4lKS.js"),__vite__mapDeps([51,52])),meta:{title:"Sing Along - reAudioPlayer One"}},{path:"/download",component:()=>pt(()=>import("./index-BKVCga35.js"),__vite__mapDeps([53,54])),meta:{title:"Download - reAudioPlayer One"}},{path:"/welcome",component:()=>pt(()=>import("./Welcome-Bb1S_LPL.js"),__vite__mapDeps([55,56])),meta:{title:"Welcome to reAudioPlayer One"}},{path:"/news",component:()=>pt(()=>import("./News-BhI18wmL.js"),__vite__mapDeps([57,16,17,58])),meta:{title:"News - reAudioPlayer One"}},{path:"/sports",component:()=>pt(()=>import("./Sports-2rU2UkOg.js"),__vite__mapDeps([59,16,17,60])),meta:{title:"Sports - reAudioPlayer One"}},{path:"/news/:url",component:()=>pt(()=>import("./NewsArticle-BuxLkgV9.js"),__vite__mapDeps([61,18,19,62])),meta:{title:"News - reAudioPlayer One"}},{path:"/player/insights",component:()=>pt(()=>import("./Insight-Dcpuaw5C.js"),__vite__mapDeps([63,64])),meta:{title:"Insights - reAudioPlayer One"}},{path:"/player",component:()=>pt(()=>import("./index-Dd7hxnjE.js"),__vite__mapDeps([65,34,6,7,2,8,23,1,3,66])),meta:{title:"reAudioPlayer One"}}],Mi=ES({history:eS(),routes:Sk}),kk={class:"flex flex-row gap-2 items-center"},Ok={class:"relative flex-1"},Rk=["type","placeholder"],Tk=Ge({__name:"TextInputWithIcon",props:{icon:String,label:String,placeholder:{type:String,required:!1,default:""},modelValue:{type:String,required:!1,default:""},type:{type:String,required:!1,default:"text"},onClick:{type:Function,required:!1},expanded:{type:Boolean,required:!1,default:!1},onKeyUp:{type:Function,required:!1}},emits:["update:modelValue","change","submit","focusout"],setup(e,{expose:t,emit:r}){const s=e,o=xe(s.modelValue),l=xe(!1);at(()=>s.modelValue,p=>{o.value=p});const u=r,c=()=>{u("update:modelValue",o.value),u("change",o.value)},f=p=>{s.onKeyUp&&s.onKeyUp(p)||p.key==="Enter"&&u("submit",o)},h=xe();return t({focus:()=>{var p;(p=h.value)==null||p.focus()}}),(p,m)=>(re(),ve("div",{class:Ye(["text-input-with-icon rounded-xl flex flex-col justify-center px-4",{expanded:e.expanded}])},[te("div",kk,[e.icon?(re(),ve("span",{key:0,class:Ye([{"cursor-pointer":e.onClick},"material-symbols-rounded ms-wght-200"]),onClick:m[0]||(m[0]=(...v)=>e.onClick&&e.onClick(...v))},Ne(e.icon),3)):Me("",!0),te("div",Ok,[e.label?(re(),ve("span",{key:0,class:Ye(["text-sm label-placeholder capitalize",{atTop:!!o.value}])},Ne(e.label),3)):Me("",!0),Us(te("input",{"onUpdate:modelValue":m[1]||(m[1]=v=>o.value=v),type:e.type=="password"&&l.value?"text":e.type,placeholder:e.placeholder,onInput:c,onKeyup:f,onFocusout:m[2]||(m[2]=v=>p.$emit("focusout")),ref_key:"element",ref:h},null,40,Rk),[[xc,o.value]])]),e.type=="password"?(re(),ve("span",{key:1,class:"material-symbols-rounded cursor-pointer",onClick:m[3]||(m[3]=v=>l.value=!l.value)},Ne(l.value?"visibility":"visibility_off"),1)):Me("",!0)])],2))}}),ec=lt(Tk,[["__scopeId","data-v-7bfb9f4a"]]);var ws=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ik(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function AI(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function s(){return this instanceof s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(s){var o=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,o.get?o:{enumerable:!0,get:function(){return e[s]}})}),r}var ka={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors diff --git a/src/ui/dist/assets/index-DwIIj2B2.js.gz b/src/ui/dist/assets/index-DwIIj2B2.js.gz new file mode 100644 index 00000000..0ae86837 Binary files /dev/null and b/src/ui/dist/assets/index-DwIIj2B2.js.gz differ diff --git a/src/ui/dist/assets/index-K4QaY0Na.js.gz b/src/ui/dist/assets/index-K4QaY0Na.js.gz deleted file mode 100644 index dffdcede..00000000 Binary files a/src/ui/dist/assets/index-K4QaY0Na.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-TQtME7qg.js.gz b/src/ui/dist/assets/index-TQtME7qg.js.gz deleted file mode 100644 index b649f2e6..00000000 Binary files a/src/ui/dist/assets/index-TQtME7qg.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/index-COJauJk7.js b/src/ui/dist/assets/index-Zw6xiVdA.js similarity index 97% rename from src/ui/dist/assets/index-COJauJk7.js rename to src/ui/dist/assets/index-Zw6xiVdA.js index 6b6c007c..89e5170f 100644 --- a/src/ui/dist/assets/index-COJauJk7.js +++ b/src/ui/dist/assets/index-Zw6xiVdA.js @@ -1 +1 @@ -import{e as N,B as P,n as m,D as n,S as T,T as j,y as q,E as A,o as t,c as a,g as B,L,a as o,t as I,F as c,G as d,d as v,h as f,i as w,l as O,m as V,_ as D}from"./index-K4QaY0Na.js";const r=h=>(O("data-v-b436b747"),h=h(),V(),h),F={class:"search"},$={key:0,class:"fill-page"},G={key:1,class:"fill-page"},J=r(()=>o("h1",null,"Something went wrong",-1)),M={class:"top flex gap-8"},Y={class:"top min-w-max"},z=r(()=>o("h2",null,"Top Result",-1)),H={key:0,class:"list songs flex-1"},K={class:"flex justify-between items-center"},Q=r(()=>o("h2",null,"Songs",-1)),U={class:"flex flex-wrap flexibleSearchResults"},W={key:0,class:"list flex-1 min-w-[40vw] artists"},X=r(()=>o("h2",null,"Artists",-1)),Z={key:1,class:"list flex-1 min-w-[40vw] playlists"},ee=r(()=>o("h2",null,"Playlists",-1)),se={key:2,class:"list flex-1 min-w-[40vw] albums"},te=r(()=>o("h2",null,"Albums",-1)),le=N({__name:"index",setup(h){const R=P(),y=m(!0),_=m(null),p=m(!1),u=m(null),C=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s[0]}),i=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="song")}),g=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="artist")}),x=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="playlist")}),S=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="album")}),k=n(()=>R.params.query),E=n(()=>[...T,...j]),b=async()=>{y.value=!0,_.value=null;const e=await fetch("/api/search",{method:"POST",body:JSON.stringify({query:k.value,scope:E.value})});if(y.value=!1,!e.ok){_.value=await e.text();return}const s=await e.json();u.value=s};return q(b),A(k,b),(e,s)=>(t(),a("div",F,[y.value?(t(),a("div",$,[B(L)])):_.value?(t(),a("div",G,[J,o("p",null,I(_.value),1)])):(t(),a(c,{key:2},[o("div",M,[o("div",Y,[z,B(d,{item:C.value,large:""},null,8,["item"])]),i.value.length?(t(),a("div",H,[o("div",K,[Q,i.value.length>4?(t(),a("span",{key:0,class:"more cursor-pointer text-muted hover:text-primary text-sm uppercase",onClick:s[0]||(s[0]=l=>p.value=!p.value)},I(p.value?"Show less":`Show all ${i.value.length} songs`),1)):v("",!0)]),(t(!0),a(c,null,f(p.value?i.value:i.value.slice(0,4),l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0)]),o("div",U,[g.value.length?(t(),a("div",W,[X,(t(!0),a(c,null,f(g.value,l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0),x.value.length?(t(),a("div",Z,[ee,(t(!0),a(c,null,f(x.value,l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0),S.value.length?(t(),a("div",se,[te,(t(!0),a(c,null,f(S.value,l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0)])],64))]))}}),oe=D(le,[["__scopeId","data-v-b436b747"]]);export{oe as default}; +import{e as N,B as P,n as m,D as n,S as T,T as j,y as q,E as A,o as t,c as a,g as B,L,a as o,t as I,F as c,G as d,d as v,h as f,i as w,l as O,m as V,_ as D}from"./index-DwIIj2B2.js";const r=h=>(O("data-v-b436b747"),h=h(),V(),h),F={class:"search"},$={key:0,class:"fill-page"},G={key:1,class:"fill-page"},J=r(()=>o("h1",null,"Something went wrong",-1)),M={class:"top flex gap-8"},Y={class:"top min-w-max"},z=r(()=>o("h2",null,"Top Result",-1)),H={key:0,class:"list songs flex-1"},K={class:"flex justify-between items-center"},Q=r(()=>o("h2",null,"Songs",-1)),U={class:"flex flex-wrap flexibleSearchResults"},W={key:0,class:"list flex-1 min-w-[40vw] artists"},X=r(()=>o("h2",null,"Artists",-1)),Z={key:1,class:"list flex-1 min-w-[40vw] playlists"},ee=r(()=>o("h2",null,"Playlists",-1)),se={key:2,class:"list flex-1 min-w-[40vw] albums"},te=r(()=>o("h2",null,"Albums",-1)),le=N({__name:"index",setup(h){const R=P(),y=m(!0),_=m(null),p=m(!1),u=m(null),C=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s[0]}),i=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="song")}),g=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="artist")}),x=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="playlist")}),S=n(()=>{var e,s;return(s=(e=u.value)==null?void 0:e.items)==null?void 0:s.filter(l=>l.type==="album")}),k=n(()=>R.params.query),E=n(()=>[...T,...j]),b=async()=>{y.value=!0,_.value=null;const e=await fetch("/api/search",{method:"POST",body:JSON.stringify({query:k.value,scope:E.value})});if(y.value=!1,!e.ok){_.value=await e.text();return}const s=await e.json();u.value=s};return q(b),A(k,b),(e,s)=>(t(),a("div",F,[y.value?(t(),a("div",$,[B(L)])):_.value?(t(),a("div",G,[J,o("p",null,I(_.value),1)])):(t(),a(c,{key:2},[o("div",M,[o("div",Y,[z,B(d,{item:C.value,large:""},null,8,["item"])]),i.value.length?(t(),a("div",H,[o("div",K,[Q,i.value.length>4?(t(),a("span",{key:0,class:"more cursor-pointer text-muted hover:text-primary text-sm uppercase",onClick:s[0]||(s[0]=l=>p.value=!p.value)},I(p.value?"Show less":`Show all ${i.value.length} songs`),1)):v("",!0)]),(t(!0),a(c,null,f(p.value?i.value:i.value.slice(0,4),l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0)]),o("div",U,[g.value.length?(t(),a("div",W,[X,(t(!0),a(c,null,f(g.value,l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0),x.value.length?(t(),a("div",Z,[ee,(t(!0),a(c,null,f(x.value,l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0),S.value.length?(t(),a("div",se,[te,(t(!0),a(c,null,f(S.value,l=>(t(),w(d,{item:l,"show-download":""},null,8,["item"]))),256))])):v("",!0)])],64))]))}}),oe=D(le,[["__scopeId","data-v-b436b747"]]);export{oe as default}; diff --git a/src/ui/dist/assets/index-Zw6xiVdA.js.gz b/src/ui/dist/assets/index-Zw6xiVdA.js.gz new file mode 100644 index 00000000..9904165b Binary files /dev/null and b/src/ui/dist/assets/index-Zw6xiVdA.js.gz differ diff --git a/src/ui/dist/assets/spotify-DDsJS6kd.js.gz b/src/ui/dist/assets/spotify-DDsJS6kd.js.gz deleted file mode 100644 index 9ff87e7b..00000000 Binary files a/src/ui/dist/assets/spotify-DDsJS6kd.js.gz and /dev/null differ diff --git a/src/ui/dist/assets/spotify-DDsJS6kd.js b/src/ui/dist/assets/spotify-nGujcJNw.js similarity index 93% rename from src/ui/dist/assets/spotify-DDsJS6kd.js rename to src/ui/dist/assets/spotify-nGujcJNw.js index d0fd87c5..68161fd2 100644 --- a/src/ui/dist/assets/spotify-DDsJS6kd.js +++ b/src/ui/dist/assets/spotify-nGujcJNw.js @@ -1 +1 @@ -import{o as c,c as e,a as o}from"./index-K4QaY0Na.js";const t={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 168 168"},s=o("path",{fill:"#111",d:"M83.996.277C37.747.277.253 37.77.253 84.019c0 46.251 37.494 83.741 83.743 83.741 46.254 0 83.744-37.49 83.744-83.741 0-46.246-37.49-83.738-83.745-83.738l.001-.004zm38.404 120.78a5.217 5.217 0 0 1-7.18 1.73c-19.662-12.01-44.414-14.73-73.564-8.07a5.222 5.222 0 0 1-6.249-3.93 5.213 5.213 0 0 1 3.926-6.25c31.9-7.291 59.263-4.15 81.337 9.34 2.46 1.51 3.24 4.72 1.73 7.18zm10.25-22.805c-1.89 3.075-5.91 4.045-8.98 2.155-22.51-13.839-56.823-17.846-83.448-9.764-3.453 1.043-7.1-.903-8.148-4.35a6.538 6.538 0 0 1 4.354-8.143c30.413-9.228 68.222-4.758 94.072 11.127 3.07 1.89 4.04 5.91 2.15 8.976v-.001zm.88-23.744c-26.99-16.031-71.52-17.505-97.289-9.684-4.138 1.255-8.514-1.081-9.768-5.219a7.835 7.835 0 0 1 5.221-9.771c29.581-8.98 78.756-7.245 109.83 11.202a7.823 7.823 0 0 1 2.74 10.733c-2.2 3.722-7.02 4.949-10.73 2.739z"},null,-1),a=[s];function n(r,l){return c(),e("svg",t,[...a])}const _={render:n};export{_ as s}; +import{o as c,c as e,a as o}from"./index-DwIIj2B2.js";const t={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 168 168"},s=o("path",{fill:"#111",d:"M83.996.277C37.747.277.253 37.77.253 84.019c0 46.251 37.494 83.741 83.743 83.741 46.254 0 83.744-37.49 83.744-83.741 0-46.246-37.49-83.738-83.745-83.738l.001-.004zm38.404 120.78a5.217 5.217 0 0 1-7.18 1.73c-19.662-12.01-44.414-14.73-73.564-8.07a5.222 5.222 0 0 1-6.249-3.93 5.213 5.213 0 0 1 3.926-6.25c31.9-7.291 59.263-4.15 81.337 9.34 2.46 1.51 3.24 4.72 1.73 7.18zm10.25-22.805c-1.89 3.075-5.91 4.045-8.98 2.155-22.51-13.839-56.823-17.846-83.448-9.764-3.453 1.043-7.1-.903-8.148-4.35a6.538 6.538 0 0 1 4.354-8.143c30.413-9.228 68.222-4.758 94.072 11.127 3.07 1.89 4.04 5.91 2.15 8.976v-.001zm.88-23.744c-26.99-16.031-71.52-17.505-97.289-9.684-4.138 1.255-8.514-1.081-9.768-5.219a7.835 7.835 0 0 1 5.221-9.771c29.581-8.98 78.756-7.245 109.83 11.202a7.823 7.823 0 0 1 2.74 10.733c-2.2 3.722-7.02 4.949-10.73 2.739z"},null,-1),a=[s];function n(r,l){return c(),e("svg",t,[...a])}const _={render:n};export{_ as s}; diff --git a/src/ui/dist/assets/spotify-nGujcJNw.js.gz b/src/ui/dist/assets/spotify-nGujcJNw.js.gz new file mode 100644 index 00000000..1e977cd1 Binary files /dev/null and b/src/ui/dist/assets/spotify-nGujcJNw.js.gz differ diff --git a/src/ui/dist/assets/vuedraggable.umd-YqWWrJTC.js b/src/ui/dist/assets/vuedraggable.umd-CFJncbti.js similarity index 99% rename from src/ui/dist/assets/vuedraggable.umd-YqWWrJTC.js rename to src/ui/dist/assets/vuedraggable.umd-CFJncbti.js index 2f34e260..4fdbbea2 100644 --- a/src/ui/dist/assets/vuedraggable.umd-YqWWrJTC.js +++ b/src/ui/dist/assets/vuedraggable.umd-CFJncbti.js @@ -1,4 +1,4 @@ -import{aQ as Br,aR as Kr,aS as Hr,aT as Vr,aU as Wr,aV as Xr,aW as Yr,F as zr,aX as Jr,aY as Qr,aZ as Zr,a_ as kr,a6 as qr,a$ as _r,b0 as tn,b1 as en,b2 as rn,b3 as nn,b4 as on,b5 as an,b6 as sn,b7 as ln,b8 as fn,b9 as un,ba as cn,bb as dn,D as vn,bc as hn,i as pn,d as gn,c as mn,a as yn,bd as Sn,be as bn,bf as En,bg as xn,bh as On,as as Tn,b as In,g as Pn,bi as Dn,bj as Cn,e as An,bk as Rn,bl as Mn,bm as Nn,bn as jn,bo as wn,bp as Fn,bq as Ln,br as Un,bs as Gn,bt as $n,bu as Bn,bv as Kn,bw as Hn,bx as Vn,by as Wn,bz as Xn,bA as Yn,bB as zn,bC as Jn,bD as Qn,bE as Zn,bF as kn,bG as qn,bH as _n,bI as to,bJ as eo,bK as ro,bL as no,bM as oo,bN as ao,bO as io,bP as so,bQ as lo,bR as fo,R as uo,Q as co,bS as vo,z as ho,bT as po,bU as go,bV as mo,bW as yo,bX as So,bY as bo,y as Eo,bZ as xo,b_ as Oo,b$ as To,c0 as Io,c1 as Po,c2 as Do,o as Co,m as Ao,c3 as Ro,c4 as Mo,l as No,c5 as jo,c6 as wo,c7 as Fo,n as Lo,c8 as Uo,c9 as Go,h as $o,r as Bo,f as Ko,ad as Ho,U as Vo,ca as Wo,cb as Xo,cc as Yo,cd as zo,ce as Jo,cf as Qo,cg as Zo,ch as ko,ci as qo,cj as _o,ck as ta,t as ea,cl as ra,cm as na,cn as oa,co as aa,cp as ia,cq as sa,cr as la,cs as fa,u as ua,ct as ca,cu as da,cv as va,cw as ha,cx as pa,cy as ga,cz as ma,cA as ya,cB as Sa,cC as ba,cD as Ea,a4 as xa,ah as Oa,cE as Ta,cF as Ia,E as Pa,a2 as Da,cG as Ca,cH as Aa,cI as Ra,w as Ma,cJ as Na,a3 as ja,a5 as wa,cK as Fa,O as La,cL as Ua,aA as Pr,cM as Ga,aB as $a}from"./index-K4QaY0Na.js";/** +import{aQ as Br,aR as Kr,aS as Hr,aT as Vr,aU as Wr,aV as Xr,aW as Yr,F as zr,aX as Jr,aY as Qr,aZ as Zr,a_ as kr,a6 as qr,a$ as _r,b0 as tn,b1 as en,b2 as rn,b3 as nn,b4 as on,b5 as an,b6 as sn,b7 as ln,b8 as fn,b9 as un,ba as cn,bb as dn,D as vn,bc as hn,i as pn,d as gn,c as mn,a as yn,bd as Sn,be as bn,bf as En,bg as xn,bh as On,as as Tn,b as In,g as Pn,bi as Dn,bj as Cn,e as An,bk as Rn,bl as Mn,bm as Nn,bn as jn,bo as wn,bp as Fn,bq as Ln,br as Un,bs as Gn,bt as $n,bu as Bn,bv as Kn,bw as Hn,bx as Vn,by as Wn,bz as Xn,bA as Yn,bB as zn,bC as Jn,bD as Qn,bE as Zn,bF as kn,bG as qn,bH as _n,bI as to,bJ as eo,bK as ro,bL as no,bM as oo,bN as ao,bO as io,bP as so,bQ as lo,bR as fo,R as uo,Q as co,bS as vo,z as ho,bT as po,bU as go,bV as mo,bW as yo,bX as So,bY as bo,y as Eo,bZ as xo,b_ as Oo,b$ as To,c0 as Io,c1 as Po,c2 as Do,o as Co,m as Ao,c3 as Ro,c4 as Mo,l as No,c5 as jo,c6 as wo,c7 as Fo,n as Lo,c8 as Uo,c9 as Go,h as $o,r as Bo,f as Ko,ad as Ho,U as Vo,ca as Wo,cb as Xo,cc as Yo,cd as zo,ce as Jo,cf as Qo,cg as Zo,ch as ko,ci as qo,cj as _o,ck as ta,t as ea,cl as ra,cm as na,cn as oa,co as aa,cp as ia,cq as sa,cr as la,cs as fa,u as ua,ct as ca,cu as da,cv as va,cw as ha,cx as pa,cy as ga,cz as ma,cA as ya,cB as Sa,cC as ba,cD as Ea,a4 as xa,ah as Oa,cE as Ta,cF as Ia,E as Pa,a2 as Da,cG as Ca,cH as Aa,cI as Ra,w as Ma,cJ as Na,a3 as ja,a5 as wa,cK as Fa,O as La,cL as Ua,aA as Pr,cM as Ga,aB as $a}from"./index-DwIIj2B2.js";/** * vue v3.4.30 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT diff --git a/src/ui/dist/assets/vuedraggable.umd-CFJncbti.js.gz b/src/ui/dist/assets/vuedraggable.umd-CFJncbti.js.gz new file mode 100644 index 00000000..b17ecd4a Binary files /dev/null and b/src/ui/dist/assets/vuedraggable.umd-CFJncbti.js.gz differ diff --git a/src/ui/dist/assets/vuedraggable.umd-YqWWrJTC.js.gz b/src/ui/dist/assets/vuedraggable.umd-YqWWrJTC.js.gz deleted file mode 100644 index 3fdd077a..00000000 Binary files a/src/ui/dist/assets/vuedraggable.umd-YqWWrJTC.js.gz and /dev/null differ diff --git a/src/ui/dist/index.html b/src/ui/dist/index.html index 1cce5150..c9e47f71 100644 --- a/src/ui/dist/index.html +++ b/src/ui/dist/index.html @@ -43,7 +43,7 @@ reAudioPlayer One - + diff --git a/src/ui/dist/index.html.gz b/src/ui/dist/index.html.gz index e23b5189..4e3a30f0 100644 Binary files a/src/ui/dist/index.html.gz and b/src/ui/dist/index.html.gz differ diff --git a/src/ui/dist/sw.js b/src/ui/dist/sw.js index d047a5ae..ad5bf072 100644 --- a/src/ui/dist/sw.js +++ b/src/ui/dist/sw.js @@ -1 +1 @@ -if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(i,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let u={};const t=s=>l(s,n),o={module:{uri:n},exports:u,require:t};e[n]=Promise.all(i.map((s=>o[s]||t(s)))).then((s=>(r(...s),u)))}}define(["./workbox-3e911b1d"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/Album-bC2Ph2Go.js",revision:null},{url:"assets/Album-BkvN1zsQ.css",revision:null},{url:"assets/Artist-CKIwJZOU.js",revision:null},{url:"assets/Artist-DAREyzq0.css",revision:null},{url:"assets/Breaking-CrRiZrK7.js",revision:null},{url:"assets/Create-BFG6u1_V.js",revision:null},{url:"assets/Create-Cv1N05w-.css",revision:null},{url:"assets/Editor-DJucXreQ.css",revision:null},{url:"assets/Editor-DmbfXMQK.js",revision:null},{url:"assets/EditSong.vue_vue_type_script_setup_true_lang-wWkOSMWV.js",revision:null},{url:"assets/Error-BUy8S0OX.css",revision:null},{url:"assets/Error-JcTZ1TEX.js",revision:null},{url:"assets/Explore-BBlOvIn4.css",revision:null},{url:"assets/Explore-EWf9xSFe.js",revision:null},{url:"assets/Export-CIApTPl3.js",revision:null},{url:"assets/Export-DQXjuUsA.css",revision:null},{url:"assets/FactCard-BZwd6pEI.js",revision:null},{url:"assets/FactCard-ei9UWMOf.css",revision:null},{url:"assets/FullShelf-CoDkvkMi.css",revision:null},{url:"assets/FullShelf-LmwXLqci.js",revision:null},{url:"assets/gistClient-ZdZsfTR6.js",revision:null},{url:"assets/Import-BQAn0foy.js",revision:null},{url:"assets/Import-D3M1Q5kJ.css",revision:null},{url:"assets/ImportLink-CQI6kQMZ.css",revision:null},{url:"assets/ImportLink-rHn6Dtb7.js",revision:null},{url:"assets/index-BbxuzHud.css",revision:null},{url:"assets/index-BHH0-c1C.js",revision:null},{url:"assets/index-C079_Y4G.css",revision:null},{url:"assets/index-CdmmmwlV.css",revision:null},{url:"assets/index-Cf_PZYAP.css",revision:null},{url:"assets/index-COJauJk7.js",revision:null},{url:"assets/index-CzJaiVRe.js",revision:null},{url:"assets/index-D0hrk0n_.css",revision:null},{url:"assets/index-DdmtJEKo.js",revision:null},{url:"assets/index-DDzIGPOz.js",revision:null},{url:"assets/index-DFsHKh13.js",revision:null},{url:"assets/index-DlDXuqe7.css",revision:null},{url:"assets/index-DROyR8KO.css",revision:null},{url:"assets/index-DxYRwVd6.css",revision:null},{url:"assets/index-K4QaY0Na.js",revision:null},{url:"assets/index-TQtME7qg.js",revision:null},{url:"assets/Insight-BJxao_m3.css",revision:null},{url:"assets/Insight-COWQpDb9.js",revision:null},{url:"assets/Liked-DtufEQ-7.js",revision:null},{url:"assets/Markdown-BUqZ792e.css",revision:null},{url:"assets/Markdown.vue_vue_type_style_index_0_lang-CdGPxDxP.js",revision:null},{url:"assets/needles/needles-worker.js",revision:null},{url:"assets/News-BoNOrken.css",revision:null},{url:"assets/News-CAaoZgKT.js",revision:null},{url:"assets/NewsArticle-T_O2nLK5.js",revision:null},{url:"assets/NewsArticle-usse9HTo.css",revision:null},{url:"assets/Normal-t9fUTLMH.js",revision:null},{url:"assets/playerInPicture-Dfp9IAsf.js",revision:null},{url:"assets/Playlist.vue_vue_type_script_setup_true_lang-C_NYGfVL.js",revision:null},{url:"assets/PlaylistCard-cgcHOGv5.css",revision:null},{url:"assets/PlaylistCard-DXOdXptp.js",revision:null},{url:"assets/PlaylistEntry-9wUfG8hQ.js",revision:null},{url:"assets/PlaylistEntry-D6o1lH9d.css",revision:null},{url:"assets/Sports-_g5alLYh.css",revision:null},{url:"assets/Sports-Biicqdtn.js",revision:null},{url:"assets/spotify-DDsJS6kd.js",revision:null},{url:"assets/Template-BJ9qkRi1.js",revision:null},{url:"assets/Template-CUtHidNi.css",revision:null},{url:"assets/Track-D6XD9ivf.js",revision:null},{url:"assets/Track-DHk9ReWZ.css",revision:null},{url:"assets/TrackCompact-BEkVSTOB.css",revision:null},{url:"assets/TrackCompact-CmSbwToc.js",revision:null},{url:"assets/vuedraggable.umd-YqWWrJTC.js",revision:null},{url:"assets/Welcome-33n2Z_ee.js",revision:null},{url:"assets/Welcome-C-n9EV-1.css",revision:null},{url:"index.html",revision:"de17cffdbf15ae9e47a73012f19b3744"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"favicon.png",revision:"81eb710c3fadc823ae3bb676eacf1795"},{url:"manifest.webmanifest",revision:"54fda1775a89a999bda4c67bd363bb64"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/^\/api/]}))})); +if(!self.define){let s,l={};const e=(e,i)=>(e=new URL(e+".js",i).href,l[e]||new Promise((l=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=l,document.head.appendChild(s)}else s=e,importScripts(e),l()})).then((()=>{let s=l[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(i,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(l[n])return;let u={};const t=s=>e(s,n),o={module:{uri:n},exports:u,require:t};l[n]=Promise.all(i.map((s=>o[s]||t(s)))).then((s=>(r(...s),u)))}}define(["./workbox-3e911b1d"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/Album-BkvN1zsQ.css",revision:null},{url:"assets/Album-wn0mZK3Y.js",revision:null},{url:"assets/Artist-DAREyzq0.css",revision:null},{url:"assets/Artist-Dyg_PWZj.js",revision:null},{url:"assets/Breaking-DPRuvGTm.js",revision:null},{url:"assets/Create-Cv1N05w-.css",revision:null},{url:"assets/Create-DYwjg1i9.js",revision:null},{url:"assets/Editor-B5ahq8UX.js",revision:null},{url:"assets/Editor-DJucXreQ.css",revision:null},{url:"assets/EditSong.vue_vue_type_script_setup_true_lang-rwov98jA.js",revision:null},{url:"assets/Error-B8FoxyVg.js",revision:null},{url:"assets/Error-BUy8S0OX.css",revision:null},{url:"assets/Explore-BBlOvIn4.css",revision:null},{url:"assets/Explore-BOB5-8ee.js",revision:null},{url:"assets/Export-83uFVYPm.js",revision:null},{url:"assets/Export-DQXjuUsA.css",revision:null},{url:"assets/FactCard-DB8qPuqq.js",revision:null},{url:"assets/FactCard-ei9UWMOf.css",revision:null},{url:"assets/FullShelf-CoDkvkMi.css",revision:null},{url:"assets/FullShelf-NKKvCiyP.js",revision:null},{url:"assets/gistClient-BfrJnK9Z.js",revision:null},{url:"assets/Import-Bi-f60wK.js",revision:null},{url:"assets/Import-D3M1Q5kJ.css",revision:null},{url:"assets/ImportLink-BfrRHjui.js",revision:null},{url:"assets/ImportLink-CQI6kQMZ.css",revision:null},{url:"assets/index-BbxuzHud.css",revision:null},{url:"assets/index-BkDfvaJu.js",revision:null},{url:"assets/index-BKVCga35.js",revision:null},{url:"assets/index-BVo38SBx.css",revision:null},{url:"assets/index-C-fi8mVG.js",revision:null},{url:"assets/index-C079_Y4G.css",revision:null},{url:"assets/index-CAOgyRuZ.js",revision:null},{url:"assets/index-CdmmmwlV.css",revision:null},{url:"assets/index-Cf_PZYAP.css",revision:null},{url:"assets/index-Cv8GyS-k.css",revision:null},{url:"assets/index-Dd7hxnjE.js",revision:null},{url:"assets/index-DlDXuqe7.css",revision:null},{url:"assets/index-Do9z4lKS.js",revision:null},{url:"assets/index-DwIIj2B2.js",revision:null},{url:"assets/index-DxYRwVd6.css",revision:null},{url:"assets/index-Zw6xiVdA.js",revision:null},{url:"assets/Insight-BJxao_m3.css",revision:null},{url:"assets/Insight-Dcpuaw5C.js",revision:null},{url:"assets/Liked-D4BFut2M.js",revision:null},{url:"assets/Markdown-BUqZ792e.css",revision:null},{url:"assets/Markdown.vue_vue_type_style_index_0_lang-072OuJni.js",revision:null},{url:"assets/needles/needles-worker.js",revision:null},{url:"assets/News-BhI18wmL.js",revision:null},{url:"assets/News-BoNOrken.css",revision:null},{url:"assets/NewsArticle-BuxLkgV9.js",revision:null},{url:"assets/NewsArticle-usse9HTo.css",revision:null},{url:"assets/Normal-6IztdWDo.js",revision:null},{url:"assets/playerInPicture-Dfp9IAsf.js",revision:null},{url:"assets/Playlist.vue_vue_type_script_setup_true_lang-Dtg6molU.js",revision:null},{url:"assets/PlaylistCard-cgcHOGv5.css",revision:null},{url:"assets/PlaylistCard-CLiKXXKR.js",revision:null},{url:"assets/PlaylistEntry-D6o1lH9d.css",revision:null},{url:"assets/PlaylistEntry-oyklgbh5.js",revision:null},{url:"assets/Sports-_g5alLYh.css",revision:null},{url:"assets/Sports-2rU2UkOg.js",revision:null},{url:"assets/spotify-nGujcJNw.js",revision:null},{url:"assets/Template-CpDXJr_0.js",revision:null},{url:"assets/Template-CUtHidNi.css",revision:null},{url:"assets/Track-DHk9ReWZ.css",revision:null},{url:"assets/Track-P44IHcV3.js",revision:null},{url:"assets/TrackCompact-BEkVSTOB.css",revision:null},{url:"assets/TrackCompact-CAEHpsO2.js",revision:null},{url:"assets/vuedraggable.umd-CFJncbti.js",revision:null},{url:"assets/Welcome-Bb1S_LPL.js",revision:null},{url:"assets/Welcome-C-n9EV-1.css",revision:null},{url:"index.html",revision:"e32026753db8628191df583176eab002"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"favicon.png",revision:"81eb710c3fadc823ae3bb676eacf1795"},{url:"manifest.webmanifest",revision:"54fda1775a89a999bda4c67bd363bb64"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/^\/api/]}))}));