[web] Revert back to having one chunk of JavaScript for the web interface

This commit is contained in:
Alain Nussbaumer 2023-12-15 17:28:33 +01:00
parent a076a6d47f
commit abbd02e925
77 changed files with 103 additions and 215 deletions

View File

@ -23,79 +23,6 @@ if COND_WEBINTERFACE
htdocsassetsdir = $(datadir)/owntone/htdocs/assets
dist_htdocsassets_DATA = \
assets/ContentWithHeading.js \
assets/ContentWithHero.js \
assets/ControlDropdown.js \
assets/CoverArtwork.js \
assets/GroupByList.js \
assets/IndexButtonList.js \
assets/ListAlbums.js \
assets/ListArtists.js \
assets/ListComposers.js \
assets/ListGenres.js \
assets/ListItemAlbumSpotify.js \
assets/ListItemPlaylistSpotify.js \
assets/ListPlaylists.js \
assets/ListTracks.css \
assets/ListTracks.js \
assets/ModalDialogAlbum.js \
assets/ModalDialogAlbumSpotify.js \
assets/ModalDialogArtist.js \
assets/ModalDialogArtistSpotify.js \
assets/ModalDialogComposer.js \
assets/ModalDialogGenre.js \
assets/ModalDialogPlaylist.js \
assets/ModalDialogPlaylistSpotify.js \
assets/ModalDialogQueueItem.js \
assets/ModalDialogTrackSpotify.js \
assets/PageAbout.js \
assets/PageAlbum.js \
assets/PageAlbumSpotify.js \
assets/PageAlbums.js \
assets/PageArtist.js \
assets/PageArtistSpotify.js \
assets/PageArtistTracks.js \
assets/PageArtists.js \
assets/PageAudiobooksAlbum.js \
assets/PageAudiobooksAlbums.js \
assets/PageAudiobooksArtist.js \
assets/PageAudiobooksArtists.js \
assets/PageAudiobooksGenres.js \
assets/PageComposerAlbums.js \
assets/PageComposerTracks.js \
assets/PageComposers.js \
assets/PageFiles.js \
assets/PageGenreAlbums.js \
assets/PageGenreTracks.js \
assets/PageGenres.js \
assets/PageMusic.js \
assets/PageMusicRecentlyAdded.js \
assets/PageMusicRecentlyPlayed.js \
assets/PageMusicSpotify.js \
assets/PageMusicSpotifyFeaturedPlaylists.js \
assets/PageMusicSpotifyNewReleases.js \
assets/PageNowPlaying.css \
assets/PageNowPlaying.js \
assets/PagePlaylistFolder.js \
assets/PagePlaylistTracks.js \
assets/PagePlaylistTracksSpotify.js \
assets/PagePodcast.js \
assets/PagePodcasts.js \
assets/PageQueue.js \
assets/PageRadioStreams.js \
assets/PageSearchLibrary.js \
assets/PageSearchSpotify.js \
assets/PageSettingsArtwork.js \
assets/PageSettingsOnlineServices.js \
assets/PageSettingsRemotesOutputs.js \
assets/PageSettingsWebinterface.js \
assets/SettingsCheckbox.js \
assets/TabsAudiobooks.js \
assets/TabsMusic.js \
assets/TabsSearch.js \
assets/TabsSettings.js \
assets/index.css \
assets/index.js \
assets/spotify-web-api.js \
assets/vue-eternal-loading.js
assets/index.js
endif

View File

@ -1 +0,0 @@
import{_,r as n,o as l,c as r,a as s,z as t,d as a,w as p,k as m,q as v}from"./index.js";const f={name:"ContentWithHeading",data(){return{options_visible:!1}},computed:{icon_name(){return this.options_visible?"chevron-up":"chevron-down"},position(){return{hash:this.options_visible?"#top":"#app"}}},mounted(){this.$slots.options&&(this.observer=new IntersectionObserver(this.onElementObserved,{rootMargin:"-82px 0px 0px 0px",threshold:1}),this.observer.observe(this.$refs.options_ref))},methods:{onElementObserved(e){e.forEach(({target:c,isIntersecting:o})=>{this.options_visible=o})},visibilityChanged(e){this.options_visible=e}}},u={class:"section"},b={class:"container"},g={class:"columns is-centered"},$={class:"column is-four-fifths"},k={key:0},C={ref:"options_ref",style:{height:"1px"}},x={class:"buttons is-centered mt-4 mb-2"},w={id:"top",class:"level is-clipped"},E={class:"level-left is-flex-shrink-1"},y={class:"level-item is-flex-shrink-1 has-text-centered-mobile"},z={class:"level-right has-text-centered-mobile"},B={class:"mt-4"};function N(e,c,o,O,V,i){const d=n("mdicon"),h=n("router-link");return l(),r("section",u,[s("div",b,[s("div",g,[s("div",$,[e.$slots.options?(l(),r("section",k,[s("div",C,null,512),t(e.$slots,"options"),s("nav",x,[a(h,{class:"button is-small is-white",to:i.position},{default:p(()=>[a(d,{class:"icon is-small",name:i.icon_name,size:"16"},null,8,["name"])]),_:1},8,["to"])])])):m("",!0),s("div",{class:v({"is-full-height":e.$slots.options})},[s("nav",w,[s("div",E,[s("div",y,[s("div",null,[t(e.$slots,"heading-left")])])]),s("div",z,[t(e.$slots,"heading-right")])]),t(e.$slots,"content"),s("div",B,[t(e.$slots,"footer")])],2)])])])])}const W=_(f,[["render",N]]);export{W as C};

View File

@ -1 +0,0 @@
import{_ as t,o as c,c as i,a as s,z as e,F as n}from"./index.js";const d={},l={class:"hero is-light is-bold"},a={class:"hero-body"},r={class:"container"},_={class:"columns is-centered"},h={class:"column is-four-fifths"},f={class:"columns is-flex-direction-row-reverse"},m={class:"column fd-has-cover"},u={class:"column m-auto is-three-fifths has-text-centered-mobile"},v={class:"section pt-0"},g={class:"container"},p={class:"columns is-centered"},$={class:"column is-four-fifths"};function b(o,B){return c(),i(n,null,[s("section",l,[s("div",a,[s("div",r,[s("div",_,[s("div",h,[s("div",f,[s("div",m,[e(o.$slots,"heading-right")]),s("div",u,[e(o.$slots,"heading-left")])])])])])])]),s("section",v,[s("div",g,[s("div",p,[s("div",$,[e(o.$slots,"content"),e(o.$slots,"footer")])])])])],64)}const C=t(d,[["render",b]]);export{C};

View File

@ -1 +0,0 @@
import{_ as u,r as v,L as m,j as C,o as i,c as a,a as o,t as d,d as h,F as w,f,q as l}from"./index.js";const k={name:"ControlDropdown",props:["value","options"],emits:["update:value"],data(){return{is_active:!1}},computed:{option:{get(){return this.options.find(e=>e.id===this.value)}}},methods:{onClickOutside(e){this.is_active=!1},select(e){this.is_active=!1,this.$emit("update:value",e.id)}}},x={class:"dropdown-trigger"},g=["textContent"],D={id:"dropdown",class:"dropdown-menu",role:"menu"},y={class:"dropdown-content"},B=["onClick","textContent"];function b(e,c,r,z,s,n){const _=v("mdicon"),p=m("click-away");return C((i(),a("div",{class:l(["dropdown",{"is-active":s.is_active}])},[o("div",x,[o("button",{class:"button","aria-haspopup":"true","aria-controls":"dropdown",onClick:c[0]||(c[0]=t=>s.is_active=!s.is_active)},[o("span",{textContent:d(n.option.name)},null,8,g),h(_,{class:"icon",name:"chevron-down",size:"16"})])]),o("div",D,[o("div",y,[(i(!0),a(w,null,f(r.options,t=>(i(),a("a",{key:t.id,class:l(["dropdown-item",{"is-active":r.value===t.id}]),onClick:F=>n.select(t),textContent:d(t.name)},null,10,B))),128))])])],2)),[[p,n.onClickOutside]])}const N=u(k,[["render",b]]);export{N as C};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{N as p}from"./index.js";const{t:u,locale:a}=p.global,m="GROUP_KEY_NONE";function l(){return{compareFn:null,groupKeyFn:s=>m}}function y(s,r=!1,t="_"){return{compareFn:r?null:(e,n)=>{const o=e[s]||t,i=n[s]||t;return o.localeCompare(i,a.value)},groupKeyFn:e=>{const n=(e[s]||t).charAt(0);return n.match(new RegExp("\\p{Letter}","gu"))?n.toUpperCase():n.match(new RegExp("\\p{Number}","gu"))?"#":"⌘"}}}function h(s,{direction:r="asc",defaultValue:t=0}){return{compareFn:(e,n)=>{const o=e[s]||t,i=n[s]||t,c=o-i;return r==="asc"?c:c*-1},groupKeyFn:e=>{const n=e[s]||t;return Math.floor(n/10)}}}function f(s,r="asc",t=1){return{compareFn:(e,n)=>{const o=e[s]||t,i=n[s]||t,c=o-i;return r==="asc"?c:c*-1},groupKeyFn:e=>e[s]||t}}function F(s,{direction:r="asc",defaultValue:t="0000"}){return{compareFn:(e,n)=>{const o=e[s]||t,i=n[s]||t,c=o.localeCompare(i,a.value);return r==="asc"?c:c*-1},groupKeyFn:e=>(e[s]||t).substring(0,4)}}function b(s,r="0000"){return{compareFn:(t,e)=>{const n=t[s]||r;return(e[s]||r).localeCompare(n,a.value)},groupKeyFn:t=>{const e=t[s];if(!e)return r;const n=new Date().getTime()-new Date(e).getTime();return n<864e5?u("group-by-list.today"):n<6048e5?u("group-by-list.last-week"):n<2592e6?u("group-by-list.last-month"):e.substring(0,4)}}}class d{constructor({items:r=[],total:t=0,offset:e=0,limit:n=-1}={}){this.items=r,this.total=t,this.offset=e,this.limit=n,this.count=r.length,this.indexList=[],this.group(l())}isEmpty(){return!this.items||this.items.length<=0}group(r,t=[]){const e=t?this.items.filter(o=>t.every(i=>i(o))):this.items;this.count=e.length;const n=r.compareFn?[...e].sort(r.compareFn):e;this.indexList=[...new Set(n.map(r.groupKeyFn))],this.itemsGrouped=n.reduce((o,i)=>{const c=r.groupKeyFn(i);return o[c]=[...o[c]||[],i],o},{})}*generate(){for(const r in this.itemsGrouped){r!==m&&(yield{groupKey:r,itemId:r,isItem:!1,item:{}});for(const t of this.itemsGrouped[r])yield{groupKey:r,itemId:t.id,isItem:!0,item:t}}}[Symbol.iterator](){return this.generate()}}export{d as G,y as a,f as b,F as c,h as d,b as e,l as n};

View File

@ -1 +0,0 @@
import{_ as a,r,o as t,c as s,a as c,F as i,f as l,g as _,w as u,b as d,t as p}from"./index.js";const m={name:"IndexButtonList",props:["index"]},x={class:"buttons is-centered mb-4 fd-is-square"};function f(k,B,n,b,g,h){const o=r("router-link");return t(),s("section",null,[c("nav",x,[(t(!0),s(i,null,l(n.index,e=>(t(),_(o,{key:e,class:"button is-small",to:"#index_"+e},{default:u(()=>[d(p(e),1)]),_:2},1032,["to"]))),128))])])}const L=a(m,[["render",f]]);export{L as I};

View File

