music-assistant-frontend 2.17.28__py3-none-any.whl → 2.17.34__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of music-assistant-frontend might be problematic. Click here for more details.
- music_assistant_frontend/assets/{About-DD-Ra6q9.js → About-BkJaoSR3.js} +1 -1
- music_assistant_frontend/assets/{AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js → AddManualLink.vue_vue_type_script_setup_true_lang-C1nm8oQh.js} +1 -1
- music_assistant_frontend/assets/{AddPlayerGroup-cntNx9PL.js → AddPlayerGroup-B3NNUL-h.js} +1 -1
- music_assistant_frontend/assets/AddProviderDetails-BtrgTFts.js +1 -0
- music_assistant_frontend/assets/AlbumDetails-baXoKXD6.js +1 -0
- music_assistant_frontend/assets/ArtistDetails-Cv9mXN_k.js +1 -0
- music_assistant_frontend/assets/{AudiobookDetails-Dk3PEU9D.js → AudiobookDetails-7rFtcITw.js} +1 -1
- music_assistant_frontend/assets/BrowseView-CYbwlBvT.css +1 -0
- music_assistant_frontend/assets/BrowseView-tAHBas4g.js +1 -0
- music_assistant_frontend/assets/{Button-Cm9Kv1fL.js → Button-BcX_QSum.js} +1 -1
- music_assistant_frontend/assets/{Container-BunIU4BI.js → Container-Bc5cvdS8.js} +1 -1
- music_assistant_frontend/assets/{CreateTokenDialog.vue_vue_type_script_setup_true_lang-WD6jKrT1.js → CreateTokenDialog.vue_vue_type_script_setup_true_lang-BHmJvDQD.js} +1 -1
- music_assistant_frontend/assets/Default-BFKmuyAJ.css +1 -0
- music_assistant_frontend/assets/Default-DdviBUvO.js +21 -0
- music_assistant_frontend/assets/EditConfig-Bwi8QH5_.js +2 -0
- music_assistant_frontend/assets/EditConfig-UwCqmE_b.css +1 -0
- music_assistant_frontend/assets/EditCoreConfig-DhX-oxAE.css +1 -0
- music_assistant_frontend/assets/EditCoreConfig-Dlub9slv.js +1 -0
- music_assistant_frontend/assets/EditPlayer-CBFrbjNV.js +1 -0
- music_assistant_frontend/assets/EditPlayer-D1wKcKqn.css +1 -0
- music_assistant_frontend/assets/{EditPlayerDsp-DIRF5Ifm.js → EditPlayerDsp-DTXNvLKR.js} +1 -1
- music_assistant_frontend/assets/EditProvider-CHnmNs-E.js +1 -0
- music_assistant_frontend/assets/EditProvider-CM1P0zG2.css +1 -0
- music_assistant_frontend/assets/FrontendConfig-B3J0qsPa.js +1 -0
- music_assistant_frontend/assets/HomeView-CfJ6PURe.js +1 -0
- music_assistant_frontend/assets/ItemsListing-4Tzirx3k.js +1 -0
- music_assistant_frontend/assets/LibraryAlbums-B-uXhDO3.js +1 -0
- music_assistant_frontend/assets/LibraryArtists-Cm1JjbAl.js +1 -0
- music_assistant_frontend/assets/LibraryAudiobooks-BhxjD53T.js +1 -0
- music_assistant_frontend/assets/LibraryPlaylists-B854CAZn.js +1 -0
- music_assistant_frontend/assets/LibraryPodcasts-RhDZe6jX.js +1 -0
- music_assistant_frontend/assets/LibraryRadios-DL5ap70-.js +1 -0
- music_assistant_frontend/assets/LibraryTracks-9TVfLfIN.js +1 -0
- music_assistant_frontend/assets/{ListItem-DNqmHglz.js → ListItem-Cz0zK7Ay.js} +1 -1
- music_assistant_frontend/assets/{MediaItemImages-B-oQ8T4k.js → MediaItemImages-Dz3pW0B9.js} +1 -1
- music_assistant_frontend/assets/MediaItemThumb-C--YJJ5Y.js +1 -0
- music_assistant_frontend/assets/NowPlayingBadge-DlzVWxxU.css +1 -0
- music_assistant_frontend/assets/NowPlayingBadge.vue_vue_type_style_index_0_lang-BZUcSWaz.js +1 -0
- music_assistant_frontend/assets/PanelviewItemCompact-BFofUlbn.js +1 -0
- music_assistant_frontend/assets/PlayerCard-BSr8tpdq.js +1 -0
- music_assistant_frontend/assets/PlayerCard-C-JW0iD0.css +1 -0
- music_assistant_frontend/assets/Players-BKvWHX7u.js +1 -0
- music_assistant_frontend/assets/{Players-DiFMAcvk.css → Players-BpLyas-U.css} +1 -1
- music_assistant_frontend/assets/PlaylistDetails-DwPf38WL.js +1 -0
- music_assistant_frontend/assets/PodcastDetails-BkL3RLSo.js +1 -0
- music_assistant_frontend/assets/{ProviderDetails.vue_vue_type_script_setup_true_lang-DzvsLzds.js → ProviderDetails.vue_vue_type_script_setup_true_lang-Boj6o7qU.js} +1 -1
- music_assistant_frontend/assets/Providers-7gRu2tNl.js +1 -0
- music_assistant_frontend/assets/{Providers-Df6R6NDc.css → Providers-CZ5m317K.css} +1 -1
- music_assistant_frontend/assets/RadioDetails-B5bulWqe.js +1 -0
- music_assistant_frontend/assets/{RemoteAccessSettings-Cc9VhqAV.js → RemoteAccessSettings-CFIeLSWz.js} +1 -1
- music_assistant_frontend/assets/Search-BAjKkIIQ.js +1 -0
- music_assistant_frontend/assets/{ServerLogs-DEmjg0ji.js → ServerLogs-CCtjIDNl.js} +1 -1
- music_assistant_frontend/assets/{Settings-CbTYv9HY.css → Settings-BE2vTu_e.css} +1 -1
- music_assistant_frontend/assets/Settings-C8IEjo0h.js +1 -0
- music_assistant_frontend/assets/{SystemConfig-DzuRfqZX.js → SystemConfig-DgVHrDLs.js} +1 -1
- music_assistant_frontend/assets/Toolbar-BhPGsr4E.js +1 -0
- music_assistant_frontend/assets/{Toolbar-DOjWle_n.css → Toolbar-DzRHLZVV.css} +1 -1
- music_assistant_frontend/assets/TrackDetails-CN0utK-p.js +1 -0
- music_assistant_frontend/assets/{UserManagement-BmZul5Bv.js → UserManagement-XUiOYKeu.js} +1 -1
- music_assistant_frontend/assets/{UserProfile-C9aw6Mo0.js → UserProfile-BJFh70ps.js} +1 -1
- music_assistant_frontend/assets/{VAlert-CBrxai34.js → VAlert-C8Oto4eV.js} +1 -1
- music_assistant_frontend/assets/VCheckbox-CgwahLqh.js +1 -0
- music_assistant_frontend/assets/VCheckbox-CvH8ekHL.css +1 -0
- music_assistant_frontend/assets/{VCheckboxBtn-BMAdXnae.js → VCheckboxBtn-orONEqTE.js} +1 -1
- music_assistant_frontend/assets/{VDialog-BndVdZhi.js → VDialog-OmJrmVI_.js} +1 -1
- music_assistant_frontend/assets/{VExpansionPanels-lmUrDJt6.js → VExpansionPanels-D8F4VK-K.js} +1 -1
- music_assistant_frontend/assets/{VForm-Dpln05ME.js → VForm-CRBkgkz1.js} +1 -1
- music_assistant_frontend/assets/{VInfiniteScroll-B5bUrC-Z.js → VInfiniteScroll-C839Qj3G.js} +1 -1
- music_assistant_frontend/assets/{VSelect-uSApsKq0.js → VSelect-vsgYa-Ce.js} +1 -1
- music_assistant_frontend/assets/{VSelectionControl-S-aELuKm.js → VSelectionControl-C9uJkKHo.js} +1 -1
- music_assistant_frontend/assets/{VSlider-DzdWVMUa.js → VSlider-BxXcuhLj.js} +1 -1
- music_assistant_frontend/assets/VSwitch-C4Td5_x0.js +1 -0
- music_assistant_frontend/assets/{VToolbar-hGVdN8lh.js → VToolbar-BTrAkkB7.js} +1 -1
- music_assistant_frontend/assets/{VVirtualScroll-C1eeqQrQ.js → VVirtualScroll-YsHPZNGu.js} +1 -1
- music_assistant_frontend/assets/{WidgetRow-DKnAiOkf.js → WidgetRow-lS8eZGg2.js} +1 -1
- music_assistant_frontend/assets/{index-W5yBuLNV.css → index-BYK1uYGl.css} +1 -1
- music_assistant_frontend/assets/{index-rZUS0c3q.js → index-GQ3lWXrm.js} +55 -54
- music_assistant_frontend/assets/{marquee_text_sync-AT1GwuhW.js → marquee_text_sync-a11Dvzhd.js} +1 -1
- music_assistant_frontend/assets/userPreferences-CU3N6m4Z.js +1 -0
- music_assistant_frontend/index.html +2 -2
- music_assistant_frontend/sw.js +1 -1
- {music_assistant_frontend-2.17.28.dist-info → music_assistant_frontend-2.17.34.dist-info}/METADATA +1 -1
- music_assistant_frontend-2.17.34.dist-info/RECORD +154 -0
- music_assistant_frontend/assets/AddProviderDetails-DoKLUG5n.js +0 -1
- music_assistant_frontend/assets/AlbumDetails-iZRC2HAx.js +0 -1
- music_assistant_frontend/assets/ArtistDetails-pWsx0uxv.js +0 -1
- music_assistant_frontend/assets/BrowseView-DsuxryYQ.css +0 -1
- music_assistant_frontend/assets/BrowseView-g_5UPiVj.js +0 -1
- music_assistant_frontend/assets/Default-BoZpM67W.css +0 -1
- music_assistant_frontend/assets/Default-D3QbBdka.js +0 -21
- music_assistant_frontend/assets/EditConfig-Bo92pQzx.js +0 -2
- music_assistant_frontend/assets/EditConfig-CcxrPgWJ.css +0 -1
- music_assistant_frontend/assets/EditCoreConfig-Dn-oiBmv.js +0 -1
- music_assistant_frontend/assets/EditPlayer-C4U8nmpt.js +0 -1
- music_assistant_frontend/assets/EditProvider-DH6yzgKO.js +0 -1
- music_assistant_frontend/assets/FrontendConfig-DGr-C8uc.js +0 -1
- music_assistant_frontend/assets/HomeView-CF-2XJYc.js +0 -1
- music_assistant_frontend/assets/ItemsListing-DiFULYEk.js +0 -1
- music_assistant_frontend/assets/LibraryAlbums-DsXvfpDF.js +0 -1
- music_assistant_frontend/assets/LibraryArtists-CvhNCIa6.js +0 -1
- music_assistant_frontend/assets/LibraryAudiobooks-BXD39SCR.js +0 -1
- music_assistant_frontend/assets/LibraryPlaylists-CVSNqj6B.js +0 -1
- music_assistant_frontend/assets/LibraryPodcasts-D-KYAv5K.js +0 -1
- music_assistant_frontend/assets/LibraryRadios-DXJv2vPJ.js +0 -1
- music_assistant_frontend/assets/LibraryTracks-BW-Ne0K5.js +0 -1
- music_assistant_frontend/assets/MediaItemThumb-Djieuu-m.js +0 -1
- music_assistant_frontend/assets/PanelviewItemCompact-zZvQaI6t.js +0 -1
- music_assistant_frontend/assets/PlayerCard-B-1h1GH8.css +0 -1
- music_assistant_frontend/assets/PlayerCard-CbOeDESo.js +0 -1
- music_assistant_frontend/assets/Players-CMiHL1Xr.js +0 -1
- music_assistant_frontend/assets/PlaylistDetails-BYOLLggx.js +0 -1
- music_assistant_frontend/assets/PodcastDetails-BMWkoQkv.js +0 -1
- music_assistant_frontend/assets/Providers-BVL70bSb.js +0 -1
- music_assistant_frontend/assets/RadioDetails-Dk19WXMn.js +0 -1
- music_assistant_frontend/assets/Search-gIzJ4Lef.js +0 -1
- music_assistant_frontend/assets/Settings-BPCFcSEv.js +0 -1
- music_assistant_frontend/assets/Toolbar-xH_GEfSi.js +0 -1
- music_assistant_frontend/assets/TrackDetails-Bpl4yjoA.js +0 -1
- music_assistant_frontend/assets/VSwitch-B-1g31ug.js +0 -1
- music_assistant_frontend/assets/userPreferences-Cm6AcKY5.css +0 -1
- music_assistant_frontend/assets/userPreferences-a0gVUlkp.js +0 -1
- music_assistant_frontend-2.17.28.dist-info/RECORD +0 -148
- {music_assistant_frontend-2.17.28.dist-info → music_assistant_frontend-2.17.34.dist-info}/WHEEL +0 -0
- {music_assistant_frontend-2.17.28.dist-info → music_assistant_frontend-2.17.34.dist-info}/licenses/LICENSE +0 -0
- {music_assistant_frontend-2.17.28.dist-info → music_assistant_frontend-2.17.34.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as ne}from"./Container-Bc5cvdS8.js";import{L as re}from"./ListItem-Cz0zK7Ay.js";import{ay as H,J as Y,i as P,aP as s,co as oe,br as h,aT as R,L as F,az as E,aA as r,o as n,E as _,bH as de,aD as u,M as U,aG as l,bh as M,aB as L,aN as y,aL as T,b4 as ee,aF as X,ah as j,aH as x,aE as Z,bD as pe,aI as k,aJ as K,aM as te,bd as S,aV as J,_ as W,bg as le,c3 as se,aS as ie,aR as B,ax as ue,T as ce,bb as ve,a4 as ye,bP as me,r as _e,bQ as fe,cw as ge,aO as be}from"./index-GQ3lWXrm.js";import{V as ae}from"./VCheckboxBtn-orONEqTE.js";import{S as Pe}from"./constants-CXMxJR4j.js";import{V as he}from"./VDialog-OmJrmVI_.js";import"./index-kQIztB-E.js";import"./Button-BcX_QSum.js";import"./VSelectionControl-C9uJkKHo.js";const ke={class:"filters-container"},Ce={class:"d-flex ga-2 filter-buttons"},Re={key:0,class:"filter-dot"},$e={key:0,class:"filter-dot"},Ee=H({__name:"PlayerFilters",emits:["update:search","update:providers","update:types"],setup(G,{emit:V}){const c=Z(),m=pe(),f=Y(""),C=Y([]),g=Y([]);let o=null,b=null,v=null;const D=P(()=>Object.values(s.providers).filter(i=>i.available&&i.type===oe.PLAYER&&i.domain!=="builtin_player").map(i=>({instance_id:i.instance_id,domain:i.domain,name:i.name||s.providerManifests[i.domain]?.name||i.domain})).sort((i,p)=>i.name.localeCompare(p.name))),N=P(()=>[{title:R("player_type.player"),value:h.PLAYER},{title:R("player_type.group"),value:h.GROUP},{title:R("player_type.stereo_pair"),value:h.STEREO_PAIR}]),q=P(()=>C.value.length>0),z=P(()=>g.value.length>0),I=V,w=function(d){const i=C.value.indexOf(d);i>-1?C.value.splice(i,1):C.value.push(d)},$=function(d){const i=g.value.indexOf(d);i>-1?g.value.splice(i,1):g.value.push(d)},O=function(){if(m.query.search&&(f.value=m.query.search),m.query.providers){const d=m.query.providers;C.value=d.split(",")}if(m.query.types){const d=m.query.types;g.value=d.split(",")}};return F(f,d=>{I("update:search",d),o&&clearTimeout(o),o=setTimeout(()=>{const i={...m.query};d?i.search=d:delete i.search,c.replace({query:i})},750)}),F(C,d=>{I("update:providers",d),b&&clearTimeout(b),b=setTimeout(()=>{const i={...m.query};d.length>0?i.providers=d.join(","):delete i.providers,c.replace({query:i})},750)},{deep:!0}),F(g,d=>{I("update:types",d),v&&clearTimeout(v),v=setTimeout(()=>{const i={...m.query};d.length>0?i.types=d.join(","):delete i.types,c.replace({query:i})},750)},{deep:!0}),O(),(d,i)=>(r(),E("div",ke,[n(de,{modelValue:f.value,"onUpdate:modelValue":i[0]||(i[0]=p=>f.value=p),"prepend-inner-icon":"mdi-magnify",label:u(R)("search"),variant:"outlined",density:"compact",clearable:"","hide-details":"",class:"search-field"},null,8,["modelValue","label"]),_("div",Ce,[n(U,{height:"40",elevation:"0",variant:"outlined",density:"compact",class:"filter-btn"},{default:l(()=>[M(y(u(R)("settings.player_provider"))+" ",1),n(T,{end:""},{default:l(()=>[...i[1]||(i[1]=[M("mdi-chevron-down",-1)])]),_:1}),q.value?(r(),E("span",Re)):L("",!0),n(ee,{activator:"parent","close-on-content-click":!1},{default:l(()=>[n(X,{class:"provider-filter-list"},{default:l(()=>[(r(!0),E(j,null,x(D.value,p=>(r(),k(K,{key:p.instance_id,value:p.instance_id,onClick:e=>w(p.instance_id)},{prepend:l(()=>[n(J,{domain:p.domain,size:26,class:"media-thumb",style:{"margin-right":"12px"}},null,8,["domain"])]),append:l(()=>[n(ae,{"model-value":C.value.includes(p.instance_id),onClick:S(e=>w(p.instance_id),["stop"])},null,8,["model-value","onClick"])]),default:l(()=>[n(te,null,{default:l(()=>[M(y(p.name),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})]),_:1}),n(U,{height:"40",elevation:"0",variant:"outlined",density:"compact",class:"filter-btn"},{default:l(()=>[M(y(u(R)("settings.player_type_label"))+" ",1),n(T,{end:""},{default:l(()=>[...i[2]||(i[2]=[M("mdi-chevron-down",-1)])]),_:1}),z.value?(r(),E("span",$e)):L("",!0),n(ee,{activator:"parent","close-on-content-click":!1},{default:l(()=>[n(X,null,{default:l(()=>[(r(!0),E(j,null,x(N.value,(p,e)=>(r(),k(K,{key:e,value:e,onClick:t=>$(p.value)},{append:l(()=>[n(ae,{"model-value":g.value.includes(p.value),onClick:S(t=>$(p.value),["stop"])},null,8,["model-value","onClick"])]),default:l(()=>[n(te,null,{default:l(()=>[M(y(p.title),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})]),_:1})])]))}}),Ae=W(Ee,[["__scopeId","data-v-6e630577"]]),Te={class:"provider-name"},Me={key:0,class:"player-type-label"},Le=H({__name:"SettingsPlayerCard",props:{playerConfig:{}},emits:["click","menu"],setup(G,{emit:V}){const c=G,m=V,f=P(()=>s.players[c.playerConfig.player_id]),C=P(()=>f.value?.available??!1),g=P(()=>s.getProviderManifest(c.playerConfig.provider)?.domain||c.playerConfig.provider),o=P(()=>s.getProviderManifest(c.playerConfig.provider)?.name||c.playerConfig.provider),b=P(()=>c.playerConfig.name||f.value?.name||c.playerConfig.default_name||c.playerConfig.player_id),v=P(()=>f.value?.type??h.PLAYER),D=P(()=>R(`player_type.${v.value}`)),N=P(()=>({[h.PLAYER]:"mdi-speaker",[h.GROUP]:"mdi-speaker-multiple",[h.STEREO_PAIR]:"mdi-speaker-wireless"})[v.value]||"mdi-speaker"),q=P(()=>v.value===h.PLAYER?null:R(`player_type.${v.value}`)),z=()=>{m("click",c.playerConfig)},I=w=>{m("menu",w,c.playerConfig)};return(w,$)=>(r(),k(ie,{class:"flex-fill rounded-lg player-card","min-height":"200px",onClick:z},{prepend:l(()=>[n(J,{domain:g.value,size:50,class:"listitem-media-thumb",style:{"margin-top":"5px","margin-bottom":"5px"}},null,8,["domain"])]),append:l(()=>[G.playerConfig.enabled?C.value?L("",!0):(r(),k(U,{key:1,variant:"text",size:"small",icon:"",title:u(R)("settings.player_not_available"),onClick:$[1]||($[1]=S(()=>{},["stop"]))},{default:l(()=>[n(T,{icon:"mdi-timer-sand"})]),_:1},8,["title"])):(r(),k(U,{key:0,variant:"text",size:"small",icon:"",title:u(R)("settings.player_disabled"),onClick:$[0]||($[0]=S(()=>{},["stop"]))},{default:l(()=>[n(T,{color:"grey"},{default:l(()=>[...$[3]||($[3]=[M("mdi-cancel",-1)])]),_:1})]),_:1},8,["title"])),n(U,{variant:"text",size:"small",icon:"",title:D.value,onClick:$[2]||($[2]=S(()=>{},["stop"]))},{default:l(()=>[n(T,{icon:N.value},null,8,["icon"])]),_:1},8,["title"]),n(U,{icon:"mdi-dots-vertical",size:"small",variant:"text",onClick:S(I,["stop"])})]),default:l(()=>[n(le,null,{default:l(()=>[M(y(b.value),1)]),_:1}),n(se,{class:"player-description"},{default:l(()=>[_("div",Te,y(o.value),1),q.value?(r(),E("div",Me,y(q.value),1)):L("",!0)]),_:1})]),_:1}))}}),Ve=W(Le,[["__scopeId","data-v-65c70472"]]),we={class:"text-h6"},Oe={class:"provider-list-container"},Ye={class:"provider-name"},Ue={class:"provider-description"},ze={key:1,class:"empty-state"},Ie={class:"empty-title"},Ge={class:"empty-message"},De=H({__name:"AddPlayerGroupDialog",props:{show:{type:Boolean,default:!1}},emits:["update:show"],setup(G,{emit:V}){const c=V,m=Z(),f=P(()=>Object.values(s.providers).filter(o=>o.available&&(o.supported_features.includes(B.CREATE_GROUP_PLAYER)||o.supported_features.includes(B.SYNC_PLAYERS))&&Object.values(s.players).some(b=>b.provider===o.instance_id)).map(o=>({instance_id:o.instance_id,domain:o.domain,name:o.name||s.providerManifests[o.domain]?.name||o.domain,description:s.providerManifests[o.domain]?.description||R("settings.playerprovider")})).sort((o,b)=>o.name.localeCompare(b.name))),C=function(o){m.push(`/settings/addgroup/${o}`),g()},g=function(){c("update:show",!1)};return F(()=>s.providers,()=>{},{immediate:!0}),(o,b)=>(r(),k(he,{"model-value":G.show,"max-width":"800px",scrollable:"","onUpdate:modelValue":b[0]||(b[0]=v=>{u(ue).dialogActive=v,c("update:show",v)})},{default:l(()=>[n(ie,{class:"add-player-group-dialog"},{default:l(()=>[n(le,{class:"d-flex align-center justify-space-between pa-4"},{default:l(()=>[_("span",we,y(u(R)("settings.add_group_player")),1),n(U,{icon:"mdi-close",variant:"text",size:"small",onClick:g})]),_:1}),n(se,{class:"pa-4"},{default:l(()=>[_("div",Oe,[f.value.length>0?(r(),k(X,{key:0,class:"provider-list"},{default:l(()=>[(r(!0),E(j,null,x(f.value,v=>(r(),k(K,{key:v.instance_id,style:{padding:"0"},class:"provider-item",rounded:"lg",onClick:D=>C(v.instance_id)},{prepend:l(()=>[n(J,{domain:v.domain,size:40,class:"provider-icon"},null,8,["domain"])]),title:l(()=>[_("div",Ye,y(v.name),1)]),subtitle:l(()=>[_("div",Ue,y(v.description),1)]),append:l(()=>[n(T,{icon:"mdi-chevron-right",size:"small"})]),_:2},1032,["onClick"]))),128))]),_:1})):(r(),E("div",ze,[n(T,{icon:"mdi-account-group-outline",size:"48",class:"empty-icon"}),_("div",Ie,y(u(R)("no_content")),1),_("div",Ge,y(u(R)("settings.no_group_providers")),1)]))])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ne=W(De,[["__scopeId","data-v-f2011309"]]),qe={class:"players-header w-100"},Se={class:"header-actions"},Be={class:"pl-5 font-weight-medium"},Fe={class:"player-name"},je={class:"player-meta"},xe={class:"provider-name"},Xe={key:0,class:"player-type-badge"},He={class:"player-status-icons"},Je={key:2,class:"empty-state"},We={class:"empty-title"},Qe={class:"empty-message"},Ke=H({__name:"Players",setup(G){const V=Z(),c=ce("playersViewMode"),m=P(()=>c.viewMode.value),f=Y([]),C=Y(""),g=Y([]),o=Y([]),b=Y(!1),v=s.subscribe_multi([ve.PLAYER_CONFIG_UPDATED],()=>{N()});ye(v);const D=P(()=>Object.values(s.providers).filter(e=>e.available&&(e.supported_features.includes(B.CREATE_GROUP_PLAYER)||e.supported_features.includes(B.SYNC_PLAYERS))).sort((e,t)=>(e.name||s.providerManifests[e.domain].name).toUpperCase()>(t.name||s.providerManifests[t.domain].name).toUpperCase()?1:-1)),N=async function(){f.value=(await s.getPlayerConfigs()).filter(e=>e.provider!="builtin_player").sort((e,t)=>O(e).localeCompare(O(t)))},q=function(e){s.removePlayer(e).then(()=>{f.value=f.value.filter(t=>t.player_id!=e)})},z=function(e,t){s.getProvider(t)&&V.push(`/settings/editplayer/${e}`)},I=function(e){V.push(`/settings/editplayer/${e}/dsp`)},w=function(e){const t=s.players[e];return t?t.type===h.GROUP?t.player_id.startsWith(Pe)||s.getProvider(t.provider)?.supported_features.includes(B.REMOVE_GROUP_PLAYER):s.getProvider(t.provider)?.supported_features.includes(B.REMOVE_PLAYER):!0},$=function(e){e.enabled=!e.enabled,s.savePlayerConfig(e.player_id,{enabled:e.enabled})},O=function(e){return e.name||s.players[e.player_id]?.name||e.default_name||e.player_id},d=function(e){return{[h.PLAYER]:"mdi-speaker",[h.GROUP]:"mdi-speaker-multiple",[h.STEREO_PAIR]:"mdi-speaker-wireless"}[e||h.PLAYER]||"mdi-speaker"},i=function(e,t){const a=[{label:"settings.configure",labelArgs:[],action:()=>{z(t.player_id,t.provider)},icon:"mdi-cog",disabled:!s.getProvider(t.provider)},{label:"open_dsp_settings",labelArgs:[],action:()=>{I(t.player_id)},icon:"mdi-equalizer",hide:s.players[t.player_id]?.type===h.GROUP},{label:t.enabled?"settings.disable":"settings.enable",labelArgs:[],action:()=>{$(t)},icon:"mdi-cancel",hide:!s.getProvider(t.provider)},{label:"settings.documentation",labelArgs:[],action:()=>{ge(s.getProviderManifest(t.provider)?.documentation||"")},icon:"mdi-bookshelf",disabled:!s.getProviderManifest(t.provider)?.documentation},{label:"settings.delete",labelArgs:[],action:()=>{q(t.player_id)},icon:"mdi-delete",hide:!w(t.player_id)}];be.emit("contextmenu",{items:a,posX:e.clientX,posY:e.clientY})},p=function(){let e=[...f.value];if(C.value){const t=C.value.toLowerCase();e=e.filter(a=>{const A=O(a).toLowerCase(),Q=(s.getProviderManifest(a.provider)?.name||a.provider).toLowerCase();return A.includes(t)||Q.includes(t)})}return g.value.length>0&&(e=e.filter(t=>{const a=s.getProvider(t.provider);return a?g.value.includes(a.instance_id):!1})),o.value.length>0&&(e=e.filter(t=>{const A=s.players[t.player_id]?.type??h.PLAYER;return o.value.includes(A)})),e.sort((t,a)=>O(t).localeCompare(O(a)))};return F(()=>s.players,e=>{e&&N()},{immediate:!0}),(e,t)=>(r(),E("div",null,[_("div",qe,[n(Ae,{"onUpdate:search":t[0]||(t[0]=a=>C.value=a),"onUpdate:providers":t[1]||(t[1]=a=>g.value=a),"onUpdate:types":t[2]||(t[2]=a=>o.value=a)}),_("div",Se,[D.value.length>0?(r(),k(U,{key:0,color:"primary",variant:"outlined",height:"40",class:"add-player-group-btn",onClick:t[3]||(t[3]=a=>b.value=!0)},{default:l(()=>[M(y(e.$t("settings.add_group_player")),1)]),_:1})):L("",!0)])]),_("div",Be,y(e.$t("settings.players_total",[p().length,p().length!==1?"s":""])),1),n(ne,{variant:m.value==="list"?"default":"panel",class:"mt-4"},{default:l(()=>[m.value==="list"?(r(),k(X,{key:0,class:"players-list"},{default:l(()=>[(r(!0),E(j,null,x(p(),a=>(r(),k(re,{key:a.player_id,link:"","show-menu-btn":!0,class:_e({"player-disabled":!a.enabled,"player-unavailable":!u(s).players[a.player_id]?.available}),onClick:A=>z(a.player_id,a.provider),onMenu:A=>i(A,a)},{prepend:l(()=>[n(J,{domain:u(s).getProviderManifest(a.provider)?.domain||a.provider,size:40,class:"player-icon"},null,8,["domain"])]),title:l(()=>[_("div",Fe,y(O(a)),1)]),subtitle:l(()=>[_("div",je,[_("span",xe,y(u(s).getProviderManifest(a.provider)?.name||a.provider),1),u(s).players[a.player_id]?.type&&u(s).players[a.player_id]?.type!==u(h).PLAYER?(r(),E("span",Xe,y(e.$t(`player_type.${u(s).players[a.player_id]?.type}`)),1)):L("",!0)])]),append:l(()=>[_("div",He,[a.enabled?u(s).players[a.player_id]?.available?L("",!0):(r(),k(T,{key:1,icon:"mdi-timer-sand",size:"20",color:"grey",title:e.$t("settings.player_not_available")},null,8,["title"])):(r(),k(T,{key:0,icon:"mdi-cancel",size:"20",color:"grey",title:e.$t("settings.player_disabled")},null,8,["title"])),u(s).players[a.player_id]?.type?(r(),k(T,{key:2,icon:d(u(s).players[a.player_id]?.type),size:"20",color:"grey",title:e.$t(`player_type.${u(s).players[a.player_id]?.type}`)},null,8,["icon","title"])):L("",!0)])]),_:2},1032,["class","onClick","onMenu"]))),128))]),_:1})):(r(),k(me,{key:1},{default:l(()=>[(r(!0),E(j,null,x(p(),a=>(r(),k(fe,{key:a.player_id,cols:"12",md:"6",lg:"4",class:"d-flex"},{default:l(()=>[n(Ve,{"player-config":a,onClick:t[4]||(t[4]=A=>z(A.player_id,A.provider)),onMenu:t[5]||(t[5]=(A,Q)=>i(A,Q))},null,8,["player-config"])]),_:2},1024))),128))]),_:1})),p().length===0?(r(),E("div",Je,[n(T,{icon:"mdi-speaker-off",size:"64",class:"empty-icon"}),_("div",We,y(e.$t("no_content")),1),_("div",Qe,y(e.$t("no_content_filter")),1)])):L("",!0)]),_:1},8,["variant"]),n(Ne,{show:b.value,"onUpdate:show":t[6]||(t[6]=a=>b.value=a)},null,8,["show"])]))}}),ot=W(Ke,[["__scopeId","data-v-4c84e347"]]);export{ot as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.filters-container[data-v-6e630577]{display:flex;align-items:stretch;gap:12px;flex:1;flex-wrap:wrap}.search-field[data-v-6e630577]{flex:1 1 auto;min-width:250px;max-width:400px}.filter-buttons[data-v-6e630577]{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.filter-buttons .v-btn[data-v-6e630577]{min-width:100px;border-color:rgba(var(--v-theme-on-surface),.2);color:rgba(var(--v-theme-on-surface),.6)}.filter-buttons .v-btn .v-icon[data-v-6e630577]{color:rgba(var(--v-theme-on-surface),.6)}.filter-btn[data-v-6e630577]{position:relative}.filter-dot[data-v-6e630577]{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:rgb(var(--v-theme-primary));z-index:1;box-shadow:0 0 0 2px rgb(var(--v-theme-surface))}@media (max-width: 960px){.filters-container[data-v-6e630577]{flex-direction:column;align-items:stretch}.search-field[data-v-6e630577]{width:100%;min-width:100%}.filter-buttons[data-v-6e630577]{width:100%}.filter-buttons .v-btn[data-v-6e630577]{flex:1 1 auto;min-width:120px}}[data-v-6e630577] .v-list-item .v-checkbox-btn,[data-v-6e630577] .v-list-item .v-checkbox-btn .v-input__control{display:flex;align-items:center}[data-v-6e630577] .v-list-item .v-checkbox-btn .v-selection-control{min-height:auto}.provider-filter-list[data-v-6e630577]{max-height:300px;overflow-y:auto}.player-card[data-v-65c70472]{transition:all .2s ease;cursor:pointer}.player-card[data-v-65c70472]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.player-description[data-v-65c70472]{display:flex;flex-direction:column;gap:4px}.provider-name[data-v-65c70472]{font-size:14px;color:rgba(var(--v-theme-on-surface),.7);font-weight:500}.player-type-label[data-v-65c70472]{font-size:12px;color:rgba(var(--v-theme-on-surface),.5);text-transform:uppercase;letter-spacing:.5px}.add-player-group-dialog[data-v-f2011309]{height:600px;display:flex;flex-direction:column}.provider-list-container[data-v-f2011309]{height:500px;display:flex;flex-direction:column}.provider-list[data-v-f2011309]{flex:1;overflow-y:auto}.provider-item[data-v-f2011309]{height:80px;margin-bottom:4px;transition:all .2s ease;cursor:pointer}.provider-item[data-v-f2011309]:hover{background-color:rgba(var(--v-theme-primary),.04);transform:translateY(-1px)}.provider-icon[data-v-f2011309]{margin-right:12px}.provider-name[data-v-f2011309]{font-weight:500;font-size:16px;line-height:1.2;margin-bottom:4px}.provider-description[data-v-f2011309]{font-size:14px;color:rgba(var(--v-theme-on-surface),.6);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-height:2.6em}.empty-state[data-v-f2011309]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px 20px}.empty-icon[data-v-f2011309]{color:rgba(var(--v-theme-on-surface),.3);margin-bottom:16px}.empty-title[data-v-f2011309]{font-size:18px;font-weight:500;color:rgba(var(--v-theme-on-surface),.7);margin-bottom:8px}.empty-message[data-v-f2011309]{font-size:14px;color:rgba(var(--v-theme-on-surface),.5);line-height:1.4}@media (max-width: 600px){.add-player-group-dialog[data-v-f2011309]{height:500px}.provider-list-container[data-v-f2011309]{height:300px}}.players-header[data-v-
|
|
1
|
+
.filters-container[data-v-6e630577]{display:flex;align-items:stretch;gap:12px;flex:1;flex-wrap:wrap}.search-field[data-v-6e630577]{flex:1 1 auto;min-width:250px;max-width:400px}.filter-buttons[data-v-6e630577]{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.filter-buttons .v-btn[data-v-6e630577]{min-width:100px;border-color:rgba(var(--v-theme-on-surface),.2);color:rgba(var(--v-theme-on-surface),.6)}.filter-buttons .v-btn .v-icon[data-v-6e630577]{color:rgba(var(--v-theme-on-surface),.6)}.filter-btn[data-v-6e630577]{position:relative}.filter-dot[data-v-6e630577]{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:rgb(var(--v-theme-primary));z-index:1;box-shadow:0 0 0 2px rgb(var(--v-theme-surface))}@media (max-width: 960px){.filters-container[data-v-6e630577]{flex-direction:column;align-items:stretch}.search-field[data-v-6e630577]{width:100%;min-width:100%}.filter-buttons[data-v-6e630577]{width:100%}.filter-buttons .v-btn[data-v-6e630577]{flex:1 1 auto;min-width:120px}}[data-v-6e630577] .v-list-item .v-checkbox-btn,[data-v-6e630577] .v-list-item .v-checkbox-btn .v-input__control{display:flex;align-items:center}[data-v-6e630577] .v-list-item .v-checkbox-btn .v-selection-control{min-height:auto}.provider-filter-list[data-v-6e630577]{max-height:300px;overflow-y:auto}.player-card[data-v-65c70472]{transition:all .2s ease;cursor:pointer}.player-card[data-v-65c70472]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.player-description[data-v-65c70472]{display:flex;flex-direction:column;gap:4px}.provider-name[data-v-65c70472]{font-size:14px;color:rgba(var(--v-theme-on-surface),.7);font-weight:500}.player-type-label[data-v-65c70472]{font-size:12px;color:rgba(var(--v-theme-on-surface),.5);text-transform:uppercase;letter-spacing:.5px}.add-player-group-dialog[data-v-f2011309]{height:600px;display:flex;flex-direction:column}.provider-list-container[data-v-f2011309]{height:500px;display:flex;flex-direction:column}.provider-list[data-v-f2011309]{flex:1;overflow-y:auto}.provider-item[data-v-f2011309]{height:80px;margin-bottom:4px;transition:all .2s ease;cursor:pointer}.provider-item[data-v-f2011309]:hover{background-color:rgba(var(--v-theme-primary),.04);transform:translateY(-1px)}.provider-icon[data-v-f2011309]{margin-right:12px}.provider-name[data-v-f2011309]{font-weight:500;font-size:16px;line-height:1.2;margin-bottom:4px}.provider-description[data-v-f2011309]{font-size:14px;color:rgba(var(--v-theme-on-surface),.6);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-height:2.6em}.empty-state[data-v-f2011309]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px 20px}.empty-icon[data-v-f2011309]{color:rgba(var(--v-theme-on-surface),.3);margin-bottom:16px}.empty-title[data-v-f2011309]{font-size:18px;font-weight:500;color:rgba(var(--v-theme-on-surface),.7);margin-bottom:8px}.empty-message[data-v-f2011309]{font-size:14px;color:rgba(var(--v-theme-on-surface),.5);line-height:1.4}@media (max-width: 600px){.add-player-group-dialog[data-v-f2011309]{height:500px}.provider-list-container[data-v-f2011309]{height:300px}}.players-header[data-v-4c84e347]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 20px 6px}.header-actions[data-v-4c84e347]{display:flex;align-items:center;gap:8px;flex-shrink:0;align-self:flex-start}.add-player-group-btn[data-v-4c84e347]{flex-shrink:0;align-self:flex-start;margin-top:0}.players-header[data-v-4c84e347] .filters-container{align-items:flex-start}.players-header[data-v-4c84e347] .filter-buttons{align-items:center}@media (max-width: 960px){.players-header[data-v-4c84e347]{flex-direction:column;align-items:stretch}.header-actions[data-v-4c84e347]{width:100%;justify-content:space-between;align-self:stretch}.add-player-group-btn[data-v-4c84e347]{flex:1;align-self:stretch;margin-top:0}}@media (min-width: 961px) and (max-width: 1400px){.players-header[data-v-4c84e347]{flex-wrap:wrap;align-items:flex-end}.add-player-group-btn[data-v-4c84e347]{margin-top:0;align-self:flex-end}.players-header[data-v-4c84e347] .filters-container{align-items:flex-end}}.empty-state[data-v-4c84e347]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;width:100%}.empty-icon[data-v-4c84e347]{color:rgba(var(--v-theme-on-surface),.3);margin-bottom:16px}.empty-title[data-v-4c84e347]{font-size:18px;font-weight:500;color:rgba(var(--v-theme-on-surface),.7);margin-bottom:8px}.empty-message[data-v-4c84e347]{font-size:14px;color:rgba(var(--v-theme-on-surface),.5);line-height:1.4}.players-list[data-v-4c84e347]{background:transparent}.player-name[data-v-4c84e347]{font-weight:500;font-size:16px}.player-meta[data-v-4c84e347]{display:flex;align-items:center;gap:8px;margin-top:4px}.provider-name[data-v-4c84e347]{font-size:14px;color:rgba(var(--v-theme-on-surface),.7)}.player-type-badge[data-v-4c84e347]{font-size:11px;color:rgba(var(--v-theme-on-surface),.5);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.player-status-icons[data-v-4c84e347]{display:flex;align-items:center;gap:8px}.player-icon[data-v-4c84e347]{margin-right:12px}.player-disabled[data-v-4c84e347]{opacity:.6}.player-unavailable[data-v-4c84e347]{opacity:.7}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as f}from"./ItemsListing-4Tzirx3k.js";import{I as v,_ as y}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-Boj6o7qU.js";import{ay as I,J as l,L as h,a3 as k,aP as r,bb as _,a4 as b,az as w,aA as i,o as D,aI as m,aB as n,ah as P}from"./index-GQ3lWXrm.js";import"./Container-Bc5cvdS8.js";import"./index-kQIztB-E.js";import"./Toolbar-BhPGsr4E.js";import"./VToolbar-BTrAkkB7.js";import"./Button-BcX_QSum.js";import"./ListItem-Cz0zK7Ay.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-BZUcSWaz.js";import"./MediaItemThumb-C--YJJ5Y.js";import"./VCheckbox-CgwahLqh.js";import"./VCheckboxBtn-orONEqTE.js";import"./VSelectionControl-C9uJkKHo.js";import"./PanelviewItemCompact-BFofUlbn.js";import"./userPreferences-CU3N6m4Z.js";import"./VInfiniteScroll-C839Qj3G.js";import"./VVirtualScroll-YsHPZNGu.js";import"./VAlert-C8Oto4eV.js";import"./marquee_text_sync-a11Dvzhd.js";import"./VDialog-OmJrmVI_.js";const O=I({__name:"PlaylistDetails",props:{itemId:{},provider:{}},setup(p){const t=p,o=l(!1),e=l(),u=async function(){e.value=await r.getPlaylist(t.itemId,t.provider)};h(()=>t.itemId,a=>{a&&u()},{immediate:!0}),k(()=>{const a=r.subscribe(_.MEDIA_ITEM_UPDATED,s=>{const c=s.data;e.value?.uri==c.uri&&(o.value=!0)});b(a)});const d=async function(a){return await r.getPlaylistTracks(t.itemId,t.provider,a.refresh)};return(a,s)=>(i(),w(P,null,[D(v,{item:e.value},null,8,["item"]),e.value?(i(),m(f,{key:0,itemtype:"playlisttracks","parent-item":e.value,"show-provider":!1,"show-library":!1,"show-favorites-only-filter":!1,"show-track-number":!1,"show-refresh-button":!0,"load-items":d,"sort-keys":["position","position_desc","name","artist","album","duration","duration_desc"],"update-available":o.value,title:a.$t("playlist_tracks"),"allow-key-hooks":!0,path:`playlist.${t.itemId}.${t.provider}`,"restore-state":!0,"no-server-side-sorting":!0},null,8,["parent-item","update-available","title","path"])):n("",!0),e.value?(i(),m(y,{key:1,"item-details":e.value},null,8,["item-details"])):n("",!0)],64))}});export{O as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as f,_ as v}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-Boj6o7qU.js";import{I}from"./ItemsListing-4Tzirx3k.js";import{ay as _,J as m,L as h,a3 as b,aP as o,bb as y,a4 as k,az as w,aA as i,o as E,aI as p,aB as n,ah as D}from"./index-GQ3lWXrm.js";import"./Toolbar-BhPGsr4E.js";import"./VToolbar-BTrAkkB7.js";import"./marquee_text_sync-a11Dvzhd.js";import"./MediaItemThumb-C--YJJ5Y.js";import"./VDialog-OmJrmVI_.js";import"./Container-Bc5cvdS8.js";import"./index-kQIztB-E.js";import"./ListItem-Cz0zK7Ay.js";import"./Button-BcX_QSum.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-BZUcSWaz.js";import"./VCheckbox-CgwahLqh.js";import"./VCheckboxBtn-orONEqTE.js";import"./VSelectionControl-C9uJkKHo.js";import"./PanelviewItemCompact-BFofUlbn.js";import"./userPreferences-CU3N6m4Z.js";import"./VInfiniteScroll-C839Qj3G.js";import"./VVirtualScroll-YsHPZNGu.js";import"./VAlert-C8Oto4eV.js";const O=_({__name:"PodcastDetails",props:{itemId:{},provider:{}},setup(l){const e=l,r=m(!1),t=m(),d=async function(){t.value=await o.getPodcast(e.itemId,e.provider)};h(()=>e.itemId,a=>{a&&d()},{immediate:!0}),b(()=>{const a=o.subscribe(y.MEDIA_ITEM_UPDATED,s=>{const c=s.data;t.value?.uri==c.uri&&(r.value=!0)});k(a)});const u=async function(a){return await o.getPodcastEpisodes(e.itemId,e.provider)};return(a,s)=>(i(),w(D,null,[E(f,{item:t.value},null,8,["item"]),t.value?(i(),p(I,{key:0,itemtype:"podcastepisodes","parent-item":t.value,"show-provider":!1,"show-library":!1,"show-favorites-only-filter":!1,"show-track-number":!0,"show-refresh-button":!0,"load-items":u,"sort-keys":["position","position_desc","name","duration","duration_desc"],"update-available":r.value,title:a.$t("podcast_episodes"),"allow-key-hooks":!0,path:`podcast.${e.itemId}.${e.provider}`,"restore-state":!0,"no-server-side-sorting":!0},null,8,["parent-item","update-available","title","path"])):n("",!0),t.value?(i(),p(v,{key:1,"item-details":t.value},null,8,["item-details"])):n("",!0)],64))}});export{O as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as te,p as ie,bY as ae,bZ as ne,n as le,E as b,q as B,r as _,b_ as oe,b$ as se,C as re,ay as J,az as r,aA as t,o as i,M as T,aG as a,aL as V,aK as me,aI as y,b8 as ue,J as q,a8 as de,L as ce,i as R,c0 as ye,aQ as j,bt as E,bu as F,aS as O,aD as f,aB as d,bJ as fe,am as M,bE as ge,bg as he,bh as P,aN as m,bi as L,c1 as be,c2 as ve,ae as ke,ah as z,aH as A,ax as W,bq as xe,bd as K,aP as S,aV as Y,c3 as pe,bV as $e,aE as Ce,c4 as we,bK as Ve,c5 as Te,_ as Ie,bN as Le,c6 as De,aU as Pe,aF as Be,c7 as Re,aW as Q,c8 as ze,b5 as Ae}from"./index-
|
|
1
|
+
import{g as te,p as ie,bY as ae,bZ as ne,n as le,E as b,q as B,r as _,b_ as oe,b$ as se,C as re,ay as J,az as r,aA as t,o as i,M as T,aG as a,aL as V,aK as me,aI as y,b8 as ue,J as q,a8 as de,L as ce,i as R,c0 as ye,aQ as j,bt as E,bu as F,aS as O,aD as f,aB as d,bJ as fe,am as M,bE as ge,bg as he,bh as P,aN as m,bi as L,c1 as be,c2 as ve,ae as ke,ah as z,aH as A,ax as W,bq as xe,bd as K,aP as S,aV as Y,c3 as pe,bV as $e,aE as Ce,c4 as we,bK as Ve,c5 as Te,_ as Ie,bN as Le,c6 as De,aU as Pe,aF as Be,c7 as Re,aW as Q,c8 as ze,b5 as Ae}from"./index-GQ3lWXrm.js";import{T as ee}from"./Toolbar-BhPGsr4E.js";import{M as D,a as Se}from"./marquee_text_sync-a11Dvzhd.js";import{M as X}from"./MediaItemThumb-C--YJJ5Y.js";import{V as He}from"./VDialog-OmJrmVI_.js";import{C as Ne}from"./Container-Bc5cvdS8.js";import{L as Z}from"./ListItem-Cz0zK7Ay.js";const Ue=ie({...re(),...se(),...oe()},"VLayout"),Ee=te()({name:"VLayout",props:Ue(),setup(e,c){let{slots:h}=c;const{layoutClasses:x,layoutStyles:p,getLayoutItem:v,items:I,layoutRef:$}=ae(e),{dimensionStyles:k}=ne(e);return le(()=>b("div",{ref:$,class:_([x.value,e.class]),style:B([k.value,p.value,e.style])},[h.default?.()])),{getLayoutItem:v,items:I}}}),Fe=J({__name:"MenuButton",props:{icon:{default:void 0},text:{default:void 0},disabled:{type:Boolean,default:!1},width:{default:200},loading:{type:Boolean,default:!0}},emits:["click","menu"],setup(e,{emit:c}){const h=c;return(x,p)=>(t(),r("div",{style:B(`width: ${e.width}px; height: 30px;`)},[i(T,{variant:"tonal",style:B(`
|
|
2
2
|
width: ${e.width}px;
|
|
3
3
|
position: absolute;
|
|
4
4
|
border: 1px solid #cccccc4d;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ay as de,J as L,i as I,co as y,aT as a,cA as z,L as F,az as P,aA as r,o as s,E as h,bH as pe,aD as n,aI as m,aB as A,M as E,aG as t,bh as f,aN as v,aL as _,b4 as te,aF as J,ah as q,aH as j,aE as ce,bD as ge,aJ as W,aM as se,bd as G,_ as ue,aP as c,aS as ve,bg as fe,c3 as Z,ax as le,bK as K,aV as oe,T as me,bb as _e,a4 as ye,bP as he,r as ne,bQ as be,cw as ke,aR as Pe,aO as Ce}from"./index-GQ3lWXrm.js";import{C as Ae}from"./Container-Bc5cvdS8.js";import{L as we}from"./ListItem-Cz0zK7Ay.js";import{V as ae}from"./VCheckboxBtn-orONEqTE.js";import{M as re}from"./index-kQIztB-E.js";import{V as xe}from"./VDialog-OmJrmVI_.js";import{a as Te,V as Me}from"./VAlert-C8Oto4eV.js";import"./Button-BcX_QSum.js";import"./VSelectionControl-C9uJkKHo.js";const Ee={class:"filters-container"},ze={class:"d-flex ga-2 filter-buttons"},Le={key:0,class:"filter-dot"},$e={key:0,class:"filter-dot"},Ve=de({__name:"ProviderFilters",props:{showStageFilter:{type:Boolean,default:!1}},emits:["update:search","update:types","update:stages"],setup(ee,{emit:S}){const D=ce(),w=ge(),M=L(""),C=L([]),k=L([]);let x=null,N=null,B=null;const U=I(()=>[{title:a("settings.musicprovider"),value:y.MUSIC},{title:a("settings.playerprovider"),value:y.PLAYER},{title:a("settings.metadataprovider"),value:y.METADATA},{title:a("settings.pluginprovider"),value:y.PLUGIN}]),H=I(()=>[{title:a("settings.stage.options.stable"),value:z.STABLE},{title:a("settings.stage.options.beta"),value:z.BETA},{title:a("settings.stage.options.alpha"),value:z.ALPHA},{title:a("settings.stage.options.experimental"),value:z.EXPERIMENTAL},{title:a("settings.stage.options.unmaintained"),value:z.UNMAINTAINED},{title:a("settings.stage.options.deprecated"),value:z.DEPRECATED}]),Q=I(()=>C.value.length>0),O=I(()=>k.value.length>0),R=S,T=function(g){const p=C.value.indexOf(g);p>-1?C.value.splice(p,1):C.value.push(g)},Y=function(g){const p=k.value.indexOf(g);p>-1?k.value.splice(p,1):k.value.push(g)},X=function(){if(w.query.search&&(M.value=w.query.search),w.query.types){const g=w.query.types;C.value=g.split(",")}if(w.query.stages){const g=w.query.stages;k.value=g.split(",")}};return F(M,g=>{R("update:search",g),x&&clearTimeout(x),x=setTimeout(()=>{const p={...w.query};g?p.search=g:delete p.search,D.replace({query:p})},750)}),F(C,g=>{R("update:types",g),N&&clearTimeout(N),N=setTimeout(()=>{const p={...w.query};g.length>0?p.types=g.join(","):delete p.types,D.replace({query:p})},750)},{deep:!0}),F(k,g=>{R("update:stages",g),B&&clearTimeout(B),B=setTimeout(()=>{const p={...w.query};g.length>0?p.stages=g.join(","):delete p.stages,D.replace({query:p})},750)},{deep:!0}),X(),(g,p)=>(r(),P("div",Ee,[s(pe,{modelValue:M.value,"onUpdate:modelValue":p[0]||(p[0]=o=>M.value=o),"prepend-inner-icon":"mdi-magnify",label:n(a)("search"),variant:"outlined",density:"compact",clearable:"","hide-details":"",class:"search-field"},null,8,["modelValue","label"]),h("div",ze,[s(E,{height:"40",elevation:"0",variant:"outlined",density:"compact",class:"filter-btn"},{default:t(()=>[f(v(n(a)("settings.provider_type"))+" ",1),s(_,{end:""},{default:t(()=>[...p[1]||(p[1]=[f("mdi-chevron-down",-1)])]),_:1}),Q.value?(r(),P("span",Le)):A("",!0),s(te,{activator:"parent","close-on-content-click":!1},{default:t(()=>[s(J,null,{default:t(()=>[(r(!0),P(q,null,j(U.value,(o,d)=>(r(),m(W,{key:d,value:d,onClick:u=>T(o.value)},{append:t(()=>[s(ae,{"model-value":C.value.includes(o.value),onClick:G(u=>T(o.value),["stop"])},null,8,["model-value","onClick"])]),default:t(()=>[s(se,null,{default:t(()=>[f(v(o.title),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})]),_:1}),ee.showStageFilter?(r(),m(E,{key:0,height:"40",elevation:"0",variant:"outlined",density:"compact",class:"filter-btn"},{default:t(()=>[f(v(n(a)("settings.stage.label"))+" ",1),s(_,{end:""},{default:t(()=>[...p[2]||(p[2]=[f("mdi-chevron-down",-1)])]),_:1}),O.value?(r(),P("span",$e)):A("",!0),s(te,{activator:"parent","close-on-content-click":!1},{default:t(()=>[s(J,null,{default:t(()=>[(r(!0),P(q,null,j(H.value,(o,d)=>(r(),m(W,{key:d,value:d,onClick:u=>Y(o.value)},{append:t(()=>[s(ae,{"model-value":k.value.includes(o.value),onClick:G(u=>Y(o.value),["stop"])},null,8,["model-value","onClick"])]),default:t(()=>[s(se,null,{default:t(()=>[f(v(o.title),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})]),_:1})):A("",!0)])]))}}),Ie=ue(Ve,[["__scopeId","data-v-3d0fa42f"]]),Se={class:"text-h6"},De={class:"d-flex ga-2 filter-buttons"},Ne={key:0,class:"filter-dot"},Ue={key:0,class:"filter-dot"},Re={class:"provider-list-container"},qe={class:"provider-name"},Be={class:"provider-description"},Oe={class:"d-flex align-center ga-2"},Ye={key:1,class:"empty-state"},Fe={class:"empty-title"},je={class:"empty-message"},Ge=de({__name:"AddProviderDialog",props:{show:{type:Boolean,default:!1}},emits:["update:show"],setup(ee,{emit:S}){const D=S,w=ce(),M=L([]),C=L(""),k=L([]),x=L([]),N=I(()=>[{title:a("settings.musicprovider"),value:y.MUSIC},{title:a("settings.playerprovider"),value:y.PLAYER},{title:a("settings.metadataprovider"),value:y.METADATA},{title:a("settings.pluginprovider"),value:y.PLUGIN}]),B=I(()=>[{title:a("settings.stage.options.stable"),value:z.STABLE},{title:a("settings.stage.options.beta"),value:z.BETA},{title:a("settings.stage.options.alpha"),value:z.ALPHA},{title:a("settings.stage.options.experimental"),value:z.EXPERIMENTAL},{title:a("settings.stage.options.unmaintained"),value:z.UNMAINTAINED},{title:a("settings.stage.options.deprecated"),value:z.DEPRECATED}]),U=I(()=>{let o=Object.values(c.providerManifests);return o=o.filter(d=>!d.builtin&&d.type!=="core"),o.filter(d=>d.multi_instance||!M.value.find(u=>u.domain==d.domain)).sort((d,u)=>{const $=(d.name||c.providerManifests[d.domain].name).toUpperCase(),V=(u.name||c.providerManifests[u.domain].name).toUpperCase();return $>V?1:-1})}),H=I(()=>{let o=U.value;if(C.value){const d=C.value.toLowerCase();o=o.filter(u=>u.name.toLowerCase().includes(d)||u.description.toLowerCase().includes(d))}return k.value.length>0&&(o=o.filter(d=>k.value.includes(d.type))),x.value.length>0&&(o=o.filter(d=>x.value.includes(d.stage))),o}),Q=I(()=>k.value.length>0),O=I(()=>x.value.length>0),R=async function(){M.value=await c.getProviderConfigs()},T=function(o){if(o.depends_on&&!c.getProvider(o.depends_on)){const d=c.getProviderName(o.depends_on);confirm(a("settings.provider_depends_on_confirm",[o.name,d]))&&w.push(`/settings/addprovider/${o.depends_on}`);return}w.push(`/settings/addprovider/${o.domain}`),p()},Y=function(o){const d=k.value.indexOf(o);d>-1?k.value.splice(d,1):k.value.push(o)},X=function(o){const d=x.value.indexOf(o);d>-1?x.value.splice(d,1):x.value.push(o)},g=function(o){return re(o).with("stable",()=>"green").with("beta",()=>"blue").with("alpha",()=>"purple").with("experimental",()=>"orange").with("unmaintained",()=>"grey").with("deprecated",()=>"red").otherwise(()=>"green")},p=function(){D("update:show",!1)};return F(()=>c.providers,o=>{o&&R()},{immediate:!0}),(o,d)=>(r(),m(xe,{"model-value":ee.show,"max-width":"800px",scrollable:"","onUpdate:modelValue":d[1]||(d[1]=u=>{n(le).dialogActive=u,D("update:show",u)})},{default:t(()=>[s(ve,{class:"add-provider-dialog"},{default:t(()=>[s(fe,{class:"d-flex align-center justify-space-between pa-4"},{default:t(()=>[h("span",Se,v(n(a)("settings.add_provider")),1),s(E,{icon:"mdi-close",variant:"text",size:"small",onClick:p})]),_:1}),s(Z,{class:"pa-4 pb-2"},{default:t(()=>[s(pe,{modelValue:C.value,"onUpdate:modelValue":d[0]||(d[0]=u=>C.value=u),"prepend-inner-icon":"mdi-magnify",placeholder:n(a)("search"),variant:"outlined",density:"compact",clearable:"","hide-details":"",class:"search-field"},null,8,["modelValue","placeholder"])]),_:1}),s(Z,{class:"pa-4 pt-2 pb-2"},{default:t(()=>[h("div",De,[s(E,{height:"40",elevation:"0",variant:"outlined",density:"compact",class:"filter-btn"},{default:t(()=>[f(v(n(a)("settings.provider_type"))+" ",1),s(_,{end:""},{default:t(()=>[...d[2]||(d[2]=[f("mdi-chevron-down",-1)])]),_:1}),Q.value?(r(),P("span",Ne)):A("",!0),s(te,{activator:"parent","close-on-content-click":!1},{default:t(()=>[s(J,null,{default:t(()=>[(r(!0),P(q,null,j(N.value,(u,$)=>(r(),m(W,{key:$,value:$,onClick:V=>Y(u.value)},{append:t(()=>[s(ae,{"model-value":k.value.includes(u.value),onClick:G(V=>Y(u.value),["stop"])},null,8,["model-value","onClick"])]),default:t(()=>[s(se,null,{default:t(()=>[f(v(u.title),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})]),_:1}),s(E,{height:"40",elevation:"0",variant:"outlined",density:"compact",class:"filter-btn"},{default:t(()=>[f(v(n(a)("settings.stage.label"))+" ",1),s(_,{end:""},{default:t(()=>[...d[3]||(d[3]=[f("mdi-chevron-down",-1)])]),_:1}),O.value?(r(),P("span",Ue)):A("",!0),s(te,{activator:"parent","close-on-content-click":!1},{default:t(()=>[s(J,null,{default:t(()=>[(r(!0),P(q,null,j(B.value,(u,$)=>(r(),m(W,{key:$,value:$,onClick:V=>X(u.value)},{append:t(()=>[s(ae,{"model-value":x.value.includes(u.value),onClick:G(V=>X(u.value),["stop"])},null,8,["model-value","onClick"])]),default:t(()=>[s(se,null,{default:t(()=>[f(v(u.title),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})]),_:1})])]),_:1}),s(Z,{class:"pa-4 pt-2"},{default:t(()=>[h("div",Re,[H.value.length>0?(r(),m(J,{key:0,class:"provider-list"},{default:t(()=>[(r(!0),P(q,null,j(H.value,u=>(r(),m(W,{key:u.domain,style:{padding:"0"},class:"provider-item",rounded:"lg",onClick:$=>T(u)},{prepend:t(()=>[s(oe,{domain:u.domain,size:40,class:"provider-icon"},null,8,["domain"])]),title:t(()=>[h("div",qe,v(u.name),1)]),subtitle:t(()=>[h("div",Be,v(u.description),1)]),append:t(()=>[h("div",Oe,[s(K,{size:"x-small",variant:"flat",class:"text-uppercase",color:g(u.stage)},{default:t(()=>[f(v(n(a)(String(u.stage||"").toLowerCase())),1)]),_:2},1032,["color"]),s(_,{icon:"mdi-chevron-right",size:"small"})])]),_:2},1032,["onClick"]))),128))]),_:1})):(r(),P("div",Ye,[s(_,{icon:"mdi-magnify",size:"48",class:"empty-icon"}),h("div",Fe,v(n(a)("no_content")),1),h("div",je,v(n(a)("no_content_filter")),1)]))])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),He=ue(Ge,[["__scopeId","data-v-04638e04"]]),Xe={class:"text-body-1"},Je={class:"mb-2"},Qe={class:"onboarding-list ml-4"},Ke={class:"providers-header w-100"},We={class:"pl-5 font-weight-medium"},Ze={class:"provider-name-title"},et={class:"provider-meta"},tt={key:0,class:"provider-description-text"},st={key:1,class:"provider-type-badge"},at={class:"provider-status-icons"},it={key:2,class:"empty-state"},nt={class:"empty-title"},lt={class:"empty-message"},ot=de({__name:"Providers",setup(ee){const S=ce(),D=me("providersViewMode"),w=I(()=>D.viewMode.value),M=L([]),C=L(""),k=L([]),x=L(!1),N=L([]),B=c.subscribe(_e.PROVIDERS_UPDATED,()=>{U()});ye(B);const U=async function(){if(Object.keys(c.providerManifests).length===0){console.debug("Waiting for provider manifests to load before loading provider configs");return}M.value=await c.getProviderConfigs(),N.value=await c.getPlayerConfigs()},H=function(){le.isOnboarding=!1},Q=function(l){c.removeProviderConfig(l),M.value=M.value.filter(i=>i.instance_id!=l)},O=function(l){S.push(`/settings/editprovider/${l}`)},R=function(l){const i=c.getProvider(l);i&&S.push({name:"playersettings",query:{providers:i.instance_id}})},T=function(l){if(l.type!==y.PLAYER)return 0;const i=c.getProvider(l.instance_id);return i?N.value.filter(e=>e.provider==="builtin_player"?!1:c.getProvider(e.provider)?.instance_id===i.instance_id||e.provider===i.instance_id||e.provider===i.domain).length:0},Y=function(l){l.enabled=!l.enabled,c.saveProviderConfig(l.domain,{enabled:l.enabled},l.instance_id)},X=function(l){c.sendCommand("config/providers/reload",{instance_id:l}).catch(i=>alert(i))},g=function(l,i){const e=c.providerManifests[i.domain];if(!e){console.warn("Provider manifest not yet loaded for:",i.domain);return}const b=c.getProvider(i.instance_id),ie=[{label:"settings.configure",labelArgs:[],action:()=>{O(i.instance_id)},icon:"mdi-cog"},{label:i.enabled?"settings.disable":"settings.enable",labelArgs:[],action:()=>{Y(i)},icon:"mdi-cancel",disabled:!e.allow_disable},{label:"settings.documentation",labelArgs:[],action:()=>{ke(e.documentation)},icon:"mdi-bookshelf",disabled:!e.documentation},{label:"settings.sync",labelArgs:[],action:()=>{c.startSync(void 0,[i.instance_id])},icon:"mdi-sync",hide:!b?.available||i.type!=y.MUSIC},{label:"settings.delete",labelArgs:[],action:()=>{Q(i.instance_id)},icon:"mdi-delete",hide:e.builtin},{label:"settings.reload",labelArgs:[],action:()=>{X(i.instance_id)},icon:"mdi-refresh"}];i.type===y.PLAYER&&b&&ie.push({label:"settings.view_players",labelArgs:[],action:()=>{S.push({name:"playersettings",query:{providers:b.instance_id}})},icon:"mdi-speaker"}),b?.available&&b.supported_features.includes(Pe.CREATE_GROUP_PLAYER)&&ie.push({label:"settings.add_group_player",labelArgs:[],action:()=>{S.push(`/settings/addgroup/${b.instance_id}`)},icon:"mdi-speaker-multiple"}),Ce.emit("contextmenu",{items:ie,posX:l.clientX,posY:l.clientY})};F(()=>c.providers,l=>{l&&U()},{immediate:!0}),F(()=>c.players,()=>{U()}),F(()=>Object.keys(c.providerManifests).length,l=>{l>0&&U()});const p=function(l){const i=c.getProvider(l.instance_id);if(i&&i.name)return i.name;const e=c.providerManifests[l.domain];return l.name||e?.name},o=function(l){return l&&l.length>150},d=function(l){return re(l).with("stable",()=>"green").with("beta",()=>"blue").with("alpha",()=>"purple").with("experimental",()=>"orange").with("unmaintained",()=>"grey").with("deprecated",()=>"red").otherwise(()=>"green")},u=function(l){return re(l).with(y.MUSIC,()=>a("settings.music")).with(y.PLAYER,()=>a("settings.player")).with(y.METADATA,()=>a("settings.metadata")).with(y.PLUGIN,()=>a("settings.plugin")).otherwise(()=>a("settings.player"))},$=function(l){return{[y.MUSIC]:"mdi-music",[y.PLAYER]:"mdi-speaker",[y.METADATA]:"mdi-file-code",[y.PLUGIN]:"mdi-puzzle"}[l]||"mdi-help-circle"},V=function(){let l=[...M.value];if(C.value){const i=C.value.toLowerCase();l=l.filter(e=>p(e).toLowerCase().includes(i))}return k.value.length>0&&(l=l.filter(i=>k.value.includes(i.type))),l.sort((i,e)=>p(i).localeCompare(p(e)))};return(l,i)=>(r(),P(q,null,[n(le).isOnboarding?(r(),m(Me,{key:0,type:"info",variant:"tonal",closable:"",class:"mx-5 mt-4","onClick:close":H},{default:t(()=>[s(Te,{class:"text-h6 mb-2"},{default:t(()=>[f(v(n(a)("settings.onboarding_title")),1)]),_:1}),h("div",Xe,[h("p",Je,v(n(a)("settings.onboarding_message")),1),h("ul",Qe,[h("li",null,[s(_,{icon:"mdi-speaker",size:"small",class:"mr-2"}),f(" "+v(n(a)("settings.onboarding_players")),1)]),h("li",null,[s(_,{icon:"mdi-music",size:"small",class:"mr-2"}),f(" "+v(n(a)("settings.onboarding_music")),1)]),h("li",null,[s(_,{icon:"mdi-puzzle",size:"small",class:"mr-2"}),f(" "+v(n(a)("settings.onboarding_plugins")),1)])])])]),_:1})):A("",!0),h("div",Ke,[s(Ie,{"onUpdate:search":i[0]||(i[0]=e=>C.value=e),"onUpdate:types":i[1]||(i[1]=e=>k.value=e)}),s(E,{color:"primary",variant:"outlined",height:"40",class:"add-provider-btn",onClick:i[2]||(i[2]=e=>x.value=!0)},{default:t(()=>[f(v(n(a)("settings.add_provider")),1)]),_:1})]),h("div",We,v(n(a)("settings.providers_total",[V().length,V().length>1?"s":""])),1),s(Ae,{variant:w.value==="list"?"default":"panel",class:"mt-4"},{default:t(()=>[w.value==="list"?(r(),m(J,{key:0,class:"providers-list"},{default:t(()=>[(r(!0),P(q,null,j(V(),e=>(r(),m(we,{key:e.instance_id,link:"","show-menu-btn":!0,class:ne({"provider-disabled":!e.enabled,"provider-unavailable":!n(c).providers[e.instance_id]?.available}),onClick:b=>O(e.instance_id),onMenu:b=>g(b,e)},{prepend:t(()=>[s(oe,{domain:e.domain,size:40,class:"provider-icon"},null,8,["domain"])]),title:t(()=>[h("div",Ze,v(p(e)),1)]),subtitle:t(()=>[h("div",et,[n(c).providerManifests[e.domain]?(r(),P("span",tt,v(n(c).providerManifests[e.domain].description),1)):(r(),P("span",st,v(u(e.type)),1))])]),append:t(()=>[h("div",at,[e.type===n(y).PLAYER&&T(e)>0?(r(),m(K,{key:0,size:"x-small",variant:"flat",color:"primary",class:"player-count-chip",onClick:G(b=>R(e.instance_id),["stop"])},{default:t(()=>[s(_,{start:"",size:"small"},{default:t(()=>[...i[4]||(i[4]=[f("mdi-speaker",-1)])]),_:1}),f(" "+v(T(e)===1?n(a)("settings.one_player"):n(a)("settings.players_count",[T(e),T(e)!==1?"s":""])),1)]),_:2},1032,["onClick"])):A("",!0),n(c).syncTasks.value.filter(b=>b.provider_instance==e.instance_id).length>0?(r(),m(_,{key:1,icon:"mdi-sync",size:"20",color:"grey",title:n(a)("settings.sync_running")},null,8,["title"])):A("",!0),e.enabled?e.last_error?(r(),m(_,{key:3,icon:"mdi-alert-circle",size:"20",color:"red",title:e.last_error},null,8,["title"])):n(c).providers[e.instance_id]?.available?A("",!0):(r(),m(_,{key:4,icon:"mdi-timer-sand",size:"20",color:"grey",title:n(a)("settings.not_loaded")},null,8,["title"])):(r(),m(_,{key:2,icon:"mdi-cancel",size:"20",color:"grey",title:n(a)("settings.provider_disabled")},null,8,["title"])),s(_,{icon:$(e.type),size:"20",color:"grey",title:u(e.type)},null,8,["icon","title"]),n(c).providerManifests[e.domain]?(r(),m(K,{key:5,size:"x-small",variant:"flat",class:"mx-1 text-uppercase",color:d(n(c).providerManifests[e.domain]?.stage)},{default:t(()=>[f(v(n(a)(String(n(c).providerManifests[e.domain]?.stage||"").toLowerCase())),1)]),_:2},1032,["color"])):A("",!0)])]),_:2},1032,["class","onClick","onMenu"]))),128))]),_:1})):(r(),m(he,{key:1},{default:t(()=>[(r(!0),P(q,null,j(V(),e=>(r(),m(be,{key:e.instance_id,cols:"12",md:"6",lg:"4",class:"d-flex"},{default:t(()=>[s(ve,{class:ne(["flex-fill rounded-lg provider-card d-flex flex-column",{"player-provider-card":e.type===n(y).PLAYER}]),"min-height":"200px",onClick:b=>O(e.instance_id)},{prepend:t(()=>[s(oe,{domain:e.domain,size:50,class:"listitem-media-thumb",style:{"margin-top":"5px","margin-bottom":"5px"}},null,8,["domain"])]),append:t(()=>[n(c).syncTasks.value.filter(b=>b.provider_instance==e.instance_id).length>0?(r(),m(E,{key:0,variant:"text",size:"small",icon:"",title:n(a)("settings.sync_running")},{default:t(()=>[s(_,{color:"grey"},{default:t(()=>[...i[5]||(i[5]=[f(" mdi-sync ",-1)])]),_:1})]),_:1},8,["title"])):A("",!0),e.enabled?e.last_error?(r(),m(E,{key:2,variant:"text",size:"small",icon:"",title:e.last_error},{default:t(()=>[s(_,{color:"red"},{default:t(()=>[...i[7]||(i[7]=[f(" mdi-alert-circle ",-1)])]),_:1})]),_:1},8,["title"])):n(c).providers[e.instance_id]?.available?A("",!0):(r(),m(E,{key:3,variant:"text",size:"small",icon:"",title:n(a)("settings.not_loaded")},{default:t(()=>[s(_,{icon:"mdi-timer-sand"})]),_:1},8,["title"])):(r(),m(E,{key:1,variant:"text",size:"small",icon:"",title:n(a)("settings.provider_disabled")},{default:t(()=>[s(_,{color:"grey"},{default:t(()=>[...i[6]||(i[6]=[f(" mdi-cancel ",-1)])]),_:1})]),_:1},8,["title"])),s(E,{variant:"text",size:"small",icon:"",title:u(e.type)},{default:t(()=>[s(_,{icon:$(e.type)},null,8,["icon"])]),_:2},1032,["title"]),n(c).providerManifests[e.domain]?(r(),m(K,{key:4,size:"x-small",variant:"flat",class:"mx-1 text-uppercase",color:d(n(c).providerManifests[e.domain]?.stage)},{default:t(()=>[f(v(n(a)(String(n(c).providerManifests[e.domain]?.stage||"").toLowerCase())),1)]),_:2},1032,["color"])):A("",!0),s(E,{icon:"mdi-dots-vertical",size:"small",variant:"text",onClick:G(b=>g(b,e),["stop"])},null,8,["onClick"])]),default:t(()=>[s(fe,null,{default:t(()=>[f(v(p(e)),1)]),_:2},1024),n(c).providerManifests[e.domain]?(r(),m(Z,{key:0,class:ne(["provider-description flex-grow-1",{"truncated-text":o(n(c).providerManifests[e.domain].description)}])},{default:t(()=>[f(v(n(c).providerManifests[e.domain].description),1)]),_:2},1032,["class"])):A("",!0),e.type===n(y).PLAYER&&T(e)>0?(r(),m(Z,{key:1,class:"provider-players-count mt-auto"},{default:t(()=>[s(K,{size:"small",variant:"flat",color:"primary",class:"player-count-chip",onClick:G(b=>R(e.instance_id),["stop"])},{default:t(()=>[s(_,{start:"",size:"small"},{default:t(()=>[...i[8]||(i[8]=[f("mdi-speaker",-1)])]),_:1}),f(" "+v(T(e)===1?n(a)("settings.one_player"):n(a)("settings.players_count",[T(e),T(e)!==1?"s":""])),1)]),_:2},1032,["onClick"])]),_:2},1024)):A("",!0)]),_:2},1032,["class","onClick"])]),_:2},1024))),128))]),_:1})),V().length===0?(r(),P("div",it,[s(_,{icon:"mdi-puzzle-outline",size:"64",class:"empty-icon"}),h("div",nt,v(n(a)("no_content")),1),h("div",lt,v(n(a)("no_content_filter")),1)])):A("",!0)]),_:1},8,["variant"]),s(He,{show:x.value,"onUpdate:show":i[3]||(i[3]=e=>x.value=e)},null,8,["show"])],64))}}),_t=ue(ot,[["__scopeId","data-v-1a9a2523"]]);export{_t as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.filters-container[data-v-3d0fa42f]{display:flex;align-items:stretch;gap:12px;flex:1;flex-wrap:wrap}.search-field[data-v-3d0fa42f]{flex:1 1 auto;min-width:250px;max-width:400px}.filter-buttons[data-v-3d0fa42f]{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.filter-buttons .v-btn[data-v-3d0fa42f]{min-width:100px;border-color:rgba(var(--v-theme-on-surface),.2);color:rgba(var(--v-theme-on-surface),.6)}.filter-buttons .v-btn .v-icon[data-v-3d0fa42f]{color:rgba(var(--v-theme-on-surface),.6)}.filter-btn[data-v-3d0fa42f]{position:relative}.filter-dot[data-v-3d0fa42f]{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:rgb(var(--v-theme-primary));z-index:1;box-shadow:0 0 0 2px rgb(var(--v-theme-surface))}@media (max-width: 960px){.filters-container[data-v-3d0fa42f]{flex-direction:column;align-items:stretch}.search-field[data-v-3d0fa42f]{width:100%;min-width:100%}.filter-buttons[data-v-3d0fa42f]{width:100%}.filter-buttons .v-btn[data-v-3d0fa42f]{flex:1 1 auto;min-width:120px}}[data-v-3d0fa42f] .v-list-item .v-checkbox-btn,[data-v-3d0fa42f] .v-list-item .v-checkbox-btn .v-input__control{display:flex;align-items:center}[data-v-3d0fa42f] .v-list-item .v-checkbox-btn .v-selection-control{min-height:auto}.add-provider-dialog[data-v-04638e04]{height:600px;display:flex;flex-direction:column}.search-field[data-v-04638e04]{width:100%}.filter-buttons[data-v-04638e04]{flex-wrap:wrap}.filter-buttons .v-btn[data-v-04638e04]{border-color:rgba(var(--v-theme-on-surface),.2);color:rgba(var(--v-theme-on-surface),.6)}.filter-buttons .v-btn .v-icon[data-v-04638e04]{color:rgba(var(--v-theme-on-surface),.6)}.filter-btn[data-v-04638e04]{position:relative}.filter-dot[data-v-04638e04]{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:rgb(var(--v-theme-primary));z-index:1;box-shadow:0 0 0 2px rgb(var(--v-theme-surface))}.provider-list-container[data-v-04638e04]{height:400px;display:flex;flex-direction:column}.provider-list[data-v-04638e04]{flex:1;overflow-y:auto}.provider-item[data-v-04638e04]{height:80px;margin-bottom:4px;transition:all .2s ease;cursor:pointer}.provider-item[data-v-04638e04]:hover{background-color:rgba(var(--v-theme-primary),.04);transform:translateY(-1px)}.provider-icon[data-v-04638e04]{margin-right:12px}.provider-name[data-v-04638e04]{font-weight:500;font-size:16px;line-height:1.2;margin-bottom:4px}.provider-description[data-v-04638e04]{font-size:14px;color:rgba(var(--v-theme-on-surface),.6);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-height:2.6em}.empty-state[data-v-04638e04]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px 20px}.empty-icon[data-v-04638e04]{color:rgba(var(--v-theme-on-surface),.3);margin-bottom:16px}.empty-title[data-v-04638e04]{font-size:18px;font-weight:500;color:rgba(var(--v-theme-on-surface),.7);margin-bottom:8px}.empty-message[data-v-04638e04]{font-size:14px;color:rgba(var(--v-theme-on-surface),.5);line-height:1.4}@media (max-width: 600px){.add-provider-dialog[data-v-04638e04]{height:500px}.provider-list-container[data-v-04638e04]{height:300px}}.providers-header[data-v-
|
|
1
|
+
.filters-container[data-v-3d0fa42f]{display:flex;align-items:stretch;gap:12px;flex:1;flex-wrap:wrap}.search-field[data-v-3d0fa42f]{flex:1 1 auto;min-width:250px;max-width:400px}.filter-buttons[data-v-3d0fa42f]{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.filter-buttons .v-btn[data-v-3d0fa42f]{min-width:100px;border-color:rgba(var(--v-theme-on-surface),.2);color:rgba(var(--v-theme-on-surface),.6)}.filter-buttons .v-btn .v-icon[data-v-3d0fa42f]{color:rgba(var(--v-theme-on-surface),.6)}.filter-btn[data-v-3d0fa42f]{position:relative}.filter-dot[data-v-3d0fa42f]{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:rgb(var(--v-theme-primary));z-index:1;box-shadow:0 0 0 2px rgb(var(--v-theme-surface))}@media (max-width: 960px){.filters-container[data-v-3d0fa42f]{flex-direction:column;align-items:stretch}.search-field[data-v-3d0fa42f]{width:100%;min-width:100%}.filter-buttons[data-v-3d0fa42f]{width:100%}.filter-buttons .v-btn[data-v-3d0fa42f]{flex:1 1 auto;min-width:120px}}[data-v-3d0fa42f] .v-list-item .v-checkbox-btn,[data-v-3d0fa42f] .v-list-item .v-checkbox-btn .v-input__control{display:flex;align-items:center}[data-v-3d0fa42f] .v-list-item .v-checkbox-btn .v-selection-control{min-height:auto}.add-provider-dialog[data-v-04638e04]{height:600px;display:flex;flex-direction:column}.search-field[data-v-04638e04]{width:100%}.filter-buttons[data-v-04638e04]{flex-wrap:wrap}.filter-buttons .v-btn[data-v-04638e04]{border-color:rgba(var(--v-theme-on-surface),.2);color:rgba(var(--v-theme-on-surface),.6)}.filter-buttons .v-btn .v-icon[data-v-04638e04]{color:rgba(var(--v-theme-on-surface),.6)}.filter-btn[data-v-04638e04]{position:relative}.filter-dot[data-v-04638e04]{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:rgb(var(--v-theme-primary));z-index:1;box-shadow:0 0 0 2px rgb(var(--v-theme-surface))}.provider-list-container[data-v-04638e04]{height:400px;display:flex;flex-direction:column}.provider-list[data-v-04638e04]{flex:1;overflow-y:auto}.provider-item[data-v-04638e04]{height:80px;margin-bottom:4px;transition:all .2s ease;cursor:pointer}.provider-item[data-v-04638e04]:hover{background-color:rgba(var(--v-theme-primary),.04);transform:translateY(-1px)}.provider-icon[data-v-04638e04]{margin-right:12px}.provider-name[data-v-04638e04]{font-weight:500;font-size:16px;line-height:1.2;margin-bottom:4px}.provider-description[data-v-04638e04]{font-size:14px;color:rgba(var(--v-theme-on-surface),.6);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-height:2.6em}.empty-state[data-v-04638e04]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px 20px}.empty-icon[data-v-04638e04]{color:rgba(var(--v-theme-on-surface),.3);margin-bottom:16px}.empty-title[data-v-04638e04]{font-size:18px;font-weight:500;color:rgba(var(--v-theme-on-surface),.7);margin-bottom:8px}.empty-message[data-v-04638e04]{font-size:14px;color:rgba(var(--v-theme-on-surface),.5);line-height:1.4}@media (max-width: 600px){.add-provider-dialog[data-v-04638e04]{height:500px}.provider-list-container[data-v-04638e04]{height:300px}}.providers-header[data-v-1a9a2523]{display:flex;align-items:stretch;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 20px 6px}.add-provider-btn[data-v-1a9a2523]{flex-shrink:0;align-self:center}@media (max-width: 960px){.providers-header[data-v-1a9a2523]{flex-direction:column;align-items:stretch}.add-provider-btn[data-v-1a9a2523]{width:100%;align-self:stretch}}.provider-description[data-v-1a9a2523]{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.4em;max-height:4.2em}.provider-description.truncated-text[data-v-1a9a2523]{margin-bottom:16px!important}.onboarding-list[data-v-1a9a2523]{list-style:none;padding-left:0}.onboarding-list li[data-v-1a9a2523]{display:flex;align-items:center;margin-bottom:8px}.provider-card[data-v-1a9a2523]{transition:all .2s ease}.provider-card[data-v-1a9a2523]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.player-provider-card[data-v-1a9a2523]{cursor:pointer}.provider-players-count[data-v-1a9a2523]{padding-top:12px!important;padding-bottom:12px!important;margin-top:auto;align-content:end}.providers-list[data-v-1a9a2523]{background:transparent}.provider-name-title[data-v-1a9a2523]{font-weight:500;font-size:16px}.provider-meta[data-v-1a9a2523]{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.provider-description-text[data-v-1a9a2523]{font-size:14px;color:rgba(var(--v-theme-on-surface),.7);line-height:1.4}.provider-type-badge[data-v-1a9a2523]{font-size:11px;color:rgba(var(--v-theme-on-surface),.5);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.provider-status-icons[data-v-1a9a2523]{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}@media (max-width: 960px){.provider-description-text[data-v-1a9a2523]{display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.provider-status-icons[data-v-1a9a2523]{gap:4px;min-width:0}.player-count-chip[data-v-1a9a2523]{flex-shrink:1}}.player-count-chip[data-v-1a9a2523]{cursor:pointer;transition:all .2s ease}.player-count-chip[data-v-1a9a2523]:hover{transform:scale(1.05)}.provider-icon[data-v-1a9a2523]{margin-right:12px}.provider-disabled[data-v-1a9a2523]{opacity:.6}.provider-unavailable[data-v-1a9a2523]{opacity:.7}.empty-state[data-v-1a9a2523]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;width:100%}.empty-icon[data-v-1a9a2523]{color:rgba(var(--v-theme-on-surface),.3);margin-bottom:16px}.empty-title[data-v-1a9a2523]{font-size:18px;font-weight:500;color:rgba(var(--v-theme-on-surface),.7);margin-bottom:8px}.empty-message[data-v-1a9a2523]{font-size:14px;color:rgba(var(--v-theme-on-surface),.5);line-height:1.4}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as c}from"./ItemsListing-4Tzirx3k.js";import{I as f,_ as v}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-Boj6o7qU.js";import{ay as h,J as y,L as I,az as w,aA as s,o as V,aI as n,aB as p,E as g,aP as m,bX as k}from"./index-GQ3lWXrm.js";import"./Container-Bc5cvdS8.js";import"./index-kQIztB-E.js";import"./Toolbar-BhPGsr4E.js";import"./VToolbar-BTrAkkB7.js";import"./Button-BcX_QSum.js";import"./ListItem-Cz0zK7Ay.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-BZUcSWaz.js";import"./MediaItemThumb-C--YJJ5Y.js";import"./VCheckbox-CgwahLqh.js";import"./VCheckboxBtn-orONEqTE.js";import"./VSelectionControl-C9uJkKHo.js";import"./PanelviewItemCompact-BFofUlbn.js";import"./userPreferences-CU3N6m4Z.js";import"./VInfiniteScroll-C839Qj3G.js";import"./VVirtualScroll-YsHPZNGu.js";import"./VAlert-C8Oto4eV.js";import"./marquee_text_sync-a11Dvzhd.js";import"./VDialog-OmJrmVI_.js";const F=h({__name:"RadioDetails",props:{itemId:{},provider:{}},setup(a){const t=a,e=y(),l=async function(){e.value=await m.getRadio(t.itemId,t.provider)};I(()=>t.itemId,o=>{o&&l()},{immediate:!0});const d=async function(o){const i=[];if(t.provider=="library"){const r=await m.getRadioVersions(t.itemId,t.provider);i.push(...r)}for(const r of k(e.value)){const u=await m.getRadioVersions(r.item_id,r.provider_instance);i.push(...u)}return i};return(o,i)=>(s(),w("section",null,[V(f,{item:e.value},null,8,["item"]),e.value?(s(),n(c,{key:0,itemtype:"radioversions","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!1,"show-library":!1,"show-radio-number":!1,"show-duration":!1,"load-items":d,"sort-keys":["provider","sort_name"],title:o.$t("other_versions"),"hide-on-empty":!0,checksum:a.provider+a.itemId},null,8,["parent-item","title","checksum"])):p("",!0),i[0]||(i[0]=g("br",null,null,-1)),e.value?(s(),n(v,{key:1,"item-details":e.value},null,8,["item-details"])):p("",!0)]))}});export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as w}from"./Container-BunIU4BI.js";import{ay as B,bN as M,J as A,a3 as D,b6 as f,aP as W,aW as g,aI as r,aA as d,aG as i,az as p,o as a,b8 as H,aB as b,cG as v,E as e,aL as c,bh as I,bg as C,aN as l,aS as m,c3 as P,bK as G,M as y,aD as V,bE as j,c7 as X,_ as L}from"./index-rZUS0c3q.js";import{V as R}from"./VSwitch-B-1g31ug.js";import{V as k,b as z,c as T,a as E}from"./VExpansionPanels-lmUrDJt6.js";import{V as x}from"./VAlert-CBrxai34.js";import"./index-kQIztB-E.js";import"./VSelectionControl-S-aELuKm.js";const U="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MDAgNDUwIj4KICA8IS0tIEFycm93IG1hcmtlcnMgKG11c3QgYmUgZGVmaW5lZCBmaXJzdCkgLS0+CiAgPGRlZnM+CiAgICA8bWFya2VyIGlkPSJhcnJvd2hlYWQiIG1hcmtlcldpZHRoPSIxMCIgbWFya2VySGVpZ2h0PSIxMCIgcmVmWD0iOSIgcmVmWT0iMyIgb3JpZW50PSJhdXRvIj4KICAgICAgPHBvbHlnb24gcG9pbnRzPSIwIDAsIDEwIDMsIDAgNiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgICA8L21hcmtlcj4KICAgIDxtYXJrZXIgaWQ9ImFycm93aGVhZC1ncmVlbiIgbWFya2VyV2lkdGg9IjEwIiBtYXJrZXJIZWlnaHQ9IjEwIiByZWZYPSI5IiByZWZZPSIzIiBvcmllbnQ9ImF1dG8iPgogICAgICA8cG9seWdvbiBwb2ludHM9IjAgMCwgMTAgMywgMCA2IiBmaWxsPSIjNENBRjUwIi8+CiAgICA8L21hcmtlcj4KICA8L2RlZnM+CgogIDxzdHlsZT4KICAgIHRleHQgewogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgfQogIDwvc3R5bGU+CgogIDwhLS0gUmVtb3RlIENsaWVudCAtLT4KICA8Zz4KICAgIDxyZWN0IHg9IjUwIiB5PSI3MCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIxMDAiIHJ4PSIxMiIgZmlsbD0iIzRDQUY1MCIgb3BhY2l0eT0iMC4xMiIgc3Ryb2tlPSIjNENBRjUwIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgPHRleHQgeD0iMTMwIiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9ImN1cnJlbnRDb2xvciI+UmVtb3RlIENsaWVudDwvdGV4dD4KICAgIDx0ZXh0IHg9IjEzMCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNzUiPmFwcC5tdXNpYy1hc3Npc3RhbnQuaW88L3RleHQ+CiAgPC9nPgoKICA8IS0tIFNpZ25hbGluZyBTZXJ2ZXIgLS0+CiAgPGc+CiAgICA8cmVjdCB4PSIzMjAiIHk9IjUwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE0MCIgcng9IjEyIiBmaWxsPSIjMjE5NkYzIiBvcGFjaXR5PSIwLjEyIiBzdHJva2U9IiMyMTk2RjMiIHN0cm9rZS13aWR0aD0iMi41Ii8+CiAgICA8dGV4dCB4PSI0MDAiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPlNpZ25hbGluZyBTZXJ2ZXI8L3RleHQ+CiAgICA8dGV4dCB4PSI0MDAiIHk9IjExOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMSIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjciPkhBIENsb3VkPC90ZXh0PgogICAgPHRleHQgeD0iNDAwIiB5PSIxNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43Ij5TVFVOL1RVUk48L3RleHQ+CiAgICA8dGV4dCB4PSI0MDAiIHk9IjE2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMSIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjciPldlYlJUQzwvdGV4dD4KICA8L2c+CgogIDwhLS0gTXVzaWMgQXNzaXN0YW50IFNlcnZlciAtLT4KICA8Zz4KICAgIDxyZWN0IHg9IjU5MCIgeT0iNzAiIHdpZHRoPSIxNjAiIGhlaWdodD0iMTAwIiByeD0iMTIiIGZpbGw9IiM5QzI3QjAiIG9wYWNpdHk9IjAuMTIiIHN0cm9rZT0iIzlDMjdCMCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgIDx0ZXh0IHg9IjY3MCIgeT0iMTA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPk11c2ljIEFzc2lzdGFudDwvdGV4dD4KICAgIDx0ZXh0IHg9IjY3MCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNzUiPlNlcnZlcjwvdGV4dD4KICAgIDx0ZXh0IHg9IjY3MCIgeT0iMTUwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEwIiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNiI+UmVtb3RlIElEOiB4eHh4Li4uPC90ZXh0PgogIDwvZz4KCiAgPCEtLSBTdGVwIDE6IFJlbW90ZSBDbGllbnQgdG8gU2lnbmFsaW5nIFNlcnZlciAtLT4KICA8Zz4KICAgIDxsaW5lIHgxPSIyMTAiIHkxPSIxMjAiIHgyPSIzMTUiIHkyPSIxMjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgb3BhY2l0eT0iMC43IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiLz4KICAgIDxyZWN0IHg9IjIzMiIgeT0iOTAiIHdpZHRoPSI5NiIgaGVpZ2h0PSIyMCIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuOSIgcng9IjQiLz4KICAgIDx0ZXh0IHg9IjI4MCIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPjEuIENvbm5lY3Qgd2l0aCBJRDwvdGV4dD4KICA8L2c+CgogIDwhLS0gU3RlcCAyOiBTaWduYWxpbmcgU2VydmVyIHRvIE11c2ljIEFzc2lzdGFudCAtLT4KICA8Zz4KICAgIDxsaW5lIHgxPSI0ODUiIHkxPSIxMjAiIHgyPSI1ODUiIHkyPSIxMjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgb3BhY2l0eT0iMC43IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiLz4KICAgIDxyZWN0IHg9IjUwMiIgeT0iOTAiIHdpZHRoPSI2NiIgaGVpZ2h0PSIyMCIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuOSIgcng9IjQiLz4KICAgIDx0ZXh0IHg9IjUzNSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPjIuIE5lZ290aWF0ZTwvdGV4dD4KICA8L2c+CgogIDwhLS0gU3RlcCAzOiBEaXJlY3QgUDJQIENvbm5lY3Rpb24gKGN1cnZlZCBwYXRoKSAtLT4KICA8Zz4KICAgIDxwYXRoIGQ9Ik0gMTMwLDE3NSBRIDQwMCwzMTAgNjcwLDE3NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNENBRjUwIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1kYXNoYXJyYXk9IjEyLDYiIG1hcmtlci1lbmQ9InVybCgjYXJyb3doZWFkLWdyZWVuKSIvPgogICAgPHJlY3QgeD0iMzEwIiB5PSIyNzAiIHdpZHRoPSIxODAiIGhlaWdodD0iNTAiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjk1IiByeD0iNiIvPgogICAgPHRleHQgeD0iNDAwIiB5PSIyODkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiM0Q0FGNTAiPjMuIERpcmVjdCBQMlAgQ29ubmVjdGlvbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjQwMCIgeT0iMzA3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmaWxsPSIjNENBRjUwIj4oRW5kLXRvLUVuZCBFbmNyeXB0ZWQpPC90ZXh0PgogIDwvZz4KCiAgPCEtLSBMZWdlbmQgLS0+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwLCAzODUpIj4KICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBvcGFjaXR5PSIwLjciLz4KICAgIDx0ZXh0IHg9IjU4IiB5PSI1IiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPlNpZ25hbGluZyAoc2V0dXAgb25seSk8L3RleHQ+CgogICAgPGxpbmUgeDE9IjI1MCIgeTE9IjAiIHgyPSIzMDAiIHkyPSIwIiBzdHJva2U9IiM0Q0FGNTAiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWRhc2hhcnJheT0iMTIsNiIvPgogICAgPHRleHQgeD0iMzA4IiB5PSI1IiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPkRpcmVjdCBlbmNyeXB0ZWQgY29ubmVjdGlvbjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",J={key:0,class:"loading-wrapper"},Q={key:1,class:"remote-access-wrapper"},Y={class:"hero-icon-wrapper"},F={class:"hero-description"},K={class:"feature-grid"},$={class:"feature-item"},O={class:"feature-item"},q={class:"feature-item"},ee={class:"feature-item"},se={class:"d-flex align-center justify-space-between w-100"},ie={class:"status-text"},te={class:"upgrade-description"},ae={class:"remote-id-explanation"},le={class:"remote-id-display-wrapper"},Ie={class:"remote-id-display"},oe={class:"remote-id-text"},ce={class:"usage-title"},de={class:"steps-list"},ne={class:"step-item"},re={class:"step-content"},ge={class:"step-item"},me={class:"step-content"},ue={class:"step-item"},_e={class:"step-content"},pe={class:"diagram-section"},be={class:"diagram-title"},ve=["src"],Ce={class:"specs-section"},Ze={class:"spec-item"},Ae={class:"spec-content"},ye={class:"spec-title"},je={class:"spec-description"},he={class:"spec-item"},We={class:"spec-content"},Pe={class:"spec-title"},Ge={class:"spec-description"},Se={key:0},Ne={key:1},we={class:"spec-item"},Be={class:"spec-content"},Me={class:"spec-title"},De={class:"spec-description"},fe=B({__name:"RemoteAccessSettings",setup(He){const{t:n}=M(),Z=A(!0),u=A(!1),o=A(null);let _=null;D(async()=>{await h(),_=setInterval(async()=>{await h(!0)},5e3)}),f(()=>{_&&(clearInterval(_),_=null)});const h=async(s=!1)=>{s||(Z.value=!0);try{o.value=await W.getRemoteAccessInfo()}catch(t){console.error("Error loading remote access info:",t),s||g.error(n("settings.remote_access_error_loading"))}finally{s||(Z.value=!1)}},S=async s=>{if(!(!o.value||s===null)){u.value=!0;try{o.value=await W.configureRemoteAccess(s),g.success(n(s?"settings.remote_access_enabled_success":"settings.remote_access_disabled_success"))}catch(t){console.error("Error toggling remote access:",t),g.error(n("settings.remote_access_error_toggle"))}finally{u.value=!1}}},N=async()=>{if(!o.value?.remote_id)return;await X(o.value.remote_id)?g.success(n("settings.remote_access_id_copied")):g.error(n("settings.remote_access_error_copy"))};return(s,t)=>(d(),r(w,null,{default:i(()=>[Z.value?(d(),p("div",J,[a(H,{indeterminate:"",size:"64",color:"primary"})])):o.value?(d(),p("div",Q,[a(m,{class:"hero-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"hero-content"},{default:i(()=>[e("div",Y,[a(c,{size:"48",color:"primary"},{default:i(()=>[...t[0]||(t[0]=[I("mdi-cloud-lock",-1)])]),_:1})]),a(C,{class:"hero-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_title")),1)]),_:1}),e("p",F,l(s.$t("settings.remote_access_explanation_intro")),1),e("div",K,[e("div",$,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[1]||(t[1]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_feature_webrtc")),1)]),e("div",O,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[2]||(t[2]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_feature_encrypted")),1)]),e("div",q,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[3]||(t[3]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_feature_no_port_forwarding")),1)]),e("div",ee,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[4]||(t[4]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_explanation_ha_cloud")),1)])])]),_:1})]),_:1}),a(m,{class:"status-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"status-header"},{default:i(()=>[e("div",se,[e("div",null,[a(C,{class:"status-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_status")),1)]),_:1}),e("div",ie,l(o.value.enabled?s.$t("settings.remote_access_enabled"):s.$t("settings.remote_access_disabled")),1)]),a(R,{"model-value":o.value.enabled,loading:u.value,disabled:u.value,color:"primary","hide-details":"",class:"status-switch","onUpdate:modelValue":S},null,8,["model-value","loading","disabled"])])]),_:1}),o.value.enabled?(d(),r(P,{key:0,class:"status-badges"},{default:i(()=>[a(G,{color:o.value.connected?"success":"warning",size:"default",variant:"flat",class:"status-chip"},{default:i(()=>[I(l(o.value.connected?s.$t("settings.remote_access_connected"):s.$t("settings.remote_access_connecting")),1)]),_:1},8,["color"]),a(G,{color:o.value.using_ha_cloud?"success":"default",size:"default",variant:"outlined",class:"status-chip"},{default:i(()=>[I(l(o.value.using_ha_cloud?s.$t("settings.remote_access_mode_optimized"):s.$t("settings.remote_access_mode_basic")),1)]),_:1},8,["color"])]),_:1})):b("",!0)]),_:1}),o.value.enabled&&!o.value.using_ha_cloud?(d(),r(m,{key:0,class:"upgrade-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"upgrade-content"},{default:i(()=>[a(c,{size:"60",color:"primary",class:"upgrade-icon"},{default:i(()=>[...t[5]||(t[5]=[I(" mdi-cloud-alert ",-1)])]),_:1}),a(C,{class:"upgrade-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_mode_basic")),1)]),_:1}),e("p",te,l(s.$t("settings.remote_access_mode_basic_description")),1),a(y,{color:"primary",variant:"elevated",size:"large",class:"upgrade-button",href:"https://www.nabucasa.com",target:"_blank"},{default:i(()=>[I(l(s.$t("settings.remote_access_upgrade_to_optimized"))+" ",1),a(c,{end:""},{default:i(()=>[...t[6]||(t[6]=[I("mdi-open-in-new",-1)])]),_:1})]),_:1})]),_:1})]),_:1})):b("",!0),o.value.enabled&&o.value.remote_id?(d(),r(m,{key:1,class:"remote-id-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"remote-id-header"},{default:i(()=>[a(c,{size:"28",color:"primary",class:"mr-2"},{default:i(()=>[...t[7]||(t[7]=[I("mdi-identifier",-1)])]),_:1}),a(C,{class:"remote-id-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_your_id")),1)]),_:1})]),_:1}),a(P,{class:"remote-id-content"},{default:i(()=>[e("p",ae,l(s.$t("settings.remote_access_id_explanation")),1),e("div",le,[e("div",Ie,[e("code",oe,l(o.value.remote_id),1),a(y,{icon:"mdi-content-copy",variant:"text",size:"small",color:"primary",class:"copy-button",title:s.$t("settings.remote_access_copy_id"),onClick:N},null,8,["title"])])]),e("div",null,[e("div",ce,l(s.$t("settings.remote_access_how_to_use")),1),e("div",de,[e("div",ne,[t[10]||(t[10]=e("div",{class:"step-number"},"1",-1)),e("div",re,[I(l(s.$t("settings.remote_access_step_1"))+" ",1),a(y,{color:"primary",variant:"text",size:"small",href:"https://app.music-assistant.io",target:"_blank",class:"step-link"},{default:i(()=>[t[9]||(t[9]=I(" app.music-assistant.io ",-1)),a(c,{end:"",size:"small"},{default:i(()=>[...t[8]||(t[8]=[I("mdi-open-in-new",-1)])]),_:1})]),_:1})])]),e("div",ge,[t[11]||(t[11]=e("div",{class:"step-number"},"2",-1)),e("div",me,l(s.$t("settings.remote_access_step_2")),1)]),e("div",ue,[t[12]||(t[12]=e("div",{class:"step-number"},"3",-1)),e("div",_e,l(s.$t("settings.remote_access_step_3")),1)])])])]),_:1})]),_:1})):b("",!0),o.value.enabled?(d(),r(k,{key:2,class:"technical-panels"},{default:i(()=>[a(E,null,{default:i(()=>[a(z,null,{default:i(()=>[a(c,{start:""},{default:i(()=>[...t[13]||(t[13]=[I("mdi-information-outline",-1)])]),_:1}),I(" "+l(s.$t("settings.remote_access_technical_details")),1)]),_:1}),a(T,null,{default:i(()=>[e("div",pe,[e("div",be,l(s.$t("settings.remote_access_connection_flow")),1),a(m,{variant:"outlined",class:"diagram-card"},{default:i(()=>[e("img",{src:V(U),alt:"Remote Access Connection Flow",class:"diagram-image"},null,8,ve)]),_:1})]),e("div",Ce,[e("div",Ze,[a(j,{size:"48",color:"primary",variant:"tonal",class:"spec-icon"},{default:i(()=>[a(c,null,{default:i(()=>[...t[14]||(t[14]=[I("mdi-access-point-network",-1)])]),_:1})]),_:1}),e("div",Ae,[e("div",ye,l(s.$t("settings.remote_access_signaling_server")),1),e("div",je,l(s.$t("settings.remote_access_signaling_server_description")),1)])]),e("div",he,[a(j,{size:"48",color:"primary",variant:"tonal",class:"spec-icon"},{default:i(()=>[a(c,null,{default:i(()=>[...t[15]||(t[15]=[I("mdi-lan-connect",-1)])]),_:1})]),_:1}),e("div",We,[e("div",Pe,l(s.$t("settings.remote_access_protocol")),1),e("div",Ge,[o.value.using_ha_cloud?(d(),p("span",Se,l(s.$t("settings.remote_access_protocol_optimized")),1)):(d(),p("span",Ne,l(s.$t("settings.remote_access_protocol_basic")),1))])])]),e("div",we,[a(j,{size:"48",color:"primary",variant:"tonal",class:"spec-icon"},{default:i(()=>[a(c,null,{default:i(()=>[...t[16]||(t[16]=[I("mdi-lock",-1)])]),_:1})]),_:1}),e("div",Be,[e("div",Me,l(s.$t("settings.remote_access_encryption")),1),e("div",De,l(s.$t("settings.remote_access_encryption_description")),1)])])])]),_:1})]),_:1})]),_:1})):b("",!0)])):(d(),r(x,{key:2,type:"error",variant:"tonal",class:"error-alert"},{default:i(()=>[I(l(s.$t("settings.remote_access_error_loading")),1)]),_:1}))]),_:1}))}}),Ee=L(fe,[["__scopeId","data-v-9d9d32d2"]]);export{Ee as default};
|
|
1
|
+
import{C as N}from"./Container-Bc5cvdS8.js";import{ay as w,bN as M,J as A,a3 as D,b6 as f,aP as W,aW as g,aI as r,aA as d,aG as i,az as p,o as a,b8 as H,aB as b,cB as v,E as e,aL as c,bh as I,bg as C,aN as l,aS as m,c3 as P,bK as G,M as y,aD as V,bE as j,c7 as X,_ as L}from"./index-GQ3lWXrm.js";import{V as R}from"./VSwitch-C4Td5_x0.js";import{V as k,b as z,c as T,a as E}from"./VExpansionPanels-D8F4VK-K.js";import{V as x}from"./VAlert-C8Oto4eV.js";import"./index-kQIztB-E.js";import"./VSelectionControl-C9uJkKHo.js";const U="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MDAgNDUwIj4KICA8IS0tIEFycm93IG1hcmtlcnMgKG11c3QgYmUgZGVmaW5lZCBmaXJzdCkgLS0+CiAgPGRlZnM+CiAgICA8bWFya2VyIGlkPSJhcnJvd2hlYWQiIG1hcmtlcldpZHRoPSIxMCIgbWFya2VySGVpZ2h0PSIxMCIgcmVmWD0iOSIgcmVmWT0iMyIgb3JpZW50PSJhdXRvIj4KICAgICAgPHBvbHlnb24gcG9pbnRzPSIwIDAsIDEwIDMsIDAgNiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgICA8L21hcmtlcj4KICAgIDxtYXJrZXIgaWQ9ImFycm93aGVhZC1ncmVlbiIgbWFya2VyV2lkdGg9IjEwIiBtYXJrZXJIZWlnaHQ9IjEwIiByZWZYPSI5IiByZWZZPSIzIiBvcmllbnQ9ImF1dG8iPgogICAgICA8cG9seWdvbiBwb2ludHM9IjAgMCwgMTAgMywgMCA2IiBmaWxsPSIjNENBRjUwIi8+CiAgICA8L21hcmtlcj4KICA8L2RlZnM+CgogIDxzdHlsZT4KICAgIHRleHQgewogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgfQogIDwvc3R5bGU+CgogIDwhLS0gUmVtb3RlIENsaWVudCAtLT4KICA8Zz4KICAgIDxyZWN0IHg9IjUwIiB5PSI3MCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIxMDAiIHJ4PSIxMiIgZmlsbD0iIzRDQUY1MCIgb3BhY2l0eT0iMC4xMiIgc3Ryb2tlPSIjNENBRjUwIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgPHRleHQgeD0iMTMwIiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9ImN1cnJlbnRDb2xvciI+UmVtb3RlIENsaWVudDwvdGV4dD4KICAgIDx0ZXh0IHg9IjEzMCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNzUiPmFwcC5tdXNpYy1hc3Npc3RhbnQuaW88L3RleHQ+CiAgPC9nPgoKICA8IS0tIFNpZ25hbGluZyBTZXJ2ZXIgLS0+CiAgPGc+CiAgICA8cmVjdCB4PSIzMjAiIHk9IjUwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE0MCIgcng9IjEyIiBmaWxsPSIjMjE5NkYzIiBvcGFjaXR5PSIwLjEyIiBzdHJva2U9IiMyMTk2RjMiIHN0cm9rZS13aWR0aD0iMi41Ii8+CiAgICA8dGV4dCB4PSI0MDAiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPlNpZ25hbGluZyBTZXJ2ZXI8L3RleHQ+CiAgICA8dGV4dCB4PSI0MDAiIHk9IjExOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMSIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjciPkhBIENsb3VkPC90ZXh0PgogICAgPHRleHQgeD0iNDAwIiB5PSIxNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTEiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43Ij5TVFVOL1RVUk48L3RleHQ+CiAgICA8dGV4dCB4PSI0MDAiIHk9IjE2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMSIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjciPldlYlJUQzwvdGV4dD4KICA8L2c+CgogIDwhLS0gTXVzaWMgQXNzaXN0YW50IFNlcnZlciAtLT4KICA8Zz4KICAgIDxyZWN0IHg9IjU5MCIgeT0iNzAiIHdpZHRoPSIxNjAiIGhlaWdodD0iMTAwIiByeD0iMTIiIGZpbGw9IiM5QzI3QjAiIG9wYWNpdHk9IjAuMTIiIHN0cm9rZT0iIzlDMjdCMCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgIDx0ZXh0IHg9IjY3MCIgeT0iMTA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPk11c2ljIEFzc2lzdGFudDwvdGV4dD4KICAgIDx0ZXh0IHg9IjY3MCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNzUiPlNlcnZlcjwvdGV4dD4KICAgIDx0ZXh0IHg9IjY3MCIgeT0iMTUwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEwIiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNiI+UmVtb3RlIElEOiB4eHh4Li4uPC90ZXh0PgogIDwvZz4KCiAgPCEtLSBTdGVwIDE6IFJlbW90ZSBDbGllbnQgdG8gU2lnbmFsaW5nIFNlcnZlciAtLT4KICA8Zz4KICAgIDxsaW5lIHgxPSIyMTAiIHkxPSIxMjAiIHgyPSIzMTUiIHkyPSIxMjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgb3BhY2l0eT0iMC43IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiLz4KICAgIDxyZWN0IHg9IjIzMiIgeT0iOTAiIHdpZHRoPSI5NiIgaGVpZ2h0PSIyMCIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuOSIgcng9IjQiLz4KICAgIDx0ZXh0IHg9IjI4MCIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPjEuIENvbm5lY3Qgd2l0aCBJRDwvdGV4dD4KICA8L2c+CgogIDwhLS0gU3RlcCAyOiBTaWduYWxpbmcgU2VydmVyIHRvIE11c2ljIEFzc2lzdGFudCAtLT4KICA8Zz4KICAgIDxsaW5lIHgxPSI0ODUiIHkxPSIxMjAiIHgyPSI1ODUiIHkyPSIxMjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgb3BhY2l0eT0iMC43IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiLz4KICAgIDxyZWN0IHg9IjUwMiIgeT0iOTAiIHdpZHRoPSI2NiIgaGVpZ2h0PSIyMCIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuOSIgcng9IjQiLz4KICAgIDx0ZXh0IHg9IjUzNSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPjIuIE5lZ290aWF0ZTwvdGV4dD4KICA8L2c+CgogIDwhLS0gU3RlcCAzOiBEaXJlY3QgUDJQIENvbm5lY3Rpb24gKGN1cnZlZCBwYXRoKSAtLT4KICA8Zz4KICAgIDxwYXRoIGQ9Ik0gMTMwLDE3NSBRIDQwMCwzMTAgNjcwLDE3NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNENBRjUwIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1kYXNoYXJyYXk9IjEyLDYiIG1hcmtlci1lbmQ9InVybCgjYXJyb3doZWFkLWdyZWVuKSIvPgogICAgPHJlY3QgeD0iMzEwIiB5PSIyNzAiIHdpZHRoPSIxODAiIGhlaWdodD0iNTAiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjk1IiByeD0iNiIvPgogICAgPHRleHQgeD0iNDAwIiB5PSIyODkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiM0Q0FGNTAiPjMuIERpcmVjdCBQMlAgQ29ubmVjdGlvbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjQwMCIgeT0iMzA3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjExIiBmaWxsPSIjNENBRjUwIj4oRW5kLXRvLUVuZCBFbmNyeXB0ZWQpPC90ZXh0PgogIDwvZz4KCiAgPCEtLSBMZWdlbmQgLS0+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTgwLCAzODUpIj4KICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBvcGFjaXR5PSIwLjciLz4KICAgIDx0ZXh0IHg9IjU4IiB5PSI1IiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPlNpZ25hbGluZyAoc2V0dXAgb25seSk8L3RleHQ+CgogICAgPGxpbmUgeDE9IjI1MCIgeTE9IjAiIHgyPSIzMDAiIHkyPSIwIiBzdHJva2U9IiM0Q0FGNTAiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWRhc2hhcnJheT0iMTIsNiIvPgogICAgPHRleHQgeD0iMzA4IiB5PSI1IiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSJjdXJyZW50Q29sb3IiPkRpcmVjdCBlbmNyeXB0ZWQgY29ubmVjdGlvbjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",J={key:0,class:"loading-wrapper"},Q={key:1,class:"remote-access-wrapper"},Y={class:"hero-icon-wrapper"},F={class:"hero-description"},K={class:"feature-grid"},$={class:"feature-item"},O={class:"feature-item"},q={class:"feature-item"},ee={class:"feature-item"},se={class:"d-flex align-center justify-space-between w-100"},ie={class:"status-text"},te={class:"upgrade-description"},ae={class:"remote-id-explanation"},le={class:"remote-id-display-wrapper"},Ie={class:"remote-id-display"},oe={class:"remote-id-text"},ce={class:"usage-title"},de={class:"steps-list"},ne={class:"step-item"},re={class:"step-content"},ge={class:"step-item"},me={class:"step-content"},ue={class:"step-item"},_e={class:"step-content"},pe={class:"diagram-section"},be={class:"diagram-title"},ve=["src"],Ce={class:"specs-section"},Ze={class:"spec-item"},Ae={class:"spec-content"},ye={class:"spec-title"},je={class:"spec-description"},he={class:"spec-item"},We={class:"spec-content"},Pe={class:"spec-title"},Ge={class:"spec-description"},Se={key:0},Be={key:1},Ne={class:"spec-item"},we={class:"spec-content"},Me={class:"spec-title"},De={class:"spec-description"},fe=w({__name:"RemoteAccessSettings",setup(He){const{t:n}=M(),Z=A(!0),u=A(!1),o=A(null);let _=null;D(async()=>{await h(),_=setInterval(async()=>{await h(!0)},5e3)}),f(()=>{_&&(clearInterval(_),_=null)});const h=async(s=!1)=>{s||(Z.value=!0);try{o.value=await W.getRemoteAccessInfo()}catch(t){console.error("Error loading remote access info:",t),s||g.error(n("settings.remote_access_error_loading"))}finally{s||(Z.value=!1)}},S=async s=>{if(!(!o.value||s===null)){u.value=!0;try{o.value=await W.configureRemoteAccess(s),g.success(n(s?"settings.remote_access_enabled_success":"settings.remote_access_disabled_success"))}catch(t){console.error("Error toggling remote access:",t),g.error(n("settings.remote_access_error_toggle"))}finally{u.value=!1}}},B=async()=>{if(!o.value?.remote_id)return;await X(o.value.remote_id)?g.success(n("settings.remote_access_id_copied")):g.error(n("settings.remote_access_error_copy"))};return(s,t)=>(d(),r(N,null,{default:i(()=>[Z.value?(d(),p("div",J,[a(H,{indeterminate:"",size:"64",color:"primary"})])):o.value?(d(),p("div",Q,[a(m,{class:"hero-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"hero-content"},{default:i(()=>[e("div",Y,[a(c,{size:"48",color:"primary"},{default:i(()=>[...t[0]||(t[0]=[I("mdi-cloud-lock",-1)])]),_:1})]),a(C,{class:"hero-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_title")),1)]),_:1}),e("p",F,l(s.$t("settings.remote_access_explanation_intro")),1),e("div",K,[e("div",$,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[1]||(t[1]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_feature_webrtc")),1)]),e("div",O,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[2]||(t[2]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_feature_encrypted")),1)]),e("div",q,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[3]||(t[3]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_feature_no_port_forwarding")),1)]),e("div",ee,[a(c,{size:"20",color:"primary"},{default:i(()=>[...t[4]||(t[4]=[I("mdi-check-circle",-1)])]),_:1}),e("span",null,l(s.$t("settings.remote_access_explanation_ha_cloud")),1)])])]),_:1})]),_:1}),a(m,{class:"status-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"status-header"},{default:i(()=>[e("div",se,[e("div",null,[a(C,{class:"status-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_status")),1)]),_:1}),e("div",ie,l(o.value.enabled?s.$t("settings.remote_access_enabled"):s.$t("settings.remote_access_disabled")),1)]),a(R,{"model-value":o.value.enabled,loading:u.value,disabled:u.value,color:"primary","hide-details":"",class:"status-switch","onUpdate:modelValue":S},null,8,["model-value","loading","disabled"])])]),_:1}),o.value.enabled?(d(),r(P,{key:0,class:"status-badges"},{default:i(()=>[a(G,{color:o.value.connected?"success":"warning",size:"default",variant:"flat",class:"status-chip"},{default:i(()=>[I(l(o.value.connected?s.$t("settings.remote_access_connected"):s.$t("settings.remote_access_connecting")),1)]),_:1},8,["color"]),a(G,{color:o.value.using_ha_cloud?"success":"default",size:"default",variant:"outlined",class:"status-chip"},{default:i(()=>[I(l(o.value.using_ha_cloud?s.$t("settings.remote_access_mode_optimized"):s.$t("settings.remote_access_mode_basic")),1)]),_:1},8,["color"])]),_:1})):b("",!0)]),_:1}),o.value.enabled&&!o.value.using_ha_cloud?(d(),r(m,{key:0,class:"upgrade-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"upgrade-content"},{default:i(()=>[a(c,{size:"60",color:"primary",class:"upgrade-icon"},{default:i(()=>[...t[5]||(t[5]=[I(" mdi-cloud-alert ",-1)])]),_:1}),a(C,{class:"upgrade-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_mode_basic")),1)]),_:1}),e("p",te,l(s.$t("settings.remote_access_mode_basic_description")),1),a(y,{color:"primary",variant:"elevated",size:"large",class:"upgrade-button",href:"https://www.nabucasa.com",target:"_blank"},{default:i(()=>[I(l(s.$t("settings.remote_access_upgrade_to_optimized"))+" ",1),a(c,{end:""},{default:i(()=>[...t[6]||(t[6]=[I("mdi-open-in-new",-1)])]),_:1})]),_:1})]),_:1})]),_:1})):b("",!0),o.value.enabled&&o.value.remote_id?(d(),r(m,{key:1,class:"remote-id-card mb-6",elevation:"0",rounded:"lg"},{default:i(()=>[a(v,{class:"remote-id-header"},{default:i(()=>[a(c,{size:"28",color:"primary",class:"mr-2"},{default:i(()=>[...t[7]||(t[7]=[I("mdi-identifier",-1)])]),_:1}),a(C,{class:"remote-id-title"},{default:i(()=>[I(l(s.$t("settings.remote_access_your_id")),1)]),_:1})]),_:1}),a(P,{class:"remote-id-content"},{default:i(()=>[e("p",ae,l(s.$t("settings.remote_access_id_explanation")),1),e("div",le,[e("div",Ie,[e("code",oe,l(o.value.remote_id),1),a(y,{icon:"mdi-content-copy",variant:"text",size:"small",color:"primary",class:"copy-button",title:s.$t("settings.remote_access_copy_id"),onClick:B},null,8,["title"])])]),e("div",null,[e("div",ce,l(s.$t("settings.remote_access_how_to_use")),1),e("div",de,[e("div",ne,[t[10]||(t[10]=e("div",{class:"step-number"},"1",-1)),e("div",re,[I(l(s.$t("settings.remote_access_step_1"))+" ",1),a(y,{color:"primary",variant:"text",size:"small",href:"https://app.music-assistant.io",target:"_blank",class:"step-link"},{default:i(()=>[t[9]||(t[9]=I(" app.music-assistant.io ",-1)),a(c,{end:"",size:"small"},{default:i(()=>[...t[8]||(t[8]=[I("mdi-open-in-new",-1)])]),_:1})]),_:1})])]),e("div",ge,[t[11]||(t[11]=e("div",{class:"step-number"},"2",-1)),e("div",me,l(s.$t("settings.remote_access_step_2")),1)]),e("div",ue,[t[12]||(t[12]=e("div",{class:"step-number"},"3",-1)),e("div",_e,l(s.$t("settings.remote_access_step_3")),1)])])])]),_:1})]),_:1})):b("",!0),o.value.enabled?(d(),r(k,{key:2,class:"technical-panels"},{default:i(()=>[a(E,null,{default:i(()=>[a(z,null,{default:i(()=>[a(c,{start:""},{default:i(()=>[...t[13]||(t[13]=[I("mdi-information-outline",-1)])]),_:1}),I(" "+l(s.$t("settings.remote_access_technical_details")),1)]),_:1}),a(T,null,{default:i(()=>[e("div",pe,[e("div",be,l(s.$t("settings.remote_access_connection_flow")),1),a(m,{variant:"outlined",class:"diagram-card"},{default:i(()=>[e("img",{src:V(U),alt:"Remote Access Connection Flow",class:"diagram-image"},null,8,ve)]),_:1})]),e("div",Ce,[e("div",Ze,[a(j,{size:"48",color:"primary",variant:"tonal",class:"spec-icon"},{default:i(()=>[a(c,null,{default:i(()=>[...t[14]||(t[14]=[I("mdi-access-point-network",-1)])]),_:1})]),_:1}),e("div",Ae,[e("div",ye,l(s.$t("settings.remote_access_signaling_server")),1),e("div",je,l(s.$t("settings.remote_access_signaling_server_description")),1)])]),e("div",he,[a(j,{size:"48",color:"primary",variant:"tonal",class:"spec-icon"},{default:i(()=>[a(c,null,{default:i(()=>[...t[15]||(t[15]=[I("mdi-lan-connect",-1)])]),_:1})]),_:1}),e("div",We,[e("div",Pe,l(s.$t("settings.remote_access_protocol")),1),e("div",Ge,[o.value.using_ha_cloud?(d(),p("span",Se,l(s.$t("settings.remote_access_protocol_optimized")),1)):(d(),p("span",Be,l(s.$t("settings.remote_access_protocol_basic")),1))])])]),e("div",Ne,[a(j,{size:"48",color:"primary",variant:"tonal",class:"spec-icon"},{default:i(()=>[a(c,null,{default:i(()=>[...t[16]||(t[16]=[I("mdi-lock",-1)])]),_:1})]),_:1}),e("div",we,[e("div",Me,l(s.$t("settings.remote_access_encryption")),1),e("div",De,l(s.$t("settings.remote_access_encryption_description")),1)])])])]),_:1})]),_:1})]),_:1})):b("",!0)])):(d(),r(x,{key:2,type:"error",variant:"tonal",class:"error-alert"},{default:i(()=>[I(l(s.$t("settings.remote_access_error_loading")),1)]),_:1}))]),_:1}))}}),Ee=L(fe,[["__scopeId","data-v-9d9d32d2"]]);export{Ee as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as I}from"./Container-Bc5cvdS8.js";import{I as $}from"./ItemsListing-4Tzirx3k.js";import{T as L}from"./Toolbar-BhPGsr4E.js";import{W as m}from"./WidgetRow-lS8eZGg2.js";import{u as V}from"./userPreferences-CU3N6m4Z.js";import{ay as B,J as p,L as w,a3 as C,ax as t,a4 as O,az as f,aA as i,o as c,aG as b,aI as n,aB as d,bH as P,aD as l,bI as R,ah as K,aH as U,aQ as r,bJ as D,bK as F,aP as M}from"./index-GQ3lWXrm.js";import"./index-kQIztB-E.js";import"./Button-BcX_QSum.js";import"./ListItem-Cz0zK7Ay.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-BZUcSWaz.js";import"./MediaItemThumb-C--YJJ5Y.js";import"./VCheckbox-CgwahLqh.js";import"./VCheckboxBtn-orONEqTE.js";import"./VSelectionControl-C9uJkKHo.js";import"./PanelviewItemCompact-BFofUlbn.js";import"./VInfiniteScroll-C839Qj3G.js";import"./VVirtualScroll-YsHPZNGu.js";import"./VAlert-C8Oto4eV.js";import"./VToolbar-BTrAkkB7.js";const E={key:1},H={key:2},se=B({__name:"Search",setup(G){const v=p(!1),a=p(),s=p(!1),g=p(),{getPreference:S,setPreference:k}=V();w(()=>t.globalSearchTerm,()=>{clearTimeout(g.value),g.value=setTimeout(()=>{h(t.globalSearchTerm,t.globalSearchType)},1e3)},{immediate:!0}),w(()=>t.globalSearchType,()=>{h(t.globalSearchTerm,t.globalSearchType)});const h=async function(e,u){s.value=!0,k("globalSearch",e||"");const o=t.globalSearchType?50:8,A=u?[u]:void 0;e?a.value=await M.search(e,A,o):a.value=void 0,s.value=!1};C(()=>{if(!t.globalSearchTerm){const e=S("globalSearch").value;e&&e!=="null"&&(t.globalSearchTerm=e)}});const y=function(e){e.ctrlKey||e.altKey||e.metaKey||(!v.value&&e.key=="Backspace"&&t.globalSearchTerm?t.globalSearchTerm=t.globalSearchTerm.slice(0,-1):!v.value&&e.key.length==1&&(t.globalSearchTerm+=e.key))};document.addEventListener("keyup",y),O(()=>{document.removeEventListener("keyup",y)});const T=function(e){return a.value?e==r.TRACK?a.value.tracks:e==r.ARTIST?a.value.artists:e==r.ALBUM?a.value.albums:e==r.PLAYLIST?a.value.playlists:e==r.PODCAST?a.value.podcasts:e==r.AUDIOBOOK?a.value.audiobooks:e==r.RADIO?a.value.radio:[]:[]};return(e,u)=>(i(),f("section",null,[c(L,{icon:"mdi-magnify",title:e.$t("global_search")},null,8,["title"]),c(I,{variant:"default"},{default:b(()=>[c(P,{id:"searchInput",modelValue:l(t).globalSearchTerm,"onUpdate:modelValue":u[0]||(u[0]=o=>l(t).globalSearchTerm=o),clearable:"","prepend-inner-icon":"mdi-magnify",label:e.$t("type_to_search"),"hide-details":"",variant:"outlined",onFocus:u[1]||(u[1]=o=>v.value=!0),onBlur:u[2]||(u[2]=o=>v.value=!1)},null,8,["modelValue","label"]),c(R,{modelValue:l(t).globalSearchType,"onUpdate:modelValue":u[3]||(u[3]=o=>l(t).globalSearchType=o),style:{"margin-top":"10px","margin-left":"10px"}},{default:b(()=>[(i(!0),f(K,null,U([void 0,l(r).TRACK,l(r).ARTIST,l(r).ALBUM,l(r).PLAYLIST,l(r).PODCAST,l(r).AUDIOBOOK,l(r).RADIO],o=>(i(),n(F,{key:o,text:e.$t(o?o+"s":"searchtype_all"),value:o},null,8,["text","value"]))),128))]),_:1},8,["modelValue"]),s.value?(i(),n(D,{key:0,color:"accent",height:"4",indeterminate:"",rounded:"",style:{"margin-top":"15px"}})):d("",!0),l(t).globalSearchType?s.value?d("",!0):(i(),f("div",H,[c($,{itemtype:`${l(t).globalSearchType}s`,"show-provider":!0,"show-favorites-only-filter":!1,"show-select-button":!1,"show-refresh-button":!1,"load-items":async o=>T(l(t).globalSearchType),title:e.$t(`${l(t).globalSearchType}s`),"allow-key-hooks":!1,"show-search-button":!1,"infinite-scroll":!0,"sort-keys":[],style:{padding:"0"}},null,8,["itemtype","load-items","title"])])):(i(),f("div",E,[a.value&&!s.value?(i(),n(m,{key:0,"widget-row":{title:e.$t("tracks"),icon:"mdi-file-music",items:a.value.tracks},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0),a.value&&!s.value?(i(),n(m,{key:1,"widget-row":{title:e.$t("artists"),icon:"mdi-account-music",items:a.value.artists},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0),a.value&&!s.value?(i(),n(m,{key:2,"widget-row":{title:e.$t("albums"),icon:"mdi-album",items:a.value.albums},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0),a.value&&!s.value?(i(),n(m,{key:3,"widget-row":{title:e.$t("playlists"),icon:"mdi-playlist-music",items:a.value.playlists},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0),a.value&&!s.value?(i(),n(m,{key:4,"widget-row":{title:e.$t("podcasts"),icon:"mdi-podcast",items:a.value.podcasts},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0),a.value&&!s.value?(i(),n(m,{key:5,"widget-row":{title:e.$t("audiobooks"),icon:"mdi-book-play-outline",items:a.value.audiobooks},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0),a.value&&!s.value?(i(),n(m,{key:6,"widget-row":{title:e.$t("radios"),icon:"mdi-radio",items:a.value.radio},"show-provider-on-cover":!0},null,8,["widget-row"])):d("",!0)]))]),_:1})]))}});export{se as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as $}from"./Container-
|
|
1
|
+
import{C as $}from"./Container-Bc5cvdS8.js";import{ay as B,J as r,i as b,L as E,a3 as S,b6 as N,aI as R,aA as v,aG as n,o as a,bg as z,E as f,bW as j,M as V,bh as y,aN as i,aU as A,c3 as D,az as _,aB as C,b8 as F,aL as M,aS as O,aP as x,R as P,_ as G}from"./index-GQ3lWXrm.js";import{V as H}from"./VSwitch-C4Td5_x0.js";import{V as J}from"./VAlert-C8Oto4eV.js";import"./index-kQIztB-E.js";import"./VSelectionControl-C9uJkKHo.js";const W={class:"d-flex flex-column flex-sm-row align-start align-sm-center ga-2 w-100"},q={class:"d-flex flex-wrap ga-2"},K={key:0,class:"pa-8 text-center"},Q={class:"mt-4"},X={key:1,class:"pa-8 text-center"},Y={class:"text-error"},Z={key:2,class:"pa-4 text-center"},ee={class:"log-content"},h=150,te=B({__name:"ServerLogs",setup(ae){const c=r(""),m=r(!0),w=r(!1),d=r(""),p=r(!0),u=r(null);let o=null;const k=b(()=>{const e=c.value.split(`
|
|
2
2
|
`);return e.length>h?e.slice(-h).join(`
|
|
3
3
|
`):c.value}),L=b(()=>c.value.split(`
|
|
4
4
|
`).length>h),T=()=>{u.value&&P(()=>{u.value&&(u.value.scrollTop=u.value.scrollHeight)})},g=async(e=!1)=>{try{e?w.value=!0:m.value=!0,d.value="";const t=await fetch(`${x.baseUrl}/music-assistant.log`);if(!t.ok)throw new Error(`Failed to fetch logs: ${t.statusText}`);const s=await t.text(),l=c.value;c.value=s,(!e||s!==l)&&setTimeout(()=>T(),100)}catch(t){d.value=t.message||"Failed to load server logs",console.error("Error loading logs:",t)}finally{m.value=!1,w.value=!1}},U=()=>{g(!0)},I=async()=>{try{const t=await(await fetch(`${x.baseUrl}/music-assistant.log`)).blob(),s=window.URL.createObjectURL(t),l=document.createElement("a");l.href=s,l.download="music-assistant.log",document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(s)}catch(e){console.error("Error downloading log:",e)}};return E(p,e=>{e?o=setInterval(()=>{g(!0)},5e3):o&&(clearInterval(o),o=null)}),S(async()=>{await g(!1),p.value&&(o=setInterval(()=>{g(!0)},5e3))}),N(()=>{o&&clearInterval(o)}),(e,t)=>(v(),R($,null,{default:n(()=>[a(O,{class:"mb-4",elevation:"0",variant:"flat"},{default:n(()=>[a(z,{class:"text-subtitle-1 font-weight-bold py-3"},{default:n(()=>[f("div",W,[a(H,{modelValue:p.value,"onUpdate:modelValue":t[0]||(t[0]=s=>p.value=s),color:"primary",density:"compact","hide-details":"",label:e.$t("settings.auto_refresh_log")},null,8,["modelValue","label"]),a(j,{class:"d-none d-sm-block"}),f("div",q,[a(V,{color:"primary",variant:"text",loading:w.value,"prepend-icon":"mdi-refresh",size:"small",onClick:U},{default:n(()=>[y(i(e.$t("settings.reload")),1)]),_:1},8,["loading"]),a(V,{color:"primary",variant:"elevated","prepend-icon":"mdi-download",size:"small",onClick:I},{default:n(()=>[y(i(e.$t("settings.download_log")),1)]),_:1})])])]),_:1}),a(A),a(D,{class:"pa-0"},{default:n(()=>[m.value?(v(),_("div",K,[a(F,{indeterminate:"",color:"primary"}),f("div",Q,i(e.$t("loading")),1)])):d.value?(v(),_("div",X,[a(M,{icon:"mdi-alert-circle",color:"error",size:"48",class:"mb-4"}),f("div",Y,i(d.value),1)])):L.value?(v(),_("div",Z,[a(J,{type:"info",variant:"tonal"},{default:n(()=>[y(i(e.$t("settings.log_truncated",[h])),1)]),_:1})])):C("",!0),!m.value&&!d.value?(v(),_("div",{key:3,ref_key:"logContainer",ref:u,class:"log-container"},[f("pre",ee,i(k.value),1)],512)):C("",!0)]),_:1})]),_:1})]),_:1}))}}),ce=G(te,[["__scopeId","data-v-30a4366c"]]);export{ce as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-breadcrumbs{display:flex;align-items:center;line-height:1.6;padding:16px 12px}.v-breadcrumbs--rounded{border-radius:4px}.v-breadcrumbs--density-default{padding-top:16px;padding-bottom:16px}.v-breadcrumbs--density-comfortable{padding-top:12px;padding-bottom:12px}.v-breadcrumbs--density-compact{padding-top:8px;padding-bottom:8px}.v-breadcrumbs__prepend{align-items:center;display:inline-flex}.v-breadcrumbs-item{align-items:center;color:inherit;display:inline-flex;padding:0 4px;text-decoration:none;vertical-align:middle}.v-breadcrumbs-item--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-breadcrumbs-item--link{color:inherit;text-decoration:none}.v-breadcrumbs-item--link:hover{text-decoration:underline}.v-breadcrumbs-item .v-icon{font-size:1rem;margin-inline:-4px 2px}.v-breadcrumbs-divider{display:inline-block;padding:0 8px;vertical-align:middle}.settings-overview[data-v-
|
|
1
|
+
.v-breadcrumbs{display:flex;align-items:center;line-height:1.6;padding:16px 12px}.v-breadcrumbs--rounded{border-radius:4px}.v-breadcrumbs--density-default{padding-top:16px;padding-bottom:16px}.v-breadcrumbs--density-comfortable{padding-top:12px;padding-bottom:12px}.v-breadcrumbs--density-compact{padding-top:8px;padding-bottom:8px}.v-breadcrumbs__prepend{align-items:center;display:inline-flex}.v-breadcrumbs-item{align-items:center;color:inherit;display:inline-flex;padding:0 4px;text-decoration:none;vertical-align:middle}.v-breadcrumbs-item--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-breadcrumbs-item--link{color:inherit;text-decoration:none}.v-breadcrumbs-item--link:hover{text-decoration:underline}.v-breadcrumbs-item .v-icon{font-size:1rem;margin-inline:-4px 2px}.v-breadcrumbs-divider{display:inline-block;padding:0 8px;vertical-align:middle}.settings-overview[data-v-89cbccb1]{padding:24px;max-width:800px;margin:0 auto}.settings-main-card[data-v-89cbccb1]{overflow:hidden}.settings-list[data-v-89cbccb1]{padding:0}.settings-list-item[data-v-89cbccb1]{cursor:pointer;padding:20px 24px;min-height:80px;border-bottom:1px solid rgba(var(--v-border-color),var(--v-border-opacity))}.settings-list-item[data-v-89cbccb1]:last-child{border-bottom:none}.settings-list-item[data-v-89cbccb1]:hover{background-color:rgba(var(--v-theme-on-surface),.05)}.settings-list-item[data-v-89cbccb1] .v-list-item__prepend{margin-right:16px}.v-avatar[data-v-89cbccb1]{box-shadow:0 2px 8px #00000026}@media (max-width: 600px){.settings-list-item[data-v-89cbccb1]{padding:12px 16px;min-height:64px}.settings-list-item[data-v-89cbccb1] .v-list-item__prepend{margin-right:12px}.settings-list-item[data-v-89cbccb1] .v-avatar{width:40px!important;height:40px!important}.settings-list-item[data-v-89cbccb1] .v-list-item-title{font-size:1rem!important;line-height:1.3}.settings-list-item[data-v-89cbccb1] .v-list-item-subtitle{font-size:.813rem!important;line-height:1.3}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as X}from"./Container-Bc5cvdS8.js";import{T as ee}from"./Toolbar-BhPGsr4E.js";import{u as te}from"./userPreferences-CU3N6m4Z.js";import{g as R,p as O,n as L,E as B,q as N,r as x,C as T,ct as se,i as p,bZ as ie,ao as ae,o as n,ae as j,x as q,cu as re,av as ne,b$ as oe,c as le,d as de,f as ue,m as ce,t as V,z as me,B as ve,cv as ge,aL as D,an as pe,aw as fe,ah as G,ay as be,bN as ye,J as z,aE as _e,L as E,by as ke,aP as c,az as F,aA as g,aI as y,aG as u,aB as S,aD as _,M as I,cw as he,aU as Ce,aF as we,aH as Ve,aS as Pe,aZ as Se,aY as Be,aJ as Me,aM as Ie,bh as U,aN as J,bS as De,bE as Re,S as Z,_ as Oe}from"./index-GQ3lWXrm.js";import{M as Le}from"./index-kQIztB-E.js";import"./VToolbar-BTrAkkB7.js";const Ne=O({divider:[Number,String],...T()},"VBreadcrumbsDivider"),xe=R()({name:"VBreadcrumbsDivider",props:Ne(),setup(t,o){let{slots:s}=o;return L(()=>B("li",{"aria-hidden":"true",class:x(["v-breadcrumbs-divider",t.class]),style:N(t.style)},[s?.default?.()??t.divider])),{}}}),Te=O({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...T(),...ne(oe(),["width","maxWidth"]),...re(),...q({tag:"li"})},"VBreadcrumbsItem"),$e=R()({name:"VBreadcrumbsItem",props:Te(),setup(t,o){let{slots:s,attrs:k}=o;const m=se(t,k),l=p(()=>t.active||m.isActive?.value),{dimensionStyles:h}=ie(t),{textColorClasses:C,textColorStyles:d}=ae(()=>l.value?t.activeColor:t.color);return L(()=>n(t.tag,{class:x(["v-breadcrumbs-item",{"v-breadcrumbs-item--active":l.value,"v-breadcrumbs-item--disabled":t.disabled,[`${t.activeClass}`]:l.value&&t.activeClass},C.value,t.class]),style:N([d.value,h.value,t.style]),"aria-current":l.value?"page":void 0},{default:()=>[m.isLink.value?B("a",j({class:"v-breadcrumbs-item--link",onClick:m.navigate},m.linkProps),[s.default?.()??t.title]):s.default?.()??t.title]})),{}}}),Ae=O({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:ge,items:{type:Array,default:()=>[]},itemProps:Boolean,...T(),...ve(),...me(),...q({tag:"ul"})},"VBreadcrumbs"),ze=R()({name:"VBreadcrumbs",props:Ae(),setup(t,o){let{slots:s}=o;const{backgroundColorClasses:k,backgroundColorStyles:m}=le(()=>t.bgColor),{densityClasses:l}=de(t),{roundedClasses:h}=ue(t);ce({VBreadcrumbsDivider:{divider:V(()=>t.divider)},VBreadcrumbsItem:{activeClass:V(()=>t.activeClass),activeColor:V(()=>t.activeColor),color:V(()=>t.color),disabled:V(()=>t.disabled)}});const C=p(()=>t.items.map(d=>typeof d=="string"?{item:{title:d},raw:d}:{item:d,raw:d}));return L(()=>{const d=!!(s.prepend||t.icon);return n(t.tag,{class:x(["v-breadcrumbs",k.value,l.value,h.value,t.class]),style:N([m.value,t.style])},{default:()=>[d&&B("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[s.prepend?n(pe,{key:"prepend-defaults",disabled:!t.icon,defaults:{VIcon:{icon:t.icon,start:!0}}},s.prepend):n(D,{key:"prepend-icon",start:!0,icon:t.icon},null)]),C.value.map((f,v,P)=>{let{item:b,raw:w}=f;return B(G,null,[s.item?.({item:b,index:v})??n($e,j({key:v,disabled:v>=P.length-1},typeof b=="string"?{title:b}:b,t.itemProps&&fe(w)?w:{}),{default:s.title?()=>s.title?.({item:b,index:v}):void 0}),v<P.length-1&&n(xe,null,{default:s.divider?()=>s.divider?.({item:w,index:v}):void 0})])}),s.default?.()]})}),{}}}),Ee=be({__name:"Settings",setup(t){const o=_e(),{t:s}=ye(),{getPreference:k,setPreference:m}=te(),l=z("list"),h=p(()=>{const e=o.currentRoute.value.name?.toString()||"";return e.includes("players")||e==="addgroup"}),C=k("settings.players.viewMode","list");E(()=>C.value,e=>{h.value&&e&&(e==="list"||e==="card")&&(l.value=e)},{immediate:!0});const d=function(){l.value=l.value==="list"?"card":"list",m("settings.players.viewMode",l.value)};Z("playersViewMode",{viewMode:l,toggleViewMode:d});const f=z("list"),v=p(()=>(o.currentRoute.value.name?.toString()||"").includes("providers")),P=k("settings.providers.viewMode","list");E(()=>P.value,e=>{v.value&&e&&(e==="list"||e==="card")&&(f.value=e)},{immediate:!0});const b=function(){f.value=f.value==="list"?"card":"list",m("settings.providers.viewMode",f.value)};Z("providersViewMode",{viewMode:f,toggleViewMode:b});const w=[{name:"profile",label:"auth.profile",description:"settings.profile_description",icon:"mdi-account-cog",color:"indigo",route:{name:"profile"},adminOnly:!1},{name:"providers",label:"settings.providers",description:"settings.providers_description",icon:"mdi-monitor-dashboard",color:"blue",route:{name:"providersettings"},adminOnly:!0},{name:"players",label:"settings.players",description:"settings.players_description",icon:"mdi-speaker-multiple",color:"green",route:{name:"playersettings"},adminOnly:!0},{name:"system",label:"settings.system",description:"settings.system_description",icon:"mdi-server",color:"purple",route:{name:"systemsettings"},adminOnly:!0},{name:"remote_access",label:"settings.remote_access",description:"settings.remote_access_description",icon:"mdi-cloud-lock",color:"deep-purple",route:{name:"remoteaccesssettings"},adminOnly:!0},{name:"frontend",label:"settings.frontend",description:"settings.frontend_description",icon:"mdi-palette",color:"orange",route:{name:"frontendsettings"},adminOnly:!1},{name:"users",label:"auth.user_management",description:"settings.users_description",icon:"mdi-account-multiple",color:"teal",route:{name:"usersettings"},adminOnly:!0},{name:"about",label:"settings.about",description:"settings.about_description",icon:"mdi-information-outline",color:"grey-darken-1",route:{name:"aboutsettings"},adminOnly:!1}],H=p(()=>{const e=ke.isAdmin();return w.filter(r=>!r.adminOnly||e)}),$=p(()=>o.currentRoute.value.name==="settings"),W=p(()=>{const e=o.currentRoute.value.name?.toString()||"";return e==="profile"?"profile":e.includes("player")||e==="addgroup"?"players":e.includes("system")||e.includes("core")||e.includes("serverlog")?"system":e.includes("frontend")?"frontend":e.includes("remoteaccess")?"remote_access":e.includes("user")?"users":e.includes("about")?"about":"providers"}),Y=e=>{const r=c.getProvider(e);if(r)return r.name;const i=e.split("--")[0];return c.providerManifests[i]?.name||e},K=p(()=>{const e=o.currentRoute.value,r=e.name?.toString()||"",i=[{title:s("settings.settings"),disabled:!1,href:"#",to:{name:"settings"}}];if(!$.value){const a=W.value;a==="profile"?i.push({title:s("auth.profile"),disabled:r==="profile",to:{name:"profile"}}):a==="players"?i.push({title:s("settings.players"),disabled:r==="playersettings",to:{name:"playersettings"}}):a==="system"?i.push({title:s("settings.system"),disabled:r==="systemsettings",to:{name:"systemsettings"}}):a==="remote_access"?i.push({title:s("settings.remote_access"),disabled:r==="remoteaccesssettings",to:{name:"remoteaccesssettings"}}):a==="frontend"?i.push({title:s("settings.frontend"),disabled:r==="frontendsettings",to:{name:"frontendsettings"}}):a==="users"?i.push({title:s("settings.users"),disabled:r==="usersettings",to:{name:"usersettings"}}):a==="providers"?i.push({title:s("settings.providers"),disabled:r==="providersettings",to:{name:"providersettings"}}):a==="about"&&i.push({title:s("settings.about"),disabled:r==="aboutsettings",to:{name:"aboutsettings"}})}return Le(r).with("addproviderdetails",()=>{i.push({title:s("settings.setup_provider",[e.params.domain||""]),disabled:!0})}).with("editprovider",()=>{i.push({title:Y(e.params.instanceId),disabled:!0})}).with("addgroup",()=>{i.push({title:s("settings.add_group_player"),disabled:!0})}).with("editplayer",()=>{i.push({title:s("settings.player_settings"),disabled:!0})}).with("editplayerdsp",()=>{i.push({title:"DSP",disabled:!0})}).with("editcore",()=>{const a=e.params.domain,M=s(`settings.core_module.${a}.name`),Q=M!==`settings.core_module.${a}.name`?M:c.providerManifests[a]?.name||a;i.push({title:Q,disabled:!0})}).with("serverlogs",()=>{i.push({title:s("settings.server_logging"),disabled:!0})}).otherwise(()=>{}),i}),A=p(()=>{const e=o.currentRoute.value,r=e.name?.toString()||"";if(r==="editcore"){const i=e.params.domain;if(i&&c.providerManifests[i])return c.providerManifests[i].documentation||null}else if(r==="editprovider"){const i=e.params.instanceId;if(i){const a=c.getProvider(i);if(a&&c.providerManifests[a.domain])return c.providerManifests[a.domain].documentation||null}}else if(r==="addproviderdetails"){const i=e.params.domain;if(i&&c.providerManifests[i])return c.providerManifests[i].documentation||null}return null});return(e,r)=>{const i=Be("router-view");return g(),F("div",null,[n(ee,{icon:"mdi-cog-outline","show-loading":!0},{title:u(()=>[n(ze,{items:K.value,class:"pa-0"},null,8,["items"])]),append:u(()=>[h.value?(g(),y(I,{key:0,icon:l.value==="list"?"mdi-view-list":"mdi-grid",variant:"text",title:_(s)("tooltip.toggle_view_mode"),onClick:r[0]||(r[0]=a=>d())},null,8,["icon","title"])):S("",!0),v.value?(g(),y(I,{key:1,icon:f.value==="list"?"mdi-view-list":"mdi-grid",variant:"text",title:_(s)("tooltip.toggle_view_mode"),onClick:r[1]||(r[1]=a=>b())},null,8,["icon","title"])):S("",!0),A.value?(g(),y(I,{key:2,icon:"mdi-help-circle",variant:"text",title:_(s)("settings.view_documentation"),onClick:r[2]||(r[2]=a=>_(he)(A.value))},null,8,["title"])):S("",!0)]),_:1}),n(Ce),$.value?(g(),y(X,{key:0,variant:"comfortable",class:"settings-overview"},{default:u(()=>[n(Pe,{class:"settings-main-card"},{default:u(()=>[n(we,{class:"settings-list"},{default:u(()=>[(g(!0),F(G,null,Ve(H.value,a=>(g(),y(Me,{key:a.name,ripple:!0,class:"settings-list-item",onClick:M=>_(o).push(a.route)},{prepend:u(()=>[n(Re,{color:a.color,size:"48"},{default:u(()=>[n(D,{icon:a.icon,size:"24",color:"white"},null,8,["icon"])]),_:2},1032,["color"])]),append:u(()=>[n(D,{icon:"mdi-chevron-right"})]),default:u(()=>[n(Ie,{class:"text-h6"},{default:u(()=>[U(J(_(s)(a.label)),1)]),_:2},1024),n(De,null,{default:u(()=>[U(J(_(s)(a.description)),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1})]),_:1})):(g(),y(i,{key:1},{default:u(({Component:a})=>[a?(g(),y(Se(a),{key:0})):S("",!0)]),_:1}))])}}}),Ge=Oe(Ee,[["__scopeId","data-v-89cbccb1"]]);export{Ge as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as L}from"./Container-
|
|
1
|
+
import{C as L}from"./Container-Bc5cvdS8.js";import{ay as M,bN as w,J as z,i as N,aP as o,a3 as B,aI as u,aA as r,aG as e,o as a,aF as E,az as _,aH as f,ah as C,aS as D,aE as T,aJ as v,aM as h,bh as l,aN as c,bS as k,aB as A,aL as d,bE as y,aV as F,aD as V,_ as J}from"./index-GQ3lWXrm.js";import"./index-kQIztB-E.js";const G=M({__name:"SystemConfig",setup(H){const m=T(),{t:i}=w(),p=z([]),x=[{domain:"logging",name:"settings.system_logging",description:"settings.system_logging_description",icon:"mdi-text-box-search",route:"/settings/serverlogs"}],I=N(()=>[...p.value].sort((t,n)=>o.providerManifests[t.domain].name.localeCompare(o.providerManifests[n.domain].name))),b=t=>{const n=i(`settings.core_module.${t.domain}.name`);return n!==`settings.core_module.${t.domain}.name`?n:o.providerManifests[t.domain].name},$=t=>{const n=i(`settings.core_module.${t.domain}.description`);return n!==`settings.core_module.${t.domain}.description`?n:o.providerManifests[t.domain].description},g=function(t){t.route?m.push(t.route):m.push(`/settings/editcore/${t.domain}`)};return B(async()=>{p.value=await o.getCoreConfigs()}),(t,n)=>(r(),u(L,{variant:"comfortable",class:"settings-overview"},{default:e(()=>[a(D,{class:"settings-main-card"},{default:e(()=>[a(E,{class:"settings-list"},{default:e(()=>[(r(!0),_(C,null,f(I.value,s=>(r(),u(v,{key:s.domain,ripple:!0,class:"settings-list-item",onClick:S=>g(s)},{prepend:e(()=>[a(y,{color:"blue",size:"48"},{default:e(()=>[a(F,{domain:s.domain,size:24,color:"white"},null,8,["domain"])]),_:2},1024)]),append:e(()=>[s.last_error?(r(),u(d,{key:0,color:"red",icon:"mdi-alert-circle",class:"mr-2",title:s.last_error},null,8,["title"])):A("",!0),a(d,{icon:"mdi-chevron-right"})]),default:e(()=>[a(h,{class:"text-h6"},{default:e(()=>[l(c(b(s)),1)]),_:2},1024),a(k,null,{default:e(()=>[l(c($(s)),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),(r(),_(C,null,f(x,s=>a(v,{key:s.domain,ripple:!0,class:"settings-list-item",onClick:S=>g(s)},{prepend:e(()=>[a(y,{color:"purple",size:"48"},{default:e(()=>[a(d,{icon:s.icon,size:"24",color:"white"},null,8,["icon"])]),_:2},1024)]),append:e(()=>[a(d,{icon:"mdi-chevron-right"})]),default:e(()=>[a(h,{class:"text-h6"},{default:e(()=>[l(c(V(i)(s.name)),1)]),_:2},1024),a(k,null,{default:e(()=>[l(c(V(i)(s.description)),1)]),_:2},1024)]),_:2},1032,["onClick"])),64))]),_:1})]),_:1})]),_:1}))}}),q=J(G,[["__scopeId","data-v-fe538fe8"]]);export{q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as R,p as X,c as Y,f as E,I as G,ao as H,u as J,cx as K,bZ as W,n as Z,cy as j,o as l,ae as k,b$ as q,cz as Q,v as U,x as p,z as I,ce as _,C as ee,cv as te,E as h,Y as ae,N as le,X as oe,aL as f,ay as ie,aI as r,aA as i,aK as w,aG as a,aD as d,b5 as B,M as m,a$ as P,aB as v,az as u,aP as y,b8 as T,ah as V,aH as $,b4 as L,aF as x,aJ as z,ax as ne,aC as se,aN as re,_ as de}from"./index-GQ3lWXrm.js";import{V as ce}from"./VToolbar-BTrAkkB7.js";const ue=X({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:te,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...ee(),..._({location:"top end"}),...I(),...p(),...U(),...Q({transition:"scale-rotate-transition"}),...q()},"VBadge"),A=R()({name:"VBadge",inheritAttrs:!1,props:ue(),setup(e,b){const{backgroundColorClasses:C,backgroundColorStyles:n}=Y(()=>e.color),{roundedClasses:s}=E(e),{t}=G(),{textColorClasses:o,textColorStyles:g}=H(()=>e.textColor),{themeClasses:N}=J(),{locationStyles:M}=K(e,!0,c=>(e.floating?e.dot?2:4:e.dot?8:12)+(["top","bottom"].includes(c)?Number(e.offsetY??0):["left","right"].includes(c)?Number(e.offsetX??0):0)),{dimensionStyles:D}=W(e);return Z(()=>{const c=Number(e.content),S=!e.max||isNaN(c)?e.content:c<=Number(e.max)?c:`${e.max}+`,[F,O]=j(b.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return l(e.tag,k({class:["v-badge",{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},O,{style:e.style}),{default:()=>[h("div",{class:"v-badge__wrapper"},[b.slots.default?.(),l(ae,{transition:e.transition},{default:()=>[le(h("span",k({class:["v-badge__badge",N.value,C.value,s.value,o.value],style:[n.value,g.value,D.value,e.inline?{}:M.value],"aria-atomic":"true","aria-label":t(e.label,c),"aria-live":"polite",role:"status"},F),[e.dot?void 0:b.slots.badge?b.slots.badge?.():e.icon?l(f,{icon:e.icon},null):S]),[[oe,e.modelValue]])]})])]})}),{}}}),fe={key:0,class:"mobile-brand"},be={key:1},ve=ie({__name:"Toolbar",props:{color:{default:"transparent"},icon:{default:void 0},title:{default:void 0},menuItems:{default:void 0},enforceOverflowMenu:{type:Boolean,default:!1},showLoading:{type:Boolean,default:void 0},home:{type:Boolean},iconAction:{type:Function,default:void 0}},emits:["iconClicked","titleClicked"],setup(e,{emit:b}){const C=b;return(n,s)=>(i(),r(ce,{color:e.color,class:"header"},w({title:a(()=>[P(n.$slots,"title",{},()=>[d(ne).mobileLayout&&e.home?(i(),u("div",fe,[...s[2]||(s[2]=[h("img",{src:se,alt:"Music Assistant",class:"mobile-brand-logo"},null,-1),h("span",{class:"mobile-brand-text"},"Music Assistant",-1)])])):e.title?(i(),u("button",{key:1,onClick:s[1]||(s[1]=t=>C("titleClicked"))},re(e.title),1)):v("",!0)],!0)]),_:2},[(!d(B)({breakpoint:"tablet"})||e.iconAction)&&e.icon?{name:"prepend",fn:a(()=>[l(m,{icon:e.icon,size:"large",disabled:e.iconAction==null,style:{opacity:"0.8"},onClick:s[0]||(s[0]=t=>e.iconAction?.())},null,8,["icon","disabled"])]),key:"0"}:void 0,n.$slots.append?{name:"append",fn:a(()=>[P(n.$slots,"append",{},void 0,!0)]),key:"1"}:e.menuItems?.length?{name:"append",fn:a(()=>[e.showLoading&&(d(y).fetchesInProgress.value.length>0||d(y).syncTasks.value.length>0)?(i(),r(T,{key:0,color:"primary",indeterminate:"",title:n.$t("tooltip.loading")},null,8,["title"])):v("",!0),(i(!0),u(V,null,$(e.menuItems.filter(t=>!t.hide),t=>(i(),u("div",{key:t.label},[t.subItems?.length?(i(),r(L,{key:0,location:"bottom end",scrim:"",density:"compact",slim:"",tile:"","close-on-content-click":t.closeOnContentClick!==!1},{activator:a(({props:o})=>[l(m,k({variant:"text",style:{width:"40px"}},{ref_for:!0},o,{title:n.$t(t.label,t.labelArgs||[]),disabled:t.disabled==!0}),{default:a(()=>[l(A,{"model-value":t.active==!0,color:"primary",dot:""},{default:a(()=>[l(f,{icon:t.icon,color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22px"},null,8,["icon","color"])]),_:2},1032,["model-value"])]),_:2},1040,["title","disabled"])]),default:a(()=>[l(x,null,{default:a(()=>[(i(!0),u(V,null,$(t.subItems.filter(o=>o.hide!=!0),(o,g)=>(i(),r(z,{key:g,title:n.$t(o.label,o.labelArgs||[]),disabled:o.disabled==!0,onClick:N=>o.action?o.action():""},w({append:a(()=>[o.selected?(i(),r(f,{key:0,icon:"mdi-check"})):v("",!0)]),_:2},[o.icon?{name:"prepend",fn:a(()=>[l(f,{icon:o.icon},null,8,["icon"])]),key:"0"}:void 0]),1032,["title","disabled","onClick"]))),128))]),_:2},1024)]),_:2},1032,["close-on-content-click"])):!e.enforceOverflowMenu&&(d(B)("bp5")||t.overflowAllowed==!1)?(i(),r(m,{key:1,variant:"text",style:{width:"40px"},title:n.$t(t.label,t.labelArgs||[]),disabled:t.disabled==!0,onClick:t.action},{default:a(()=>[l(A,{"model-value":t.active==!0,color:"primary",dot:""},{default:a(()=>[l(f,{icon:t.icon,color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22px"},null,8,["icon","color"])]),_:2},1032,["model-value"])]),_:2},1032,["title","disabled","onClick"])):v("",!0)]))),128)),(!d(B)("bp5")||e.enforceOverflowMenu)&&e.menuItems.filter(t=>t.hide!=!0&&!t.subItems?.length&&t.overflowAllowed!==!1).length?(i(),u("div",be,[l(L,{location:"bottom end",scrim:""},{activator:a(({props:t})=>[l(m,k({variant:"plain",style:{width:"15px","margin-left":"-10px"}},t),{default:a(()=>[l(f,{icon:"mdi-dots-vertical",color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22",style:{"margin-right":"-5px",width:"15px"}},null,8,["color"])]),_:1},16)]),default:a(()=>[l(x,{density:"compact",slim:"",tile:""},{default:a(()=>[(i(!0),u(V,null,$(e.menuItems.filter(t=>t.hide!=!0&&!t.subItems?.length&&t.overflowAllowed!==!1),(t,o)=>(i(),r(z,{key:o,title:n.$t(t.label,t.labelArgs||[]),disabled:t.disabled==!0,onClick:g=>t.action?t.action():""},w({_:2},[t.icon?{name:"prepend",fn:a(()=>[l(A,{"model-value":t.active==!0,color:"primary",dot:""},{default:a(()=>[l(f,{icon:t.icon,color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22px"},null,8,["icon","color"])]),_:2},1032,["model-value"])]),key:"0"}:void 0]),1032,["title","disabled","onClick"]))),128))]),_:1})]),_:1})])):v("",!0)]),key:"2"}:e.showLoading?{name:"append",fn:a(()=>[d(y).fetchesInProgress.value.length>0||d(y).syncTasks.value.length>0?(i(),r(T,{key:0,color:"primary",indeterminate:""})):v("",!0)]),key:"3"}:void 0]),1032,["color"]))}}),ye=de(ve,[["__scopeId","data-v-8dcd08ce"]]);export{ye as T,A as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-badge{display:inline-block;line-height:1}.v-badge__badge{align-items:center;display:inline-flex;border-radius:10px;font-family:Roboto,sans-serif;font-size:.75rem;font-weight:500;height:1.25rem;justify-content:center;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;transition:.225s cubic-bezier(.4,0,.2,1);white-space:nowrap}.v-badge__badge{background:rgb(var(--v-theme-surface-variant));color:rgba(var(--v-theme-on-surface-variant),var(--v-high-emphasis-opacity))}.v-badge__badge:has(.v-icon){padding:4px 6px}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-style:solid;border-width:2px;color:rgb(var(--v-theme-background));content:"";inset:0;position:absolute;transform:scale(1.05)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--inline .v-badge__badge{position:relative;vertical-align:middle}.v-badge__badge .v-icon{color:inherit;font-size:.75rem;margin:0 -2px}.v-badge__badge img,.v-badge__badge .v-img{height:100%;width:100%}.v-badge__wrapper{display:flex;position:relative}.v-badge--inline .v-badge__wrapper{align-items:center;display:inline-flex;justify-content:center;margin:0 4px}@media (forced-colors: active){.v-badge__badge{forced-color-adjust:preserve-parent-color}.v-badge__badge.v-badge__badge{background:highlight!important;color:highlighttext!important}}.header.v-toolbar[data-v-
|
|
1
|
+
.v-badge{display:inline-block;line-height:1}.v-badge__badge{align-items:center;display:inline-flex;border-radius:10px;font-family:Roboto,sans-serif;font-size:.75rem;font-weight:500;height:1.25rem;justify-content:center;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;transition:.225s cubic-bezier(.4,0,.2,1);white-space:nowrap}.v-badge__badge{background:rgb(var(--v-theme-surface-variant));color:rgba(var(--v-theme-on-surface-variant),var(--v-high-emphasis-opacity))}.v-badge__badge:has(.v-icon){padding:4px 6px}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-style:solid;border-width:2px;color:rgb(var(--v-theme-background));content:"";inset:0;position:absolute;transform:scale(1.05)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--inline .v-badge__badge{position:relative;vertical-align:middle}.v-badge__badge .v-icon{color:inherit;font-size:.75rem;margin:0 -2px}.v-badge__badge img,.v-badge__badge .v-img{height:100%;width:100%}.v-badge__wrapper{display:flex;position:relative}.v-badge--inline .v-badge__wrapper{align-items:center;display:inline-flex;justify-content:center;margin:0 4px}@media (forced-colors: active){.v-badge__badge{forced-color-adjust:preserve-parent-color}.v-badge__badge.v-badge__badge{background:highlight!important;color:highlighttext!important}}.header.v-toolbar[data-v-8dcd08ce]{height:55px;font-family:JetBrains Mono Medium}.header.v-toolbar[data-v-8dcd08ce] .v-toolbar__content{height:55px!important;min-height:55px!important;padding-top:0;padding-bottom:0;align-items:center}.header.v-toolbar[data-v-8dcd08ce] .v-toolbar__content>.v-toolbar__append{margin-right:0}.header.v-toolbar>.v-toolbar__content>.v-toolbar-title[data-v-8dcd08ce]{margin-inline-start:10px}.header.v-toolbar>.v-toolbar__content>.v-toolbar__prepend[data-v-8dcd08ce]{margin-inline-start:6px}.header.v-toolbar>.v-toolbar__content>.v-toolbar__append[data-v-8dcd08ce]{margin-inline-end:21px}.header.v-toolbar-default>.v-toolbar__content>.v-toolbar-title[data-v-8dcd08ce]{margin-inline-start:0px}.header.v-toolbar-default>.v-toolbar__content>.v-toolbar__prepend[data-v-8dcd08ce]{margin-inline-start:10px}.header.v-toolbar-default>.v-toolbar__content>.v-toolbar__append[data-v-8dcd08ce]{margin-inline-end:10px}.mobile-brand[data-v-8dcd08ce]{display:flex;align-items:center;gap:1rem}.mobile-brand-logo[data-v-8dcd08ce]{height:30px;width:30px}.mobile-brand-text[data-v-8dcd08ce]{font-weight:600;letter-spacing:.5px;margin-top:4px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as u}from"./ItemsListing-4Tzirx3k.js";import{I as c,_ as f}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-Boj6o7qU.js";import{ay as y,J as k,L as b,az as w,aA as o,o as h,aI as s,aB as m,E as n,aD as I,aP as l}from"./index-GQ3lWXrm.js";import"./Container-Bc5cvdS8.js";import"./index-kQIztB-E.js";import"./Toolbar-BhPGsr4E.js";import"./VToolbar-BTrAkkB7.js";import"./Button-BcX_QSum.js";import"./ListItem-Cz0zK7Ay.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-BZUcSWaz.js";import"./MediaItemThumb-C--YJJ5Y.js";import"./VCheckbox-CgwahLqh.js";import"./VCheckboxBtn-orONEqTE.js";import"./VSelectionControl-C9uJkKHo.js";import"./PanelviewItemCompact-BFofUlbn.js";import"./userPreferences-CU3N6m4Z.js";import"./VInfiniteScroll-C839Qj3G.js";import"./VVirtualScroll-YsHPZNGu.js";import"./VAlert-C8Oto4eV.js";import"./marquee_text_sync-a11Dvzhd.js";import"./VDialog-OmJrmVI_.js";const G=y({__name:"TrackDetails",props:{itemId:{},provider:{},album:{}},setup(r){const a=r,e=k(),p=async function(){e.value=await l.getTrack(a.itemId,a.provider,a.album)};b(()=>a.itemId,t=>{t&&p()},{immediate:!0});const d=async function(t){return await l.getTrackVersions(e.value.item_id,e.value.provider)},v=async function(t){return await l.getTrackAlbums(a.itemId,a.provider,t.libraryOnly)};return(t,i)=>(o(),w("section",null,[h(c,{item:e.value,"active-provider":r.provider},null,8,["item","active-provider"]),e.value?(o(),s(u,{key:0,itemtype:"trackalbums","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!1,"show-library-only-filter":e.value.provider=="library"&&I(l).hasStreamingProviders.value,"show-track-number":!1,"show-refresh-button":!1,"load-items":v,"sort-keys":["name","sort_name","year","year_desc"],title:t.$t("appears_on"),path:r.provider+r.itemId,"allow-collapse":!0},null,8,["parent-item","show-library-only-filter","title","path"])):m("",!0),i[0]||(i[0]=n("br",null,null,-1)),e.value?(o(),s(u,{key:1,itemtype:"trackversions","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!1,"show-track-number":!1,"load-items":d,"show-refresh-button":!1,"sort-keys":["name","sort_name","duration"],title:t.$t("other_versions"),"hide-on-empty":!0,path:r.provider+r.itemId,"allow-collapse":!0},null,8,["parent-item","title","path"])):m("",!0),i[1]||(i[1]=n("br",null,null,-1)),e.value?(o(),s(f,{key:2,"item-details":e.value},null,8,["item-details"])):m("",!0),i[2]||(i[2]=n("br",null,null,-1))]))}});export{G as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as pe}from"./Container-BunIU4BI.js";import{L as ae}from"./ListItem-DNqmHglz.js";import{ay as I,bN as B,J as U,i as S,aP as P,co as re,L as le,aI as N,aA as i,aG as t,o as l,aS as E,bg as j,bh as g,aN as s,c3 as J,bH as O,aB as C,az as $,bK as Q,bV as H,bW as K,M as z,aW as w,cK as ue,E as V,_ as Z,ax as ee,aU as ve,bE as Y,aL as G,ah as te,aH as se,bd as oe,a3 as ce,am as fe,aO as _e}from"./index-rZUS0c3q.js";import{V as A}from"./VSelect-uSApsKq0.js";import{V as W}from"./VDialog-BndVdZhi.js";import{_ as he}from"./CreateTokenDialog.vue_vue_type_script_setup_true_lang-WD6jKrT1.js";import"./index-kQIztB-E.js";import"./Button-Cm9Kv1fL.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";const ye={key:1,class:"text-grey text-caption align-self-center"},be={key:1,class:"text-grey text-caption align-self-center"},ke=I({__name:"CreateUserDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",password:"",confirmPassword:"",role:"user",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=S(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=S(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=S(()=>a.value.username.length>=3&&a.value.password.length>=8&&a.value.password===a.value.confirmPassword&&a.value.role),L=()=>{a.value={username:"",displayName:"",password:"",confirmPassword:"",role:ue.USER,playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{b.value=!0;try{await P.createUser(a.value.username,a.value.password,a.value.role,a.value.displayName||void 0,a.value.playerFilter.length>0?a.value.playerFilter:void 0,a.value.providerFilter.length>0?a.value.providerFilter:void 0)?(w.success(u("auth.user_created")),L(),p("created"),p("update:modelValue",!1)):w.error(u("auth.user_create_failed"))}catch{w.error(u("auth.user_create_failed"))}finally{b.value=!1}};return le(()=>n.modelValue,e=>{e||L()}),(e,o)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[7]||(o[7]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.create_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength],autofocus:""},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.password=r),label:e.$t("auth.password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordMatch]},null,8,["modelValue","label","rules"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",class:"mb-2"},null,8,["modelValue","label"]),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",ye," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",be," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,disabled:!R.value,onClick:q},{default:t(()=>[g(s(e.$t("create")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ve={class:"text-body-1 mb-4"},ge={key:0,class:"user-name-box"},$e=I({__name:"DeleteUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","deleted"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.deleteUser(n.user.user_id)?(w.success(u("auth.user_deleted")),p("deleted"),p("update:modelValue",!1)):w.error(u("auth.user_delete_failed"))}catch{w.error(u("auth.user_delete_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ve,s(m.$t("auth.confirm_delete_user")),1),c.user?(i(),$("div",ge,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),we=Z($e,[["__scopeId","data-v-8cbf5f8f"]]),Ue={class:"text-body-1 mb-4"},Ce={key:0,class:"user-name-box"},Fe=I({__name:"DisableUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","disabled"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.disableUser(n.user.user_id)?(w.success(u("auth.user_disabled")),p("disabled"),p("update:modelValue",!1)):w.error(u("auth.user_disable_failed"))}catch{w.error(u("auth.user_disable_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ue,s(m.$t("auth.confirm_disable_user")),1),c.user?(i(),$("div",Ce,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),De=Z(Fe,[["__scopeId","data-v-9638370d"]]),Ne={key:1,class:"text-grey text-caption align-self-center"},Te={key:1,class:"text-grey text-caption align-self-center"},ze=I({__name:"EditUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","updated"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",avatarUrl:"",role:"user",password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=S(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=S(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=S(()=>!n.user||!ee.currentUser?!1:n.user.user_id===ee.currentUser.user_id),L=()=>{n.user?a.value={username:n.user.username,displayName:n.user.display_name||"",avatarUrl:n.user.avatar_url||"",role:n.user.role,password:"",confirmPassword:"",playerFilter:n.user.player_filter||[],providerFilter:n.user.provider_filter||[]}:a.value={username:"",displayName:"",avatarUrl:"",role:ue.USER,password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{if(n.user){if(a.value.password&&a.value.password!==a.value.confirmPassword){w.error(u("auth.passwords_must_match"));return}b.value=!0;try{const e={};a.value.username!==n.user.username&&(e.username=a.value.username),a.value.displayName!==(n.user.display_name||"")&&(e.displayName=a.value.displayName),a.value.avatarUrl!==(n.user.avatar_url||"")&&(e.avatarUrl=a.value.avatarUrl),a.value.role!==n.user.role&&!R.value&&(e.role=a.value.role),a.value.password&&(e.password=a.value.password);const o=n.user.player_filter||[];JSON.stringify([...a.value.playerFilter].sort())!==JSON.stringify([...o].sort())&&(e.player_filter=a.value.playerFilter);const r=n.user.provider_filter||[];JSON.stringify([...a.value.providerFilter].sort())!==JSON.stringify([...r].sort())&&(e.provider_filter=a.value.providerFilter),await P.updateUser(n.user.user_id,e),w.success(u("auth.user_updated")),L(),p("updated"),p("update:modelValue",!1)}catch{w.error(u("auth.user_update_failed"))}finally{b.value=!1}}};return le(()=>n.user,L,{immediate:!0}),le(()=>n.modelValue,e=>{e&&L()}),(e,o)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[8]||(o[8]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.edit_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.avatarUrl,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.avatarUrl=r),label:e.$t("auth.avatar_url"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("auth.avatar_url_hint"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",disabled:R.value,class:"mb-2"},null,8,["modelValue","label","disabled"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.password=r),label:e.$t("auth.new_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("auth.password_optional_hint"),"persistent-hint":"",rules:a.value.password?[D.passwordLength]:[]},null,8,["modelValue","label","hint","rules"]),a.value.password?(i(),N(O,{key:0,modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",rules:[D.passwordMatch]},null,8,["modelValue","label","rules"])):C("",!0),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Ne," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[7]||(o[7]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Te," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,onClick:q},{default:t(()=>[g(s(e.$t("save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Pe={class:"pa-4"},Le={class:"mb-2"},Me={class:"section-subtitle mb-6"},Oe={key:0,class:"empty-state"},Se={class:"text-medium-emphasis"},Ie={key:1,class:"tokens-list"},Be={class:"line-clamp-1"},Re={class:"token-meta"},qe={key:0,class:"token-divider"},Ae={key:1},Ee={class:"pa-4"},je={class:"section-header-with-action"},Je={class:"w-100"},He={class:"d-flex justify-space-between align-center gap-2"},Ke={class:"mb-2"},We={class:"section-subtitle"},Xe={key:0,class:"empty-state"},Ye={class:"text-medium-emphasis"},Ge={key:1,class:"tokens-list"},Qe={class:"line-clamp-1"},Ze={class:"token-meta"},xe={key:0,class:"token-divider"},ea={key:1},aa=I({__name:"ManageTokensDialog",props:{modelValue:{type:Boolean},user:{},tokens:{}},emits:["update:modelValue","revoke","token-created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=S(()=>n.tokens.filter(d=>!d.is_long_lived)),m=S(()=>n.tokens.filter(d=>d.is_long_lived)),h=d=>new Date(d).toLocaleString();return(d,k)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"900",scrollable:"","onUpdate:modelValue":k[4]||(k[4]=y=>p("update:modelValue",y))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(d.$t("auth.tokens"))+" - "+s(c.user?.display_name||c.user?.username),1)]),_:1}),l(ve),l(J,{class:"pa-0"},{default:t(()=>[V("div",Pe,[V("h3",Le,s(d.$t("auth.active_sessions")),1),V("p",Me,s(d.$t("auth.active_sessions_description")),1),a.value.length===0?(i(),$("div",Oe,[l(Y,{color:"blue-grey-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(G,{icon:"mdi-devices",size:"32"})]),_:1}),V("p",Se,s(d.$t("auth.no_active_sessions")),1)])):(i(),$("div",Ie,[(i(!0),$(te,null,se(a.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(Y,{color:"blue-grey-darken-2",size:"40"},{default:t(()=>[l(G,{icon:"mdi-devices",size:"20"})]),_:1})]),title:t(()=>[V("div",Be,s(y.name),1)]),subtitle:t(()=>[V("div",Re,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",qe,"•")):C("",!0),y.last_used_at?(i(),$("span",Ae,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))]),V("div",Ee,[V("div",je,[V("div",Je,[V("div",He,[V("h3",Ke,s(d.$t("auth.long_lived_tokens")),1),l(z,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",size:"small",onClick:k[0]||(k[0]=y=>b.value=!0)},{default:t(()=>[g(s(d.$t("auth.create_token")),1)]),_:1})]),V("p",We,s(d.$t("auth.long_lived_tokens_description")),1)])]),m.value.length===0?(i(),$("div",Xe,[l(Y,{color:"deep-purple-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(G,{icon:"mdi-key-variant",size:"32"})]),_:1}),V("p",Ye,s(d.$t("auth.no_long_lived_tokens")),1)])):(i(),$("div",Ge,[(i(!0),$(te,null,se(m.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(Y,{color:"deep-purple-darken-2",size:"40"},{default:t(()=>[l(G,{icon:"mdi-key-variant",size:"20"})]),_:1})]),title:t(()=>[V("div",Qe,s(y.name),1)]),subtitle:t(()=>[V("div",Ze,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",xe,"•")):C("",!0),y.last_used_at?(i(),$("span",ea,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))])]),_:1}),l(H,{class:"pa-6"},{default:t(()=>[l(K),l(z,{variant:"tonal",onClick:k[1]||(k[1]=y=>p("update:modelValue",!1))},{default:t(()=>[g(s(d.$t("close")),1)]),_:1})]),_:1})]),_:1}),l(he,{modelValue:b.value,"onUpdate:modelValue":k[2]||(k[2]=y=>b.value=y),"user-id":c.user?.user_id,onCreated:k[3]||(k[3]=y=>p("token-created"))},null,8,["modelValue","user-id"])]),_:1},8,["model-value"]))}}),la=Z(aa,[["__scopeId","data-v-19f1861f"]]),ta={class:"text-body-1 mb-4"},sa={key:0,class:"token-name-box"},oa=I({__name:"RevokeTokenDialog",props:{modelValue:{type:Boolean},token:{}},emits:["update:modelValue","revoked"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(!n.token)return;b.value=!0;const m=!n.token.is_long_lived;try{await P.revokeToken(n.token.token_id)?(w.success(u(m?"auth.session_revoked":"auth.token_revoked")),p("revoked"),p("update:modelValue",!1)):w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}catch{w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}finally{b.value=!1}};return(m,h)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(c.token?.is_long_lived?m.$t("auth.revoke_token"):m.$t("auth.revoke_session")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",ta,s(c.token?.is_long_lived?m.$t("auth.revoke_token_confirm"):m.$t("auth.revoke_session_confirm")),1),c.token?(i(),$("div",sa,s(c.token.name),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.revoke")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),ra=Z(oa,[["__scopeId","data-v-026d0253"]]),ua={class:"users-header w-100"},na={class:"user-avatar-wrapper"},ia={class:"line-clamp-1"},da={class:"line-clamp-1"},ma={key:0,class:"text-center pa-8 text-medium-emphasis"},pa=I({__name:"UserManagement",setup(c){const{t:F}=B(),u=U([]),n=U(""),p=U(!1),b=U(!1),a=U(!1),m=U(!1),h=U(!1),d=U(!1),k=U(null),y=U([]),D=U(null),R=S(()=>{if(!n.value)return u.value;const f=n.value.toLowerCase();return u.value.filter(v=>{const _=(v.display_name||v.username).toLowerCase(),x=v.username.toLowerCase();return _.includes(f)||x.includes(f)})}),L=f=>!f||!ee.currentUser?!1:f.user_id===ee.currentUser.user_id,M=async()=>{try{u.value=await P.getAllUsers()}catch{w.error(F("auth.users_load_failed"))}},q=f=>{k.value=f,b.value=!0},e=f=>{k.value=f,a.value=!0},o=f=>{k.value=f,m.value=!0},r=async f=>{k.value=f,await T(f.user_id),h.value=!0},T=async f=>{try{y.value=await P.getUserTokens(f)}catch{w.error(F("auth.tokens_load_failed"))}},X=async()=>{k.value&&await T(k.value.user_id)},ne=f=>{D.value=f,d.value=!0},ie=async()=>{k.value&&await T(k.value.user_id),D.value=null},de=async f=>{try{await P.enableUser(f.user_id)?(await M(),w.success(F("auth.user_enabled"))):w.error(F("auth.user_enable_failed"))}catch{w.error(F("auth.user_enable_failed"))}},me=(f,v)=>{const _=[{label:"auth.edit_user",labelArgs:[],action:()=>{q(v)},icon:"mdi-pencil"},{label:"auth.manage_tokens",labelArgs:[],action:()=>{r(v)},icon:"mdi-key-variant"},{label:v.enabled?"auth.disable_user":"auth.enable_user",labelArgs:[],action:()=>{v.enabled?e(v):de(v)},icon:v.enabled?"mdi-account-off":"mdi-account-check",hide:L(v)},{label:"auth.delete_user",labelArgs:[],action:()=>{o(v)},icon:"mdi-delete",color:"error",hide:L(v)}];_e.emit("contextmenu",{items:_,posX:f.clientX,posY:f.clientY})};return ce(()=>{M()}),(f,v)=>(i(),$("div",null,[V("div",ua,[l(O,{modelValue:n.value,"onUpdate:modelValue":v[0]||(v[0]=_=>n.value=_),placeholder:f.$t("search"),"prepend-inner-icon":"mdi-magnify",variant:"outlined",density:"compact","hide-details":"",clearable:"",style:{"max-width":"400px"}},null,8,["modelValue","placeholder"]),l(z,{color:"primary",variant:"flat",height:"40",class:"add-user-btn","prepend-icon":"mdi-plus",onClick:v[1]||(v[1]=_=>p.value=!0)},{default:t(()=>[g(s(f.$t("auth.create_user")),1)]),_:1})]),l(pe,null,{default:t(()=>[(i(!0),$(te,null,se(R.value,_=>(i(),N(ae,{key:_.user_id,"show-menu-btn":"",link:"",onMenu:x=>me(x,_),onClick:x=>q(_)},{prepend:t(()=>[V("div",na,[l(Y,{size:"40",color:_.avatar_url?void 0:"grey-darken-2"},{default:t(()=>[_.avatar_url?(i(),N(fe,{key:0,src:_.avatar_url},null,8,["src"])):(i(),N(G,{key:1,icon:"mdi-account",size:"20",color:"grey-lighten-1"}))]),_:2},1032,["color"])])]),title:t(()=>[V("div",ia,s(_.display_name||_.username),1)]),subtitle:t(()=>[V("div",da,s(_.username)+" • "+s(f.$t(`auth.${_.role}_role`)),1)]),append:t(()=>[_.enabled?C("",!0):(i(),N(Q,{key:0,size:"small",color:"error"},{default:t(()=>[g(s(f.$t("auth.disabled")),1)]),_:1}))]),_:2},1032,["onMenu","onClick"]))),128)),u.value.length===0?(i(),$("div",ma,s(f.$t("no_content")),1)):C("",!0)]),_:1}),l(ke,{modelValue:p.value,"onUpdate:modelValue":v[2]||(v[2]=_=>p.value=_),onCreated:M},null,8,["modelValue"]),l(ze,{modelValue:b.value,"onUpdate:modelValue":v[3]||(v[3]=_=>b.value=_),user:k.value,onUpdated:M},null,8,["modelValue","user"]),l(De,{modelValue:a.value,"onUpdate:modelValue":v[4]||(v[4]=_=>a.value=_),user:k.value,onDisabled:M},null,8,["modelValue","user"]),l(we,{modelValue:m.value,"onUpdate:modelValue":v[5]||(v[5]=_=>m.value=_),user:k.value,onDeleted:M},null,8,["modelValue","user"]),l(la,{modelValue:h.value,"onUpdate:modelValue":v[6]||(v[6]=_=>h.value=_),user:k.value,tokens:y.value,onRevoke:ne,onTokenCreated:X},null,8,["modelValue","user","tokens"]),l(ra,{modelValue:d.value,"onUpdate:modelValue":v[7]||(v[7]=_=>d.value=_),token:D.value,onRevoked:ie},null,8,["modelValue","token"])]))}}),wa=Z(pa,[["__scopeId","data-v-4952d4ff"]]);export{wa as default};
|
|
1
|
+
import{C as pe}from"./Container-Bc5cvdS8.js";import{L as ae}from"./ListItem-Cz0zK7Ay.js";import{ay as I,bN as B,J as U,i as S,aP as P,co as re,L as le,aI as N,aA as i,aG as t,o as l,aS as E,bg as j,bh as g,aN as s,c3 as J,bH as O,aB as C,az as $,bK as Q,bV as H,bW as W,M as z,aW as w,cF as ue,E as V,_ as Z,ax as ee,aU as ve,bE as G,aL as K,ah as te,aH as se,bd as oe,a3 as ce,am as fe,aO as _e}from"./index-GQ3lWXrm.js";import{V as A}from"./VSelect-vsgYa-Ce.js";import{V as X}from"./VDialog-OmJrmVI_.js";import{_ as he}from"./CreateTokenDialog.vue_vue_type_script_setup_true_lang-BHmJvDQD.js";import"./index-kQIztB-E.js";import"./Button-BcX_QSum.js";import"./VVirtualScroll-YsHPZNGu.js";import"./VCheckboxBtn-orONEqTE.js";import"./VSelectionControl-C9uJkKHo.js";const ye={key:1,class:"text-grey text-caption align-self-center"},be={key:1,class:"text-grey text-caption align-self-center"},ke=I({__name:"CreateUserDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",password:"",confirmPassword:"",role:"user",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=S(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=S(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=S(()=>a.value.username.length>=3&&a.value.password.length>=8&&a.value.password===a.value.confirmPassword&&a.value.role),L=()=>{a.value={username:"",displayName:"",password:"",confirmPassword:"",role:ue.USER,playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{b.value=!0;try{await P.createUser(a.value.username,a.value.password,a.value.role,a.value.displayName||void 0,a.value.playerFilter.length>0?a.value.playerFilter:void 0,a.value.providerFilter.length>0?a.value.providerFilter:void 0)?(w.success(u("auth.user_created")),L(),p("created"),p("update:modelValue",!1)):w.error(u("auth.user_create_failed"))}catch{w.error(u("auth.user_create_failed"))}finally{b.value=!1}};return le(()=>n.modelValue,e=>{e||L()}),(e,o)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[7]||(o[7]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.create_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength],autofocus:""},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.password=r),label:e.$t("auth.password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordMatch]},null,8,["modelValue","label","rules"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",class:"mb-2"},null,8,["modelValue","label"]),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",ye," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",be," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,disabled:!R.value,onClick:q},{default:t(()=>[g(s(e.$t("create")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ve={class:"text-body-1 mb-4"},ge={key:0,class:"user-name-box"},$e=I({__name:"DeleteUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","deleted"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.deleteUser(n.user.user_id)?(w.success(u("auth.user_deleted")),p("deleted"),p("update:modelValue",!1)):w.error(u("auth.user_delete_failed"))}catch{w.error(u("auth.user_delete_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ve,s(m.$t("auth.confirm_delete_user")),1),c.user?(i(),$("div",ge,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),we=Z($e,[["__scopeId","data-v-8cbf5f8f"]]),Ue={class:"text-body-1 mb-4"},Ce={key:0,class:"user-name-box"},Fe=I({__name:"DisableUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","disabled"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.disableUser(n.user.user_id)?(w.success(u("auth.user_disabled")),p("disabled"),p("update:modelValue",!1)):w.error(u("auth.user_disable_failed"))}catch{w.error(u("auth.user_disable_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ue,s(m.$t("auth.confirm_disable_user")),1),c.user?(i(),$("div",Ce,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),De=Z(Fe,[["__scopeId","data-v-9638370d"]]),Ne={key:1,class:"text-grey text-caption align-self-center"},Te={key:1,class:"text-grey text-caption align-self-center"},ze=I({__name:"EditUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","updated"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",avatarUrl:"",role:"user",password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=S(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=S(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=S(()=>!n.user||!ee.currentUser?!1:n.user.user_id===ee.currentUser.user_id),L=()=>{n.user?a.value={username:n.user.username,displayName:n.user.display_name||"",avatarUrl:n.user.avatar_url||"",role:n.user.role,password:"",confirmPassword:"",playerFilter:n.user.player_filter||[],providerFilter:n.user.provider_filter||[]}:a.value={username:"",displayName:"",avatarUrl:"",role:ue.USER,password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{if(n.user){if(a.value.password&&a.value.password!==a.value.confirmPassword){w.error(u("auth.passwords_must_match"));return}b.value=!0;try{const e={};a.value.username!==n.user.username&&(e.username=a.value.username),a.value.displayName!==(n.user.display_name||"")&&(e.displayName=a.value.displayName),a.value.avatarUrl!==(n.user.avatar_url||"")&&(e.avatarUrl=a.value.avatarUrl),a.value.role!==n.user.role&&!R.value&&(e.role=a.value.role),a.value.password&&(e.password=a.value.password);const o=n.user.player_filter||[];JSON.stringify([...a.value.playerFilter].sort())!==JSON.stringify([...o].sort())&&(e.player_filter=a.value.playerFilter);const r=n.user.provider_filter||[];JSON.stringify([...a.value.providerFilter].sort())!==JSON.stringify([...r].sort())&&(e.provider_filter=a.value.providerFilter),await P.updateUser(n.user.user_id,e),w.success(u("auth.user_updated")),L(),p("updated"),p("update:modelValue",!1)}catch{w.error(u("auth.user_update_failed"))}finally{b.value=!1}}};return le(()=>n.user,L,{immediate:!0}),le(()=>n.modelValue,e=>{e&&L()}),(e,o)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[8]||(o[8]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.edit_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.avatarUrl,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.avatarUrl=r),label:e.$t("auth.avatar_url"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("auth.avatar_url_hint"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",disabled:R.value,class:"mb-2"},null,8,["modelValue","label","disabled"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.password=r),label:e.$t("auth.new_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("auth.password_optional_hint"),"persistent-hint":"",rules:a.value.password?[D.passwordLength]:[]},null,8,["modelValue","label","hint","rules"]),a.value.password?(i(),N(O,{key:0,modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",rules:[D.passwordMatch]},null,8,["modelValue","label","rules"])):C("",!0),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Ne," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[7]||(o[7]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Te," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,onClick:q},{default:t(()=>[g(s(e.$t("save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Pe={class:"pa-4"},Le={class:"mb-2"},Me={class:"section-subtitle mb-6"},Oe={key:0,class:"empty-state"},Se={class:"text-medium-emphasis"},Ie={key:1,class:"tokens-list"},Be={class:"line-clamp-1"},Re={class:"token-meta"},qe={key:0,class:"token-divider"},Ae={key:1},Ee={class:"pa-4"},je={class:"section-header-with-action"},Je={class:"w-100"},He={class:"d-flex justify-space-between align-center gap-2"},We={class:"mb-2"},Xe={class:"section-subtitle"},Ye={key:0,class:"empty-state"},Ge={class:"text-medium-emphasis"},Ke={key:1,class:"tokens-list"},Qe={class:"line-clamp-1"},Ze={class:"token-meta"},xe={key:0,class:"token-divider"},ea={key:1},aa=I({__name:"ManageTokensDialog",props:{modelValue:{type:Boolean},user:{},tokens:{}},emits:["update:modelValue","revoke","token-created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=S(()=>n.tokens.filter(d=>!d.is_long_lived)),m=S(()=>n.tokens.filter(d=>d.is_long_lived)),h=d=>new Date(d).toLocaleString();return(d,k)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"900",scrollable:"","onUpdate:modelValue":k[4]||(k[4]=y=>p("update:modelValue",y))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(d.$t("auth.tokens"))+" - "+s(c.user?.display_name||c.user?.username),1)]),_:1}),l(ve),l(J,{class:"pa-0"},{default:t(()=>[V("div",Pe,[V("h3",Le,s(d.$t("auth.active_sessions")),1),V("p",Me,s(d.$t("auth.active_sessions_description")),1),a.value.length===0?(i(),$("div",Oe,[l(G,{color:"blue-grey-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(K,{icon:"mdi-devices",size:"32"})]),_:1}),V("p",Se,s(d.$t("auth.no_active_sessions")),1)])):(i(),$("div",Ie,[(i(!0),$(te,null,se(a.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(G,{color:"blue-grey-darken-2",size:"40"},{default:t(()=>[l(K,{icon:"mdi-devices",size:"20"})]),_:1})]),title:t(()=>[V("div",Be,s(y.name),1)]),subtitle:t(()=>[V("div",Re,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",qe,"•")):C("",!0),y.last_used_at?(i(),$("span",Ae,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))]),V("div",Ee,[V("div",je,[V("div",Je,[V("div",He,[V("h3",We,s(d.$t("auth.long_lived_tokens")),1),l(z,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",size:"small",onClick:k[0]||(k[0]=y=>b.value=!0)},{default:t(()=>[g(s(d.$t("auth.create_token")),1)]),_:1})]),V("p",Xe,s(d.$t("auth.long_lived_tokens_description")),1)])]),m.value.length===0?(i(),$("div",Ye,[l(G,{color:"deep-purple-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(K,{icon:"mdi-key-variant",size:"32"})]),_:1}),V("p",Ge,s(d.$t("auth.no_long_lived_tokens")),1)])):(i(),$("div",Ke,[(i(!0),$(te,null,se(m.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(G,{color:"deep-purple-darken-2",size:"40"},{default:t(()=>[l(K,{icon:"mdi-key-variant",size:"20"})]),_:1})]),title:t(()=>[V("div",Qe,s(y.name),1)]),subtitle:t(()=>[V("div",Ze,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",xe,"•")):C("",!0),y.last_used_at?(i(),$("span",ea,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))])]),_:1}),l(H,{class:"pa-6"},{default:t(()=>[l(W),l(z,{variant:"tonal",onClick:k[1]||(k[1]=y=>p("update:modelValue",!1))},{default:t(()=>[g(s(d.$t("close")),1)]),_:1})]),_:1})]),_:1}),l(he,{modelValue:b.value,"onUpdate:modelValue":k[2]||(k[2]=y=>b.value=y),"user-id":c.user?.user_id,onCreated:k[3]||(k[3]=y=>p("token-created"))},null,8,["modelValue","user-id"])]),_:1},8,["model-value"]))}}),la=Z(aa,[["__scopeId","data-v-19f1861f"]]),ta={class:"text-body-1 mb-4"},sa={key:0,class:"token-name-box"},oa=I({__name:"RevokeTokenDialog",props:{modelValue:{type:Boolean},token:{}},emits:["update:modelValue","revoked"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(!n.token)return;b.value=!0;const m=!n.token.is_long_lived;try{await P.revokeToken(n.token.token_id)?(w.success(u(m?"auth.session_revoked":"auth.token_revoked")),p("revoked"),p("update:modelValue",!1)):w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}catch{w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}finally{b.value=!1}};return(m,h)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(c.token?.is_long_lived?m.$t("auth.revoke_token"):m.$t("auth.revoke_session")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",ta,s(c.token?.is_long_lived?m.$t("auth.revoke_token_confirm"):m.$t("auth.revoke_session_confirm")),1),c.token?(i(),$("div",sa,s(c.token.name),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.revoke")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),ra=Z(oa,[["__scopeId","data-v-026d0253"]]),ua={class:"users-header w-100"},na={class:"user-avatar-wrapper"},ia={class:"line-clamp-1"},da={class:"line-clamp-1"},ma={key:0,class:"text-center pa-8 text-medium-emphasis"},pa=I({__name:"UserManagement",setup(c){const{t:F}=B(),u=U([]),n=U(""),p=U(!1),b=U(!1),a=U(!1),m=U(!1),h=U(!1),d=U(!1),k=U(null),y=U([]),D=U(null),R=S(()=>{if(!n.value)return u.value;const f=n.value.toLowerCase();return u.value.filter(v=>{const _=(v.display_name||v.username).toLowerCase(),x=v.username.toLowerCase();return _.includes(f)||x.includes(f)})}),L=f=>!f||!ee.currentUser?!1:f.user_id===ee.currentUser.user_id,M=async()=>{try{u.value=await P.getAllUsers()}catch{w.error(F("auth.users_load_failed"))}},q=f=>{k.value=f,b.value=!0},e=f=>{k.value=f,a.value=!0},o=f=>{k.value=f,m.value=!0},r=async f=>{k.value=f,await T(f.user_id),h.value=!0},T=async f=>{try{y.value=await P.getUserTokens(f)}catch{w.error(F("auth.tokens_load_failed"))}},Y=async()=>{k.value&&await T(k.value.user_id)},ne=f=>{D.value=f,d.value=!0},ie=async()=>{k.value&&await T(k.value.user_id),D.value=null},de=async f=>{try{await P.enableUser(f.user_id)?(await M(),w.success(F("auth.user_enabled"))):w.error(F("auth.user_enable_failed"))}catch{w.error(F("auth.user_enable_failed"))}},me=(f,v)=>{const _=[{label:"auth.edit_user",labelArgs:[],action:()=>{q(v)},icon:"mdi-pencil"},{label:"auth.manage_tokens",labelArgs:[],action:()=>{r(v)},icon:"mdi-key-variant"},{label:v.enabled?"auth.disable_user":"auth.enable_user",labelArgs:[],action:()=>{v.enabled?e(v):de(v)},icon:v.enabled?"mdi-account-off":"mdi-account-check",hide:L(v)},{label:"auth.delete_user",labelArgs:[],action:()=>{o(v)},icon:"mdi-delete",color:"error",hide:L(v)}];_e.emit("contextmenu",{items:_,posX:f.clientX,posY:f.clientY})};return ce(()=>{M()}),(f,v)=>(i(),$("div",null,[V("div",ua,[l(O,{modelValue:n.value,"onUpdate:modelValue":v[0]||(v[0]=_=>n.value=_),placeholder:f.$t("search"),"prepend-inner-icon":"mdi-magnify",variant:"outlined",density:"compact","hide-details":"",clearable:"",style:{"max-width":"400px"}},null,8,["modelValue","placeholder"]),l(z,{color:"primary",variant:"flat",height:"40",class:"add-user-btn","prepend-icon":"mdi-plus",onClick:v[1]||(v[1]=_=>p.value=!0)},{default:t(()=>[g(s(f.$t("auth.create_user")),1)]),_:1})]),l(pe,null,{default:t(()=>[(i(!0),$(te,null,se(R.value,_=>(i(),N(ae,{key:_.user_id,"show-menu-btn":"",link:"",onMenu:x=>me(x,_),onClick:x=>q(_)},{prepend:t(()=>[V("div",na,[l(G,{size:"40",color:_.avatar_url?void 0:"grey-darken-2"},{default:t(()=>[_.avatar_url?(i(),N(fe,{key:0,src:_.avatar_url},null,8,["src"])):(i(),N(K,{key:1,icon:"mdi-account",size:"20",color:"grey-lighten-1"}))]),_:2},1032,["color"])])]),title:t(()=>[V("div",ia,s(_.display_name||_.username),1)]),subtitle:t(()=>[V("div",da,s(_.username)+" • "+s(f.$t(`auth.${_.role}_role`)),1)]),append:t(()=>[_.enabled?C("",!0):(i(),N(Q,{key:0,size:"small",color:"error"},{default:t(()=>[g(s(f.$t("auth.disabled")),1)]),_:1}))]),_:2},1032,["onMenu","onClick"]))),128)),u.value.length===0?(i(),$("div",ma,s(f.$t("no_content")),1)):C("",!0)]),_:1}),l(ke,{modelValue:p.value,"onUpdate:modelValue":v[2]||(v[2]=_=>p.value=_),onCreated:M},null,8,["modelValue"]),l(ze,{modelValue:b.value,"onUpdate:modelValue":v[3]||(v[3]=_=>b.value=_),user:k.value,onUpdated:M},null,8,["modelValue","user"]),l(De,{modelValue:a.value,"onUpdate:modelValue":v[4]||(v[4]=_=>a.value=_),user:k.value,onDisabled:M},null,8,["modelValue","user"]),l(we,{modelValue:m.value,"onUpdate:modelValue":v[5]||(v[5]=_=>m.value=_),user:k.value,onDeleted:M},null,8,["modelValue","user"]),l(la,{modelValue:h.value,"onUpdate:modelValue":v[6]||(v[6]=_=>h.value=_),user:k.value,tokens:y.value,onRevoke:ne,onTokenCreated:Y},null,8,["modelValue","user","tokens"]),l(ra,{modelValue:d.value,"onUpdate:modelValue":v[7]||(v[7]=_=>d.value=_),token:D.value,onRevoked:ie},null,8,["modelValue","token"])]))}}),wa=Z(pa,[["__scopeId","data-v-4952d4ff"]]);export{wa as default};
|