@ -1 +0,0 @@
import{C}from"./CoverArtwork.js";import{_ as b,M as y,e as c,r,o as i,c as a,F as h,f as x,a as s,t as l,d as m,k as p,h as $,g as B,w as D,b as u,B as M}from"./index.js";import{M as A}from"./ModalDialogAlbum.js";const L={name:"ListAlbums",components:{CoverArtwork:C,ModalDialog:y,ModalDialogAlbum:A},props:["albums","media_kind","hide_group_title"],emits:["play-count-changed","podcast-deleted"],data(){return{show_details_modal:!1,selected_album:{},show_remove_podcast_modal:!1,rss_playlist_to_remove:{}}},computed:{is_visible_artwork(){return this.$store.getters.settings_option("webinterface","show_cover_artwork_in_album_lists").value},media_kind_resolved(){return this.media_kind?this.media_kind:this.selected_album.media_kind}},methods:{open_album(t){this.selected_album=t,this.media_kind_resolved==="podcast"?this.$router.push({name:"podcast",params:{id:t.id}}):this.media_kind_resolved==="audiobook"?this.$router.push({name:"audiobooks-album",params:{id:t.id}}):this.$router.push({name:"music-album",params:{id:t.id}})},open_dialog(t){this.selected_album=t,this.show_details_modal=!0},open_remove_podcast_dialog(){c.library_album_tracks(this.selected_album.id,{limit:1}).then(({data:t})=>{c.library_track_playlists(t.items[0].id).then(({data:o})=>{this.rss_playlist_to_remove=o.items.filter(_=>_.type==="rss")[0],this.show_remove_podcast_modal=!0,this.show_details_modal=!1})})},play_count_changed(){this.$emit("play-count-changed")},remove_podcast(){this.show_remove_podcast_modal=!1,c.library_playlist_delete(this.rss_playlist_to_remove.id).then(()=>{this.$emit("podcast-deleted")})}}},N={key:0,class:"mt-6 mb-5 py-2"},V=["id","textContent"],I=["onClick"],z={key:0,class:"media-left"},F={class:"media-content is-clickable is-clipped"},K=["textContent"],P=["textContent"],T=["textContent"],E={class:"media-right"},R=["onClick"],S=["textContent"],j={class:"is-size-7"},q=["textContent"],G=["textContent"];function H(t,o,_,J,n,d){const v=r("cover-artwork"),k=r("mdicon"),g=r("modal-dialog-album"),w=r("modal-dialog");return i(),a(h,null,[(i(!0),a(h,null,x(_.albums,e=>(i(),a(h,{key:e.itemId},[!e.isItem&&!_.hide_group_title?(i(),a("div",N,[s("span",{id:"index_"+e.groupKey,class:"tag is-info is-light is-small has-text-weight-bold",textContent:l(e.groupKey)},null,8,V)])):e.isItem?(i(),a("div",{key:1,class:"media is-align-items-center",onClick:f=>d.open_album(e.item)},[d.is_visible_artwork?(i(),a("div",z,[m(v,{artwork_url:e.item.artwork_url,artist:e.item.artist,album:e.item.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-small-image"},null,8,["artwork_url","artist","album"])])):p("",!0),s("div",F,[s("div",null,[s("h1",{class:"title is-6",textContent:l(e.item.name)},null,8,K),s("h2",{class:"subtitle is-7 has-text-grey has-text-weight-bold",textContent:l(e.item.artist)},null,8,P),e.item.date_released&&e.item.media_kind==="music"?(i(),a("h2",{key:0,class:"subtitle is-7 has-text-grey",textContent:l(t.$filters.date(e.item.date_released))},null,8,T)):p("",!0)])]),s("div",E,[s("a",{onClick:$(f=>d.open_dialog(e.item),["prevent","stop"])},[m(k,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,R)])],8,I)):p("",!0)],64))),128)),(i(),B(M,{to:"#app"},[m(g,{show:n.show_details_modal,album:n.selected_album,media_kind:_.media_kind,onRemovePodcast:o[0]||(o[0]=e=>d.open_remove_podcast_dialog()),onPlayCountChanged:o[1]||(o[1]=e=>d.play_count_changed()),onClose:o[2]||(o[2]=e=>n.show_details_modal=!1)},null,8,["show","album","media_kind"]),m(w,{show:n.show_remove_podcast_modal,title:t.$t("page.podcast.remove-podcast"),delete_action:t.$t("page.podcast.remove"),onClose:o[3]||(o[3]=e=>n.show_remove_podcast_modal=!1),onDelete:d.remove_podcast},{"modal-content":D(()=>[s("p",{textContent:l(t.$t("list.albums.info-1"))},null,8,S),s("p",j,[u(" ("),s("span",{textContent:l(t.$t("list.albums.info-2"))},null,8,q),s("b",{textContent:l(n.rss_playlist_to_remove.name)},null,8,G),u(") ")])]),_:1},8,["show","title","delete_action","onDelete"])]))],64)}const W=b(L,[["render",H]]);export{W as L};

View File

@ -1 +0,0 @@
import{M as g}from"./ModalDialogArtist.js";import{_ as k,r,o as s,c as i,F as l,f,a as o,t as _,h as v,d as m,k as C,g as x,B as w}from"./index.js";const y={name:"ListArtists",components:{ModalDialogArtist:g},props:["artists","hide_group_title"],data(){return{show_details_modal:!1,selected_artist:{}}},methods:{open_artist(e){this.selected_artist=e;const a=e.media_kind==="audiobook"?"audiobooks-artist":"music-artist";this.$router.push({name:a,params:{id:e.id}})},open_dialog(e){this.selected_artist=e,this.show_details_modal=!0}}},b={key:0,class:"mt-6 mb-5 py-2"},B={class:"media-content is-clipped"},L=["id","textContent"],A=["onClick"],I={class:"media-content is-clickable is-clipped"},M=["textContent"],N={class:"media-right"},V=["onClick"];function D(e,a,d,F,n,c){const p=r("mdicon"),h=r("modal-dialog-artist");return s(),i(l,null,[(s(!0),i(l,null,f(d.artists,t=>(s(),i(l,{key:t.itemId},[!t.isItem&&!d.hide_group_title?(s(),i("div",b,[o("div",B,[o("span",{id:"index_"+t.groupKey,class:"tag is-info is-light is-small has-text-weight-bold",textContent:_(t.groupKey)},null,8,L)])])):t.isItem?(s(),i("div",{key:1,class:"media is-align-items-center",onClick:u=>c.open_artist(t.item)},[o("div",I,[o("h1",{class:"title is-6",textContent:_(t.item.name)},null,8,M)]),o("div",N,[o("a",{onClick:v(u=>c.open_dialog(t.item),["prevent","stop"])},[m(p,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,V)])],8,A)):C("",!0)],64))),128)),(s(),x(w,{to:"#app"},[m(h,{artist:n.selected_artist,show:n.show_details_modal,onClose:a[0]||(a[0]=t=>n.show_details_modal=!1)},null,8,["artist","show"])]))],64)}const E=k(y,[["render",D]]);export{E as L};

View File

@ -1 +0,0 @@
import{M as g}from"./ModalDialogComposer.js";import{_ as k,r as m,o as s,c as i,F as l,f as C,a as t,t as _,h as f,d as r,k as v,g as x,B as w}from"./index.js";const y={name:"ListComposers",components:{ModalDialogComposer:g},props:["composers","media_kind","hide_group_title"],data(){return{show_details_modal:!1,selected_composer:{}}},methods:{open_composer(o){this.selected_composer=o,this.$router.push({name:"music-composer-albums",params:{name:o.name}})},open_dialog(o){this.selected_composer=o,this.show_details_modal=!0}}},B={key:0,class:"mt-6 mb-5 py-2"},b={class:"media-content is-clipped"},L=["id","textContent"],I=["onClick"],M={class:"media-content is-clickable is-clipped"},N=["textContent"],V={class:"media-right"},D=["onClick"];function F(o,d,n,K,a,c){const p=m("mdicon"),h=m("modal-dialog-composer");return s(),i(l,null,[(s(!0),i(l,null,C(n.composers,e=>(s(),i(l,{key:e.itemId},[!e.isItem&&!n.hide_group_title?(s(),i("div",B,[t("div",b,[t("span",{id:"index_"+e.groupKey,class:"tag is-info is-light is-small has-text-weight-bold",textContent:_(e.groupKey)},null,8,L)])])):e.isItem?(s(),i("div",{key:1,class:"media is-align-items-center",onClick:u=>c.open_composer(e.item)},[t("div",M,[t("h1",{class:"title is-6",textContent:_(e.item.name)},null,8,N)]),t("div",V,[t("a",{onClick:f(u=>c.open_dialog(e.item),["prevent","stop"])},[r(p,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,D)])],8,I)):v("",!0)],64))),128)),(s(),x(w,{to:"#app"},[r(h,{show:a.show_details_modal,composer:a.selected_composer,media_kind:n.media_kind,onClose:d[0]||(d[0]=e=>a.show_details_modal=!1)},null,8,["show","composer","media_kind"])]))],64)}const S=k(y,[["render",F]]);export{S as L};

View File

@ -1 +0,0 @@
import{M as u}from"./ModalDialogGenre.js";import{_ as k,r as c,o as t,c as i,F as d,f,a as s,t as r,h as v,d as m,k as C,g as x,B as w}from"./index.js";const y={name:"ListGenres",components:{ModalDialogGenre:u},props:["genres","hide_group_title","media_kind"],data(){return{show_details_modal:!1,selected_genre:{}}},methods:{open_genre(o){this.$router.push({name:"genre-albums",params:{name:o.name},query:{media_kind:this.media_kind}})},open_dialog(o){this.selected_genre=o,this.show_details_modal=!0}}},B={key:0,class:"mt-6 mb-5 py-2"},b={class:"media-content is-clipped"},L=["id","textContent"],G=["onClick"],I={class:"media-content is-clickable is-clipped"},M=["textContent"],N={class:"media-right"},V=["onClick"];function D(o,l,n,F,a,_){const h=c("mdicon"),p=c("modal-dialog-genre");return t(),i(d,null,[(t(!0),i(d,null,f(n.genres,e=>(t(),i(d,{key:e.itemId},[!e.isItem&&!n.hide_group_title?(t(),i("div",B,[s("div",b,[s("span",{id:"index_"+e.groupKey,class:"tag is-info is-light is-small has-text-weight-bold",textContent:r(e.groupKey)},null,8,L)])])):e.isItem?(t(),i("div",{key:1,class:"media is-align-items-center",onClick:g=>_.open_genre(e.item)},[s("div",I,[s("h1",{class:"title is-6",textContent:r(e.item.name)},null,8,M)]),s("div",N,[s("a",{onClick:v(g=>_.open_dialog(e.item),["prevent","stop"])},[m(h,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,V)])],8,G)):C("",!0)],64))),128)),(t(),x(w,{to:"#app"},[m(p,{show:a.show_details_modal,genre:a.selected_genre,media_kind:n.media_kind,onClose:l[0]||(l[0]=e=>a.show_details_modal=!1)},null,8,["show","genre","media_kind"])]))],64)}const z=k(y,[["render",D]]);export{z as L};

View File

@ -1 +0,0 @@
import{_ as l,o,c as i,z as n,k as c,a as t,t as a}from"./index.js";const r={name:"ListItemAlbumSpotify",props:["album"]},d={class:"media is-align-items-center"},m={key:0,class:"media-left is-clickable"},_={class:"media-content is-clickable is-clipped"},u=["textContent"],h=["textContent"],b=["textContent"],f={class:"media-right"};function k(e,p,s,x,y,C){return o(),i("div",d,[e.$slots.artwork?(o(),i("div",m,[n(e.$slots,"artwork")])):c("",!0),t("div",_,[t("h1",{class:"title is-6",textContent:a(s.album.name)},null,8,u),t("h2",{class:"subtitle is-7 has-text-grey has-text-weight-bold",textContent:a(s.album.artists[0].name)},null,8,h),t("h2",{class:"subtitle is-7 has-text-grey",textContent:a([s.album.album_type,e.$filters.date(s.album.release_date)].join(", "))},null,8,b)]),t("div",f,[n(e.$slots,"actions")])])}const v=l(r,[["render",k]]);export{v as L};

View File

@ -1 +0,0 @@
import{_ as o,o as c,c as p,a as t,t as l,z as r}from"./index.js";const d={name:"ListItemPlaylistSpotify",props:["playlist"],methods:{open_playlist(){this.$router.push({name:"playlist-spotify",params:{id:this.playlist.id}})}}},_={class:"media is-align-items-center"},m=["textContent"],y=["textContent"],h={class:"media-right"};function f(a,s,e,u,x,i){return c(),p("div",_,[t("div",{class:"media-content is-clickable is-clipped",onClick:s[0]||(s[0]=(...n)=>i.open_playlist&&i.open_playlist(...n))},[t("h1",{class:"title is-6",textContent:l(e.playlist.name)},null,8,m),t("h2",{class:"subtitle is-7",textContent:l(e.playlist.owner.display_name)},null,8,y)]),t("div",h,[r(a.$slots,"actions")])])}const k=o(d,[["render",f]]);export{k as L};

View File

@ -1 +0,0 @@
import{M as u}from"./ModalDialogPlaylist.js";import{_ as f,r as d,o,c as a,F as m,f as y,a as t,d as n,t as g,h as k,g as v,B as C}from"./index.js";const w={name:"ListPlaylists",components:{ModalDialogPlaylist:u},props:["playlists"],data(){return{show_details_modal:!1,selected_playlist:{}}},methods:{open_playlist(e){e.type==="folder"?this.$router.push({name:"playlist-folder",params:{id:e.id}}):this.$router.push({name:"playlist",params:{id:e.id}})},open_dialog(e){this.selected_playlist=e,this.show_details_modal=!0},icon_name(e){return e.type==="folder"?"folder":e.type==="rss"?"rss":"music-box-multiple"}}},x=["onClick"],B={class:"media-left is-clickable"},L={class:"media-content is-clickable is-clipped"},b=["textContent"],M={class:"media-right"},P=["onClick"];function z(e,r,_,D,i,l){const c=d("mdicon"),p=d("modal-dialog-playlist");return o(),a(m,null,[(o(!0),a(m,null,y(_.playlists,s=>(o(),a("div",{key:s.itemId,class:"media is-align-items-center",onClick:h=>l.open_playlist(s.item)},[t("figure",B,[n(c,{class:"icon",name:l.icon_name(s.item),size:"16"},null,8,["name"])]),t("div",L,[t("h1",{class:"title is-6",textContent:g(s.item.name)},null,8,b)]),t("div",M,[t("a",{onClick:k(h=>l.open_dialog(s.item),["prevent","stop"])},[n(c,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,P)])],8,x))),128)),(o(),v(C,{to:"#app"},[n(p,{show:i.show_details_modal,playlist:i.selected_playlist,onClose:r[0]||(r[0]=s=>i.show_details_modal=!1)},null,8,["show","playlist"])]))],64)}const V=f(w,[["render",z]]);export{V as L};

View File

@ -1 +0,0 @@
.progress[data-v-b2fd846d]{height:.25rem}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{C as b}from"./CoverArtwork.js";import{_ as h,e as d,r as u,o as m,c,d as i,w as p,a as t,t as l,k as f,T as C}from"./index.js";const k={name:"ModalDialogAlbumSpotify",components:{CoverArtwork:b},props:["show","album"],emits:["close"],data(){return{artwork_visible:!1}},computed:{artwork_url(){return this.album.images&&this.album.images.length>0?this.album.images[0].url:""}},methods:{play(){this.$emit("close"),d.player_play_uri(this.album.uri,!1)},queue_add(){this.$emit("close"),d.queue_add(this.album.uri)},queue_add_next(){this.$emit("close"),d.queue_add_next(this.album.uri)},open_album(){this.$emit("close"),this.$router.push({name:"music-spotify-album",params:{id:this.album.id}})},open_artist(){this.$emit("close"),this.$router.push({name:"music-spotify-artist",params:{id:this.album.artists[0].id}})},artwork_loaded(){this.artwork_visible=!0},artwork_error(){this.artwork_visible=!1}}},x={key:0,class:"modal is-active"},y={class:"modal-content fd-modal-card"},w={class:"card"},g={class:"card-content"},v={class:"title is-4"},q=["textContent"],z={class:"content is-small"},A=["textContent"],B=["textContent"],D=["textContent"],E=["textContent"],M=["textContent"],N=["textContent"],S={class:"card-footer"},V=["textContent"],L=["textContent"],T=["textContent"];function $(o,e,n,j,F,a){const _=u("cover-artwork"),r=u("mdicon");return m(),c("div",null,[i(C,{name:"fade"},{default:p(()=>[n.show?(m(),c("div",x,[t("div",{class:"modal-background",onClick:e[0]||(e[0]=s=>o.$emit("close"))}),t("div",y,[t("div",w,[t("div",g,[i(_,{artwork_url:a.artwork_url,artist:n.album.artist,album:n.album.name,class:"fd-has-shadow fd-cover fd-cover-normal-image mb-5",onLoad:a.artwork_loaded,onError:a.artwork_error},null,8,["artwork_url","artist","album","onLoad","onError"]),t("p",v,[t("a",{class:"has-text-link",onClick:e[1]||(e[1]=(...s)=>a.open_album&&a.open_album(...s)),textContent:l(n.album.name)},null,8,q)]),t("div",z,[t("p",null,[t("span",{class:"heading",textContent:l(o.$t("dialog.spotify.album.album-artist"))},null,8,A),t("a",{class:"title is-6 has-text-link",onClick:e[2]||(e[2]=(...s)=>a.open_artist&&a.open_artist(...s)),textContent:l(n.album.artists[0].name)},null,8,B)]),t("p",null,[t("span",{class:"heading",textContent:l(o.$t("dialog.spotify.album.release-date"))},null,8,D),t("span",{class:"title is-6",textContent:l(o.$filters.date(n.album.release_date))},null,8,E)]),t("p",null,[t("span",{class:"heading",textContent:l(o.$t("dialog.spotify.album.type"))},null,8,M),t("span",{class:"title is-6",textContent:l(n.album.album_type)},null,8,N)])])]),t("footer",S,[t("a",{class:"card-footer-item has-text-dark",onClick:e[3]||(e[3]=(...s)=>a.queue_add&&a.queue_add(...s))},[i(r,{class:"icon",name:"playlist-plus",size:"16"}),t("span",{class:"is-size-7",textContent:l(o.$t("dialog.spotify.album.add"))},null,8,V)]),t("a",{class:"card-footer-item has-text-dark",onClick:e[4]||(e[4]=(...s)=>a.queue_add_next&&a.queue_add_next(...s))},[i(r,{class:"icon",name:"playlist-play",size:"16"}),t("span",{class:"is-size-7",textContent:l(o.$t("dialog.spotify.album.add-next"))},null,8,L)]),t("a",{class:"card-footer-item has-text-dark",onClick:e[5]||(e[5]=(...s)=>a.play&&a.play(...s))},[i(r,{class:"icon",name:"play",size:"16"}),t("span",{class:"is-size-7",textContent:l(o.$t("dialog.spotify.album.play"))},null,8,T)])])])]),t("button",{class:"modal-close is-large","aria-label":"close",onClick:e[6]||(e[6]=s=>o.$emit("close"))})])):f("",!0)]),_:1})])}const I=h(k,[["render",$]]);export{I as M};

View File

@ -1 +0,0 @@
import{_,e as r,r as m,o as c,c as u,d as l,w as C,a as t,t as e,k as h,T as p}from"./index.js";const x={name:"ModalDialogArtist",props:["show","artist"],emits:["close"],methods:{play(){this.$emit("close"),r.player_play_uri(this.artist.uri,!1)},queue_add(){this.$emit("close"),r.queue_add(this.artist.uri)},queue_add_next(){this.$emit("close"),r.queue_add_next(this.artist.uri)},open_artist(){this.$emit("close"),this.$router.push({name:"music-artist",params:{id:this.artist.id}})}}},k={key:0,class:"modal is-active"},g={class:"modal-content fd-modal-card"},f={class:"card"},y={class:"card-content"},v={class:"title is-4"},q=["textContent"],$={class:"content is-small"},b=["textContent"],z=["textContent"],w=["textContent"],B=["textContent"],D=["textContent"],M=["textContent"],N=["textContent"],V=["textContent"],A={class:"card-footer"},T=["textContent"],E=["textContent"],S=["textContent"];function j(a,s,o,F,G,i){const d=m("mdicon");return c(),u("div",null,[l(p,{name:"fade"},{default:C(()=>[o.show?(c(),u("div",k,[t("div",{class:"modal-background",onClick:s[0]||(s[0]=n=>a.$emit("close"))}),t("div",g,[t("div",f,[t("div",y,[t("p",v,[t("a",{class:"has-text-link",onClick:s[1]||(s[1]=(...n)=>i.open_artist&&i.open_artist(...n)),textContent:e(o.artist.name)},null,8,q)]),t("div",$,[t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.artist.albums"))},null,8,b),t("span",{class:"title is-6",textContent:e(o.artist.album_count)},null,8,z)]),t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.artist.tracks"))},null,8,w),t("span",{class:"title is-6",textContent:e(o.artist.track_count)},null,8,B)]),t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.artist.type"))},null,8,D),t("span",{class:"title is-6",textContent:e(a.$t("data.kind."+o.artist.data_kind))},null,8,M)]),t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.artist.added-on"))},null,8,N),t("span",{class:"title is-6",textContent:e(a.$filters.datetime(o.artist.time_added))},null,8,V)])])]),t("footer",A,[t("a",{class:"card-footer-item has-text-dark",onClick:s[2]||(s[2]=(...n)=>i.queue_add&&i.queue_add(...n))},[l(d,{class:"icon",name:"playlist-plus",size:"16"}),t("span",{class:"is-size-7",textContent:e(a.$t("dialog.artist.add"))},null,8,T)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[3]||(s[3]=(...n)=>i.queue_add_next&&i.queue_add_next(...n))},[l(d,{class:"icon",name:"playlist-play",size:"16"}),t("span",{class:"is-size-7",textContent:e(a.$t("dialog.artist.add-next"))},null,8,E)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[4]||(s[4]=(...n)=>i.play&&i.play(...n))},[l(d,{class:"icon",name:"play",size:"16"}),t("span",{class:"is-size-7",textContent:e(a.$t("dialog.artist.play"))},null,8,S)])])])]),t("button",{class:"modal-close is-large","aria-label":"close",onClick:s[5]||(s[5]=n=>a.$emit("close"))})])):h("",!0)]),_:1})])}const I=_(x,[["render",j]]);export{I as M};

View File

@ -1 +0,0 @@
import{_,e as r,r as m,o as c,c as u,d as l,w as p,a as t,t as i,k as C,T as h}from"./index.js";const f={name:"ModalDialogArtistSpotify",props:["show","artist"],emits:["close"],methods:{play(){this.$emit("close"),r.player_play_uri(this.artist.uri,!1)},queue_add(){this.$emit("close"),r.queue_add(this.artist.uri)},queue_add_next(){this.$emit("close"),r.queue_add_next(this.artist.uri)},open_artist(){this.$emit("close"),this.$router.push({name:"music-spotify-artist",params:{id:this.artist.id}})}}},x={key:0,class:"modal is-active"},y={class:"modal-content fd-modal-card"},k={class:"card"},g={class:"card-content"},v={class:"title is-4"},q=["textContent"],w={class:"content is-small"},z=["textContent"],$=["textContent"],b=["textContent"],B=["textContent"],D={class:"card-footer"},M=["textContent"],N=["textContent"],S=["textContent"];function V(o,s,n,j,A,a){const d=m("mdicon");return c(),u("div",null,[l(h,{name:"fade"},{default:p(()=>[n.show?(c(),u("div",x,[t("div",{class:"modal-background",onClick:s[0]||(s[0]=e=>o.$emit("close"))}),t("div",y,[t("div",k,[t("div",g,[t("p",v,[t("a",{class:"has-text-link",onClick:s[1]||(s[1]=(...e)=>a.open_artist&&a.open_artist(...e)),textContent:i(n.artist.name)},null,8,q)]),t("div",w,[t("p",null,[t("span",{class:"heading",textContent:i(o.$t("dialog.spotify.artist.popularity"))},null,8,z),t("span",{class:"title is-6",textContent:i([n.artist.popularity,n.artist.followers.total].join(" / "))},null,8,$)]),t("p",null,[t("span",{class:"heading",textContent:i(o.$t("dialog.spotify.artist.genres"))},null,8,b),t("span",{class:"title is-6",textContent:i(n.artist.genres.join(", "))},null,8,B)])])]),t("footer",D,[t("a",{class:"card-footer-item has-text-dark",onClick:s[2]||(s[2]=(...e)=>a.queue_add&&a.queue_add(...e))},[l(d,{class:"icon",name:"playlist-plus",size:"16"}),t("span",{class:"is-size-7",textContent:i(o.$t("dialog.spotify.artist.add"))},null,8,M)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[3]||(s[3]=(...e)=>a.queue_add_next&&a.queue_add_next(...e))},[l(d,{class:"icon",name:"playlist-play",size:"16"}),t("span",{class:"is-size-7",textContent:i(o.$t("dialog.spotify.artist.add-next"))},null,8,N)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[4]||(s[4]=(...e)=>a.play&&a.play(...e))},[l(d,{class:"icon",name:"play",size:"16"}),t("span",{class:"is-size-7",textContent:i(o.$t("dialog.spotify.artist.play"))},null,8,S)])])])]),t("button",{class:"modal-close is-large","aria-label":"close",onClick:s[5]||(s[5]=e=>o.$emit("close"))})])):C("",!0)]),_:1})])}const E=_(f,[["render",V]]);export{E as M};

View File

@ -1 +0,0 @@
import{_ as u,e as c,r as p,o as m,c as r,d as i,w as _,a as e,t as n,k as C,T as x}from"./index.js";const h={name:"ModalDialogComposer",props:["show","composer"],emits:["close"],methods:{play(){this.$emit("close"),c.player_play_expression(`composer is "${this.composer.name}" and media_kind is music`,!1)},queue_add(){this.$emit("close"),c.queue_expression_add(`composer is "${this.composer.name}" and media_kind is music`)},queue_add_next(){this.$emit("close"),c.queue_expression_add_next(`composer is "${this.composer.name}" and media_kind is music`)},open_albums(){this.$emit("close"),this.$router.push({name:"music-composer-albums",params:{name:this.composer.name}})},open_tracks(){this.$router.push({name:"music-composer-tracks",params:{name:this.composer.name}})}}},k={key:0,class:"modal is-active"},f={class:"modal-content fd-modal-card"},g={class:"card"},b={class:"card-content"},y={class:"title is-4"},v=["textContent"],q=["textContent"],$=["textContent"],z=["textContent"],w=["textContent"],B=["textContent"],D=["textContent"],M={class:"card-footer"},N=["textContent"],V=["textContent"],T=["textContent"];function E(a,s,l,H,I,o){const d=p("mdicon");return m(),r("div",null,[i(x,{name:"fade"},{default:_(()=>[l.show?(m(),r("div",k,[e("div",{class:"modal-background",onClick:s[0]||(s[0]=t=>a.$emit("close"))}),e("div",f,[e("div",g,[e("div",b,[e("p",y,[e("a",{class:"has-text-link",onClick:s[1]||(s[1]=(...t)=>o.open_albums&&o.open_albums(...t)),textContent:n(l.composer.name)},null,8,v)]),e("p",null,[e("span",{class:"heading",textContent:n(a.$t("dialog.composer.albums"))},null,8,q),e("a",{class:"has-text-link is-6",onClick:s[2]||(s[2]=(...t)=>o.open_albums&&o.open_albums(...t)),textContent:n(l.composer.album_count)},null,8,$)]),e("p",null,[e("span",{class:"heading",textContent:n(a.$t("dialog.composer.tracks"))},null,8,z),e("a",{class:"has-text-link is-6",onClick:s[3]||(s[3]=(...t)=>o.open_tracks&&o.open_tracks(...t)),textContent:n(l.composer.track_count)},null,8,w)]),e("p",null,[e("span",{class:"heading",textContent:n(a.$t("dialog.composer.duration"))},null,8,B),e("span",{class:"title is-6",textContent:n(a.$filters.durationInHours(l.composer.length_ms))},null,8,D)])]),e("footer",M,[e("a",{class:"card-footer-item has-text-dark",onClick:s[4]||(s[4]=(...t)=>o.queue_add&&o.queue_add(...t))},[i(d,{class:"icon",name:"playlist-plus",size:"16"}),e("span",{class:"is-size-7",textContent:n(a.$t("dialog.composer.add"))},null,8,N)]),e("a",{class:"card-footer-item has-text-dark",onClick:s[5]||(s[5]=(...t)=>o.queue_add_next&&o.queue_add_next(...t))},[i(d,{class:"icon",name:"playlist-play",size:"16"}),e("span",{class:"is-size-7",textContent:n(a.$t("dialog.composer.add-next"))},null,8,V)]),e("a",{class:"card-footer-item has-text-dark",onClick:s[6]||(s[6]=(...t)=>o.play&&o.play(...t))},[i(d,{class:"icon",name:"play",size:"16"}),e("span",{class:"is-size-7",textContent:n(a.$t("dialog.composer.play"))},null,8,T)])])])]),e("button",{class:"modal-close is-large","aria-label":"close",onClick:s[7]||(s[7]=t=>a.$emit("close"))})])):C("",!0)]),_:1})])}const j=u(h,[["render",E]]);export{j as M};

View File

@ -1 +0,0 @@
import{_ as u,e as r,r as m,o as c,c as _,d as i,w as g,a as e,t as s,k as p,T as h}from"./index.js";const x={name:"ModalDialogGenre",props:["genre","media_kind","show"],emits:["close"],computed:{expression(){return`genre is "${this.genre.name}" and media_kind is ${this.media_kind}`}},methods:{play(){this.$emit("close"),r.player_play_expression(this.expression,!1)},queue_add(){this.$emit("close"),r.queue_expression_add(this.expression)},queue_add_next(){this.$emit("close"),r.queue_expression_add_next(this.expression)},open_genre(){this.$emit("close"),this.$router.push({name:"genre-albums",params:{name:this.genre.name},query:{media_kind:this.media_kind}})}}},C={key:0,class:"modal is-active"},k={class:"modal-content fd-modal-card"},f={class:"card"},y={class:"card-content"},v={class:"title is-4"},q=["textContent"],$={class:"content is-small"},b=["textContent"],z=["textContent"],w=["textContent"],B=["textContent"],D=["textContent"],M=["textContent"],N={class:"card-footer"},V=["textContent"],G=["textContent"],T=["textContent"];function E(n,t,l,H,I,o){const d=m("mdicon");return c(),_("div",null,[i(h,{name:"fade"},{default:g(()=>[l.show?(c(),_("div",C,[e("div",{class:"modal-background",onClick:t[0]||(t[0]=a=>n.$emit("close"))}),e("div",k,[e("div",f,[e("div",y,[e("p",v,[e("a",{class:"has-text-link",onClick:t[1]||(t[1]=(...a)=>o.open_genre&&o.open_genre(...a)),textContent:s(l.genre.name)},null,8,q)]),e("div",$,[e("p",null,[e("span",{class:"heading",textContent:s(n.$t("dialog.genre.albums"))},null,8,b),e("span",{class:"title is-6",textContent:s(l.genre.album_count)},null,8,z)]),e("p",null,[e("span",{class:"heading",textContent:s(n.$t("dialog.genre.tracks"))},null,8,w),e("span",{class:"title is-6",textContent:s(l.genre.track_count)},null,8,B)]),e("p",null,[e("span",{class:"heading",textContent:s(n.$t("dialog.genre.duration"))},null,8,D),e("span",{class:"title is-6",textContent:s(n.$filters.durationInHours(l.genre.length_ms))},null,8,M)])])]),e("footer",N,[e("a",{class:"card-footer-item has-text-dark",onClick:t[2]||(t[2]=(...a)=>o.queue_add&&o.queue_add(...a))},[i(d,{class:"icon",name:"playlist-plus",size:"16"}),e("span",{class:"is-size-7",textContent:s(n.$t("dialog.genre.add"))},null,8,V)]),e("a",{class:"card-footer-item has-text-dark",onClick:t[3]||(t[3]=(...a)=>o.queue_add_next&&o.queue_add_next(...a))},[i(d,{class:"icon",name:"playlist-play",size:"16"}),e("span",{class:"is-size-7",textContent:s(n.$t("dialog.genre.add-next"))},null,8,G)]),e("a",{class:"card-footer-item has-text-dark",onClick:t[4]||(t[4]=(...a)=>o.play&&o.play(...a))},[i(d,{class:"icon",name:"play",size:"16"}),e("span",{class:"is-size-7",textContent:s(n.$t("dialog.genre.play"))},null,8,T)])])])]),e("button",{class:"modal-close is-large","aria-label":"close",onClick:t[5]||(t[5]=a=>n.$emit("close"))})])):p("",!0)]),_:1})])}const j=u(x,[["render",E]]);export{j as M};

View File

@ -1 +0,0 @@
import{_,e as r,r as y,o,c as d,d as c,w as h,a as t,t as e,k as p,T as m}from"./index.js";const C={name:"ModalDialogPlaylist",props:["show","playlist","uris"],emits:["close"],methods:{play(){this.$emit("close"),r.player_play_uri(this.uris?this.uris:this.playlist.uri,!1)},queue_add(){this.$emit("close"),r.queue_add(this.uris?this.uris:this.playlist.uri)},queue_add_next(){this.$emit("close"),r.queue_add_next(this.uris?this.uris:this.playlist.uri)},open_playlist(){this.$emit("close"),this.$router.push({name:"playlist",params:{id:this.playlist.id}})}}},x={key:0,class:"modal is-active"},k={class:"modal-content fd-modal-card"},f={class:"card"},g={class:"card-content"},v={class:"title is-4"},q=["textContent"],z={class:"content is-small"},w=["textContent"],$=["textContent"],b=["textContent"],B=["textContent"],D={key:0},M=["textContent"],N=["textContent"],V={key:0,class:"card-footer"},P=["textContent"],T=["textContent"],E=["textContent"];function S(l,s,n,j,A,i){const u=y("mdicon");return o(),d("div",null,[c(m,{name:"fade"},{default:h(()=>[n.show?(o(),d("div",x,[t("div",{class:"modal-background",onClick:s[0]||(s[0]=a=>l.$emit("close"))}),t("div",k,[t("div",f,[t("div",g,[t("p",v,[t("a",{class:"has-text-link",onClick:s[1]||(s[1]=(...a)=>i.open_playlist&&i.open_playlist(...a)),textContent:e(n.playlist.name)},null,8,q)]),t("div",z,[t("p",null,[t("span",{class:"heading",textContent:e(l.$t("dialog.playlist.path"))},null,8,w),t("span",{class:"title is-6",textContent:e(n.playlist.path)},null,8,$)]),t("p",null,[t("span",{class:"heading",textContent:e(l.$t("dialog.playlist.type"))},null,8,b),t("span",{class:"title is-6",textContent:e(l.$t("playlist.type."+n.playlist.type))},null,8,B)]),n.playlist.folder?p("",!0):(o(),d("p",D,[t("span",{class:"heading",textContent:e(l.$t("dialog.playlist.track-count"))},null,8,M),t("span",{class:"title is-6",textContent:e(n.playlist.item_count)},null,8,N)]))])]),n.playlist.folder?p("",!0):(o(),d("footer",V,[t("a",{class:"card-footer-item has-text-dark",onClick:s[2]||(s[2]=(...a)=>i.queue_add&&i.queue_add(...a))},[c(u,{class:"icon",name:"playlist-plus",size:"16"}),t("span",{class:"is-size-7",textContent:e(l.$t("dialog.playlist.add"))},null,8,P)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[3]||(s[3]=(...a)=>i.queue_add_next&&i.queue_add_next(...a))},[c(u,{class:"icon",name:"playlist-play",size:"16"}),t("span",{class:"is-size-7",textContent:e(l.$t("dialog.playlist.add-next"))},null,8,T)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[4]||(s[4]=(...a)=>i.play&&i.play(...a))},[c(u,{class:"icon",name:"play",size:"16"}),t("span",{class:"is-size-7",textContent:e(l.$t("dialog.playlist.play"))},null,8,E)])]))])]),t("button",{class:"modal-close is-large","aria-label":"close",onClick:s[5]||(s[5]=a=>l.$emit("close"))})])):p("",!0)]),_:1})])}const G=_(C,[["render",S]]);export{G as M};

View File

@ -1 +0,0 @@
import{_ as u,e as c,r as _,o as p,c as r,d as o,w as y,a as t,t as e,k as m,T as C}from"./index.js";const h={name:"ModalDialogPlaylistSpotify",props:["show","playlist"],emits:["close"],methods:{play(){this.$emit("close"),c.player_play_uri(this.playlist.uri,!1)},queue_add(){this.$emit("close"),c.queue_add(this.playlist.uri)},queue_add_next(){this.$emit("close"),c.queue_add_next(this.playlist.uri)},open_playlist(){this.$emit("close"),this.$router.push({name:"playlist-spotify",params:{id:this.playlist.id}})}}},x={key:0,class:"modal is-active"},f={class:"modal-content fd-modal-card"},k={class:"card"},g={class:"card-content"},v={class:"title is-4"},q=["textContent"],w={class:"content is-small"},z=["textContent"],$=["textContent"],b=["textContent"],B=["textContent"],D=["textContent"],M=["textContent"],N={class:"card-footer"},S=["textContent"],V=["textContent"],P=["textContent"];function T(a,s,i,E,j,n){const d=_("mdicon");return p(),r("div",null,[o(C,{name:"fade"},{default:y(()=>[i.show?(p(),r("div",x,[t("div",{class:"modal-background",onClick:s[0]||(s[0]=l=>a.$emit("close"))}),t("div",f,[t("div",k,[t("div",g,[t("p",v,[t("a",{class:"has-text-link",onClick:s[1]||(s[1]=(...l)=>n.open_playlist&&n.open_playlist(...l)),textContent:e(i.playlist.name)},null,8,q)]),t("div",w,[t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.spotify.playlist.owner"))},null,8,z),t("span",{class:"title is-6",textContent:e(i.playlist.owner.display_name)},null,8,$)]),t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.spotify.playlist.tracks"))},null,8,b),t("span",{class:"title is-6",textContent:e(i.playlist.tracks.total)},null,8,B)]),t("p",null,[t("span",{class:"heading",textContent:e(a.$t("dialog.spotify.playlist.path"))},null,8,D),t("span",{class:"title is-6",textContent:e(i.playlist.uri)},null,8,M)])])]),t("footer",N,[t("a",{class:"card-footer-item has-text-dark",onClick:s[2]||(s[2]=(...l)=>n.queue_add&&n.queue_add(...l))},[o(d,{class:"icon",name:"playlist-plus",size:"16"}),t("span",{class:"is-size-7",textContent:e(a.$t("dialog.spotify.playlist.add"))},null,8,S)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[3]||(s[3]=(...l)=>n.queue_add_next&&n.queue_add_next(...l))},[o(d,{class:"icon",name:"playlist-play",size:"16"}),t("span",{class:"is-size-7",textContent:e(a.$t("dialog.spotify.playlist.add-next"))},null,8,V)]),t("a",{class:"card-footer-item has-text-dark",onClick:s[4]||(s[4]=(...l)=>n.play&&n.play(...l))},[o(d,{class:"icon",name:"play",size:"16"}),t("span",{class:"is-size-7",textContent:e(a.$t("dialog.spotify.playlist.play"))},null,8,P)])])])]),t("button",{class:"modal-close is-large","aria-label":"close",onClick:s[5]||(s[5]=l=>a.$emit("close"))})])):m("",!0)]),_:1})])}const F=u(h,[["render",T]]);export{F as M};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as k,e as u,o as c,c as d,a as t,q as _,t as s,b as h,k as m,z as y,r as p,d as r,w as f,T as b}from"./index.js";const g={name:"ListItemTrackSpotify",props:["track","position","context_uri"],methods:{play(){this.track.is_playable&&u.player_play_uri(this.context_uri,!1,this.position)}}},v={class:"media is-align-items-center"},q=["textContent"],$=["textContent"],z={key:0,class:"subtitle is-7"},T=["textContent"],w=["textContent"],S={class:"media-right"};function N(a,n,e,C,x,i){return c(),d("div",v,[t("div",{class:_(["media-content is-clipped",{"is-clickable":e.track.is_playable,"fd-is-not-allowed":!e.track.is_playable}]),onClick:n[0]||(n[0]=(...o)=>i.play&&i.play(...o))},[t("h1",{class:_(["title is-6",{"has-text-grey-light":!e.track.is_playable}]),textContent:s(e.track.name)},null,10,q),t("h2",{class:_(["subtitle is-7",{"has-text-grey":e.track.is_playable,"has-text-grey-light":!e.track.is_playable}]),textContent:s(e.track.artists[0].name)},null,10,$),e.track.is_playable?m("",!0):(c(),d("h2",z,[h(" ("),t("span",{textContent:s(a.$t("list.spotify.not-playable-track"))},null,8,T),e.track.restrictions&&e.track.restrictions.reason?(c(),d("span",{key:0,textContent:s(a.$t("list.spotify.restriction-reason",{reason:e.track.restrictions.reason}))},null,8,w)):m("",!0),h(") ")]))],2),t("div",S,[y(a.$slots,"actions")])])}const at=k(g,[["render",N]]),V={name:"ModalDialogTrackSpotify",props:["show","track","album"],emits:["close"],methods:{play(){this.$emit("close"),u.player_play_uri(this.track.uri,!1)},queue_add(){this.$emit("close"),u.queue_add(this.track.uri)},queue_add_next(){this.$emit("close"),u.queue_add_next(this.track.uri)},open_album(){this.$emit("close"),this.$router.push({name:"music-spotify-album",params:{id:this.album.id}})},open_artist(){this.$emit("close"),this.$router.push({name:"music-spotify-artist",params:{id:this.album.artists[0].id}})}}},B={key:0,class:"modal is-active"},D={class:"modal-content fd-modal-card"},I={class:"card"},L={class:"card-content"},M=["textContent"],j=["textContent"],E={class:"content is-small"},H=["textContent"],A=["textContent"],F=["textContent"],G=["textContent"],J=["textContent"],K=["textContent"],O=["textContent"],P=["textContent"],Q=["textContent"],R=["textContent"],U=["textContent"],W=["textContent"],X={class:"card-footer"},Y=["textContent"],Z=["textContent"],tt=["textContent"];function et(a,n,e,C,x,i){const o=p("mdicon");return c(),d("div",null,[r(b,{name:"fade"},{default:f(()=>[e.show?(c(),d("div",B,[t("div",{class:"modal-background",onClick:n[0]||(n[0]=l=>a.$emit("close"))}),t("div",D,[t("div",I,[t("div",L,[t("p",{class:"title is-4",textContent:s(e.track.name)},null,8,M),t("p",{class:"subtitle",textContent:s(e.track.artists[0].name)},null,8,j),t("div",E,[t("p",null,[t("span",{class:"heading",textContent:s(a.$t("dialog.spotify.track.album"))},null,8,H),t("a",{class:"title is-6 has-text-link",onClick:n[1]||(n[1]=(...l)=>i.open_album&&i.open_album(...l)),textContent:s(e.album.name)},null,8,A)]),t("p",null,[t("span",{class:"heading",textContent:s(a.$t("dialog.spotify.track.album-artist"))},null,8,F),t("a",{class:"title is-6 has-text-link",onClick:n[2]||(n[2]=(...l)=>i.open_artist&&i.open_artist(...l)),textContent:s(e.album.artists[0].name)},null,8,G)]),t("p",null,[t("span",{class:"heading",textContent:s(a.$t("dialog.spotify.track.release-date"))},null,8,J),t("span",{class:"title is-6",textContent:s(a.$filters.date(e.album.release_date))},null,8,K)]),t("p",null,[t("span",{class:"heading",textContent:s(a.$t("dialog.spotify.track.position"))},null,8,O),t("span",{class:"title is-6",textContent:s([e.track.disc_number,e.track.track_number].join(" / "))},null,8,P)]),t("p",null,[t("span",{class:"heading",textContent:s(a.$t("dialog.spotify.track.duration"))},null,8,Q),t("span",{class:"title is-6",textContent:s(a.$filters.durationInHours(e.track.duration_ms))},null,8,R)]),t("p",null,[t("span",{class:"heading",textContent:s(a.$t("dialog.spotify.track.path"))},null,8,U),t("span",{class:"title is-6",textContent:s(e.track.uri)},null,8,W)])])]),t("footer",X,[t("a",{class:"card-footer-item has-text-dark",onClick:n[3]||(n[3]=(...l)=>i.queue_add&&i.queue_add(...l))},[r(o,{class:"icon",name:"playlist-plus",size:"16"}),t("span",{class:"is-size-7",textContent:s(a.$t("dialog.spotify.track.add"))},null,8,Y)]),t("a",{class:"card-footer-item has-text-dark",onClick:n[4]||(n[4]=(...l)=>i.queue_add_next&&i.queue_add_next(...l))},[r(o,{class:"icon",name:"playlist-play",size:"16"}),t("span",{class:"is-size-7",textContent:s(a.$t("dialog.spotify.track.add-next"))},null,8,Z)]),t("a",{class:"card-footer-item has-text-dark",onClick:n[5]||(n[5]=(...l)=>i.play&&i.play(...l))},[r(o,{class:"icon",name:"play",size:"16"}),t("span",{class:"is-size-7",textContent:s(a.$t("dialog.spotify.track.play"))},null,8,tt)])])])]),t("button",{class:"modal-close is-large","aria-label":"close",onClick:n[6]||(n[6]=l=>a.$emit("close"))})])):m("",!0)]),_:1})])}const nt=k(V,[["render",et]]);export{at as L,nt as M};

View File

@ -1 +0,0 @@
import{_ as d,S as h,r as _,o as i,c as l,a as t,t as s,b as a,d as u,w as o}from"./index.js";const b={name:"PageAbout",computed:{config(){return this.$store.state.config},library(){return this.$store.state.library}},methods:{showUpdateDialog(){this.$store.commit(h,!0)}}},m={class:"section"},x={class:"container"},C={class:"columns is-centered"},p={class:"column is-four-fifths has-text-centered-mobile"},g=["textContent"],f={class:"section"},v={class:"container"},y={class:"columns is-centered"},$={class:"column is-four-fifths"},w={class:"content"},k={class:"level is-mobile"},D={class:"level-left"},N={class:"level-item"},j=["textContent"],z={class:"level-right"},A={key:0},B=["textContent"],V={key:1},I=["textContent"],P={class:"table"},S=["textContent"],U=["textContent"],E=["textContent"],F=["textContent"],O=["textContent"],T=["textContent"],G=["textContent"],H=["textContent"],L=["textContent"],M={class:"has-text-right"},W=["textContent"],q=["textContent"],J=["textContent"],K={class:"has-text-right"},Q=["textContent"],R=["textContent"],X={class:"section"},Y={class:"container"},Z={class:"columns is-centered"},tt={class:"column is-four-fifths"},et={class:"content has-text-centered-mobile"},st=["textContent"],nt=["textContent"],ot=t("a",{href:"https://bulma.io"},"Bulma",-1),at=t("a",{href:"https://pictogrammers.com/library/mdi/"},"Material Design Icons",-1),it=t("a",{href:"https://vuejs.org/"},"Vue.js",-1),lt=t("a",{href:"https://github.com/mzabriskie/axios"},"axios",-1),ct=["textContent"];function rt(e,c,dt,ht,_t,n){const r=_("i18n-t");return i(),l("div",null,[t("section",m,[t("div",x,[t("div",C,[t("div",p,[t("h1",{class:"title is-4",textContent:s(n.config.library_name)},null,8,g)])])])]),t("section",f,[t("div",v,[t("div",y,[t("div",$,[t("div",w,[t("nav",k,[t("div",D,[t("div",N,[t("h2",{class:"title is-5",textContent:s(e.$t("page.about.library"))},null,8,j)])]),t("div",z,[n.library.updating?(i(),l("div",A,[t("a",{class:"button is-small is-loading",textContent:s(e.$t("page.about.update"))},null,8,B)])):(i(),l("div",V,[t("a",{class:"button is-small",onClick:c[0]||(c[0]=ut=>n.showUpdateDialog()),textContent:s(e.$t("page.about.update"))},null,8,I)]))])]),t("table",P,[t("tbody",null,[t("tr",null,[t("th",{class:"has-text-left",textContent:s(e.$t("page.about.artists"))},null,8,S),t("td",{class:"has-text-right",textContent:s(e.$filters.number(n.library.artists))},null,8,U)]),t("tr",null,[t("th",{class:"has-text-left",textContent:s(e.$t("page.about.albums"))},null,8,E),t("td",{class:"has-text-right",textContent:s(e.$filters.number(n.library.albums))},null,8,F)]),t("tr",null,[t("th",{class:"has-text-left",textContent:s(e.$t("page.about.tracks"))},null,8,O),t("td",{class:"has-text-right",textContent:s(e.$filters.number(n.library.songs))},null,8,T)]),t("tr",null,[t("th",{class:"has-text-left",textContent:s(e.$t("page.about.total-playtime"))},null,8,G),t("td",{class:"has-text-right",textContent:s(e.$filters.durationInDays(n.library.db_playtime*1e3))},null,8,H)]),t("tr",null,[t("th",{class:"has-text-left",textContent:s(e.$t("page.about.updated"))},null,8,L),t("td",M,[t("span",{textContent:s(e.$t("page.about.updated-on",{time:e.$filters.timeFromNow(n.library.updated_at)}))},null,8,W),a(" ("),t("span",{class:"has-text-grey",textContent:s(e.$filters.datetime(n.library.updated_at))},null,8,q),a(") ")])]),t("tr",null,[t("th",{class:"has-text-left",textContent:s(e.$t("page.about.uptime"))},null,8,J),t("td",K,[t("span",{textContent:s(e.$filters.timeFromNow(n.library.started_at,!0))},null,8,Q),a(" ("),t("span",{class:"has-text-grey",textContent:s(e.$filters.datetime(n.library.started_at))},null,8,R),a(") ")])])])])])])])])]),t("section",X,[t("div",Y,[t("div",Z,[t("div",tt,[t("div",et,[t("p",{class:"is-size-7",textContent:s(e.$t("page.about.version",{version:n.config.version}))},null,8,st),t("p",{class:"is-size-7",textContent:s(e.$t("page.about.compiled-with",{options:n.config.buildoptions.join(", ")}))},null,8,nt),u(r,{tag:"p",class:"is-size-7",keypath:"page.about.built-with",scope:"global"},{bulma:o(()=>[ot]),mdi:o(()=>[at]),vuejs:o(()=>[it]),axios:o(()=>[lt]),others:o(()=>[t("a",{href:"https://github.com/owntone/owntone-server/network/dependencies",textContent:s(e.$t("page.about.more"))},null,8,ct)]),_:1})])])])])])])}const mt=d(b,[["render",rt]]);export{mt as default};

View File

@ -1 +0,0 @@
import{C}from"./ContentWithHero.js";import{C as g}from"./CoverArtwork.js";import{G as p,b as x,n as y}from"./GroupByList.js";import{L as v}from"./ListTracks.js";import{M as A}from"./ModalDialogAlbum.js";import{_ as B,e as _,r as n,o as L,c as z,d as l,w as d,a as e,t as u}from"./index.js";import"./spotify-web-api.js";const c={load(s){return Promise.all([_.library_album(s.params.id),_.library_album_tracks(s.params.id)])},set(s,o){s.album=o[0].data,s.tracks=new p(o[1].data),s.tracks.group(x("disc_number")),s.tracks.indexList<=1&&s.tracks.group(y())}},M={name:"PageAlbum",components:{ContentWithHero:C,CoverArtwork:g,ListTracks:v,ModalDialogAlbum:A},beforeRouteEnter(s,o,r){c.load(s).then(i=>{r(t=>c.set(t,i))})},beforeRouteUpdate(s,o,r){const i=this;c.load(s).then(t=>{c.set(i,t),r()})},data(){return{album:{},show_details_modal:!1,tracks:new p}},methods:{open_artist(){this.show_details_modal=!1,this.$router.push({name:"music-artist",params:{id:this.album.artist_id}})},play(){_.player_play_uri(this.album.uri,!0)}}},P=["textContent"],D={class:"subtitle is-6 has-text-link"},E=["textContent"],G={class:"buttons fd-is-centered-mobile mt-5"},N=["textContent"],R=["textContent"];function V(s,o,r,i,t,m){const b=n("mdicon"),h=n("cover-artwork"),k=n("list-tracks"),f=n("modal-dialog-album"),w=n("content-with-hero");return L(),z("div",null,[l(w,null,{"heading-left":d(()=>[e("h1",{class:"title is-5",textContent:u(t.album.name)},null,8,P),e("h2",D,[e("a",{class:"has-text-link",onClick:o[0]||(o[0]=(...a)=>m.open_artist&&m.open_artist(...a)),textContent:u(t.album.artist)},null,8,E)]),e("div",G,[e("a",{class:"button is-small is-dark is-rounded",onClick:o[1]||(o[1]=(...a)=>m.play&&m.play(...a))},[l(b,{class:"icon",name:"shuffle",size:"16"}),e("span",{textContent:u(s.$t("page.album.shuffle"))},null,8,N)]),e("a",{class:"button is-small is-light is-rounded",onClick:o[2]||(o[2]=a=>t.show_details_modal=!0)},[l(b,{class:"icon",name:"dots-horizontal",size:"16"})])])]),"heading-right":d(()=>[l(h,{artwork_url:t.album.artwork_url,artist:t.album.artist,album:t.album.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-medium-image",onClick:o[3]||(o[3]=a=>t.show_details_modal=!0)},null,8,["artwork_url","artist","album"])]),content:d(()=>[e("p",{class:"heading is-7 has-text-centered-mobile mt-5",textContent:u(s.$t("page.album.track-count",{count:t.album.track_count}))},null,8,R),l(k,{tracks:t.tracks,uris:t.album.uri},null,8,["tracks","uris"]),l(f,{show:t.show_details_modal,album:t.album,onClose:o[4]||(o[4]=a=>t.show_details_modal=!1)},null,8,["show","album"])]),_:1})])}const q=B(M,[["render",V]]);export{q as default};

View File

@ -1 +0,0 @@
import{C as v}from"./ContentWithHero.js";import{C as x}from"./CoverArtwork.js";import{L as A,M as S}from"./ModalDialogTrackSpotify.js";import{M}from"./ModalDialogAlbumSpotify.js";import{S as z}from"./spotify-web-api.js";import{_ as B,e as D,r as n,o as p,c as f,d as l,w as c,s as h,a,t as u,F as L,f as T,g as E,h as F}from"./index.js";const _={load(e){const s=new z;return s.setAccessToken(h.state.spotify.webapi_token),s.getAlbum(e.params.id,{market:h.state.spotify.webapi_country})},set(e,s){e.album=s}},N={name:"PageAlbumSpotify",components:{ContentWithHero:v,CoverArtwork:x,ListItemTrackSpotify:A,ModalDialogAlbumSpotify:M,ModalDialogTrackSpotify:S},beforeRouteEnter(e,s,r){_.load(e).then(m=>{r(t=>_.set(t,m))})},beforeRouteUpdate(e,s,r){const m=this;_.load(e).then(t=>{_.set(m,t),r()})},data(){return{album:{artists:[{}],tracks:{}},selected_track:{},show_details_modal:!1,show_track_details_modal:!1}},computed:{artwork_url(){return this.album.images&&this.album.images.length>0?this.album.images[0].url:""}},methods:{open_artist(){this.$router.push({name:"music-spotify-artist",params:{id:this.album.artists[0].id}})},play(){this.show_details_modal=!1,D.player_play_uri(this.album.uri,!0)},open_track_dialog(e){this.selected_track=e,this.show_track_details_modal=!0}}},P=["textContent"],R={class:"subtitle is-6 has-text-link"},V=["textContent"],W={class:"buttons fd-is-centered-mobile mt-5"},j=["textContent"],H=["textContent"],I=["onClick"];function O(e,s,r,m,t,i){const d=n("mdicon"),k=n("cover-artwork"),b=n("list-item-track-spotify"),w=n("modal-dialog-album-spotify"),g=n("modal-dialog-track-spotify"),y=n("content-with-hero");return p(),f("div",null,[l(y,null,{"heading-left":c(()=>[a("h1",{class:"title is-5",textContent:u(t.album.name)},null,8,P),a("h2",R,[a("a",{class:"has-text-link",onClick:s[0]||(s[0]=(...o)=>i.open_artist&&i.open_artist(...o)),textContent:u(t.album.artists[0].name)},null,8,V)]),a("div",W,[a("a",{class:"button is-small is-dark is-rounded",onClick:s[1]||(s[1]=(...o)=>i.play&&i.play(...o))},[l(d,{class:"icon",name:"shuffle",size:"16"}),a("span",{textContent:u(e.$t("page.spotify.album.shuffle"))},null,8,j)]),a("a",{class:"button is-small is-light is-rounded",onClick:s[2]||(s[2]=o=>t.show_details_modal=!0)},[l(d,{class:"icon",name:"dots-horizontal",size:"16"})])])]),"heading-right":c(()=>[l(k,{artwork_url:i.artwork_url,artist:t.album.artist,album:t.album.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-medium-image",onClick:s[3]||(s[3]=o=>t.show_details_modal=!0)},null,8,["artwork_url","artist","album"])]),content:c(()=>[a("p",{class:"heading is-7 has-text-centered-mobile mt-5",textContent:u(e.$t("page.spotify.album.track-count",{count:t.album.tracks.total}))},null,8,H),(p(!0),f(L,null,T(t.album.tracks.items,(o,C)=>(p(),E(b,{key:o.id,track:o,position:C,context_uri:t.album.uri},{actions:c(()=>[a("a",{onClick:F(U=>i.open_track_dialog(o),["prevent","stop"])},[l(d,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,I)]),_:2},1032,["track","position","context_uri"]))),128)),l(w,{show:t.show_details_modal,album:t.album,onClose:s[4]||(s[4]=o=>t.show_details_modal=!1)},null,8,["show","album"]),l(g,{show:t.show_track_details_modal,track:t.selected_track,album:t.album,onClose:s[5]||(s[5]=o=>t.show_track_details_modal=!1)},null,8,["show","track","album"])]),_:1})])}const Y=B(N,[["render",O]]);export{Y as default};

View File

@ -1 +0,0 @@
import{_ as $,A as k,H as S,i as H,r as d,o as p,c as m,d as r,w as c,e as B,a as s,t as n,j as h,v as b,k as L}from"./index.js";import{G as f,a as E,c as g}from"./GroupByList.js";import{C as I}from"./ContentWithHeading.js";import{C as A}from"./ControlDropdown.js";import{I as D}from"./IndexButtonList.js";import{L as N}from"./ListAlbums.js";import{T as U}from"./TabsMusic.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const _={load(t){return B.library_albums("music")},set(t,e){t.albums_list=new f(e.data)}},V={name:"PageAlbums",components:{ContentWithHeading:I,ControlDropdown:A,IndexButtonList:D,ListAlbums:N,TabsMusic:U},beforeRouteEnter(t,e,i){_.load(t).then(u=>{i(a=>_.set(a,u))})},beforeRouteUpdate(t,e,i){if(!this.albums_list.isEmpty()){i();return}const u=this;_.load(t).then(a=>{_.set(u,a),i()})},data(){return{albums_list:new f,groupby_options:[{id:1,name:this.$t("page.albums.sort-by.name"),options:E("name_sort",!0)},{id:2,name:this.$t("page.albums.sort-by.recently-added"),options:g("time_added",{direction:"desc"})},{id:3,name:this.$t("page.albums.sort-by.recently-released"),options:g("date_released",{direction:"desc"})}]}},computed:{albums(){const t=this.groupby_options.find(e=>e.id===this.selected_groupby_option_id);return this.albums_list.group(t.options,[e=>!this.hide_singles||e.track_count>2,e=>!this.hide_spotify||e.data_kind!=="spotify"]),this.albums_list},selected_groupby_option_id:{get(){return this.$store.state.albums_sort},set(t){this.$store.commit(k,t)}},spotify_enabled(){return this.$store.state.spotify.webapi_token_valid},hide_singles:{get(){return this.$store.state.hide_singles},set(t){this.$store.commit(S,t)}},hide_spotify:{get(){return this.$store.state.hide_spotify},set(t){this.$store.commit(H,t)}}}},T={class:"fd-page-with-tabs"},G={class:"columns"},M={class:"column"},O=["textContent"],P={class:"field"},R={class:"control"},j=["textContent"],Y=["textContent"],F={key:0,class:"field"},W={class:"control"},q=["textContent"],z=["textContent"],J={class:"column"},K=["textContent"],Q=["textContent"],X=["textContent"];function Z(t,e,i,u,a,o){const y=d("tabs-music"),C=d("index-button-list"),x=d("control-dropdown"),w=d("list-albums"),v=d("content-with-heading");return p(),m("div",T,[r(y),r(v,null,{options:c(()=>[r(C,{index:o.albums.indexList},null,8,["index"]),s("div",G,[s("div",M,[s("p",{class:"heading mb-5",textContent:n(t.$t("page.albums.filter"))},null,8,O),s("div",P,[s("div",R,[h(s("input",{id:"switchHideSingles","onUpdate:modelValue":e[0]||(e[0]=l=>o.hide_singles=l),type:"checkbox",class:"switch is-rounded"},null,512),[[b,o.hide_singles]]),s("label",{for:"switchHideSingles",textContent:n(t.$t("page.albums.hide-singles"))},null,8,j)]),s("p",{class:"help",textContent:n(t.$t("page.albums.hide-singles-help"))},null,8,Y)]),o.spotify_enabled?(p(),m("div",F,[s("div",W,[h(s("input",{id:"switchHideSpotify","onUpdate:modelValue":e[1]||(e[1]=l=>o.hide_spotify=l),type:"checkbox",class:"switch is-rounded"},null,512),[[b,o.hide_spotify]]),s("label",{for:"switchHideSpotify",textContent:n(t.$t("page.albums.hide-spotify"))},null,8,q)]),s("p",{class:"help",textContent:n(t.$t("page.albums.hide-spotify-help"))},null,8,z)])):L("",!0)]),s("div",J,[s("p",{class:"heading mb-5",textContent:n(t.$t("page.albums.sort-by.title"))},null,8,K),r(x,{value:o.selected_groupby_option_id,"onUpdate:value":e[2]||(e[2]=l=>o.selected_groupby_option_id=l),options:a.groupby_options},null,8,["value","options"])])])]),"heading-left":c(()=>[s("p",{class:"title is-4",textContent:n(t.$t("page.albums.title"))},null,8,Q),s("p",{class:"heading",textContent:n(t.$t("page.albums.count",{count:o.albums.count}))},null,8,X)]),"heading-right":c(()=>[]),content:c(()=>[r(w,{albums:o.albums},null,8,["albums"])]),_:1})])}const rt=$(V,[["render",Z]]);export{rt as default};

View File

@ -1 +0,0 @@
import{_ as C,l as w,e as p,r,o as k,c as x,d as i,w as m,a as e,t as l}from"./index.js";import{C as v}from"./ContentWithHeading.js";import{C as A}from"./ControlDropdown.js";import{G as h,a as B,c as L}from"./GroupByList.js";import{L as R}from"./ListAlbums.js";import{M as S}from"./ModalDialogArtist.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const u={load(t){return Promise.all([p.library_artist(t.params.id),p.library_artist_albums(t.params.id)])},set(t,s){t.artist=s[0].data,t.albums_list=new h(s[1].data)}},z={name:"PageArtist",components:{ContentWithHeading:v,ControlDropdown:A,ListAlbums:R,ModalDialogArtist:S},beforeRouteEnter(t,s,d){u.load(t).then(_=>{d(o=>u.set(o,_))})},beforeRouteUpdate(t,s,d){const _=this;u.load(t).then(o=>{u.set(_,o),d()})},data(){return{artist:{},albums_list:new h,groupby_options:[{id:1,name:this.$t("page.artist.sort-by.name"),options:B("name_sort",!0)},{id:2,name:this.$t("page.artist.sort-by.release-date"),options:L("date_released",{direction:"asc"})}],show_details_modal:!1}},computed:{albums(){const t=this.groupby_options.find(s=>s.id===this.selected_groupby_option_id);return this.albums_list.group(t.options),this.albums_list},selected_groupby_option_id:{get(){return this.$store.state.artist_albums_sort},set(t){this.$store.commit(w,t)}}},methods:{open_tracks(){this.$router.push({name:"music-artist-tracks",params:{id:this.artist.id}})},play(){p.player_play_uri(this.albums.items.map(t=>t.uri).join(","),!0)}}},D={class:"columns"},M={class:"column"},N=["textContent"],P=["textContent"],T={class:"buttons is-centered"},U=["textContent"],j={class:"heading has-text-centered-mobile"},E=["textContent"],G=e("span",null," | ",-1),O=["textContent"];function V(t,s,d,_,o,n){const b=r("control-dropdown"),c=r("mdicon"),g=r("list-albums"),f=r("modal-dialog-artist"),y=r("content-with-heading");return k(),x("div",null,[i(y,null,{options:m(()=>[e("div",D,[e("div",M,[e("p",{class:"heading mb-5",textContent:l(t.$t("page.artist.sort-by.title"))},null,8,N),i(b,{value:n.selected_groupby_option_id,"onUpdate:value":s[0]||(s[0]=a=>n.selected_groupby_option_id=a),options:o.groupby_options},null,8,["value","options"])])])]),"heading-left":m(()=>[e("p",{class:"title is-4",textContent:l(o.artist.name)},null,8,P)]),"heading-right":m(()=>[e("div",T,[e("a",{class:"button is-small is-light is-rounded",onClick:s[1]||(s[1]=a=>o.show_details_modal=!0)},[i(c,{class:"icon",name:"dots-horizontal",size:"16"})]),e("a",{class:"button is-small is-dark is-rounded",onClick:s[2]||(s[2]=(...a)=>n.play&&n.play(...a))},[i(c,{class:"icon",name:"shuffle",size:"16"}),e("span",{textContent:l(t.$t("page.artist.shuffle"))},null,8,U)])])]),content:m(()=>[e("p",j,[e("span",{textContent:l(t.$t("page.artist.album-count",{count:o.artist.album_count}))},null,8,E),G,e("a",{class:"has-text-link",onClick:s[3]||(s[3]=(...a)=>n.open_tracks&&n.open_tracks(...a)),textContent:l(t.$t("page.artist.track-count",{count:o.artist.track_count}))},null,8,O)]),i(g,{albums:n.albums,hide_group_title:!0},null,8,["albums"]),i(f,{show:o.show_details_modal,artist:o.artist,onClose:s[4]||(s[4]=a=>o.show_details_modal=!1)},null,8,["show","artist"])]),_:1})])}const Q=C(z,[["render",V]]);export{Q as default};

View File

@ -1 +0,0 @@
import{C as E}from"./ContentWithHeading.js";import{C as V}from"./CoverArtwork.js";import{L}from"./ListItemAlbumSpotify.js";import{M}from"./ModalDialogAlbumSpotify.js";import{M as z}from"./ModalDialogArtistSpotify.js";import{S as w}from"./spotify-web-api.js";import{_ as B,e as N,r as l,o as d,c as h,d as n,w as m,s as b,a as r,t as p,F as P,f as D,g,m as T,h as F,b as G,k as I}from"./index.js";import{G as R}from"./vue-eternal-loading.js";const f=50,u={load(t){const e=new w;return e.setAccessToken(b.state.spotify.webapi_token),Promise.all([e.getArtist(t.params.id),e.getArtistAlbums(t.params.id,{limit:f,offset:0,include_groups:"album,single",market:b.state.spotify.webapi_country})])},set(t,e){t.artist=e[0],t.albums=[],t.total=0,t.offset=0,t.append_albums(e[1])}},W={name:"PageArtistSpotify",components:{ContentWithHeading:E,CoverArtwork:V,ListItemAlbumSpotify:L,ModalDialogAlbumSpotify:M,ModalDialogArtistSpotify:z,VueEternalLoading:R},beforeRouteEnter(t,e,a){u.load(t).then(_=>{a(s=>u.set(s,_))})},beforeRouteUpdate(t,e,a){const _=this;u.load(t).then(s=>{u.set(_,s),a()})},data(){return{albums:[],artist:{},offset:0,selected_album:{},show_album_details_modal:!1,show_details_modal:!1,total:0}},computed:{is_visible_artwork(){return this.$store.getters.settings_option("webinterface","show_cover_artwork_in_album_lists").value}},methods:{load_next({loaded:t}){const e=new w;e.setAccessToken(this.$store.state.spotify.webapi_token),e.getArtistAlbums(this.artist.id,{limit:f,offset:this.offset,include_groups:"album,single"}).then(a=>{this.append_albums(a),t(a.items.length,f)})},append_albums(t){this.albums=this.albums.concat(t.items),this.total=t.total,this.offset+=t.limit},play(){this.show_album_details_modal=!1,N.player_play_uri(this.artist.uri,!0)},open_album(t){this.$router.push({name:"music-spotify-album",params:{id:t.id}})},open_dialog(t){this.selected_album=t,this.show_album_details_modal=!0},artwork_url(t){return t.images&&t.images.length>0?t.images[0].url:""}}},j=["textContent"],H={class:"buttons is-centered"},O=["textContent"],U=["textContent"],Z=["onClick"];function q(t,e,a,_,s,i){const c=l("mdicon"),k=l("cover-artwork"),y=l("list-item-album-spotify"),C=l("VueEternalLoading"),A=l("modal-dialog-artist-spotify"),v=l("modal-dialog-album-spotify"),x=l("content-with-heading");return d(),h("div",null,[n(x,null,{"heading-left":m(()=>[r("p",{class:"title is-4",textContent:p(s.artist.name)},null,8,j)]),"heading-right":m(()=>[r("div",H,[r("a",{class:"button is-small is-light is-rounded",onClick:e[0]||(e[0]=o=>s.show_details_modal=!0)},[n(c,{class:"icon",name:"dots-horizontal",size:"16"})]),r("a",{class:"button is-small is-dark is-rounded",onClick:e[1]||(e[1]=(...o)=>i.play&&i.play(...o))},[n(c,{class:"icon",name:"shuffle",size:"16"}),r("span",{textContent:p(t.$t("page.spotify.artist.shuffle"))},null,8,O)])])]),content:m(()=>[r("p",{class:"heading has-text-centered-mobile",textContent:p(t.$t("page.spotify.artist.album-count",{count:s.total}))},null,8,U),(d(!0),h(P,null,D(s.albums,o=>(d(),g(y,{key:o.id,album:o,onClick:S=>i.open_album(o)},T({actions:m(()=>[r("a",{onClick:F(S=>i.open_dialog(o),["prevent","stop"])},[n(c,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,Z)]),_:2},[i.is_visible_artwork?{name:"artwork",fn:m(()=>[n(k,{artwork_url:i.artwork_url(o),artist:o.artist,album:o.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-small-image",maxwidth:64,maxheight:64},null,8,["artwork_url","artist","album"])]),key:"0"}:void 0]),1032,["album","onClick"]))),128)),s.offset<s.total?(d(),g(C,{key:0,load:i.load_next},{"no-more":m(()=>[G(" . ")]),_:1},8,["load"])):I("",!0),n(A,{show:s.show_details_modal,artist:s.artist,onClose:e[2]||(e[2]=o=>s.show_details_modal=!1)},null,8,["show","artist"]),n(v,{show:s.show_album_details_modal,album:s.selected_album,onClose:e[3]||(e[3]=o=>s.show_album_details_modal=!1)},null,8,["show","album"])]),_:1})])}const st=B(W,[["render",q]]);export{st as default};

View File

@ -1 +0,0 @@
import{_ as C,p as x,e as u,r,o as w,c as v,d as a,w as c,a as e,t as l}from"./index.js";import{a as T,d as B,G as h}from"./GroupByList.js";import{C as R}from"./ContentWithHeading.js";import{C as A}from"./ControlDropdown.js";import{I as L}from"./IndexButtonList.js";import{L as S}from"./ListTracks.js";import{M as j}from"./ModalDialogArtist.js";import"./spotify-web-api.js";const p={load(t){return Promise.all([u.library_artist(t.params.id),u.library_artist_tracks(t.params.id)])},set(t,s){t.artist=s[0].data,t.tracks_list=new h(s[1].data.tracks)}},z={name:"PageArtistTracks",components:{ContentWithHeading:R,ControlDropdown:A,IndexButtonList:L,ListTracks:S,ModalDialogArtist:j},beforeRouteEnter(t,s,d){p.load(t).then(_=>{d(o=>p.set(o,_))})},beforeRouteUpdate(t,s,d){const _=this;p.load(t).then(o=>{p.set(_,o),d()})},data(){return{artist:{},groupby_options:[{id:1,name:this.$t("page.artist.sort-by.name"),options:T("title_sort")},{id:2,name:this.$t("page.artist.sort-by.rating"),options:B("rating",{direction:"desc"})}],show_details_modal:!1,tracks_list:new h}},computed:{selected_groupby_option_id:{get(){return this.$store.state.artist_tracks_sort},set(t){this.$store.commit(x,t)}},tracks(){const t=this.groupby_options.find(s=>s.id===this.selected_groupby_option_id);return this.tracks_list.group(t.options),this.tracks_list},track_uris(){return this.tracks_list.items.map(t=>t.uri).join(",")}},methods:{open_artist(){this.show_details_modal=!1,this.$router.push({name:"music-artist",params:{id:this.artist.id}})},play(){u.player_play_uri(this.tracks_list.items.map(t=>t.uri).join(","),!0)}}},D={class:"columns"},I={class:"column"},N=["textContent"],P=["textContent"],E={class:"buttons is-centered"},G=["textContent"],M={class:"heading has-text-centered-mobile"},O=["textContent"],U=e("span",null," | ",-1),V=["textContent"];function H(t,s,d,_,o,n){const g=r("index-button-list"),k=r("control-dropdown"),m=r("mdicon"),b=r("list-tracks"),f=r("modal-dialog-artist"),y=r("content-with-heading");return w(),v("div",null,[a(y,null,{options:c(()=>[a(g,{index:n.tracks.indexList},null,8,["index"]),e("div",D,[e("div",I,[e("p",{class:"heading mb-5",textContent:l(t.$t("page.artist.sort-by.title"))},null,8,N),a(k,{value:n.selected_groupby_option_id,"onUpdate:value":s[0]||(s[0]=i=>n.selected_groupby_option_id=i),options:o.groupby_options},null,8,["value","options"])])])]),"heading-left":c(()=>[e("p",{class:"title is-4",textContent:l(o.artist.name)},null,8,P)]),"heading-right":c(()=>[e("div",E,[e("a",{class:"button is-small is-light is-rounded",onClick:s[1]||(s[1]=i=>o.show_details_modal=!0)},[a(m,{class:"icon",name:"dots-horizontal",size:"16"})]),e("a",{class:"button is-small is-dark is-rounded",onClick:s[2]||(s[2]=(...i)=>n.play&&n.play(...i))},[a(m,{class:"icon",name:"shuffle",size:"16"}),e("span",{textContent:l(t.$t("page.artist.shuffle"))},null,8,G)])])]),content:c(()=>[e("p",M,[e("a",{class:"has-text-link",onClick:s[3]||(s[3]=(...i)=>n.open_artist&&n.open_artist(...i)),textContent:l(t.$t("page.artist.album-count",{count:o.artist.album_count}))},null,8,O),U,e("span",{textContent:l(t.$t("page.artist.track-count",{count:o.artist.track_count}))},null,8,V)]),a(b,{tracks:n.tracks,uris:n.track_uris},null,8,["tracks","uris"]),a(f,{show:o.show_details_modal,artist:o.artist,onClose:s[4]||(s[4]=i=>o.show_details_modal=!1)},null,8,["show","artist"])]),_:1})])}const Z=C(z,[["render",H]]);export{Z as default};

View File

@ -1 +0,0 @@
import{_ as v,n as S,H as k,i as $,r as d,o as h,c as u,d as l,w as c,e as H,a as e,t as o,j as m,v as g,k as I}from"./index.js";import{G as f,a as B,c as E}from"./GroupByList.js";import{C as L}from"./ContentWithHeading.js";import{C as T}from"./ControlDropdown.js";import{I as D}from"./IndexButtonList.js";import{L as N}from"./ListArtists.js";import{T as V}from"./TabsMusic.js";import"./ModalDialogArtist.js";const p={load(t){return H.library_artists("music")},set(t,s){t.artists_list=new f(s.data)}},A={name:"PageArtists",components:{ContentWithHeading:L,ControlDropdown:T,IndexButtonList:D,ListArtists:N,TabsMusic:V},beforeRouteEnter(t,s,n){p.load(t).then(_=>{n(a=>p.set(a,_))})},beforeRouteUpdate(t,s,n){if(!this.artists_list.isEmpty()){n();return}const _=this;p.load(t).then(a=>{p.set(_,a),n()})},data(){return{artists_list:new f,groupby_options:[{id:1,name:this.$t("page.artists.sort-by.name"),options:B("name_sort",!0)},{id:2,name:this.$t("page.artists.sort-by.recently-added"),options:E("time_added",{direction:"desc"})}]}},computed:{artists(){if(!this.artists_list)return[];const t=this.groupby_options.find(s=>s.id===this.selected_groupby_option_id);return this.artists_list.group(t.options,[s=>!this.hide_singles||s.track_count>s.album_count*2,s=>!this.hide_spotify||s.data_kind!=="spotify"]),this.artists_list},selected_groupby_option_id:{get(){return this.$store.state.artists_sort},set(t){this.$store.commit(S,t)}},spotify_enabled(){return this.$store.state.spotify.webapi_token_valid},hide_singles:{get(){return this.$store.state.hide_singles},set(t){this.$store.commit(k,t)}},hide_spotify:{get(){return this.$store.state.hide_spotify},set(t){this.$store.commit($,t)}}}},R={class:"fd-page-with-tabs"},U={class:"columns"},G={class:"column"},O=["textContent"],P={class:"field"},j={class:"control"},M=["textContent"],Y=["textContent"],F={key:0,class:"field"},W={class:"control"},q=["textContent"],z=["textContent"],J={class:"column"},K=["textContent"],Q=["textContent"],X=["textContent"];function Z(t,s,n,_,a,i){const b=d("tabs-music"),y=d("index-button-list"),C=d("control-dropdown"),x=d("list-artists"),w=d("content-with-heading");return h(),u("div",R,[l(b),l(w,null,{options:c(()=>[l(y,{index:i.artists.indexList},null,8,["index"]),e("div",U,[e("div",G,[e("p",{class:"heading mb-5",textContent:o(t.$t("page.artists.filter"))},null,8,O),e("div",P,[e("div",j,[m(e("input",{id:"switchHideSingles","onUpdate:modelValue":s[0]||(s[0]=r=>i.hide_singles=r),type:"checkbox",class:"switch is-rounded"},null,512),[[g,i.hide_singles]]),e("label",{for:"switchHideSingles",textContent:o(t.$t("page.artists.hide-singles"))},null,8,M)]),e("p",{class:"help",textContent:o(t.$t("page.artists.hide-singles-help"))},null,8,Y)]),i.spotify_enabled?(h(),u("div",F,[e("div",W,[m(e("input",{id:"switchHideSpotify","onUpdate:modelValue":s[1]||(s[1]=r=>i.hide_spotify=r),type:"checkbox",class:"switch is-rounded"},null,512),[[g,i.hide_spotify]]),e("label",{for:"switchHideSpotify",textContent:o(t.$t("page.artists.hide-spotify"))},null,8,q)]),e("p",{class:"help",textContent:o(t.$t("page.artists.hide-spotify-help"))},null,8,z)])):I("",!0)]),e("div",J,[e("p",{class:"heading mb-5",textContent:o(t.$t("page.artists.sort-by.title"))},null,8,K),l(C,{value:i.selected_groupby_option_id,"onUpdate:value":s[2]||(s[2]=r=>i.selected_groupby_option_id=r),options:a.groupby_options},null,8,["value","options"])])])]),"heading-left":c(()=>[e("p",{class:"title is-4",textContent:o(t.$t("page.artists.title"))},null,8,Q),e("p",{class:"heading",textContent:o(t.$t("page.artists.count",{count:i.artists.count}))},null,8,X)]),"heading-right":c(()=>[]),content:c(()=>[l(x,{artists:i.artists},null,8,["artists"])]),_:1})])}const dt=v(A,[["render",Z]]);export{dt as default};

View File

@ -1 +0,0 @@
import{C}from"./ContentWithHero.js";import{C as g}from"./CoverArtwork.js";import{G as p}from"./GroupByList.js";import{L as x}from"./ListTracks.js";import{M as v}from"./ModalDialogAlbum.js";import{_ as y,e as _,r as n,o as A,c as B,d as l,w as c,a as e,t as u}from"./index.js";import"./spotify-web-api.js";const d={load(s){return Promise.all([_.library_album(s.params.id),_.library_album_tracks(s.params.id)])},set(s,o){s.album=o[0].data,s.tracks=new p(o[1].data)}},z={name:"PageAudiobooksAlbum",components:{ContentWithHero:C,CoverArtwork:g,ListTracks:x,ModalDialogAlbum:v},beforeRouteEnter(s,o,r){d.load(s).then(i=>{r(t=>d.set(t,i))})},beforeRouteUpdate(s,o,r){const i=this;d.load(s).then(t=>{d.set(i,t),r()})},data(){return{album:{},show_details_modal:!1,tracks:new p}},methods:{open_artist(){this.show_details_modal=!1,this.$router.push({name:"audiobooks-artist",params:{id:this.album.artist_id}})},play(){_.player_play_uri(this.album.uri,!1)}}},L=["textContent"],P={class:"subtitle is-6 has-text-link"},D=["textContent"],E={class:"buttons fd-is-centered-mobile mt-5"},G=["textContent"],M=["textContent"];function N(s,o,r,i,t,m){const b=n("mdicon"),k=n("cover-artwork"),h=n("list-tracks"),f=n("modal-dialog-album"),w=n("content-with-hero");return A(),B("div",null,[l(w,null,{"heading-left":c(()=>[e("h1",{class:"title is-5",textContent:u(t.album.name)},null,8,L),e("h2",P,[e("a",{class:"has-text-link",onClick:o[0]||(o[0]=(...a)=>m.open_artist&&m.open_artist(...a)),textContent:u(t.album.artist)},null,8,D)]),e("div",E,[e("a",{class:"button is-small is-dark is-rounded",onClick:o[1]||(o[1]=(...a)=>m.play&&m.play(...a))},[l(b,{class:"icon",name:"play",size:"16"}),e("span",{textContent:u(s.$t("page.audiobooks.album.play"))},null,8,G)]),e("a",{class:"button is-small is-light is-rounded",onClick:o[2]||(o[2]=a=>t.show_details_modal=!0)},[l(b,{class:"icon",name:"dots-horizontal",size:"16"})])])]),"heading-right":c(()=>[l(k,{artwork_url:t.album.artwork_url,artist:t.album.artist,album:t.album.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-medium-image",onClick:o[3]||(o[3]=a=>t.show_details_modal=!0)},null,8,["artwork_url","artist","album"])]),content:c(()=>[e("p",{class:"heading is-7 has-text-centered-mobile mt-5",textContent:u(s.$t("page.audiobooks.album.track-count",{count:t.album.track_count}))},null,8,M),l(h,{tracks:t.tracks,uris:t.album.uri},null,8,["tracks","uris"]),l(f,{show:t.show_details_modal,album:t.album,media_kind:"audiobook",onClose:o[4]||(o[4]=a=>t.show_details_modal=!1)},null,8,["show","album"])]),_:1})])}const U=y(z,[["render",N]]);export{U as default};

View File

@ -1 +0,0 @@
import{C as f}from"./ContentWithHeading.js";import{G as b,a as h}from"./GroupByList.js";import{I as g}from"./IndexButtonList.js";import{L as x}from"./ListAlbums.js";import{T as k}from"./TabsAudiobooks.js";import{_ as w,r as a,o as C,c as A,d as i,w as l,e as y,a as r,t as m}from"./index.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const u={load(t){return y.library_albums("audiobook")},set(t,e){t.albums=new b(e.data),t.albums.group(h("name_sort",!0))}},B={name:"PageAudiobooksAlbums",components:{TabsAudiobooks:k,ContentWithHeading:f,IndexButtonList:g,ListAlbums:x},beforeRouteEnter(t,e,s){u.load(t).then(n=>{s(o=>u.set(o,n))})},beforeRouteUpdate(t,e,s){if(!this.albums.isEmpty()){s();return}const n=this;u.load(t).then(o=>{u.set(n,o),s()})},data(){return{albums:new b}}},L={class:"fd-page-with-tabs"},E=["textContent"],N=["textContent"];function $(t,e,s,n,o,v){const c=a("tabs-audiobooks"),d=a("index-button-list"),p=a("list-albums"),_=a("content-with-heading");return C(),A("div",L,[i(c),i(_,null,{options:l(()=>[i(d,{index:o.albums.indexList},null,8,["index"])]),"heading-left":l(()=>[r("p",{class:"title is-4",textContent:m(t.$t("page.audiobooks.albums.title"))},null,8,E),r("p",{class:"heading",textContent:m(t.$t("page.audiobooks.albums.count",{count:o.albums.count}))},null,8,N)]),content:l(()=>[i(p,{albums:o.albums},null,8,["albums"])]),_:1})])}const H=w(B,[["render",$]]);export{H as default};

View File

@ -1 +0,0 @@
import{C as w}from"./ContentWithHeading.js";import{G as b}from"./GroupByList.js";import{L as C}from"./ListAlbums.js";import{M as y}from"./ModalDialogArtist.js";import{_ as k,e as c,r as l,o as x,c as A,d as n,w as d,a as e,t as u}from"./index.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const r={load(t){return Promise.all([c.library_artist(t.params.id),c.library_artist_albums(t.params.id)])},set(t,s){t.artist=s[0].data,t.albums=new b(s[1].data)}},v={name:"PageAudiobooksArtist",components:{ContentWithHeading:w,ListAlbums:C,ModalDialogArtist:y},beforeRouteEnter(t,s,a){r.load(t).then(i=>{a(o=>r.set(o,i))})},beforeRouteUpdate(t,s,a){if(!this.albums.isEmpty()){a();return}const i=this;r.load(t).then(o=>{r.set(i,o),a()})},data(){return{artist:{},albums:new b,show_details_modal:!1}},methods:{play(){c.player_play_uri(this.albums.items.map(t=>t.uri).join(","),!1)}}},B=["textContent"],z={class:"buttons is-centered"},E=["textContent"],L=["textContent"];function P(t,s,a,i,o,p){const _=l("mdicon"),h=l("list-albums"),f=l("modal-dialog-artist"),g=l("content-with-heading");return x(),A("div",null,[n(g,null,{"heading-left":d(()=>[e("p",{class:"title is-4",textContent:u(o.artist.name)},null,8,B)]),"heading-right":d(()=>[e("div",z,[e("a",{class:"button is-small is-light is-rounded",onClick:s[0]||(s[0]=m=>o.show_details_modal=!0)},[n(_,{class:"icon",name:"dots-horizontal",size:"16"})]),e("a",{class:"button is-small is-dark is-rounded",onClick:s[1]||(s[1]=(...m)=>p.play&&p.play(...m))},[n(_,{class:"icon",name:"play",size:"16"}),e("span",{textContent:u(t.$t("page.audiobooks.artist.play"))},null,8,E)])])]),content:d(()=>[e("p",{class:"heading has-text-centered-mobile",textContent:u(t.$t("page.audiobooks.artist.album-count",{count:o.artist.album_count}))},null,8,L),n(h,{albums:o.albums},null,8,["albums"]),n(f,{show:o.show_details_modal,artist:o.artist,onClose:s[2]||(s[2]=m=>o.show_details_modal=!1)},null,8,["show","artist"])]),_:1})])}const H=k(v,[["render",P]]);export{H as default};

View File

@ -1 +0,0 @@
import{C as f}from"./ContentWithHeading.js";import{G as u,a as g}from"./GroupByList.js";import{I as x}from"./IndexButtonList.js";import{L as k}from"./ListArtists.js";import{T as w}from"./TabsAudiobooks.js";import{_ as C,r as a,o as A,c as y,d as n,w as r,e as B,a as l,t as _}from"./index.js";import"./ModalDialogArtist.js";const d={load(t){return B.library_artists("audiobook")},set(t,o){t.artists_list=new u(o.data)}},L={name:"PageAudiobooksArtists",components:{ContentWithHeading:f,TabsAudiobooks:w,IndexButtonList:x,ListArtists:k},beforeRouteEnter(t,o,s){d.load(t).then(e=>{s(i=>d.set(i,e))})},beforeRouteUpdate(t,o,s){if(!this.artists_list.isEmpty()){s();return}const e=this;d.load(t).then(i=>{d.set(e,i),s()})},data(){return{artists_list:new u}},computed:{artists(){return this.artists_list?(this.artists_list.group(g("name_sort",!0)),this.artists_list):[]}}},v={class:"fd-page-with-tabs"},E=["textContent"],N=["textContent"];function $(t,o,s,e,i,c){const p=a("tabs-audiobooks"),m=a("index-button-list"),h=a("list-artists"),b=a("content-with-heading");return A(),y("div",v,[n(p),n(b,null,{options:r(()=>[n(m,{index:c.artists.indexList},null,8,["index"])]),"heading-left":r(()=>[l("p",{class:"title is-4",textContent:_(t.$t("page.audiobooks.artists.title"))},null,8,E),l("p",{class:"heading",textContent:_(t.$t("page.audiobooks.artists.count",{count:c.artists.count}))},null,8,N)]),"heading-right":r(()=>[]),content:r(()=>[n(h,{artists:c.artists},null,8,["artists"])]),_:1})])}const D=C(L,[["render",$]]);export{D as default};

View File

@ -1 +0,0 @@
import{G as _,a as b}from"./GroupByList.js";import{C as f}from"./ContentWithHeading.js";import{I as h}from"./IndexButtonList.js";import{L as x}from"./ListGenres.js";import{T as k}from"./TabsAudiobooks.js";import{_ as w,r as a,o as C,c as B,d as r,w as d,e as G,a as c,t as l}from"./index.js";import"./ModalDialogGenre.js";const i={load(e){return G.library_genres("audiobook")},set(e,o){e.genres=o.data,e.genres=new _(o.data),e.genres.group(b("name_sort"))}},L={name:"PageAudiobooksGenres",components:{ContentWithHeading:f,IndexButtonList:h,ListGenres:x,TabsAudiobooks:k},beforeRouteEnter(e,o,n){i.load(e).then(s=>{n(t=>i.set(t,s))})},beforeRouteUpdate(e,o,n){const s=this;i.load(e).then(t=>{i.set(s,t),n()})},data(){return{genres:new _}}},y={class:"fd-page-with-tabs"},A=["textContent"],N=["textContent"];function $(e,o,n,s,t,E){const p=a("tabs-audiobooks"),u=a("index-button-list"),g=a("list-genres"),m=a("content-with-heading");return C(),B("div",y,[r(p),r(m,null,{options:d(()=>[r(u,{index:t.genres.indexList},null,8,["index"])]),"heading-left":d(()=>[c("p",{class:"title is-4",textContent:l(e.$t("page.genres.title"))},null,8,A),c("p",{class:"heading",textContent:l(e.$t("page.genres.count",{count:t.genres.total}))},null,8,N)]),content:d(()=>[r(g,{genres:t.genres,media_kind:"audiobook"},null,8,["genres"])]),_:1})])}const D=w(L,[["render",$]]);export{D as default};

View File

@ -1 +0,0 @@
import{C as g}from"./ContentWithHeading.js";import{G as h}from"./GroupByList.js";import{L as k}from"./ListAlbums.js";import{M as w}from"./ModalDialogComposer.js";import{_ as x,e as d,r as i,o as y,c as v,d as a,w as u,a as e,t as c}from"./index.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const p={load(o){return Promise.all([d.library_composer(o.params.name),d.library_composer_albums(o.params.name)])},set(o,s){o.composer=s[0].data,o.albums_list=new h(s[1].data.albums)}},B={name:"PageComposerAlbums",components:{ContentWithHeading:g,ListAlbums:k,ModalDialogComposer:w},beforeRouteEnter(o,s,l){p.load(o).then(m=>{l(t=>p.set(t,m))})},beforeRouteUpdate(o,s,l){const m=this;p.load(o).then(t=>{p.set(m,t),l()})},data(){return{albums_list:new h,composer:{},show_details_modal:!1}},methods:{open_tracks(){this.$router.push({name:"music-composer-tracks",params:{name:this.composer.name}})},play(){d.player_play_expression(`composer is "${this.composer.name}" and media_kind is music`,!0)}}},z=["textContent"],A={class:"buttons is-centered"},L=["textContent"],P={class:"heading has-text-centered-mobile"},D=["textContent"],E=e("span",null," | ",-1),G=["textContent"];function M(o,s,l,m,t,r){const _=i("mdicon"),b=i("list-albums"),f=i("modal-dialog-composer"),C=i("content-with-heading");return y(),v("div",null,[a(C,null,{"heading-left":u(()=>[e("p",{class:"title is-4",textContent:c(t.composer.name)},null,8,z)]),"heading-right":u(()=>[e("div",A,[e("a",{class:"button is-small is-light is-rounded",onClick:s[0]||(s[0]=n=>t.show_details_modal=!0)},[a(_,{class:"icon",name:"dots-horizontal",size:"16"})]),e("a",{class:"button is-small is-dark is-rounded",onClick:s[1]||(s[1]=(...n)=>r.play&&r.play(...n))},[a(_,{class:"icon",name:"shuffle",size:"16"}),e("span",{textContent:c(o.$t("page.composer.shuffle"))},null,8,L)])])]),content:u(()=>[e("p",P,[e("span",{textContent:c(o.$t("page.composer.album-count",{count:t.composer.album_count}))},null,8,D),E,e("a",{class:"has-text-link",onClick:s[2]||(s[2]=(...n)=>r.open_tracks&&r.open_tracks(...n)),textContent:c(o.$t("page.composer.track-count",{count:t.composer.track_count}))},null,8,G)]),a(b,{albums:t.albums_list,hide_group_title:!0},null,8,["albums"]),a(f,{show:t.show_details_modal,composer:t.composer,onClose:s[3]||(s[3]=n=>t.show_details_modal=!1)},null,8,["show","composer"])]),_:1})])}const U=x(B,[["render",M]]);export{U as default};

View File

@ -1 +0,0 @@
import{_ as x,C as y,e as _,r as i,o as w,c as v,d as a,w as m,a as e,t as l}from"./index.js";import{C as B}from"./ContentWithHeading.js";import{C as R}from"./ControlDropdown.js";import{a as L,d as T,G as h}from"./GroupByList.js";import{I as O}from"./IndexButtonList.js";import{L as P}from"./ListTracks.js";import{M as S}from"./ModalDialogComposer.js";import"./spotify-web-api.js";const d={load(o){return Promise.all([_.library_composer(o.params.name),_.library_composer_tracks(o.params.name)])},set(o,t){o.composer=t[0].data,o.tracks_list=new h(t[1].data.tracks)}},z={name:"PageComposerTracks",components:{ContentWithHeading:B,ControlDropdown:R,IndexButtonList:O,ListTracks:P,ModalDialogComposer:S},beforeRouteEnter(o,t,c){d.load(o).then(p=>{c(s=>d.set(s,p))})},beforeRouteUpdate(o,t,c){const p=this;d.load(o).then(s=>{d.set(p,s),c()})},data(){return{composer:{},groupby_options:[{id:1,name:this.$t("page.composer.sort-by.name"),options:L("title_sort")},{id:2,name:this.$t("page.composer.sort-by.rating"),options:T("rating",{direction:"desc"})}],show_details_modal:!1,tracks_list:new h}},computed:{expression(){return`composer is "${this.composer.name}" and media_kind is music`},selected_groupby_option_id:{get(){return this.$store.state.composer_tracks_sort},set(o){this.$store.commit(y,o)}},tracks(){const o=this.groupby_options.find(t=>t.id===this.selected_groupby_option_id);return this.tracks_list.group(o.options),this.tracks_list}},methods:{open_albums(){this.show_details_modal=!1,this.$router.push({name:"music-composer-albums",params:{name:this.composer.name}})},play(){_.player_play_expression(this.expression,!0)}}},D={class:"columns"},E={class:"column"},M=["textContent"],N=["textContent"],G={class:"buttons is-centered"},I=["textContent"],U={class:"heading has-text-centered-mobile"},V=["textContent"],j=e("span",null," | ",-1),A=["textContent"];function H(o,t,c,p,s,n){const g=i("index-button-list"),b=i("control-dropdown"),u=i("mdicon"),k=i("list-tracks"),C=i("modal-dialog-composer"),f=i("content-with-heading");return w(),v("div",null,[a(f,null,{options:m(()=>[a(g,{index:n.tracks.indexList},null,8,["index"]),e("div",D,[e("div",E,[e("p",{class:"heading mb-5",textContent:l(o.$t("page.artist.sort-by.title"))},null,8,M),a(b,{value:n.selected_groupby_option_id,"onUpdate:value":t[0]||(t[0]=r=>n.selected_groupby_option_id=r),options:s.groupby_options},null,8,["value","options"])])])]),"heading-left":m(()=>[e("p",{class:"title is-4",textContent:l(s.composer.name)},null,8,N)]),"heading-right":m(()=>[e("div",G,[e("a",{class:"button is-small is-light is-rounded",onClick:t[1]||(t[1]=r=>s.show_details_modal=!0)},[a(u,{class:"icon",name:"dots-horizontal",size:"16"})]),e("a",{class:"button is-small is-dark is-rounded",onClick:t[2]||(t[2]=(...r)=>n.play&&n.play(...r))},[a(u,{class:"icon",name:"shuffle",size:"16"}),e("span",{textContent:l(o.$t("page.composer.shuffle"))},null,8,I)])])]),content:m(()=>[e("p",U,[e("a",{class:"has-text-link",onClick:t[3]||(t[3]=(...r)=>n.open_albums&&n.open_albums(...r)),textContent:l(o.$t("page.composer.album-count",{count:s.composer.album_count}))},null,8,V),j,e("span",{textContent:l(o.$t("page.composer.track-count",{count:s.composer.track_count}))},null,8,A)]),a(k,{tracks:n.tracks,expression:n.expression},null,8,["tracks","expression"]),a(C,{show:s.show_details_modal,composer:s.composer,onClose:t[4]||(t[4]=r=>s.show_details_modal=!1)},null,8,["show","composer"])]),_:1})])}const Z=x(z,[["render",H]]);export{Z as default};

View File

@ -1 +0,0 @@
import{C as h}from"./ContentWithHeading.js";import{G as l,a as b}from"./GroupByList.js";import{I as g}from"./IndexButtonList.js";import{L as x}from"./ListComposers.js";import{T as C}from"./TabsMusic.js";import{_ as w,r,o as y,c as B,d as a,w as i,e as L,a as p,t as m}from"./index.js";import"./ModalDialogComposer.js";const c={load(t){return L.library_composers("music")},set(t,e){t.composers=new l(e.data),t.composers.group(b("name_sort"))}},E={name:"PageComposers",components:{ContentWithHeading:h,IndexButtonList:g,ListComposers:x,TabsMusic:C},beforeRouteEnter(t,e,s){c.load(t).then(n=>{s(o=>c.set(o,n))})},beforeRouteUpdate(t,e,s){if(!this.composers.isEmpty()){s();return}const n=this;c.load(t).then(o=>{c.set(n,o),s()})},data(){return{composers:new l}}},N={class:"fd-page-with-tabs"},$=["textContent"],k=["textContent"];function v(t,e,s,n,o,G){const _=r("tabs-music"),d=r("index-button-list"),u=r("list-composers"),f=r("content-with-heading");return y(),B("div",N,[a(_),a(f,null,{options:i(()=>[a(d,{index:o.composers.indexList},null,8,["index"])]),"heading-left":i(()=>[p("p",{class:"title is-4",textContent:m(t.$t("page.composers.title"))},null,8,$),p("p",{class:"heading",textContent:m(t.$t("page.composers.count",{count:o.composers.total}))},null,8,k)]),content:i(()=>[a(u,{composers:o.composers},null,8,["composers"])]),_:1})])}const H=w(E,[["render",v]]);export{H as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{G as g,a as x}from"./GroupByList.js";import{C}from"./ContentWithHeading.js";import{I as y}from"./IndexButtonList.js";import{L as w}from"./ListAlbums.js";import{M as B}from"./ModalDialogGenre.js";import{_ as G,e as c,r as l,o as L,c as q,d as o,w as d,a as s,t as _}from"./index.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const u={load(e){return Promise.all([c.library_genre(e.params.name,e.query.media_kind),c.library_genre_albums(e.params.name,e.query.media_kind)])},set(e,n){e.genre=n[0].data,e.albums_list=new g(n[1].data.albums),e.albums_list.group(x("name_sort",!0))}},v={name:"PageGenreAlbums",components:{ContentWithHeading:C,IndexButtonList:y,ListAlbums:w,ModalDialogGenre:B},beforeRouteEnter(e,n,a){u.load(e).then(r=>{a(t=>u.set(t,r))})},beforeRouteUpdate(e,n,a){if(!this.albums_list.isEmpty()){a();return}const r=this;u.load(e).then(t=>{u.set(r,t),a()})},data(){return{albums_list:new g,genre:{},media_kind:this.$route.query.media_kind,show_details_modal:!1}},methods:{open_tracks(){this.show_details_modal=!1,this.$router.push({name:"genre-tracks",params:{name:this.genre.name},query:{media_kind:this.media_kind}})},play(){c.player_play_expression(`genre is "${this.genre.name}" and media_kind is ${this.media_kind}`,!0)}}},z=["textContent"],A={class:"buttons is-centered"},E=["textContent"],N={class:"heading has-text-centered-mobile"},P=["textContent"],D=s("span",null," | ",-1),I=["textContent"];function M(e,n,a,r,t,m){const h=l("index-button-list"),p=l("mdicon"),b=l("list-albums"),f=l("modal-dialog-genre"),k=l("content-with-heading");return L(),q("div",null,[o(k,null,{options:d(()=>[o(h,{index:t.albums_list.indexList},null,8,["index"])]),"heading-left":d(()=>[s("p",{class:"title is-4",textContent:_(t.genre.name)},null,8,z)]),"heading-right":d(()=>[s("div",A,[s("a",{class:"button is-small is-light is-rounded",onClick:n[0]||(n[0]=i=>t.show_details_modal=!0)},[o(p,{class:"icon",name:"dots-horizontal",size:"16"})]),s("a",{class:"button is-small is-dark is-rounded",onClick:n[1]||(n[1]=(...i)=>m.play&&m.play(...i))},[o(p,{class:"icon",name:"shuffle",size:"16"}),s("span",{textContent:_(e.$t("page.genre.shuffle"))},null,8,E)])])]),content:d(()=>[s("p",N,[s("span",{textContent:_(e.$t("page.genre.album-count",{count:t.genre.album_count}))},null,8,P),D,s("a",{class:"has-text-link",onClick:n[2]||(n[2]=(...i)=>m.open_tracks&&m.open_tracks(...i)),textContent:_(e.$t("page.genre.track-count",{count:t.genre.track_count}))},null,8,I)]),o(b,{albums:t.albums_list},null,8,["albums"]),o(f,{genre:t.genre,media_kind:t.media_kind,show:t.show_details_modal,onClose:n[3]||(n[3]=i=>t.show_details_modal=!1)},null,8,["genre","media_kind","show"])]),_:1})])}const F=G(v,[["render",M]]);export{F as default};

View File

@ -1 +0,0 @@
import{_ as x,G as C,e as p,r as a,o as w,c as v,d as r,w as c,a as s,t as d}from"./index.js";import{a as G,d as B,G as g}from"./GroupByList.js";import{C as R}from"./ContentWithHeading.js";import{C as E}from"./ControlDropdown.js";import{I as L}from"./IndexButtonList.js";import{L as T}from"./ListTracks.js";import{M as q}from"./ModalDialogGenre.js";import"./spotify-web-api.js";const m={load(e){return Promise.all([p.library_genre(e.params.name,e.query.media_kind),p.library_genre_tracks(e.params.name,e.query.media_kind)])},set(e,t){e.genre=t[0].data,e.tracks_list=new g(t[1].data.tracks)}},N={name:"PageGenreTracks",components:{ContentWithHeading:R,ControlDropdown:E,IndexButtonList:L,ListTracks:T,ModalDialogGenre:q},beforeRouteEnter(e,t,l){m.load(e).then(_=>{l(n=>m.set(n,_))})},beforeRouteUpdate(e,t,l){if(!this.tracks_list.isEmpty()){l();return}const _=this;m.load(e).then(n=>{m.set(_,n),l()})},data(){return{genre:{},groupby_options:[{id:1,name:this.$t("page.genre.sort-by.name"),options:G("title_sort")},{id:2,name:this.$t("page.genre.sort-by.rating"),options:B("rating",{direction:"desc"})}],media_kind:this.$route.query.media_kind,show_details_modal:!1,tracks_list:new g}},computed:{expression(){return`genre is "${this.genre.name}" and media_kind is ${this.media_kind}`},selected_groupby_option_id:{get(){return this.$store.state.genre_tracks_sort},set(e){this.$store.commit(C,e)}},tracks(){const e=this.groupby_options.find(t=>t.id===this.selected_groupby_option_id);return this.tracks_list.group(e.options),this.tracks_list}},methods:{open_genre(){this.show_details_modal=!1,this.$router.push({name:"genre-albums",params:{name:this.genre.name},query:{media_kind:this.media_kind}})},play(){p.player_play_expression(this.expression,!0)}}},z={class:"columns"},D={class:"column"},P=["textContent"],S=["textContent"],I={class:"buttons is-centered"},M=["textContent"],O={class:"heading has-text-centered-mobile"},U=["textContent"],V=s("span",null," | ",-1),j=["textContent"];function A(e,t,l,_,n,o){const h=a("index-button-list"),k=a("control-dropdown"),u=a("mdicon"),b=a("list-tracks"),y=a("modal-dialog-genre"),f=a("content-with-heading");return w(),v("div",null,[r(f,null,{options:c(()=>[r(h,{index:o.tracks.indexList},null,8,["index"]),s("div",z,[s("div",D,[s("p",{class:"heading mb-5",textContent:d(e.$t("page.genre.sort-by.title"))},null,8,P),r(k,{value:o.selected_groupby_option_id,"onUpdate:value":t[0]||(t[0]=i=>o.selected_groupby_option_id=i),options:n.groupby_options},null,8,["value","options"])])])]),"heading-left":c(()=>[s("p",{class:"title is-4",textContent:d(n.genre.name)},null,8,S)]),"heading-right":c(()=>[s("div",I,[s("a",{class:"button is-small is-light is-rounded",onClick:t[1]||(t[1]=i=>n.show_details_modal=!0)},[r(u,{class:"icon",name:"dots-horizontal",size:"16"})]),s("a",{class:"button is-small is-dark is-rounded",onClick:t[2]||(t[2]=(...i)=>o.play&&o.play(...i))},[r(u,{class:"icon",name:"shuffle",size:"16"}),s("span",{textContent:d(e.$t("page.genre.shuffle"))},null,8,M)])])]),content:c(()=>[s("p",O,[s("a",{class:"has-text-link",onClick:t[3]||(t[3]=(...i)=>o.open_genre&&o.open_genre(...i)),textContent:d(e.$t("page.genre.album-count",{count:n.genre.album_count}))},null,8,U),V,s("span",{textContent:d(e.$t("page.genre.track-count",{count:n.genre.track_count}))},null,8,j)]),r(b,{tracks:o.tracks,expression:o.expression},null,8,["tracks","expression"]),r(y,{show:n.show_details_modal,genre:n.genre,media_kind:n.media_kind,onClose:t[4]||(t[4]=i=>n.show_details_modal=!1)},null,8,["show","genre","media_kind"])]),_:1})])}const Z=x(N,[["render",A]]);export{Z as default};

View File

@ -1 +0,0 @@
import{G as d,a as f}from"./GroupByList.js";import{C as h}from"./ContentWithHeading.js";import{I as b}from"./IndexButtonList.js";import{L as x}from"./ListGenres.js";import{T as w}from"./TabsMusic.js";import{_ as C,r as a,o as B,c as G,d as r,w as c,e as L,a as l,t as _}from"./index.js";import"./ModalDialogGenre.js";const i={load(e){return L.library_genres("music")},set(e,n){e.genres=n.data,e.genres=new d(n.data),e.genres.group(f("name_sort"))}},y={name:"PageGenres",components:{ContentWithHeading:h,IndexButtonList:b,ListGenres:x,TabsMusic:w},beforeRouteEnter(e,n,s){i.load(e).then(o=>{s(t=>i.set(t,o))})},beforeRouteUpdate(e,n,s){const o=this;i.load(e).then(t=>{i.set(o,t),s()})},data(){return{genres:new d}}},k={class:"fd-page-with-tabs"},N=["textContent"],$=["textContent"];function E(e,n,s,o,t,I){const m=a("tabs-music"),p=a("index-button-list"),g=a("list-genres"),u=a("content-with-heading");return B(),G("div",k,[r(m),r(u,null,{options:c(()=>[r(p,{index:t.genres.indexList},null,8,["index"])]),"heading-left":c(()=>[l("p",{class:"title is-4",textContent:_(e.$t("page.genres.title"))},null,8,N),l("p",{class:"heading",textContent:_(e.$t("page.genres.count",{count:t.genres.total}))},null,8,$)]),content:c(()=>[r(g,{genres:t.genres,media_kind:"music"},null,8,["genres"])]),_:1})])}const H=C(y,[["render",E]]);export{H as default};

View File

@ -1 +0,0 @@
import{C as g}from"./ContentWithHeading.js";import{G as p}from"./GroupByList.js";import{L as k}from"./ListAlbums.js";import{L as w}from"./ListTracks.js";import{T as v}from"./TabsMusic.js";import{_ as C,r as i,o as x,c as $,d as s,w as t,e as u,a as o,t as r,b as h}from"./index.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";import"./spotify-web-api.js";const d={load(e){return Promise.all([u.search({type:"album",expression:"time_added after 8 weeks ago and media_kind is music having track_count > 3 order by time_added desc",limit:3}),u.search({type:"track",expression:"time_played after 8 weeks ago and media_kind is music order by time_played desc",limit:3})])},set(e,n){e.recently_added=new p(n[0].data.albums),e.recently_played=new p(n[1].data.tracks)}},L={name:"PageMusic",components:{ContentWithHeading:g,ListAlbums:k,ListTracks:w,TabsMusic:v},beforeRouteEnter(e,n,l){d.load(e).then(c=>{l(a=>d.set(a,c))})},beforeRouteUpdate(e,n,l){const c=this;d.load(e).then(a=>{d.set(c,a),l()})},data(){return{recently_added:[],recently_played:{items:[]},selected_track:{}}}},B={class:"fd-page-with-tabs"},T=["textContent"],M={class:"level"},N={class:"level-item"},P=["textContent"],V={class:"level"},E={class:"level-item"};function G(e,n,l,c,a,R){const f=i("tabs-music"),y=i("list-albums"),m=i("router-link"),_=i("content-with-heading"),b=i("list-tracks");return x(),$("div",B,[s(f),s(_,null,{"heading-left":t(()=>[o("p",{class:"title is-4",textContent:r(e.$t("page.music.recently-added.title"))},null,8,T)]),content:t(()=>[s(y,{albums:a.recently_added},null,8,["albums"])]),footer:t(()=>[o("nav",M,[o("p",N,[s(m,{class:"button is-light is-small is-rounded",to:{name:"music-recently-added"}},{default:t(()=>[h(r(e.$t("page.music.show-more")),1)]),_:1})])])]),_:1}),s(_,null,{"heading-left":t(()=>[o("p",{class:"title is-4",textContent:r(e.$t("page.music.recently-played.title"))},null,8,P)]),content:t(()=>[s(b,{tracks:a.recently_played},null,8,["tracks"])]),footer:t(()=>[o("nav",V,[o("p",E,[s(m,{class:"button is-light is-small is-rounded",to:{name:"music-recently-played"}},{default:t(()=>[h(r(e.$t("page.music.show-more")),1)]),_:1})])])]),_:1})])}const z=C(L,[["render",G]]);export{z as default};

View File

@ -1 +0,0 @@
import{C as p}from"./ContentWithHeading.js";import{G as r,e as u}from"./GroupByList.js";import{L as b}from"./ListAlbums.js";import{_ as f,r as d,o as h,c as y,d as i,w as c,s as g,e as w,a as C,t as x}from"./index.js";import{T as k}from"./TabsMusic.js";import"./CoverArtwork.js";import"./ModalDialogAlbum.js";const a={load(e){const t=g.getters.settings_option_recently_added_limit;return w.search({type:"album",expression:"media_kind is music having track_count > 3 order by time_added desc",limit:t})},set(e,t){e.recently_added=new r(t.data.albums),e.recently_added.group(u("time_added",{direction:"desc"}))}},B={name:"PageMusicRecentlyAdded",components:{ContentWithHeading:p,TabsMusic:k,ListAlbums:b},beforeRouteEnter(e,t,s){a.load(e).then(o=>{s(n=>a.set(n,o))})},beforeRouteUpdate(e,t,s){if(!this.recently_added.isEmpty()){s();return}const o=this;a.load(e).then(n=>{a.set(o,n),s()})},data(){return{recently_added:new r}}},R={class:"fd-page-with-tabs"},$=["textContent"];function v(e,t,s,o,n,A){const l=d("tabs-music"),m=d("list-albums"),_=d("content-with-heading");return h(),y("div",R,[i(l),i(_,null,{"heading-left":c(()=>[C("p",{class:"title is-4",textContent:x(e.$t("page.music.recently-added.title"))},null,8,$)]),content:c(()=>[i(m,{albums:n.recently_added},null,8,["albums"])]),_:1})])}const P=f(B,[["render",v]]);export{P as default};

View File

@ -1 +0,0 @@
import{C as m}from"./ContentWithHeading.js";import{G as _}from"./GroupByList.js";import{L as u}from"./ListTracks.js";import{T as y}from"./TabsMusic.js";import{_ as f,r as c,o as h,c as k,d as r,w as i,e as g,a as b,t as w}from"./index.js";import"./spotify-web-api.js";const n={load(t){return g.search({type:"track",expression:"time_played after 8 weeks ago and media_kind is music order by time_played desc",limit:50})},set(t,s){t.recently_played=new _(s.data.tracks)}},x={name:"PageMusicRecentlyPlayed",components:{ContentWithHeading:m,TabsMusic:y,ListTracks:u},beforeRouteEnter(t,s,a){n.load(t).then(o=>{a(e=>n.set(e,o))})},beforeRouteUpdate(t,s,a){const o=this;n.load(t).then(e=>{n.set(o,e),a()})},data(){return{recently_played:{}}}},C={class:"fd-page-with-tabs"},B=["textContent"];function P(t,s,a,o,e,R){const l=c("tabs-music"),d=c("list-tracks"),p=c("content-with-heading");return h(),k("div",C,[r(l),r(p,null,{"heading-left":i(()=>[b("p",{class:"title is-4",textContent:w(t.$t("page.music.recently-played.title"))},null,8,B)]),content:i(()=>[r(d,{tracks:e.recently_played},null,8,["tracks"])]),_:1})])}const G=f(x,[["render",P]]);export{G as default};

View File

@ -1 +0,0 @@
import{_ as T,r as i,o as m,c as f,d as a,w as o,s as _,x as F,y as I,a as n,t as d,F as b,f as k,g as v,m as N,h as C,b as S}from"./index.js";import{C as R}from"./ContentWithHeading.js";import{C as B}from"./CoverArtwork.js";import{L as D}from"./ListItemAlbumSpotify.js";import{L as $}from"./ListItemPlaylistSpotify.js";import{M as O}from"./ModalDialogAlbumSpotify.js";import{M as V}from"./ModalDialogPlaylistSpotify.js";import{S as W}from"./spotify-web-api.js";import{T as Y}from"./TabsMusic.js";const u={load(t){if(_.state.spotify_new_releases.length>0&&_.state.spotify_featured_playlists.length>0)return Promise.resolve();const e=new W;return e.setAccessToken(_.state.spotify.webapi_token),Promise.all([e.getNewReleases({country:_.state.spotify.webapi_country,limit:50}),e.getFeaturedPlaylists({country:_.state.spotify.webapi_country,limit:50})])},set(t,e){e&&(_.commit(F,e[0].albums.items),_.commit(I,e[1].playlists.items))}},z={name:"PageMusicSpotify",components:{ContentWithHeading:R,CoverArtwork:B,ListItemAlbumSpotify:D,ListItemPlaylistSpotify:$,ModalDialogAlbumSpotify:O,ModalDialogPlaylistSpotify:V,TabsMusic:Y},beforeRouteEnter(t,e,c){u.load(t).then(p=>{c(l=>u.set(l,p))})},beforeRouteUpdate(t,e,c){const p=this;u.load(t).then(l=>{u.set(p,l),c()})},data(){return{show_album_details_modal:!1,selected_album:{},show_playlist_details_modal:!1,selected_playlist:{}}},computed:{new_releases(){return this.$store.state.spotify_new_releases.slice(0,3)},featured_playlists(){return this.$store.state.spotify_featured_playlists.slice(0,3)},is_visible_artwork(){return this.$store.getters.settings_option("webinterface","show_cover_artwork_in_album_lists").value}},methods:{open_album(t){this.$router.push({name:"music-spotify-album",params:{id:t.id}})},open_album_dialog(t){this.selected_album=t,this.show_album_details_modal=!0},open_playlist_dialog(t){this.selected_playlist=t,this.show_playlist_details_modal=!0},artwork_url(t){return t.images&&t.images.length>0?t.images[0].url:""}}},U={class:"fd-page-with-tabs"},j=["textContent"],H=["onClick"],q={class:"level"},G={class:"level-item"},J=["textContent"],K=["onClick"],Q={class:"level"},X={class:"level-item"};function Z(t,e,c,p,l,r){const x=i("tabs-music"),P=i("cover-artwork"),y=i("mdicon"),A=i("list-item-album-spotify"),E=i("modal-dialog-album-spotify"),h=i("router-link"),w=i("content-with-heading"),L=i("list-item-playlist-spotify"),M=i("modal-dialog-playlist-spotify");return m(),f("div",U,[a(x),a(w,null,{"heading-left":o(()=>[n("p",{class:"title is-4",textContent:d(t.$t("page.spotify.music.new-releases"))},null,8,j)]),content:o(()=>[(m(!0),f(b,null,k(r.new_releases,s=>(m(),v(A,{key:s.id,album:s,onClick:g=>r.open_album(s)},N({actions:o(()=>[n("a",{onClick:C(g=>r.open_album_dialog(s),["prevent","stop"])},[a(y,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,H)]),_:2},[r.is_visible_artwork?{name:"artwork",fn:o(()=>[a(P,{artwork_url:r.artwork_url(s),artist:s.artist,album:s.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-small-image",maxwidth:64,maxheight:64},null,8,["artwork_url","artist","album"])]),key:"0"}:void 0]),1032,["album","onClick"]))),128)),a(E,{show:l.show_album_details_modal,album:l.selected_album,onClose:e[0]||(e[0]=s=>l.show_album_details_modal=!1)},null,8,["show","album"])]),footer:o(()=>[n("nav",q,[n("p",G,[a(h,{to:{name:"music-spotify-new-releases"},class:"button is-light is-small is-rounded"},{default:o(()=>[S(d(t.$t("page.spotify.music.show-more")),1)]),_:1})])])]),_:1}),a(w,null,{"heading-left":o(()=>[n("p",{class:"title is-4",textContent:d(t.$t("page.spotify.music.featured-playlists"))},null,8,J)]),content:o(()=>[(m(!0),f(b,null,k(r.featured_playlists,s=>(m(),v(L,{key:s.id,playlist:s},{actions:o(()=>[n("a",{onClick:C(g=>r.open_playlist_dialog(s),["prevent","stop"])},[a(y,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,K)]),_:2},1032,["playlist"]))),128)),a(M,{show:l.show_playlist_details_modal,playlist:l.selected_playlist,onClose:e[1]||(e[1]=s=>l.show_playlist_details_modal=!1)},null,8,["show","playlist"])]),footer:o(()=>[n("nav",Q,[n("p",X,[a(h,{to:{name:"music-spotify-featured-playlists"},class:"button is-light is-small is-rounded"},{default:o(()=>[S(d(t.$t("page.spotify.music.show-more")),1)]),_:1})])])]),_:1})])}const _t=T(z,[["render",Z]]);export{_t as default};

View File

@ -1 +0,0 @@
import{_ as b,r as o,o as c,c as m,d as n,w as _,s as p,y as P,a as f,t as S,F as k,f as v,g as C,h as F}from"./index.js";import{C as x}from"./ContentWithHeading.js";import{L as M}from"./ListItemPlaylistSpotify.js";import{M as T}from"./ModalDialogPlaylistSpotify.js";import{S as A}from"./spotify-web-api.js";import{T as L}from"./TabsMusic.js";const r={load(s){if(p.state.spotify_featured_playlists.length>0)return Promise.resolve();const t=new A;t.setAccessToken(p.state.spotify.webapi_token),t.getFeaturedPlaylists({country:p.state.spotify.webapi_country,limit:50})},set(s,t){t&&p.commit(P,t.playlists.items)}},B={name:"PageMusicSpotifyFeaturedPlaylists",components:{ContentWithHeading:x,ListItemPlaylistSpotify:M,ModalDialogPlaylistSpotify:T,TabsMusic:L},beforeRouteEnter(s,t,a){r.load(s).then(i=>{a(e=>r.set(e,i))})},beforeRouteUpdate(s,t,a){const i=this;r.load(s).then(e=>{r.set(i,e),a()})},data(){return{selected_playlist:{},show_details_modal:!1}},computed:{featured_playlists(){return this.$store.state.spotify_featured_playlists}},methods:{open_playlist_dialog(s){this.selected_playlist=s,this.show_details_modal=!0}}},E={class:"fd-page-with-tabs"},D=["textContent"],I=["onClick"];function R(s,t,a,i,e,d){const y=o("tabs-music"),u=o("mdicon"),h=o("list-item-playlist-spotify"),g=o("modal-dialog-playlist-spotify"),w=o("content-with-heading");return c(),m("div",E,[n(y),n(w,null,{"heading-left":_(()=>[f("p",{class:"title is-4",textContent:S(s.$t("page.spotify.music.featured-playlists"))},null,8,D)]),content:_(()=>[(c(!0),m(k,null,v(d.featured_playlists,l=>(c(),C(h,{key:l.id,playlist:l},{actions:_(()=>[f("a",{onClick:F($=>d.open_playlist_dialog(l),["prevent","stop"])},[n(u,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,I)]),_:2},1032,["playlist"]))),128)),n(g,{show:e.show_details_modal,playlist:e.selected_playlist,onClose:t[0]||(t[0]=l=>e.show_details_modal=!1)},null,8,["show","playlist"])]),_:1})])}const j=b(B,[["render",R]]);export{j as default};

View File

@ -1 +0,0 @@
import{_ as v,r as a,o as d,c as u,d as r,w as m,s as _,x as C,a as p,t as S,F as x,f as A,g as E,m as M,h as N}from"./index.js";import{C as R}from"./ContentWithHeading.js";import{C as B}from"./CoverArtwork.js";import{L}from"./ListItemAlbumSpotify.js";import{M as P}from"./ModalDialogAlbumSpotify.js";import{S as T}from"./spotify-web-api.js";import{T as F}from"./TabsMusic.js";const c={load(e){if(_.state.spotify_new_releases.length>0)return Promise.resolve();const t=new T;return t.setAccessToken(_.state.spotify.webapi_token),t.getNewReleases({country:_.state.spotify.webapi_country,limit:50})},set(e,t){t&&_.commit(C,t.albums.items)}},W={name:"PageMusicSpotifyNewReleases",components:{ContentWithHeading:R,CoverArtwork:B,ListItemAlbumSpotify:L,ModalDialogAlbumSpotify:P,TabsMusic:F},beforeRouteEnter(e,t,n){c.load(e).then(l=>{n(o=>c.set(o,l))})},beforeRouteUpdate(e,t,n){const l=this;c.load(e).then(o=>{c.set(l,o),n()})},data(){return{show_details_modal:!1,selected_album:{}}},computed:{new_releases(){return this.$store.state.spotify_new_releases},is_visible_artwork(){return this.$store.getters.settings_option("webinterface","show_cover_artwork_in_album_lists").value}},methods:{open_album(e){this.$router.push({name:"music-spotify-album",params:{id:e.id}})},open_album_dialog(e){this.selected_album=e,this.show_details_modal=!0},artwork_url(e){return e.images&&e.images.length>0?e.images[0].url:""}}},$={class:"fd-page-with-tabs"},D=["textContent"],I=["onClick"];function O(e,t,n,l,o,i){const f=a("tabs-music"),w=a("cover-artwork"),h=a("mdicon"),b=a("list-item-album-spotify"),g=a("modal-dialog-album-spotify"),k=a("content-with-heading");return d(),u("div",$,[r(f),r(k,null,{"heading-left":m(()=>[p("p",{class:"title is-4",textContent:S(e.$t("page.spotify.music.new-releases"))},null,8,D)]),content:m(()=>[(d(!0),u(x,null,A(i.new_releases,s=>(d(),E(b,{key:s.id,album:s,onClick:y=>i.open_album(s)},M({actions:m(()=>[p("a",{onClick:N(y=>i.open_album_dialog(s),["prevent","stop"])},[r(h,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,I)]),_:2},[i.is_visible_artwork?{name:"artwork",fn:m(()=>[r(w,{artwork_url:i.artwork_url(s),artist:s.artist,album:s.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-small-image",maxwidth:64,maxheight:64},null,8,["artwork_url","artist","album"])]),key:"0"}:void 0]),1032,["album","onClick"]))),128)),r(g,{show:o.show_details_modal,album:o.selected_album,onClose:t[0]||(t[0]=s=>o.show_details_modal=!1)},null,8,["show","album"])]),_:1})])}const G=v(W,[["render",O]]);export{G as default};

View File

@ -1 +0,0 @@
.lyrics[data-v-d4edaddb]{top:0;left:calc(50% - 50vw);width:100vw;height:calc(100vh - 26rem);max-height:min(100% - 8rem,100vh - 26rem + 3.5rem);position:absolute;overflow:auto;--mask: linear-gradient( 180deg, transparent 0%, rgba(0, 0, 0, 1) 15%, rgba(0, 0, 0, 1) 85%, transparent 100% );-webkit-mask:var(--mask);mask:var(--mask)}.lyrics div.is-highlighted span[data-v-d4edaddb]{animation:pop-color 0s linear forwards}.lyrics div[data-v-d4edaddb]{line-height:3rem}.lyrics div[data-v-d4edaddb]:first-child{padding-top:calc(25vh - 2rem)}.lyrics div[data-v-d4edaddb]:last-child{padding-bottom:calc(25vh - 3rem)}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{C as h}from"./ContentWithHeading.js";import{G as m,n as f}from"./GroupByList.js";import{L as g}from"./ListPlaylists.js";import{_ as C,r as n,o as w,c as b,d as r,w as p,e as c,a as d,t as _}from"./index.js";import"./ModalDialogPlaylist.js";const o={load(t){return Promise.all([c.library_playlist(t.params.id),c.library_playlist_folder(t.params.id)])},set(t,e){t.playlist=e[0].data,t.playlists_list=new m(e[1].data)}},x={name:"PagePlaylistFolder",components:{ContentWithHeading:h,ListPlaylists:g},beforeRouteEnter(t,e,a){o.load(t).then(l=>{a(s=>o.set(s,l))})},beforeRouteUpdate(t,e,a){const l=this;o.load(t).then(s=>{o.set(l,s),a()})},data(){return{playlist:{},playlists_list:new m}},computed:{playlists(){return this.playlists_list.group(f(),[t=>t.folder||this.radio_playlists||t.stream_count===0||t.item_count>t.stream_count]),this.playlists_list},radio_playlists(){return this.$store.state.config.radio_playlists}}},P=["textContent"],B=["textContent"];function L(t,e,a,l,s,i){const y=n("list-playlists"),u=n("content-with-heading");return w(),b("div",null,[r(u,null,{"heading-left":p(()=>[d("p",{class:"title is-4",textContent:_(s.playlist.id===0?t.$t("page.playlists.title"):s.playlist.name)},null,8,P),d("p",{class:"heading",textContent:_(t.$t("page.playlists.count",{count:i.playlists.count}))},null,8,B)]),content:p(()=>[r(y,{playlists:i.playlists},null,8,["playlists"])]),_:1})])}const G=C(x,[["render",L]]);export{G as default};

View File

@ -1 +0,0 @@
import{C as g}from"./ContentWithHeading.js";import{G as h}from"./GroupByList.js";import{L as w}from"./ListTracks.js";import{M as C}from"./ModalDialogPlaylist.js";import{_ as b,e as u,r,o as x,c as v,d as l,w as p,a,t as m}from"./index.js";import"./spotify-web-api.js";const c={load(t){return Promise.all([u.library_playlist(t.params.id),u.library_playlist_tracks(t.params.id)])},set(t,s){t.playlist=s[0].data,t.tracks=new h(s[1].data)}},P={name:"PagePlaylistTracks",components:{ContentWithHeading:g,ListTracks:w,ModalDialogPlaylist:C},beforeRouteEnter(t,s,o){c.load(t).then(n=>{o(e=>c.set(e,n))})},beforeRouteUpdate(t,s,o){const n=this;c.load(t).then(e=>{c.set(n,e),o()})},data(){return{playlist:{},show_details_modal:!1,tracks:new h}},computed:{uris(){return this.playlist.random?this.tracks.map(t=>t.uri).join(","):this.playlist.uri}},methods:{play(){u.player_play_uri(this.uris,!0)}}},B=["textContent"],z={class:"buttons is-centered"},L=["textContent"],T=["textContent"];function j(t,s,o,n,e,i){const _=r("mdicon"),y=r("list-tracks"),f=r("modal-dialog-playlist"),k=r("content-with-heading");return x(),v("div",null,[l(k,null,{"heading-left":p(()=>[a("div",{class:"title is-4",textContent:m(e.playlist.name)},null,8,B)]),"heading-right":p(()=>[a("div",z,[a("a",{class:"button is-small is-light is-rounded",onClick:s[0]||(s[0]=d=>e.show_details_modal=!0)},[l(_,{class:"icon",name:"dots-horizontal",size:"16"})]),a("a",{class:"button is-small is-dark is-rounded",onClick:s[1]||(s[1]=(...d)=>i.play&&i.play(...d))},[l(_,{class:"icon",name:"shuffle",size:"16"}),a("span",{textContent:m(t.$t("page.playlist.shuffle"))},null,8,L)])])]),content:p(()=>[a("p",{class:"heading has-text-centered-mobile",textContent:m(t.$t("page.playlist.track-count",{count:e.tracks.count}))},null,8,T),l(y,{tracks:e.tracks,uris:i.uris},null,8,["tracks","uris"]),l(f,{show:e.show_details_modal,playlist:e.playlist,uris:i.uris,onClose:s[2]||(s[2]=d=>e.show_details_modal=!1)},null,8,["show","playlist","uris"])]),_:1})])}const V=b(P,[["render",j]]);export{V as default};

View File

@ -1 +0,0 @@
import{C as S}from"./ContentWithHeading.js";import{L as T,M as E}from"./ModalDialogTrackSpotify.js";import{M as v}from"./ModalDialogPlaylistSpotify.js";import{S as g}from"./spotify-web-api.js";import{_ as V,s as y,e as A,r as n,o as _,c as k,d as r,w as c,a as l,t as f,F as L,f as M,g as u,h as z,b as B,k as N}from"./index.js";import{G as D}from"./vue-eternal-loading.js";const h=50,d={load(t){const s=new g;return s.setAccessToken(y.state.spotify.webapi_token),Promise.all([s.getPlaylist(t.params.id),s.getPlaylistTracks(t.params.id,{limit:h,offset:0,market:y.state.spotify.webapi_country})])},set(t,s){t.playlist=s[0],t.tracks=[],t.total=0,t.offset=0,t.append_tracks(s[1])}},F={name:"PagePlaylistTracksSpotify",components:{ContentWithHeading:S,ListItemTrackSpotify:T,ModalDialogPlaylistSpotify:v,ModalDialogTrackSpotify:E,VueEternalLoading:D},beforeRouteEnter(t,s,o){d.load(t).then(a=>{o(e=>d.set(e,a))})},beforeRouteUpdate(t,s,o){const a=this;d.load(t).then(e=>{d.set(a,e),o()})},data(){return{playlist:{tracks:{}},tracks:[],total:0,offset:0,show_track_details_modal:!1,selected_track:{},show_playlist_details_modal:!1}},methods:{load_next({loaded:t}){const s=new g;s.setAccessToken(this.$store.state.spotify.webapi_token),s.getPlaylistTracks(this.playlist.id,{limit:h,offset:this.offset,market:y.state.spotify.webapi_country}).then(o=>{this.append_tracks(o),t(o.items.length,h)})},append_tracks(t){let s=Math.max(-1,...this.tracks.map(o=>o.position).filter(o=>o));t.items.forEach(o=>{const{track:a}=o;a&&(a.is_playable&&(a.position=++s),this.tracks.push(a))}),this.total=t.total,this.offset+=t.limit},play(){this.show_details_modal=!1,A.player_play_uri(this.playlist.uri,!0)},open_track_dialog(t){this.selected_track=t,this.show_track_details_modal=!0}}},G=["textContent"],I={class:"buttons is-centered"},R=["textContent"],W=["textContent"],j=["onClick"];function H(t,s,o,a,e,p){const m=n("mdicon"),w=n("list-item-track-spotify"),b=n("VueEternalLoading"),C=n("modal-dialog-track-spotify"),x=n("modal-dialog-playlist-spotify"),P=n("content-with-heading");return _(),k("div",null,[r(P,null,{"heading-left":c(()=>[l("div",{class:"title is-4",textContent:f(e.playlist.name)},null,8,G)]),"heading-right":c(()=>[l("div",I,[l("a",{class:"button is-small is-light is-rounded",onClick:s[0]||(s[0]=i=>e.show_playlist_details_modal=!0)},[r(m,{class:"icon",name:"dots-horizontal",size:"16"})]),l("a",{class:"button is-small is-dark is-rounded",onClick:s[1]||(s[1]=(...i)=>p.play&&p.play(...i))},[r(m,{class:"icon",name:"shuffle",size:"16"}),l("span",{textContent:f(t.$t("page.spotify.playlist.shuffle"))},null,8,R)])])]),content:c(()=>[l("p",{class:"heading has-text-centered-mobile",textContent:f(t.$t("page.spotify.playlist.count",{count:e.playlist.tracks.total}))},null,8,W),(_(!0),k(L,null,M(e.tracks,i=>(_(),u(w,{key:i.id,track:i,position:i.position,context_uri:e.playlist.uri},{actions:c(()=>[l("a",{onClick:z(O=>p.open_track_dialog(i),["prevent","stop"])},[r(m,{class:"icon has-text-dark",name:"dots-vertical",size:"16"})],8,j)]),_:2},1032,["track","position","context_uri"]))),128)),e.offset<e.total?(_(),u(b,{key:0,load:p.load_next},{"no-more":c(()=>[B(" . ")]),_:1},8,["load"])):N("",!0),r(C,{show:e.show_track_details_modal,track:e.selected_track,album:e.selected_track.album,onClose:s[2]||(s[2]=i=>e.show_track_details_modal=!1)},null,8,["show","track","album"]),r(x,{show:e.show_playlist_details_modal,playlist:e.playlist,onClose:s[3]||(s[3]=i=>e.show_playlist_details_modal=!1)},null,8,["show","playlist"])]),_:1})])}const X=V(F,[["render",H]]);export{X as default};

View File

@ -1 +0,0 @@
import{C as g}from"./ContentWithHero.js";import{C as y}from"./CoverArtwork.js";import{G as u}from"./GroupByList.js";import{L as x}from"./ListTracks.js";import{_ as P,M as D,e as i,r as n,o as z,c as B,d as l,w as c,a as s,t as r,b as k}from"./index.js";import{M}from"./ModalDialogAlbum.js";import"./spotify-web-api.js";const p={load(t){return Promise.all([i.library_album(t.params.id),i.library_podcast_episodes(t.params.id)])},set(t,o){t.album=o[0].data,t.tracks=new u(o[1].data.tracks)}},R={name:"PagePodcast",components:{ContentWithHero:g,CoverArtwork:y,ListTracks:x,ModalDialog:D,ModalDialogAlbum:M},beforeRouteEnter(t,o,_){p.load(t).then(m=>{_(e=>p.set(e,m))})},beforeRouteUpdate(t,o,_){const m=this;p.load(t).then(e=>{p.set(m,e),_()})},data(){return{album:{},rss_playlist_to_remove:{},show_details_modal:!1,show_remove_podcast_modal:!1,tracks:new u}},computed:{new_tracks(){return this.tracks.items.filter(t=>t.play_count===0).length}},methods:{open_remove_podcast_dialog(){i.library_track_playlists(this.tracks.items[0].id).then(({data:t})=>{[this.rss_playlist_to_remove]=t.items.filter(o=>o.type==="rss"),this.show_remove_podcast_modal=!0,this.show_details_modal=!1})},play(){i.player_play_uri(this.album.uri,!1)},reload_tracks(){i.library_podcast_episodes(this.album.id).then(({data:t})=>{this.tracks=new u(t.tracks)})},remove_podcast(){this.show_remove_podcast_modal=!1,i.library_playlist_delete(this.rss_playlist_to_remove.id).then(()=>{this.$router.replace({name:"podcasts"})})}}},L=["textContent"],N=s("h2",{class:"subtitle is-6"}," ",-1),V={class:"buttons fd-is-centered-mobile mt-5"},A=["textContent"],E=["textContent"],G=["textContent"],T={class:"is-size-7"},j=["textContent"],H=["textContent"];function O(t,o,_,m,e,a){const h=n("mdicon"),b=n("cover-artwork"),w=n("list-tracks"),f=n("modal-dialog-album"),v=n("modal-dialog"),C=n("content-with-hero");return z(),B("div",null,[l(C,null,{"heading-left":c(()=>[s("h1",{class:"title is-5",textContent:r(e.album.name)},null,8,L),N,s("div",V,[s("a",{class:"button is-small is-dark is-rounded",onClick:o[0]||(o[0]=(...d)=>a.play&&a.play(...d))},[l(h,{class:"icon",name:"play",size:"16"}),s("span",{textContent:r(t.$t("page.podcast.play"))},null,8,A)]),s("a",{class:"button is-small is-light is-rounded",onClick:o[1]||(o[1]=d=>e.show_details_modal=!0)},[l(h,{class:"icon",name:"dots-horizontal",size:"16"})])])]),"heading-right":c(()=>[l(b,{artwork_url:e.album.artwork_url,artist:e.album.artist,album:e.album.name,class:"is-clickable fd-has-shadow fd-cover fd-cover-medium-image",onClick:o[2]||(o[2]=d=>e.show_details_modal=!0)},null,8,["artwork_url","artist","album"])]),content:c(()=>[s("p",{class:"heading is-7 has-text-centered-mobile mt-5",textContent:r(t.$t("page.podcast.track-count",{count:e.album.track_count}))},null,8,E),l(w,{tracks:e.tracks,show_progress:!0,onPlayCountChanged:a.reload_tracks},null,8,["tracks","onPlayCountChanged"]),l(f,{show:e.show_details_modal,album:e.album,media_kind:"podcast",new_tracks:a.new_tracks,onClose:o[3]||(o[3]=d=>e.show_details_modal=!1),onPlayCountChanged:a.reload_tracks,onRemovePodcast:a.open_remove_podcast_dialog},null,8,["show","album","new_tracks","onPlayCountChanged","onRemovePodcast"]),l(v,{show:e.show_remove_podcast_modal,title:t.$t("page.podcast.remove-podcast"),delete_action:t.$t("page.podcast.remove"),onClose:o[4]||(o[4]=d=>e.show_remove_podcast_modal=!1),onDelete:a.remove_podcast},{"modal-content":c(()=>[s("p",{textContent:r(t.$t("page.podcast.remove-info-1"))},null,8,G),s("p",T,[k(" ("),s("span",{textContent:r(t.$t("page.podcast.remove-info-2"))},null,8,j),s("b",{textContent:r(e.rss_playlist_to_remove.name)},null,8,H),k(") ")])]),_:1},8,["show","title","delete_action","onDelete"])]),_:1})])}const K=P(R,[["render",O]]);export{K as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{C as u}from"./ContentWithHeading.js";import{G as p}from"./GroupByList.js";import{L as h}from"./ListTracks.js";import{_ as f,r,o as k,c as g,d as c,w as i,e as C,a as l,t as d}from"./index.js";import"./spotify-web-api.js";const s={load(t){return C.library_radio_streams()},set(t,o){t.tracks=new p(o.data.tracks)}},w={name:"PageRadioStreams",components:{ContentWithHeading:u,ListTracks:h},beforeRouteEnter(t,o,a){s.load(t).then(n=>{a(e=>s.set(e,n))})},beforeRouteUpdate(t,o,a){const n=this;s.load(t).then(e=>{s.set(n,e),a()})},data(){return{tracks:new p}}},x=["textContent"],b=["textContent"];function B(t,o,a,n,e,R){const m=r("list-tracks"),_=r("content-with-heading");return k(),g("div",null,[c(_,null,{"heading-left":i(()=>[l("p",{class:"title is-4",textContent:d(t.$t("page.radio.title"))},null,8,x),l("p",{class:"heading has-text-centered-mobile",textContent:d(t.$t("page.radio.count",{count:e.tracks.total}))},null,8,b)]),content:i(()=>[c(m,{tracks:e.tracks},null,8,["tracks"])]),_:1})])}const E=f(w,[["render",B]]);export{E as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{C as g}from"./ContentWithHeading.js";import{S as d}from"./SettingsCheckbox.js";import{T as h}from"./TabsSettings.js";import{_ as m,r as a,o as c,c as w,d as e,w as s,a as t,t as o,g as k,k as f}from"./index.js";const u={name:"PageSettingsArtwork",components:{ContentWithHeading:g,SettingsCheckbox:d,TabsSettings:h},computed:{spotify(){return this.$store.state.spotify}}},C={class:"fd-page-with-tabs"},x=["textContent"],b=["textContent"],y=["textContent"],v=["textContent"],$={href:"https://www.spotify.com/",target:"_blank"},S={class:"icon"},B=["textContent"],z={href:"https://www.discogs.com/",target:"_blank"},N={class:"icon"},V=["textContent"],A={href:"https://coverartarchive.org/",target:"_blank"},P={class:"icon"};function T(n,D,E,H,W,_){const p=a("tabs-settings"),i=a("mdicon"),r=a("settings-checkbox"),l=a("content-with-heading");return c(),w("div",C,[e(p),e(l,null,{"heading-left":s(()=>[t("div",{class:"title is-4",textContent:o(n.$t("page.settings.artwork.artwork"))},null,8,x)]),content:s(()=>[t("div",{class:"content",textContent:o(n.$t("page.settings.artwork.explanation-1"))},null,8,b),t("div",{class:"content",textContent:o(n.$t("page.settings.artwork.explanation-2"))},null,8,y),_.spotify.spotify_logged_in?(c(),k(r,{key:0,category_name:"artwork",option_name:"use_artwork_source_spotify"},{label:s(()=>[t("span",{textContent:o(n.$t("page.settings.artwork.spotify"))},null,8,v),t("a",$,[t("span",S,[e(i,{name:"open-in-new",size:"16"})])])]),_:1})):f("",!0),e(r,{category_name:"artwork",option_name:"use_artwork_source_discogs"},{label:s(()=>[t("span",{textContent:o(n.$t("page.settings.artwork.discogs"))},null,8,B),t("a",z,[t("span",N,[e(i,{name:"open-in-new",size:"16"})])])]),_:1}),e(r,{category_name:"artwork",option_name:"use_artwork_source_coverartarchive"},{label:s(()=>[t("span",{textContent:o(n.$t("page.settings.artwork.coverartarchive"))},null,8,V),t("a",A,[t("span",P,[e(i,{name:"open-in-new",size:"16"})])])]),_:1})]),_:1})])}const I=m(u,[["render",T]]);export{I as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{C as k}from"./ContentWithHeading.js";import{T as b}from"./TabsSettings.js";import{_ as x,e as p,r as f,o as a,c as r,d as _,w as l,a as t,t as i,j as g,Z as v,h as m,k as u,F as y,f as w,v as q}from"./index.js";const S={name:"PageSettingsRemotesOutputs",components:{ContentWithHeading:k,TabsSettings:b},data(){return{pairing_req:{pin:""},verification_req:{pin:""}}},computed:{outputs(){return this.$store.state.outputs},pairing(){return this.$store.state.pairing}},methods:{kickoff_pairing(){p.pairing_kickoff(this.pairing_req)},kickoff_verification(e){p.output_update(e,this.verification_req)},output_toggle(e){p.output_toggle(e)}}},V={class:"fd-page-with-tabs"},$=["textContent"],U={key:0,class:"notification"},B={class:"label has-text-weight-normal"},M=["textContent"],N=["textContent"],T={class:"field is-grouped"},D={class:"control"},F=["placeholder"],O={class:"control"},P=["textContent"],R={key:1,class:"content"},j=["textContent"],E=["textContent"],H=["textContent"],L={class:"field"},W={class:"control"},Z=["id","onUpdate:modelValue","onChange"],z=["for","textContent"],A=["onSubmit"],G={class:"field is-grouped"},I={class:"control"},J=["placeholder"],K={class:"control"},Q=["textContent"];function X(e,o,Y,tt,d,s){const C=f("tabs-settings"),h=f("content-with-heading");return a(),r("div",V,[_(C),_(h,null,{"heading-left":l(()=>[t("div",{class:"title is-4",textContent:i(e.$t("page.settings.devices.pairing"))},null,8,$)]),content:l(()=>[s.pairing.active?(a(),r("div",U,[t("form",{onSubmit:o[1]||(o[1]=m((...n)=>s.kickoff_pairing&&s.kickoff_pairing(...n),["prevent"]))},[t("label",B,[t("span",{textContent:i(e.$t("page.settings.devices.pairing-request"))},null,8,M),t("b",{textContent:i(s.pairing.remote)},null,8,N)]),t("div",T,[t("div",D,[g(t("input",{"onUpdate:modelValue":o[0]||(o[0]=n=>d.pairing_req.pin=n),class:"input",type:"text",pattern:"[\\d]{4}",placeholder:e.$t("page.settings.devices.pairing-code")},null,8,F),[[v,d.pairing_req.pin]])]),t("div",O,[t("button",{class:"button is-info",type:"submit",textContent:i(e.$t("page.settings.devices.send"))},null,8,P)])])],32)])):u("",!0),s.pairing.active?u("",!0):(a(),r("div",R,[t("p",{textContent:i(e.$t("page.settings.devices.no-active-pairing"))},null,8,j)]))]),_:1}),_(h,null,{"heading-left":l(()=>[t("div",{class:"title is-4",textContent:i(e.$t("page.settings.devices.speaker-pairing"))},null,8,E)]),content:l(()=>[t("p",{class:"content",textContent:i(e.$t("page.settings.devices.speaker-pairing-info"))},null,8,H),(a(!0),r(y,null,w(s.outputs,n=>(a(),r("div",{key:n.id},[t("div",L,[t("div",W,[g(t("input",{id:n.id,"onUpdate:modelValue":c=>n.selected=c,type:"checkbox",class:"switch is-rounded mr-2",onChange:c=>s.output_toggle(n.id)},null,40,Z),[[q,n.selected]]),t("label",{for:n.id,class:"checkbox",textContent:i(n.name)},null,8,z)])]),n.needs_auth_key?(a(),r("form",{key:0,class:"mb-5",onSubmit:m(c=>s.kickoff_verification(n.id),["prevent"])},[t("div",G,[t("div",I,[g(t("input",{"onUpdate:modelValue":o[2]||(o[2]=c=>d.verification_req.pin=c),class:"input",type:"text",pattern:"[\\d]{4}",placeholder:e.$t("page.settings.devices.verification-code")},null,8,J),[[v,d.verification_req.pin]])]),t("div",K,[t("button",{class:"button is-info",type:"submit",textContent:i(e.$t("page.settings.devices.verify"))},null,8,Q)])])],40,A)):u("",!0)]))),128))]),_:1})])}const st=x(S,[["render",X]]);export{st as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as c,e as l,a5 as u,o,c as n,j as h,v as d,a as i,z as r,q as _,t as p,k as m}from"./index.js";const g={name:"SettingsCheckbox",props:["category_name","option_name"],data(){return{timerDelay:2e3,timerId:-1,statusUpdate:""}},computed:{option(){const t=this.$store.getters.settings_option(this.category_name,this.option_name);return t||{category:this.category_name,name:this.option_name,value:!1}},info(){return this.is_success?this.$t("setting.saved"):this.is_error?this.$t("setting.not-saved"):""},is_success(){return this.statusUpdate==="success"},is_error(){return this.statusUpdate==="error"}},methods:{update_setting(){this.timerId=-1;const t={category:this.category_name,name:this.option_name,value:this.option.value};l.settings_update(this.category_name,t).then(()=>{this.$store.commit(u,t),this.statusUpdate="success"}).catch(()=>{this.statusUpdate="error"}).finally(()=>{this.timerId=window.setTimeout(this.clear_status,this.timerDelay)})},clear_status(){this.is_error&&(this.option.value=!this.option.value),this.statusUpdate=""}}},f={class:"field"},v=["id"],y=["for"],k=["textContent"],x={key:0,class:"help"};function C(t,s,U,b,S,e){return o(),n("div",f,[h(i("input",{id:e.option.name,"onUpdate:modelValue":s[0]||(s[0]=a=>e.option.value=a),type:"checkbox",class:"switch is-rounded mr-2",onChange:s[1]||(s[1]=(...a)=>e.update_setting&&e.update_setting(...a))},null,40,v),[[d,e.option.value]]),i("label",{class:"pt-0",for:e.option.name},[r(t.$slots,"label")],8,y),i("i",{class:_(["is-size-7",{"has-text-info":e.is_success,"has-text-danger":e.is_error}]),textContent:p(e.info)},null,10,k),t.$slots.info?(o(),n("p",x,[r(t.$slots,"info")])):m("",!0)])}const D=c(g,[["render",C]]);export{D as S};

View File

@ -1 +0,0 @@
import{_ as u,r as _,o as m,c as p,a as s,d as e,w as c,q as l,u as r,t as d}from"./index.js";const k={name:"TabsAudiobooks"},b={class:"section fd-tabs-section"},h={class:"container"},C={class:"columns is-centered"},f={class:"column is-four-fifths"},y={class:"tabs is-centered is-small"},x=["onClick","onKeypress"],K=["textContent"],$=["onClick","onKeypress"],v=["textContent"],z=["onClick","onKeypress"],g=["textContent"];function w(n,B,T,A,N,V){const a=_("mdicon"),i=_("router-link");return m(),p("section",b,[s("div",h,[s("div",C,[s("div",f,[s("div",y,[s("ul",null,[e(i,{to:{name:"audiobooks-artists"},custom:""},{default:c(({navigate:o,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:o,onKeypress:r(o,["enter"])},[e(a,{class:"icon is-small",name:"account-music",size:"16"}),s("span",{textContent:d(n.$t("page.audiobooks.tabs.authors"))},null,8,K)],40,x)],2)]),_:1}),e(i,{to:{name:"audiobooks-albums"},custom:""},{default:c(({navigate:o,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:o,onKeypress:r(o,["enter"])},[e(a,{class:"icon is-small",name:"album",size:"16"}),s("span",{textContent:d(n.$t("page.audiobooks.tabs.audiobooks"))},null,8,v)],40,$)],2)]),_:1}),e(i,{to:{name:"audiobooks-genres"},custom:""},{default:c(({navigate:o,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:o,onKeypress:r(o,["enter"])},[e(a,{class:"icon is-small",name:"speaker",size:"16"}),s("span",{textContent:d(n.$t("page.audiobooks.tabs.genres"))},null,8,g)],40,z)],2)]),_:1})])])])])])])}const D=u(k,[["render",w]]);export{D as T};

View File

@ -1 +0,0 @@
import{_ as d,r as _,o as u,c as C,a as s,d as o,w as a,q as l,u as r,t as m,g as h,k as y}from"./index.js";const k={name:"TabsMusic",computed:{spotify_enabled(){return this.$store.state.spotify.webapi_token_valid}}},f={class:"section fd-tabs-section"},b={class:"container"},K={class:"columns is-centered"},x={class:"column is-four-fifths"},$={class:"tabs is-centered is-small"},v=["onClick","onKeypress"],z=["textContent"],g=["onClick","onKeypress"],w=["textContent"],B=["onClick","onKeypress"],N=["textContent"],T=["onClick","onKeypress"],V=["textContent"],M=["onClick","onKeypress"],q=["textContent"],D=["onClick","onKeypress"],E=["textContent"];function S(n,j,A,F,G,p){const i=_("mdicon"),c=_("router-link");return u(),C("section",f,[s("div",b,[s("div",K,[s("div",x,[s("div",$,[s("ul",null,[o(c,{to:{name:"music-history"},custom:""},{default:a(({navigate:e,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:e,onKeypress:r(e,["enter"])},[o(i,{class:"icon is-small",name:"history",size:"16"}),s("span",{textContent:m(n.$t("page.music.tabs.history"))},null,8,z)],40,v)],2)]),_:1}),o(c,{to:{name:"music-artists"},custom:""},{default:a(({navigate:e,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:e,onKeypress:r(e,["enter"])},[o(i,{class:"icon is-small",name:"account-music",size:"16"}),s("span",{textContent:m(n.$t("page.music.tabs.artists"))},null,8,w)],40,g)],2)]),_:1}),o(c,{to:{name:"music-albums"},custom:""},{default:a(({navigate:e,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:e,onKeypress:r(e,["enter"])},[o(i,{class:"icon is-small",name:"album",size:"16"}),s("span",{textContent:m(n.$t("page.music.tabs.albums"))},null,8,N)],40,B)],2)]),_:1}),o(c,{to:{name:"music-genres"},custom:""},{default:a(({navigate:e,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:e,onKeypress:r(e,["enter"])},[o(i,{class:"icon is-small",name:"speaker",size:"16"}),s("span",{textContent:m(n.$t("page.music.tabs.genres"))},null,8,V)],40,T)],2)]),_:1}),o(c,{to:{name:"music-composers"},custom:""},{default:a(({navigate:e,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:e,onKeypress:r(e,["enter"])},[o(i,{class:"icon is-small",name:"book-open-page-variant",size:"16"}),s("span",{textContent:m(n.$t("page.music.tabs.composers"))},null,8,q)],40,M)],2)]),_:1}),p.spotify_enabled?(u(),h(c,{key:0,to:{name:"music-spotify"},custom:""},{default:a(({navigate:e,isActive:t})=>[s("li",{class:l({"is-active":t})},[s("a",{onClick:e,onKeypress:r(e,["enter"])},[o(i,{class:"icon is-small",name:"spotify",size:"16"}),s("span",{textContent:m(n.$t("page.music.tabs.spotify"))},null,8,E)],40,D)],2)]),_:1})):y("",!0)])])])])])])}const I=d(k,[["render",S]]);export{I as T};

View File

@ -1 +0,0 @@
import{_,o as d,c as u,a as s,z as y,a4 as i,r as f,q as n,d as c,t as l,k as $}from"./index.js";const b={name:"ContentText"},C={class:"section py-3"},v={class:"container"},k={class:"columns is-centered"},q={class:"column is-four-fifths"};function g(e,o,h,p,m,t){return d(),u("section",C,[s("div",v,[s("div",k,[s("div",q,[y(e.$slots,"content")])])])])}const A=_(b,[["render",g]]),S={name:"TabsSearch",props:["query"],computed:{spotify_enabled(){return this.$store.state.spotify.webapi_token_valid},route_query(){return this.query?{type:"track,artist,album,playlist,audiobook,podcast",query:this.query,limit:3,offset:0}:null}},methods:{search_library(){this.$store.commit(i,"library"),this.$router.push({name:"search-library",query:this.route_query})},search_spotify(){this.$store.commit(i,"spotify"),this.$router.push({name:"search-spotify",query:this.route_query})}}},x={key:0,class:"section"},T={class:"container"},z={class:"columns is-centered"},B={class:"column is-four-fifths"},E={class:"tabs is-centered is-small is-toggle is-toggle-rounded"},N=["textContent"],V=["textContent"];function R(e,o,h,p,m,t){const r=f("mdicon");return t.spotify_enabled?(d(),u("section",x,[s("div",T,[s("div",z,[s("div",B,[s("div",E,[s("ul",null,[s("li",{class:n({"is-active":e.$store.state.search_source==="library"})},[s("a",{onClick:o[0]||(o[0]=(...a)=>t.search_library&&t.search_library(...a))},[c(r,{class:"icon is-small",name:"bookshelf",size:"16"}),s("span",{textContent:l(e.$t("page.search.tabs.library"))},null,8,N)])],2),s("li",{class:n({"is-active":e.$store.state.search_source==="spotify"})},[s("a",{onClick:o[1]||(o[1]=(...a)=>t.search_spotify&&t.search_spotify(...a))},[c(r,{class:"icon is-small",name:"spotify",size:"16"}),s("span",{textContent:l(e.$t("page.search.tabs.spotify"))},null,8,V)])],2)])])])])])])):$("",!0)}const D=_(S,[["render",R]]);export{A as C,D as T};

View File

@ -1 +0,0 @@
import{_,r as d,o as p,c as u,a as s,d as i,w as a,q as c,u as l,t as r}from"./index.js";const m={name:"TabsSettings"},C={class:"section fd-tabs-section"},h={class:"container"},f={class:"columns is-centered"},k={class:"column is-four-fifths"},g={class:"tabs is-centered is-small"},y=["onClick","onKeypress"],b=["textContent"],K=["onClick","onKeypress"],x=["textContent"],$=["onClick","onKeypress"],v=["textContent"],w=["onClick","onKeypress"],B=["textContent"];function S(n,T,N,V,q,z){const o=d("router-link");return p(),u("section",C,[s("div",h,[s("div",f,[s("div",k,[s("div",g,[s("ul",null,[i(o,{to:{name:"settings-webinterface"},custom:""},{default:a(({navigate:t,isActive:e})=>[s("li",{class:c({"is-active":e})},[s("a",{onClick:t,onKeypress:l(t,["enter"])},[s("span",{textContent:r(n.$t("page.settings.tabs.general"))},null,8,b)],40,y)],2)]),_:1}),i(o,{to:{name:"settings-remotes-outputs"},custom:""},{default:a(({navigate:t,isActive:e})=>[s("li",{class:c({"is-active":e})},[s("a",{onClick:t,onKeypress:l(t,["enter"])},[s("span",{textContent:r(n.$t("page.settings.tabs.remotes-and-outputs"))},null,8,x)],40,K)],2)]),_:1}),i(o,{to:{name:"settings-artwork"},custom:""},{default:a(({navigate:t,isActive:e})=>[s("li",{class:c({"is-active":e})},[s("a",{onClick:t,onKeypress:l(t,["enter"])},[s("span",{textContent:r(n.$t("page.settings.tabs.artwork"))},null,8,v)],40,$)],2)]),_:1}),i(o,{to:{name:"settings-online-services"},custom:""},{default:a(({navigate:t,isActive:e})=>[s("li",{class:c({"is-active":e})},[s("a",{onClick:t,onKeypress:l(t,["enter"])},[s("span",{textContent:r(n.$t("page.settings.tabs.online-services"))},null,8,B)],40,w)],2)]),_:1})])])])])])])}const E=_(m,[["render",S]]);export{E as T};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{O,P as E,Q as R,R as q,o as S,c as T,V as u,z as p,W as v,X as g,k as W,a as y,Y as $}from"./index.js";function w(o){return o.scrollHeight}function z(o){return o.scrollWidth}function C(o,l){o.scrollTop=o.scrollHeight-l+o.scrollTop}function M(o,l){o.scrollLeft=o.scrollWidth-l+o.scrollLeft}const P=y("div",{class:"loading"},"Loading...",-1),_=y("div",{class:"no-more"},"No more.",-1),j=y("div",{class:"no-results"},"No results.",-1),x=y("div",{class:"error"},"Error.",-1),A=O({__name:"VueEternalLoading",props:{load:{required:!0,type:Function},isInitial:{required:!1,type:Boolean,default:!0},position:{required:!1,type:String,default:"default"},container:{required:!1,type:Object,default:null},margin:{required:!1,type:String,default:void 0}},emits:["update:isInitial"],setup(o,{emit:l}){const n=o,i=E();let s=E("loading"),t=E(n.isInitial),c=0;function d(){$(()=>{var e,r;n.position==="top"?C((e=n.container)!=null?e:document.documentElement,c):n.position==="left"&&M((r=n.container)!=null?r:document.documentElement,c)})}function V(e,r){return e===0?t.value?(I(),"no-results"):(k(),"no-more"):e!==void 0&&r!==void 0&&e<r?(k(),"no-more"):(t.value=!1,d(),f(),"loading")}function k(){t.value=!1,a("no-more"),d()}function I(){t.value=!1,a("no-results"),d()}function B(){t.value=!1,a("error"),d()}function F(){t.value=!0,a("loading"),f()}function h(){a("loading"),f()}function a(e){s.value=e}function L(){i.value&&m.unobserve(i.value)}function f(){i.value&&m.observe(i.value)}function N(){return new IntersectionObserver(([e])=>{var r,b;e.isIntersecting&&(n.position==="top"?c=w((r=n.container)!=null?r:document.documentElement):n.position==="left"&&(c=z((b=n.container)!=null?b:document.documentElement)),L(),n.load({loaded:V,noMore:k,noResults:I,error:B},{isFirstLoad:t.value}))},{root:n.container,threshold:0,rootMargin:n.margin})}let m;return typeof IntersectionObserver<"u"&&R(()=>{m&&L(),m=N(),f()},{flush:"post"}),q(()=>n.isInitial,e=>{e&&F()}),q(t,e=>{e||l("update:isInitial",!1)}),(e,r)=>(S(),T("div",{class:"vue-eternal-loading",ref_key:"rootRef",ref:i},[u(s)==="loading"?p(e.$slots,"loading",v(g({key:0},{isFirstLoad:u(t)})),()=>[P]):u(s)==="no-more"?p(e.$slots,"no-more",v(g({key:1},{retry:h})),()=>[_]):u(s)==="no-results"?p(e.$slots,"no-results",v(g({key:2},{retry:h})),()=>[j]):u(s)==="error"?p(e.$slots,"error",v(g({key:3},{retry:h})),()=>[x]):W("",!0)],512))}});export{A as G};

View File

@ -1,5 +1,45 @@
import * as types from '@/store/mutation_types'
import { createRouter, createWebHashHistory } from 'vue-router'
import PageAbout from '@/pages/PageAbout.vue'
import PageAlbum from '@/pages/PageAlbum.vue'
import PageAlbumSpotify from '@/pages/PageAlbumSpotify.vue'
import PageAlbums from '@/pages/PageAlbums.vue'
import PageArtist from '@/pages/PageArtist.vue'
import PageArtistSpotify from '@/pages/PageArtistSpotify.vue'
import PageArtists from '@/pages/PageArtists.vue'
import PageArtistTracks from '@/pages/PageArtistTracks.vue'
import PageAudiobooksAlbum from '@/pages/PageAudiobooksAlbum.vue'
import PageAudiobooksAlbums from '@/pages/PageAudiobooksAlbums.vue'
import PageAudiobooksArtist from '@/pages/PageAudiobooksArtist.vue'
import PageAudiobooksArtists from '@/pages/PageAudiobooksArtists.vue'
import PageAudiobooksGenres from '@/pages/PageAudiobooksGenres.vue'
import PageMusic from '@/pages/PageMusic.vue'
import PageMusicRecentlyAdded from '@/pages/PageMusicRecentlyAdded.vue'
import PageMusicRecentlyPlayed from '@/pages/PageMusicRecentlyPlayed.vue'
import PageMusicSpotify from '@/pages/PageMusicSpotify.vue'
import PageMusicSpotifyFeaturedPlaylists from '@/pages/PageMusicSpotifyFeaturedPlaylists.vue'
import PageMusicSpotifyNewReleases from '@/pages/PageMusicSpotifyNewReleases.vue'
import PageComposerAlbums from '@/pages/PageComposerAlbums.vue'
import PageComposerTracks from '@/pages/PageComposerTracks.vue'
import PageComposers from '@/pages/PageComposers.vue'
import PageFiles from '@/pages/PageFiles.vue'
import PageGenreAlbums from '@/pages/PageGenreAlbums.vue'
import PageGenreTracks from '@/pages/PageGenreTracks.vue'
import PageGenres from '@/pages/PageGenres.vue'
import PageNowPlaying from '@/pages/PageNowPlaying.vue'
import PagePlaylistFolder from '@/pages/PagePlaylistFolder.vue'
import PagePlaylistTracks from '@/pages/PagePlaylistTracks.vue'
import PagePlaylistTracksSpotify from '@/pages/PagePlaylistTracksSpotify.vue'
import PagePodcast from '@/pages/PagePodcast.vue'
import PagePodcasts from '@/pages/PagePodcasts.vue'
import PageRadioStreams from '@/pages/PageRadioStreams.vue'
import PageQueue from '@/pages/PageQueue.vue'
import PageSearchLibrary from '@/pages/PageSearchLibrary.vue'
import PageSearchSpotify from '@/pages/PageSearchSpotify.vue'
import PageSettingsWebinterface from '@/pages/PageSettingsWebinterface.vue'
import PageSettingsArtwork from '@/pages/PageSettingsArtwork.vue'
import PageSettingsOnlineServices from '@/pages/PageSettingsOnlineServices.vue'
import PageSettingsRemotesOutputs from '@/pages/PageSettingsRemotesOutputs.vue'
import store from '@/store'
const TOP_WITH_TABS = 140
@ -9,78 +49,78 @@ export const router = createRouter({
history: createWebHashHistory(),
routes: [
{
component: () => import('@/pages/PageAbout.vue'),
component: PageAbout,
name: 'about',
path: '/about'
},
{
component: () => import('@/pages/PageAlbum.vue'),
component: PageAlbum,
meta: { show_progress: true },
name: 'music-album',
path: '/music/albums/:id'
},
{
component: () => import('@/pages/PageAlbumSpotify.vue'),
component: PageAlbumSpotify,
meta: { show_progress: true },
name: 'music-spotify-album',
path: '/music/spotify/albums/:id'
},
{
component: () => import('@/pages/PageAlbums.vue'),
component: PageAlbums,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'music-albums',
path: '/music/albums'
},
{
component: () => import('@/pages/PageArtist.vue'),
component: PageArtist,
meta: { has_index: true, show_progress: true },
name: 'music-artist',
path: '/music/artists/:id'
},
{
component: () => import('@/pages/PageArtistSpotify.vue'),
component: PageArtistSpotify,
meta: { show_progress: true },
name: 'music-spotify-artist',
path: '/music/spotify/artists/:id'
},
{
component: () => import('@/pages/PageArtists.vue'),
component: PageArtists,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'music-artists',
path: '/music/artists'
},
{
component: () => import('@/pages/PageArtistTracks.vue'),
component: PageArtistTracks,
meta: { has_index: true, show_progress: true },
name: 'music-artist-tracks',
path: '/music/artists/:id/tracks'
},
{
component: () => import('@/pages/PageAudiobooksAlbum.vue'),
component: PageAudiobooksAlbum,
meta: { show_progress: true },
name: 'audiobooks-album',
path: '/audiobooks/albums/:id'
},
{
component: () => import('@/pages/PageAudiobooksAlbums.vue'),
component: PageAudiobooksAlbums,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'audiobooks-albums',
path: '/audiobooks/albums'
},
{
component: () => import('@/pages/PageAudiobooksArtist.vue'),
component: PageAudiobooksArtist,
meta: { show_progress: true },
name: 'audiobooks-artist',
path: '/audiobooks/artists/:id'
},
{
component: () => import('@/pages/PageAudiobooksArtists.vue'),
component: PageAudiobooksArtists,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'audiobooks-artists',
path: '/audiobooks/artists'
},
{
component: () => import('@/pages/PageAudiobooksGenres.vue'),
component: PageAudiobooksGenres,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'audiobooks-genres',
path: '/audiobooks/genres'
@ -96,85 +136,85 @@ export const router = createRouter({
redirect: { name: 'music-history' }
},
{
component: () => import('@/pages/PageMusic.vue'),
component: PageMusic,
meta: { has_tabs: true, show_progress: true },
name: 'music-history',
path: '/music/history'
},
{
component: () => import('@/pages/PageMusicRecentlyAdded.vue'),
component: PageMusicRecentlyAdded,
meta: { has_tabs: true, show_progress: true },
name: 'music-recently-added',
path: '/music/recently-added'
},
{
component: () => import('@/pages/PageMusicRecentlyPlayed.vue'),
component: PageMusicRecentlyPlayed,
meta: { has_tabs: true, show_progress: true },
name: 'music-recently-played',
path: '/music/recently-played'
},
{
component: () => import('@/pages/PageMusicSpotify.vue'),
component: PageMusicSpotify,
meta: { has_tabs: true, show_progress: true },
name: 'music-spotify',
path: '/music/spotify'
},
{
component: () => import('@/pages/PageMusicSpotifyFeaturedPlaylists.vue'),
component: PageMusicSpotifyFeaturedPlaylists,
meta: { has_tabs: true, show_progress: true },
name: 'music-spotify-featured-playlists',
path: '/music/spotify/featured-playlists'
},
{
component: () => import('@/pages/PageMusicSpotifyNewReleases.vue'),
component: PageMusicSpotifyNewReleases,
meta: { has_tabs: true, show_progress: true },
name: 'music-spotify-new-releases',
path: '/music/spotify/new-releases'
},
{
component: () => import('@/pages/PageComposerAlbums.vue'),
component: PageComposerAlbums,
meta: { has_index: true, show_progress: true },
name: 'music-composer-albums',
path: '/music/composers/:name/albums'
},
{
component: () => import('@/pages/PageComposerTracks.vue'),
component: PageComposerTracks,
meta: { has_index: true, show_progress: true },
name: 'music-composer-tracks',
path: '/music/composers/:name/tracks'
},
{
component: () => import('@/pages/PageComposers.vue'),
component: PageComposers,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'music-composers',
path: '/music/composers'
},
{
component: () => import('@/pages/PageFiles.vue'),
component: PageFiles,
meta: { show_progress: true },
name: 'files',
path: '/files'
},
{
component: () => import('@/pages/PageGenreAlbums.vue'),
component: PageGenreAlbums,
meta: { has_index: true, show_progress: true },
name: 'genre-albums',
path: '/genres/:name/albums'
},
{
component: () => import('@/pages/PageGenreTracks.vue'),
component: PageGenreTracks,
meta: { has_index: true, show_progress: true },
name: 'genre-tracks',
path: '/genres/:name/tracks'
},
{
component: () => import('@/pages/PageGenres.vue'),
component: PageGenres,
meta: { has_index: true, has_tabs: true, show_progress: true },
name: 'music-genres',
path: '/music/genres'
},
{
component: () => import('@/pages/PageNowPlaying.vue'),
component: PageNowPlaying,
name: 'now-playing',
path: '/now-playing'
},
@ -184,73 +224,73 @@ export const router = createRouter({
redirect: { name: 'playlist-folder', params: { id: 0 } }
},
{
component: () => import('@/pages/PagePlaylistFolder.vue'),
component: PagePlaylistFolder,
meta: { show_progress: true },
name: 'playlist-folder',
path: '/playlists/:id'
},
{
component: () => import('@/pages/PagePlaylistTracks.vue'),
component: PagePlaylistTracks,
meta: { show_progress: true },
name: 'playlist',
path: '/playlists/:id/tracks'
},
{
component: () => import('@/pages/PagePlaylistTracksSpotify.vue'),
component: PagePlaylistTracksSpotify,
meta: { show_progress: true },
name: 'playlist-spotify',
path: '/playlists/spotify/:id/tracks'
},
{
component: () => import('@/pages/PagePodcast.vue'),
component: PagePodcast,
meta: { show_progress: true },
name: 'podcast',
path: '/podcasts/:id'
},
{
component: () => import('@/pages/PagePodcasts.vue'),
component: PagePodcasts,
meta: { show_progress: true },
name: 'podcasts',
path: '/podcasts'
},
{
component: () => import('@/pages/PageRadioStreams.vue'),
component: PageRadioStreams,
meta: { show_progress: true },
name: 'radio',
path: '/radio'
},
{
component: () => import('@/pages/PageQueue.vue'),
component: PageQueue,
name: 'queue',
path: '/'
},
{
component: () => import('@/pages/PageSearchLibrary.vue'),
component: PageSearchLibrary,
name: 'search-library',
path: '/search/library'
},
{
component: () => import('@/pages/PageSearchSpotify.vue'),
component: PageSearchSpotify,
name: 'search-spotify',
path: '/search/spotify'
},
{
component: () => import('@/pages/PageSettingsWebinterface.vue'),
component: PageSettingsWebinterface,
name: 'settings-webinterface',
path: '/settings/webinterface'
},
{
component: () => import('@/pages/PageSettingsArtwork.vue'),
component: PageSettingsArtwork,
name: 'settings-artwork',
path: '/settings/artwork'
},
{
component: () => import('@/pages/PageSettingsOnlineServices.vue'),
component: PageSettingsOnlineServices,
name: 'settings-online-services',
path: '/settings/online-services'
},
{
component: () => import('@/pages/PageSettingsRemotesOutputs.vue'),
component: PageSettingsRemotesOutputs,
name: 'settings-remotes-outputs',
path: '/settings/remotes-outputs'
}