music-assistant-frontend 2.16.2__py3-none-any.whl → 2.16.3__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.

Files changed (118) hide show
  1. music_assistant_frontend/assets/{AddManualLink.vue_vue_type_script_setup_true_lang-B63HFhhb.js → AddManualLink.vue_vue_type_script_setup_true_lang-Btxi9C62.js} +1 -1
  2. music_assistant_frontend/assets/{AddPlayerGroup-BqR3ISGP.js → AddPlayerGroup-B9Z_pSbp.js} +1 -1
  3. music_assistant_frontend/assets/AddProvider-BI3cdm8z.css +1 -0
  4. music_assistant_frontend/assets/AddProvider-Cvc1vKjb.js +1 -0
  5. music_assistant_frontend/assets/AddProviderDetails-nxO_mtOV.js +1 -0
  6. music_assistant_frontend/assets/AlbumDetails-4k1gGn03.js +1 -0
  7. music_assistant_frontend/assets/ArtistDetails-Cj5jS8dS.js +1 -0
  8. music_assistant_frontend/assets/AudiobookDetails-DOLAfaw7.js +1 -0
  9. music_assistant_frontend/assets/BrowseView-KnS20KAJ.js +1 -0
  10. music_assistant_frontend/assets/Button-BEhYIX-0.js +1 -0
  11. music_assistant_frontend/assets/Container-BVutxj42.js +1 -0
  12. music_assistant_frontend/assets/CoreConfigs-cR-SOoT8.js +1 -0
  13. music_assistant_frontend/assets/{Default-CZ8q2YFN.css → Default-C6YIMF4X.css} +1 -1
  14. music_assistant_frontend/assets/Default-OBxfS-SQ.js +21 -0
  15. music_assistant_frontend/assets/EditConfig-BXS2Ap2c.js +1 -0
  16. music_assistant_frontend/assets/{EditCoreConfig-Cbw20fpr.js → EditCoreConfig-zx9CmTur.js} +1 -1
  17. music_assistant_frontend/assets/{EditPlayer-DprIzMve.js → EditPlayer-NN9IVHtY.js} +1 -1
  18. music_assistant_frontend/assets/{EditPlayerDsp-CEx48tTL.js → EditPlayerDsp-CV4QvEHy.js} +7 -7
  19. music_assistant_frontend/assets/{EditProvider-BOiPV5fE.js → EditProvider-BCCWAYGC.js} +1 -1
  20. music_assistant_frontend/assets/{FrontendConfig-DnKZQWVc.js → FrontendConfig-DlXbqfRd.js} +1 -1
  21. music_assistant_frontend/assets/HomeView-BmejYe5v.js +1 -0
  22. music_assistant_frontend/assets/ItemsListing-CqOkN5bP.js +1 -0
  23. music_assistant_frontend/assets/LibraryAlbums-CusIOqng.js +1 -0
  24. music_assistant_frontend/assets/LibraryArtists-CTqEnV_e.js +1 -0
  25. music_assistant_frontend/assets/LibraryAudiobooks-YyvEFilb.js +1 -0
  26. music_assistant_frontend/assets/LibraryPlaylists-CVIJ_N1P.js +1 -0
  27. music_assistant_frontend/assets/LibraryPodcasts-BQqQsdr6.js +1 -0
  28. music_assistant_frontend/assets/LibraryRadios-DsoT58ha.js +1 -0
  29. music_assistant_frontend/assets/LibraryTracks-im3tsbMg.js +1 -0
  30. music_assistant_frontend/assets/ListItem-D3UfOTqB.js +1 -0
  31. music_assistant_frontend/assets/MediaItemImages-Bl5Hyo8e.js +1 -0
  32. music_assistant_frontend/assets/{MediaItemThumb-cYqdWFcl.js → MediaItemThumb-4FqrTjbr.js} +1 -1
  33. music_assistant_frontend/assets/NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js +1 -0
  34. music_assistant_frontend/assets/PanelviewItemCompact-Czo8xJLH.js +1 -0
  35. music_assistant_frontend/assets/PlayerCard-CA3BAmEY.js +1 -0
  36. music_assistant_frontend/assets/PlayerCard-CbdLO2r1.css +1 -0
  37. music_assistant_frontend/assets/Players-CbJImU3B.js +1 -0
  38. music_assistant_frontend/assets/PlaylistDetails-tLhLQfGV.js +1 -0
  39. music_assistant_frontend/assets/PodcastDetails-9rXzEs8I.js +1 -0
  40. music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-BaDwFhok.js +8 -0
  41. music_assistant_frontend/assets/ProviderFilters-B9fL_Rzx.css +1 -0
  42. music_assistant_frontend/assets/ProviderFilters-Bzbv_8Zj.js +1 -0
  43. music_assistant_frontend/assets/Providers-BDKV0R1S.css +1 -0
  44. music_assistant_frontend/assets/Providers-Breto0YQ.js +1 -0
  45. music_assistant_frontend/assets/RadioDetails-B-DMqEyq.js +1 -0
  46. music_assistant_frontend/assets/Search-BvB0EMhr.js +1 -0
  47. music_assistant_frontend/assets/Settings-Dv4jewfc.js +1 -0
  48. music_assistant_frontend/assets/Settings-rFw0NCMV.css +1 -0
  49. music_assistant_frontend/assets/Toolbar-RSDUeNZR.js +1 -0
  50. music_assistant_frontend/assets/TrackDetails-DirI_xx-.js +1 -0
  51. music_assistant_frontend/assets/VAlert-Du-laR0E.js +1 -0
  52. music_assistant_frontend/assets/{VBtn-BYKkZzw0.js → VBtn-i8gedOhv.js} +1 -1
  53. music_assistant_frontend/assets/{VContainer-or1Uze2V.js → VContainer-DOe7JF0h.js} +1 -1
  54. music_assistant_frontend/assets/{VDialog-zNF2U_x9.js → VDialog-CUNnqGJy.js} +1 -1
  55. music_assistant_frontend/assets/VExpansionPanels-BWCnJP-B.js +1 -0
  56. music_assistant_frontend/assets/{VForm-DI6jEBhI.js → VForm-ChQquqpb.js} +1 -1
  57. music_assistant_frontend/assets/{VInfiniteScroll-DH2IK80_.js → VInfiniteScroll-XtiIpwbc.js} +1 -1
  58. music_assistant_frontend/assets/{VInput-B3Z2GK8Z.js → VInput-S8c2HXsf.js} +1 -1
  59. music_assistant_frontend/assets/{VRow-cyJLSUM5.js → VRow-Dw7kUaJt.js} +1 -1
  60. music_assistant_frontend/assets/VSlider-bRJnej6Z.js +1 -0
  61. music_assistant_frontend/assets/VSpacer-FdmIBMIx.js +1 -0
  62. music_assistant_frontend/assets/{VSwitch-B-ONWUbe.js → VSwitch-D4nwfxN1.js} +1 -1
  63. music_assistant_frontend/assets/{VTextField-DyzwZgKh.js → VTextField-BRzkPyuL.js} +1 -1
  64. music_assistant_frontend/assets/{VToolbar-Dc2WDt1C.js → VToolbar-BFOvSQM-.js} +1 -1
  65. music_assistant_frontend/assets/{VVirtualScroll-DYZmdOFl.js → VVirtualScroll-JP5E3DQw.js} +1 -1
  66. music_assistant_frontend/assets/WidgetRow-B9fF60Oe.js +1 -0
  67. music_assistant_frontend/assets/{index-LFx1jIjH.js → index-BLuBzgcR.js} +69 -88
  68. music_assistant_frontend/assets/index-CBho6rsP.js +1 -0
  69. music_assistant_frontend/assets/{layout-C6GuZOkj.js → layout-Dtt5lK8k.js} +1 -1
  70. music_assistant_frontend/assets/{marquee_text_sync-AxiznPti.js → marquee_text_sync-CbqHGytl.js} +1 -1
  71. music_assistant_frontend/index.html +1 -1
  72. music_assistant_frontend/sw.js +1 -1
  73. {music_assistant_frontend-2.16.2.dist-info → music_assistant_frontend-2.16.3.dist-info}/METADATA +1 -1
  74. {music_assistant_frontend-2.16.2.dist-info → music_assistant_frontend-2.16.3.dist-info}/RECORD +77 -71
  75. music_assistant_frontend/assets/AddProvider-IAFbg1Is.js +0 -1
  76. music_assistant_frontend/assets/AlbumDetails-DNZQ0iw2.js +0 -1
  77. music_assistant_frontend/assets/ArtistDetails-CgQgAdke.js +0 -1
  78. music_assistant_frontend/assets/AudiobookDetails-B70mK0ue.js +0 -1
  79. music_assistant_frontend/assets/BrowseView-BX9DuhEz.js +0 -1
  80. music_assistant_frontend/assets/Button-SUce42c3.js +0 -1
  81. music_assistant_frontend/assets/Container-CuH2YNr5.js +0 -1
  82. music_assistant_frontend/assets/CoreConfigs-B3U5F8gP.js +0 -1
  83. music_assistant_frontend/assets/Default-D-qt-ngX.js +0 -21
  84. music_assistant_frontend/assets/EditConfig-UygF_D1P.js +0 -1
  85. music_assistant_frontend/assets/HomeView-SUm8huhB.js +0 -1
  86. music_assistant_frontend/assets/ItemsListing-BHlkb6-j.js +0 -1
  87. music_assistant_frontend/assets/LibraryAlbums-CqEmL2hc.js +0 -1
  88. music_assistant_frontend/assets/LibraryArtists-BCCu2Up8.js +0 -1
  89. music_assistant_frontend/assets/LibraryAudiobooks-XDbB65Rt.js +0 -1
  90. music_assistant_frontend/assets/LibraryPlaylists-DT7vgEMB.js +0 -1
  91. music_assistant_frontend/assets/LibraryPodcasts-C1Q56Owa.js +0 -1
  92. music_assistant_frontend/assets/LibraryRadios-DnFPAJKf.js +0 -1
  93. music_assistant_frontend/assets/LibraryTracks-Ccvkrxk3.js +0 -1
  94. music_assistant_frontend/assets/ListItem-DhvO1M3C.js +0 -1
  95. music_assistant_frontend/assets/MediaItemImages-BsUw5BGo.js +0 -1
  96. music_assistant_frontend/assets/NowPlayingBadge.vue_vue_type_style_index_0_lang-B4veTxLS.js +0 -1
  97. music_assistant_frontend/assets/PanelviewItemCompact-Bf82DAtE.js +0 -1
  98. music_assistant_frontend/assets/PlayerCard-BREzV21x.css +0 -1
  99. music_assistant_frontend/assets/PlayerCard-CDAKLvCC.js +0 -1
  100. music_assistant_frontend/assets/Players-kE-rRgOU.js +0 -1
  101. music_assistant_frontend/assets/PlaylistDetails-cq0JulBq.js +0 -1
  102. music_assistant_frontend/assets/PodcastDetails-kdySajqt.js +0 -1
  103. music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-bItMFJVo.js +0 -8
  104. music_assistant_frontend/assets/Providers-BWTIVMjd.js +0 -1
  105. music_assistant_frontend/assets/Providers-C5Z9wkRf.css +0 -1
  106. music_assistant_frontend/assets/RadioDetails-B7kcWeF7.js +0 -1
  107. music_assistant_frontend/assets/Search-XGsn2QOU.js +0 -1
  108. music_assistant_frontend/assets/Settings-CZYANIJ8.js +0 -1
  109. music_assistant_frontend/assets/Toolbar-iQxHKI_C.js +0 -1
  110. music_assistant_frontend/assets/TrackDetails-DJOVmlfF.js +0 -1
  111. music_assistant_frontend/assets/VAlert-Cyb25ra3.js +0 -1
  112. music_assistant_frontend/assets/VExpansionPanels-DUWI7Gyy.js +0 -1
  113. music_assistant_frontend/assets/VSlider-B0DY4XNd.js +0 -1
  114. music_assistant_frontend/assets/VSpacer-Cg-cZSyv.js +0 -1
  115. music_assistant_frontend/assets/WidgetRow-DQvw9AsK.js +0 -1
  116. {music_assistant_frontend-2.16.2.dist-info → music_assistant_frontend-2.16.3.dist-info}/WHEEL +0 -0
  117. {music_assistant_frontend-2.16.2.dist-info → music_assistant_frontend-2.16.3.dist-info}/licenses/LICENSE +0 -0
  118. {music_assistant_frontend-2.16.2.dist-info → music_assistant_frontend-2.16.3.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{d as $,i as b,ad as j,c as y,o as m,b as s,w as u,bI as x,bl as B,q as p,e as v,a as r,b3 as T,b4 as f,t as d,u as l,m as a,b5 as c,ce as I,p as C,bJ as O}from"./index-LFx1jIjH.js";import{E as S}from"./EditConfig-UygF_D1P.js";import{n as D}from"./index.browser-OxPLOBIU.js";import{b as _}from"./VBtn-BYKkZzw0.js";import"./VForm-DI6jEBhI.js";import"./VInput-B3Z2GK8Z.js";import"./VExpansionPanels-DUWI7Gyy.js";import"./VAlert-Cyb25ra3.js";import"./VSwitch-B-ONWUbe.js";import"./VTextField-DyzwZgKh.js";import"./VVirtualScroll-DYZmdOFl.js";import"./VSlider-B0DY4XNd.js";import"./VDialog-zNF2U_x9.js";import"./VSpacer-Cg-cZSyv.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const q={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},h=$({__name:"EditCoreConfig",props:{domain:{}},setup(k){const V=O(),t=b(),w=D(11),i=b(!1),M=k;j(()=>M.domain,async n=>{n&&(t.value=await a.getCoreConfig(n))},{immediate:!0});const E=async function(n){i.value=!0,a.saveCoreConfig(t.value.domain,n).then(()=>{i.value=!1,V.push({name:"providersettings"})}).catch(e=>{alert(e),i.value=!1})},N=async function(n,e){i.value=!0;for(const o of Object.values(t.value.values))o.value!==void 0&&e[o.key]==null&&(e[o.key]=o.value);e.session_id=w,a.getCoreConfigEntries(t.value.domain,n,e).then(o=>{t.value.values={};for(const g of o)t.value.values[g.key]=g;i.value=!1}).catch(o=>{alert(o),i.value=!1})};return(n,e)=>(m(),y("section",null,[s(x,null,{default:u(()=>[t.value?(m(),y("div",q,[s(T,null,{default:u(()=>[f(d(n.$t("settings.setup_provider",[l(a).providerManifests[t.value.domain].name])),1)]),_:1}),s(c,null,{default:u(()=>[f(d(l(a).providerManifests[t.value.domain].description),1)]),_:1}),e[3]||(e[3]=r("br",null,null,-1)),l(a).providerManifests[t.value.domain].codeowners.length?(m(),v(c,{key:0},{default:u(()=>[r("b",null,d(n.$t("settings.codeowners"))+": ",1),f(d(l(a).providerManifests[t.value.domain].codeowners.join(" / ")),1)]),_:1})):p("",!0),l(a).providerManifests[t.value.domain].documentation?(m(),v(c,{key:1},{default:u(()=>[r("b",null,d(n.$t("settings.need_help_setup_provider")),1),e[2]||(e[2]=f("  ",-1)),r("a",{onClick:e[0]||(e[0]=o=>l(I)(l(a).providerManifests[t.value.domain].documentation))},d(n.$t("settings.check_docs")),1)]),_:1})):p("",!0),e[4]||(e[4]=r("br",null,null,-1)),s(C),e[5]||(e[5]=r("br",null,null,-1)),e[6]||(e[6]=r("br",null,null,-1))])):p("",!0),s(C),t.value?(m(),v(S,{key:1,"config-entries":Object.values(t.value.values),disabled:!1,onSubmit:E,onAction:N},null,8,["config-entries"])):p("",!0)]),_:1}),s(B,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=o=>i.value=o),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:u(()=>[s(_,{indeterminate:"",size:"64",color:"primary"})]),_:1},8,["modelValue"])]))}});export{h as default};
1
+ import{d as $,i as b,ad as j,c as y,b as s,w as u,bI as x,bl as B,o as m,q as p,e as v,a as r,b3 as T,b4 as f,t as d,u as l,m as a,b5 as c,cg as I,p as C,bJ as O}from"./index-BLuBzgcR.js";import{E as S}from"./EditConfig-BXS2Ap2c.js";import{n as D}from"./index.browser-OxPLOBIU.js";import{b as _}from"./VBtn-i8gedOhv.js";import"./VForm-ChQquqpb.js";import"./VInput-S8c2HXsf.js";import"./VExpansionPanels-BWCnJP-B.js";import"./VAlert-Du-laR0E.js";import"./VSwitch-D4nwfxN1.js";import"./VTextField-BRzkPyuL.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VSlider-bRJnej6Z.js";import"./VDialog-CUNnqGJy.js";import"./VSpacer-FdmIBMIx.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const q={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},h=$({__name:"EditCoreConfig",props:{domain:{}},setup(k){const V=O(),t=b(),w=D(11),i=b(!1),M=k;j(()=>M.domain,async n=>{n&&(t.value=await a.getCoreConfig(n))},{immediate:!0});const E=async function(n){i.value=!0,a.saveCoreConfig(t.value.domain,n).then(()=>{i.value=!1,V.push({name:"providersettings"})}).catch(e=>{alert(e),i.value=!1})},N=async function(n,e){i.value=!0;for(const o of Object.values(t.value.values))o.value!==void 0&&e[o.key]==null&&(e[o.key]=o.value);e.session_id=w,a.getCoreConfigEntries(t.value.domain,n,e).then(o=>{t.value.values={};for(const g of o)t.value.values[g.key]=g;i.value=!1}).catch(o=>{alert(o),i.value=!1})};return(n,e)=>(m(),y("section",null,[s(x,null,{default:u(()=>[t.value?(m(),y("div",q,[s(T,null,{default:u(()=>[f(d(n.$t("settings.setup_provider",[l(a).providerManifests[t.value.domain].name])),1)]),_:1}),s(c,null,{default:u(()=>[f(d(l(a).providerManifests[t.value.domain].description),1)]),_:1}),e[3]||(e[3]=r("br",null,null,-1)),l(a).providerManifests[t.value.domain].codeowners.length?(m(),v(c,{key:0},{default:u(()=>[r("b",null,d(n.$t("settings.codeowners"))+": ",1),f(d(l(a).providerManifests[t.value.domain].codeowners.join(" / ")),1)]),_:1})):p("",!0),l(a).providerManifests[t.value.domain].documentation?(m(),v(c,{key:1},{default:u(()=>[r("b",null,d(n.$t("settings.need_help_setup_provider")),1),e[2]||(e[2]=f("  ",-1)),r("a",{onClick:e[0]||(e[0]=o=>l(I)(l(a).providerManifests[t.value.domain].documentation))},d(n.$t("settings.check_docs")),1)]),_:1})):p("",!0),e[4]||(e[4]=r("br",null,null,-1)),s(C),e[5]||(e[5]=r("br",null,null,-1)),e[6]||(e[6]=r("br",null,null,-1))])):p("",!0),s(C),t.value?(m(),v(S,{key:1,"config-entries":Object.values(t.value.values),disabled:!1,onSubmit:E,onAction:N},null,8,["config-entries"])):p("",!0)]),_:1}),s(B,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=o=>i.value=o),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:u(()=>[s(_,{indeterminate:"",size:"64",color:"primary"})]),_:1},8,["modelValue"])]))}});export{h as default};
@@ -1 +1 @@
1
- import{d as I,i as P,m as t,a_ as $,l as U,N as w,bf as g,cf as _,aU as V,ad as L,c,o as i,b as d,w as o,bI as M,q as u,a as s,e as p,u as r,b3 as N,b4 as y,t as n,b5 as f,ce as B,p as E,bJ as h}from"./index-LFx1jIjH.js";import{E as G}from"./EditConfig-UygF_D1P.js";import{V as O}from"./VTextField-DyzwZgKh.js";import{V as R}from"./VSwitch-B-ONWUbe.js";import"./VForm-DI6jEBhI.js";import"./VInput-B3Z2GK8Z.js";import"./VExpansionPanels-DUWI7Gyy.js";import"./VAlert-Cyb25ra3.js";import"./VBtn-BYKkZzw0.js";import"./VSlider-B0DY4XNd.js";import"./VVirtualScroll-DYZmdOFl.js";import"./VDialog-zNF2U_x9.js";import"./VSpacer-Cg-cZSyv.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const q={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},te=I({__name:"EditPlayer",props:{playerId:{}},setup(k){const D=h(),e=P(),m=k,b=P(!1);(async()=>{if(m.playerId)try{b.value=(await t.getDSPConfig(m.playerId)).enabled}catch(a){console.error("Error fetching DSP config:",a)}})();const S=t.subscribe($.PLAYER_DSP_CONFIG_UPDATED,a=>{b.value=a.data.enabled});U(S);const C=w(()=>{if(!e.value)return[];const a=Object.values(e.value.values),l=t.players[e.value.player_id];return l&&l.type!==g.GROUP?a.push({key:"dsp_settings",type:_.DSP_SETTINGS,label:"",default_value:b.value,required:!1,category:"audio"}):l&&l.type===g.GROUP&&l.supported_features.includes(V.MULTI_DEVICE_DSP)?a.push({key:"dsp_note_multi_device_group",type:_.LABEL,label:"You can configure the DSP for each player individually.",default_value:null,required:!1,category:"audio"}):l&&l.type===g.GROUP&&!l.supported_features.includes(V.MULTI_DEVICE_DSP)&&a.push({key:"dsp_note_multi_device_group_not_supported",type:_.LABEL,label:"This group type does not support DSP when playing to multiple devices.",default_value:null,required:!1,category:"audio"}),a});L(()=>m.playerId,async a=>{a&&(e.value=await t.getPlayerConfig(a))},{immediate:!0});const T=async function(a){delete a.dsp_settings,a.enabled=e.value.enabled,a.name=e.value.name||null,t.savePlayerConfig(m.playerId,a),D.push({name:"playersettings"})};return(a,l)=>(i(),c("section",null,[d(M,null,{default:o(()=>[e.value&&r(t).getProviderManifest(e.value.provider).domain in r(t).providerManifests?(i(),c("div",q,[d(N,null,{default:o(()=>[y(n(a.$t("settings.config_player",[e.value.name||r(t).players[e.value.player_id]?.name||e.value.default_name])),1)]),_:1}),d(f,null,{default:o(()=>[s("b",null,n(a.$t("settings.player_id"))+": ",1),y(n(e.value.player_id),1)]),_:1}),d(f,null,{default:o(()=>[s("b",null,n(a.$t("settings.player_provider"))+": ",1),y(n(r(t).getProviderManifest(e.value.provider)?.name)+" ",1),r(t).getProviderManifest(e.value.provider)?.documentation?(i(),c("a",{key:0,onClick:l[0]||(l[0]=v=>r(B)(r(t).getProviderManifest(e.value.provider)?.documentation))}," ["+n(a.$t("settings.check_docs"))+"]",1)):u("",!0)]),_:1}),r(t).players[e.value.player_id]?(i(),p(f,{key:0},{default:o(()=>[s("b",null,n(a.$t("settings.player_model"))+": ",1),y(n(r(t).players[e.value.player_id].device_info.manufacturer)+" / "+n(r(t).players[e.value.player_id].device_info.model),1)]),_:1})):u("",!0),r(t).players[e.value.player_id]?.device_info.ip_address?(i(),p(f,{key:1},{default:o(()=>[s("b",null,n(a.$t("settings.player_address"))+": ",1),y(n(r(t).players[e.value.player_id].device_info.ip_address),1)]),_:1})):u("",!0),r(t).players[e.value.player_id]?(i(),p(f,{key:2},{default:o(()=>[s("b",null,n(a.$t("settings.player_type_label"))+": ",1),y(n(a.$t(`player_type.${r(t).players[e.value.player_id].type}`)),1)]),_:1})):u("",!0),l[3]||(l[3]=s("br",null,null,-1)),d(E),l[4]||(l[4]=s("br",null,null,-1)),l[5]||(l[5]=s("br",null,null,-1)),"name"in e.value?(i(),p(O,{key:3,modelValue:e.value.name,"onUpdate:modelValue":l[1]||(l[1]=v=>e.value.name=v),placeholder:e.value?.name,label:a.$t("settings.player_name"),variant:"outlined",clearable:"",class:"configcolumnleft",style:{"margin-right":"25px"}},null,8,["modelValue","placeholder","label"])):u("",!0),"enabled"in e.value?(i(),p(R,{key:4,modelValue:e.value.enabled,"onUpdate:modelValue":l[2]||(l[2]=v=>e.value.enabled=v),label:a.$t("settings.enable_player"),color:"primary",disabled:r(t).getProviderManifest(e.value.provider)?.builtin},null,8,["modelValue","label","disabled"])):u("",!0)])):u("",!0),l[6]||(l[6]=s("br",null,null,-1)),d(E),e.value?(i(),p(G,{key:1,disabled:!e.value.enabled,"config-entries":C.value,onSubmit:T},null,8,["disabled","config-entries"])):u("",!0)]),_:1})]))}});export{te as default};
1
+ import{d as I,i as P,m as t,a_ as $,l as U,N as w,bf as g,ch as _,aU as V,ad as L,c,b as d,w as o,bI as M,o as i,q as u,a as s,e as p,u as r,b3 as N,b4 as y,t as n,b5 as f,cg as h,p as E,bJ as B}from"./index-BLuBzgcR.js";import{E as G}from"./EditConfig-BXS2Ap2c.js";import{V as O}from"./VTextField-BRzkPyuL.js";import{V as R}from"./VSwitch-D4nwfxN1.js";import"./VForm-ChQquqpb.js";import"./VInput-S8c2HXsf.js";import"./VExpansionPanels-BWCnJP-B.js";import"./VAlert-Du-laR0E.js";import"./VBtn-i8gedOhv.js";import"./VSlider-bRJnej6Z.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VDialog-CUNnqGJy.js";import"./VSpacer-FdmIBMIx.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const q={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},te=I({__name:"EditPlayer",props:{playerId:{}},setup(k){const D=B(),e=P(),m=k,b=P(!1);(async()=>{if(m.playerId)try{b.value=(await t.getDSPConfig(m.playerId)).enabled}catch(a){console.error("Error fetching DSP config:",a)}})();const S=t.subscribe($.PLAYER_DSP_CONFIG_UPDATED,a=>{b.value=a.data.enabled});U(S);const C=w(()=>{if(!e.value)return[];const a=Object.values(e.value.values),l=t.players[e.value.player_id];return l&&l.type!==g.GROUP?a.push({key:"dsp_settings",type:_.DSP_SETTINGS,label:"",default_value:b.value,required:!1,category:"audio"}):l&&l.type===g.GROUP&&l.supported_features.includes(V.MULTI_DEVICE_DSP)?a.push({key:"dsp_note_multi_device_group",type:_.LABEL,label:"You can configure the DSP for each player individually.",default_value:null,required:!1,category:"audio"}):l&&l.type===g.GROUP&&!l.supported_features.includes(V.MULTI_DEVICE_DSP)&&a.push({key:"dsp_note_multi_device_group_not_supported",type:_.LABEL,label:"This group type does not support DSP when playing to multiple devices.",default_value:null,required:!1,category:"audio"}),a});L(()=>m.playerId,async a=>{a&&(e.value=await t.getPlayerConfig(a))},{immediate:!0});const T=async function(a){delete a.dsp_settings,a.enabled=e.value.enabled,a.name=e.value.name||null,t.savePlayerConfig(m.playerId,a),D.push({name:"playersettings"})};return(a,l)=>(i(),c("section",null,[d(M,null,{default:o(()=>[e.value&&r(t).getProviderManifest(e.value.provider).domain in r(t).providerManifests?(i(),c("div",q,[d(N,null,{default:o(()=>[y(n(a.$t("settings.config_player",[e.value.name||r(t).players[e.value.player_id]?.name||e.value.default_name])),1)]),_:1}),d(f,null,{default:o(()=>[s("b",null,n(a.$t("settings.player_id"))+": ",1),y(n(e.value.player_id),1)]),_:1}),d(f,null,{default:o(()=>[s("b",null,n(a.$t("settings.player_provider"))+": ",1),y(n(r(t).getProviderManifest(e.value.provider)?.name)+" ",1),r(t).getProviderManifest(e.value.provider)?.documentation?(i(),c("a",{key:0,onClick:l[0]||(l[0]=v=>r(h)(r(t).getProviderManifest(e.value.provider)?.documentation))}," ["+n(a.$t("settings.check_docs"))+"]",1)):u("",!0)]),_:1}),r(t).players[e.value.player_id]?(i(),p(f,{key:0},{default:o(()=>[s("b",null,n(a.$t("settings.player_model"))+": ",1),y(n(r(t).players[e.value.player_id].device_info.manufacturer)+" / "+n(r(t).players[e.value.player_id].device_info.model),1)]),_:1})):u("",!0),r(t).players[e.value.player_id]?.device_info.ip_address?(i(),p(f,{key:1},{default:o(()=>[s("b",null,n(a.$t("settings.player_address"))+": ",1),y(n(r(t).players[e.value.player_id].device_info.ip_address),1)]),_:1})):u("",!0),r(t).players[e.value.player_id]?(i(),p(f,{key:2},{default:o(()=>[s("b",null,n(a.$t("settings.player_type_label"))+": ",1),y(n(a.$t(`player_type.${r(t).players[e.value.player_id].type}`)),1)]),_:1})):u("",!0),l[3]||(l[3]=s("br",null,null,-1)),d(E),l[4]||(l[4]=s("br",null,null,-1)),l[5]||(l[5]=s("br",null,null,-1)),"name"in e.value?(i(),p(O,{key:3,modelValue:e.value.name,"onUpdate:modelValue":l[1]||(l[1]=v=>e.value.name=v),placeholder:e.value?.name,label:a.$t("settings.player_name"),variant:"outlined",clearable:"",class:"configcolumnleft",style:{"margin-right":"25px"}},null,8,["modelValue","placeholder","label"])):u("",!0),"enabled"in e.value?(i(),p(R,{key:4,modelValue:e.value.enabled,"onUpdate:modelValue":l[2]||(l[2]=v=>e.value.enabled=v),label:a.$t("settings.enable_player"),color:"primary",disabled:r(t).getProviderManifest(e.value.provider)?.builtin},null,8,["modelValue","label","disabled"])):u("",!0)])):u("",!0),l[6]||(l[6]=s("br",null,null,-1)),d(E),e.value?(i(),p(G,{key:1,disabled:!e.value.enabled,"config-entries":C.value,onSubmit:T},null,8,["disabled","config-entries"])):u("",!0)]),_:1})]))}});export{te as default};
@@ -1,9 +1,9 @@
1
- import{x as Fe,y as qe,ch as il,W as Be,Z as ol,Y as rl,C as De,a as z,D as ie,E as Q,b as l,g as K,aG as ul,a7 as Qe,ci as Ke,a6 as Ye,I as we,cc as Xe,z as dl,ac as ml,i as U,ad as le,a4 as he,G as Je,H as pl,O as vl,X as cl,Q as fl,a3 as gl,a1 as ee,N as G,R as yl,a8 as _l,aN as hl,d as ge,T as Oe,e as $,o as c,w as a,c as pe,bI as ae,b4 as f,t as A,F as fe,r as Ee,b0 as Ze,k as bl,bA as Vl,bB as Ie,$ as O,n as te,cj as L,ck as F,ar as Cl,j as Le,q as W,u as b,br as kl,bs as Se,cl as Sl,ao as Pe,bw as Pl,cm as ne,av as Ll,b9 as $l,m as se,a_ as He,l as Tl,aW as Al,h as Fl,f as Ue,V as ze,aA as ql,b3 as Ne,bC as xe,bJ as Dl}from"./index-LFx1jIjH.js";import{a as B}from"./VBtn-BYKkZzw0.js";import{_ as el}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as wl}from"./VSlider-B0DY4XNd.js";import{V as ll}from"./VTextField-DyzwZgKh.js";import{V as tl}from"./VContainer-or1Uze2V.js";import{a as be,V as $e}from"./VSwitch-B-ONWUbe.js";import{V as al,a as Te}from"./VRow-cyJLSUM5.js";import{V as Ae}from"./VSpacer-Cg-cZSyv.js";import{V as We,a as je}from"./VToolbar-Dc2WDt1C.js";import{V as Ge}from"./VDialog-zNF2U_x9.js";import{V as Ol}from"./VAlert-Cyb25ra3.js";import"./VInput-B3Z2GK8Z.js";/* empty css */import"./VVirtualScroll-DYZmdOFl.js";const El=qe({dotColor:String,fillDot:Boolean,hideDot:Boolean,icon:Xe,iconColor:String,lineColor:String,...we(),...Ye(),...Ke(),...Qe()},"VTimelineDivider"),Il=Fe()({name:"VTimelineDivider",props:El(),setup(t,S){let{slots:V}=S;const{sizeClasses:g,sizeStyles:s}=il(t,"v-timeline-divider__dot"),{backgroundColorStyles:D,backgroundColorClasses:m}=Be(()=>t.dotColor),{roundedClasses:H}=ol(t,"v-timeline-divider__dot"),{elevationClasses:w}=rl(t),{backgroundColorClasses:N,backgroundColorStyles:u}=Be(()=>t.lineColor);return De(()=>z("div",{class:Q(["v-timeline-divider",{"v-timeline-divider--fill-dot":t.fillDot},t.class]),style:ie(t.style)},[z("div",{class:Q(["v-timeline-divider__before",N.value]),style:ie(u.value)},null),!t.hideDot&&z("div",{key:"dot",class:Q(["v-timeline-divider__dot",w.value,H.value,g.value]),style:ie(s.value)},[z("div",{class:Q(["v-timeline-divider__inner-dot",m.value,H.value]),style:ie(D.value)},[V.default?l(ul,{key:"icon-defaults",disabled:!t.icon,defaults:{VIcon:{color:t.iconColor,icon:t.icon,size:t.size}}},V.default):l(K,{key:"icon",color:t.iconColor,icon:t.icon,size:t.size},null)])]),z("div",{class:Q(["v-timeline-divider__after",N.value]),style:ie(u.value)},null)])),{}}}),nl=qe({density:String,dotColor:String,fillDot:Boolean,hideDot:Boolean,hideOpposite:{type:Boolean,default:void 0},icon:Xe,iconColor:String,lineInset:[Number,String],side:{type:String,validator:t=>t==null||["start","end"].includes(t)},...we(),...pl(),...Qe(),...Ye(),...Ke(),...Je()},"VTimelineItem"),me=Fe()({name:"VTimelineItem",props:nl(),setup(t,S){let{slots:V}=S;const{dimensionStyles:g}=dl(t),s=ml(0),D=U();return le(D,m=>{m&&(s.value=m.$el.querySelector(".v-timeline-divider__dot")?.getBoundingClientRect().width??0)},{flush:"post"}),De(()=>z("div",{class:Q(["v-timeline-item",{"v-timeline-item--fill-dot":t.fillDot,"v-timeline-item--side-start":t.side==="start","v-timeline-item--side-end":t.side==="end"},t.class]),style:ie([{"--v-timeline-dot-size":he(s.value),"--v-timeline-line-inset":t.lineInset?`calc(var(--v-timeline-dot-size) / 2 + ${he(t.lineInset)})`:he(0)},t.style])},[z("div",{class:"v-timeline-item__body",style:ie(g.value)},[V.default?.()]),l(Il,{ref:D,hideDot:t.hideDot,icon:t.icon,iconColor:t.iconColor,size:t.size,elevation:t.elevation,dotColor:t.dotColor,fillDot:t.fillDot,rounded:t.rounded},{default:V.icon}),t.density!=="compact"&&z("div",{class:"v-timeline-item__opposite"},[!t.hideOpposite&&V.opposite?.()])])),{}}}),Rl=qe({align:{type:String,default:"center",validator:t=>["center","start"].includes(t)},direction:{type:String,default:"vertical",validator:t=>["vertical","horizontal"].includes(t)},justify:{type:String,default:"auto",validator:t=>["auto","center"].includes(t)},side:{type:String,validator:t=>t==null||["start","end"].includes(t)},lineThickness:{type:[String,Number],default:2},lineColor:String,truncateLine:{type:String,validator:t=>["start","end","both"].includes(t)},...hl(nl({lineInset:0}),["dotColor","fillDot","hideOpposite","iconColor","lineInset","size"]),...we(),..._l(),...Je(),...yl()},"VTimeline"),Ml=Fe()({name:"VTimeline",props:Rl(),setup(t,S){let{slots:V}=S;const{themeClasses:g}=vl(t),{densityClasses:s}=cl(t),{rtlClasses:D}=fl();gl({VTimelineDivider:{lineColor:ee(()=>t.lineColor)},VTimelineItem:{density:ee(()=>t.density),dotColor:ee(()=>t.dotColor),fillDot:ee(()=>t.fillDot),hideOpposite:ee(()=>t.hideOpposite),iconColor:ee(()=>t.iconColor),lineColor:ee(()=>t.lineColor),lineInset:ee(()=>t.lineInset),size:ee(()=>t.size)}});const m=G(()=>{const w=t.side?t.side:t.density!=="default"?"end":null;return w&&`v-timeline--side-${w}`}),H=G(()=>{const w=["v-timeline--truncate-line-start","v-timeline--truncate-line-end"];switch(t.truncateLine){case"both":return w;case"start":return w[0];case"end":return w[1];default:return null}});return De(()=>l(t.tag,{class:Q(["v-timeline",`v-timeline--${t.direction}`,`v-timeline--align-${t.align}`,`v-timeline--justify-${t.justify}`,H.value,{"v-timeline--inset-line":!!t.lineInset},g.value,s.value,m.value,D.value,t.class]),style:ie([{"--v-timeline-line-thickness":he(t.lineThickness)},t.style])},V)),{}}}),Bl=ge({__name:"DSPPipeline",props:{dsp:{},selected:{}},emits:["onSelect","onAddFilter","onMoveFilter","onDeleteFilter"],setup(t,{emit:S}){const V=Oe(),g=t,s=S,D=y=>g.selected===y?"primary":"secondary",m=y=>y==="input"||y==="output"?!1:!g.dsp.filters[y].enabled,H=y=>g.selected===y?"primary":V.global.current.value.dark?"grey-darken-3":"grey-lighten-3",w=y=>({"filter-selected":g.selected===y}),N=y=>{s("onSelect",y)},u=(y,E)=>{s("onMoveFilter",{index:y,direction:E})},k=y=>{s("onDeleteFilter",y)},M=function(y,E){const q=[{label:"settings.dsp.move_up",labelArgs:[],action:()=>{u(E,"up")},disabled:E===0,icon:"mdi-arrow-up"},{label:"settings.dsp.move_down",labelArgs:[],action:()=>{u(E,"down")},disabled:E===g.dsp.filters.length-1,icon:"mdi-arrow-down"},{label:"settings.dsp.delete_filter",labelArgs:[],action:()=>{k(E)},icon:"mdi-delete"}];bl.emit("contextmenu",{items:q,posX:y.clientX,posY:y.clientY})};return(y,E)=>(c(),$(Ml,{density:"compact",side:"end"},{default:a(()=>[l(me,{"dot-color":D("input"),size:"x-small",onClick:E[0]||(E[0]=q=>N("input"))},{default:a(()=>[l(B,{flat:"",rounded:"pill",color:H("input"),class:Q([w("input"),"dsp-pipeline-card"])},{default:a(()=>[l(ae,{class:"px-3 py-1"},{default:a(()=>[f(A(y.$t("settings.dsp.input")),1)]),_:1})]),_:1},8,["color","class"])]),_:1},8,["dot-color"]),l(me,{"hide-dot":!0,size:"x-small"}),(c(!0),pe(fe,null,Ee(y.dsp.filters,(q,I)=>(c(),$(me,{key:I,"dot-color":D(I),size:"x-small","hide-dot":m(I),onClick:oe=>N(I),onContextmenu:Ze(oe=>M(oe,I),["prevent"])},{default:a(()=>[l(B,{flat:"",rounded:"pill",color:H(I),class:Q([w(I),"dsp-pipeline-card"])},{default:a(()=>[l(ae,{class:"px-3 py-1"},{default:a(()=>[f(A(y.$t(`settings.dsp.types.${q.type}`)),1)]),_:2},1024)]),_:2},1032,["color","class"])]),_:2},1032,["dot-color","hide-dot","onClick","onContextmenu"]))),128)),l(me,{"dot-color":"secondary",size:"x-small","hide-dot":!0},{default:a(()=>[l(B,{outlined:"",rounded:"pill",class:"dsp-pipeline-card add-filter-btn",elevation:0,onClick:E[1]||(E[1]=q=>s("onAddFilter"))},{default:a(()=>[l(ae,{class:"py-1 d-flex align-center"},{default:a(()=>[l(K,{size:"small",class:"mr-1"},{default:a(()=>[...E[3]||(E[3]=[f("mdi-plus",-1)])]),_:1}),f(" "+A(y.$t("settings.dsp.filter.add")),1)]),_:1})]),_:1})]),_:1}),l(me,{"hide-dot":!0,size:"x-small"}),l(me,{"dot-color":D("output"),size:"x-small",onClick:E[2]||(E[2]=q=>N("output"))},{default:a(()=>[l(B,{flat:"",rounded:"pill",color:H("output"),class:Q([w("output"),"dsp-pipeline-card"])},{default:a(()=>[l(ae,{class:"px-3 py-1"},{default:a(()=>[f(A(y.$t("settings.dsp.output")),1)]),_:1})]),_:1},8,["color","class"])]),_:1},8,["dot-color"])]),_:1}))}}),Hl=el(Bl,[["__scopeId","data-v-0e0b8e42"]]),Ul={style:{"min-width":"100px"},class:"v-label pl-2"},zl={style:{"min-width":"40px"},class:"pl-2"},J=ge({__name:"DSPSlider",props:Vl({type:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const S=t,V=Ie(t,"modelValue"),g=U(!1),s=G(()=>S.type==="gain"?{min:-15,max:15,step:.1,label:O("settings.dsp.parameter.gain"),unit:"dB",is_log:!1}:S.type==="q"?{min:.1,max:20,step:.1,label:O("settings.dsp.parameter.q_factor"),unit:"",is_log:!1}:S.type==="frequency"?{min:20,max:2e4,step:1,label:O("settings.dsp.parameter.frequency"),unit:"Hz",is_log:!0}:S.type),D=G({get:()=>g.value?V.value.toString():V.value>1e3?V.value.toFixed(0):V.value>100?V.value.toFixed(1):V.value.toFixed(2),set:u=>{V.value=Number(u)}}),m=G({get:()=>s.value.is_log?Math.log10(V.value):V.value,set:u=>{s.value.is_log?V.value=Math.pow(10,u):V.value=u}}),H=G(()=>s.value.is_log?Math.log10(s.value.max):s.value.max),w=G(()=>s.value.is_log?Math.log10(s.value.min):s.value.min),N=G(()=>s.value.is_log?Math.log10(s.value.step):s.value.step);return(u,k)=>(c(),$(te,{flat:"",color:"transparent"},{default:a(()=>[l(ae,{class:"d-flex align-center gap-4"},{default:a(()=>[z("span",Ul,A(s.value.label),1),l(wl,{modelValue:m.value,"onUpdate:modelValue":k[0]||(k[0]=M=>m.value=M),min:w.value,max:H.value,step:N.value,"hide-details":"",class:"flex-grow-1 pr-4",density:"compact",color:"primary"},null,8,["modelValue","min","max","step"]),l(ll,{modelValue:D.value,"onUpdate:modelValue":k[1]||(k[1]=M=>D.value=M),type:"number","hide-details":"",density:"compact",style:{"max-width":"100px"},onFocus:k[2]||(k[2]=M=>g.value=!0),onBlur:k[3]||(k[3]=M=>g.value=!1)},null,8,["modelValue"]),z("span",zl,A(s.value.unit),1)]),_:1})]),_:1}))}}),Nl={class:"d-flex flex-wrap justify-end align-center ga-2 pr-2"},xl={class:"d-flex align-center pl-1"},Wl=ge({__name:"DSPParametricEQ",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(t){const S={PK:L.PEAK,PEQ:L.PEAK,HP:L.HIGH_PASS,HPQ:L.HIGH_PASS,LP:L.LOW_PASS,LPQ:L.LOW_PASS,LS:L.LOW_SHELF,HS:L.HIGH_SHELF,NO:L.NOTCH},V={[L.PEAK]:"PK",[L.HIGH_PASS]:"HP",[L.LOW_PASS]:"LP",[L.LOW_SHELF]:"LS",[L.HIGH_SHELF]:"HS",[L.NOTCH]:"NO"},g=Object.entries(F).map(([n,e])=>({title:O(`settings.dsp.channels.${n}`),value:e})),s=n=>{const e=n.split(`
2
- `),o=[];let P=!1,T={},C=F.ALL;for(const d of e)if(d.startsWith("Channel:")){const v=d.match(/Channel:\s*(.+)/);if(v&&v[1]){const h=v[1].trim().toUpperCase();h==="ALL"||h==="1 2"||h==="L R"?C=F.ALL:h==="L"||h==="1"||h==="FL"?(C=F.FL,P=!0):(h==="R"||h==="2"||h==="FR")&&(C=F.FR,P=!0)}T[C]||(T[C]=0)}else if(d.startsWith("Filter")){const v=d.match(/Filter(?:\s+\d+)?:\s+(ON|OFF)\s+(\w+)\s+(?:Fc\s+)?(\d+\.?\d*)\s*(?:Hz)?\s+(?:Gain\s+)?(-?\d+\.?\d*)\s+dB\s+(?:(?:Q\s+)?(\d+\.?\d*)|(?:BW\s+Oct\s+)(\d+\.?\d*))/);if(v){const[h,Y,Z,Re,Ce,ke,X]=v;Z!=="None"&&o.push({frequency:parseFloat(Re),gain:parseFloat(Ce),q:parseFloat(ke),type:S[Z]||L.PEAK,enabled:Y==="ON",channel:C})}}else if(d.startsWith("Preamp")){const v=d.match(/Preamp:\s*(-?\d+\.?\d*)\s+dB/);v&&(T[C]=parseFloat(v[1]))}let _;P?_=u.value.bands.filter(d=>!o.some(v=>v.channel===d.channel||v.channel===F.ALL||d.channel===F.ALL)):R.value!==F.ALL?(_=u.value.bands.filter(d=>d.channel!==F.ALL&&d.channel!==R.value),T.ALL&&(T[R.value]=T.ALL,T.ALL=0),o.forEach(d=>{d.channel=R.value})):(_=[],u.value.per_channel_preamp={}),u.value.bands=[..._,...o],Object.keys(T).length>0?(T.ALL&&(u.value.preamp=T.ALL),Object.entries(T).forEach(([d,v])=>{d!==F.ALL&&(u.value.per_channel_preamp[d]=v)})):(u.value.preamp=0,u.value.per_channel_preamp={}),Pe(()=>{j.value=-1})},D=n=>{const e=n.target;if(e.files&&e.files[0]){const o=e.files[0],P=new FileReader;P.onload=T=>{T.target?.result&&s(T.target.result)},P.readAsText(o)}},m=U(null),H=()=>{m.value?.click()},w=()=>{let n="";if(n+=`Preamp: ${ve.value.toFixed(2)} dB
3
- `,re.value){const T=Object.values(F);for(const C of T){if(C===F.ALL)continue;const _=g.find(v=>v.value===C)?.title||C;n+=`
4
- # ${_}
1
+ import{x as Fe,y as qe,ck as il,W as Be,Z as ol,Y as rl,C as De,a as z,D as ie,E as Q,b as l,g as K,aG as ul,a7 as Qe,cl as Ke,a6 as Ye,I as we,cb as Xe,z as dl,ac as ml,i as U,ad as le,a4 as he,G as Je,H as pl,O as vl,X as cl,Q as fl,a3 as gl,a1 as ee,N as j,R as yl,a8 as _l,aN as hl,d as ge,T as Oe,e as $,o as c,w as a,c as pe,bI as ae,b4 as f,t as A,F as fe,r as Ee,b0 as Ze,k as bl,bA as Vl,bB as Ie,$ as O,n as te,cm as L,cn as F,ar as Cl,j as Le,q as W,u as h,br as kl,bs as Se,co as Sl,ao as Pe,bw as Pl,cp as ne,av as Ll,b9 as $l,m as se,a_ as He,l as Tl,aW as Al,h as Fl,f as Ue,V as ze,aA as ql,b3 as Ne,bC as xe,bJ as Dl}from"./index-BLuBzgcR.js";import{a as B}from"./VBtn-i8gedOhv.js";import{_ as el}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as wl}from"./VSlider-bRJnej6Z.js";import{V as ll}from"./VTextField-BRzkPyuL.js";import{V as tl}from"./VContainer-DOe7JF0h.js";import{a as be,V as $e}from"./VSwitch-D4nwfxN1.js";import{V as al,a as Te}from"./VRow-Dw7kUaJt.js";import{V as Ae}from"./VSpacer-FdmIBMIx.js";import{V as We,a as Ge}from"./VToolbar-BFOvSQM-.js";import{V as je}from"./VDialog-CUNnqGJy.js";import{V as Ol}from"./VAlert-Du-laR0E.js";import"./VInput-S8c2HXsf.js";/* empty css */import"./VVirtualScroll-JP5E3DQw.js";const El=qe({dotColor:String,fillDot:Boolean,hideDot:Boolean,icon:Xe,iconColor:String,lineColor:String,...we(),...Ye(),...Ke(),...Qe()},"VTimelineDivider"),Il=Fe()({name:"VTimelineDivider",props:El(),setup(t,S){let{slots:b}=S;const{sizeClasses:g,sizeStyles:s}=il(t,"v-timeline-divider__dot"),{backgroundColorStyles:D,backgroundColorClasses:m}=Be(()=>t.dotColor),{roundedClasses:H}=ol(t,"v-timeline-divider__dot"),{elevationClasses:w}=rl(t),{backgroundColorClasses:N,backgroundColorStyles:u}=Be(()=>t.lineColor);return De(()=>z("div",{class:Q(["v-timeline-divider",{"v-timeline-divider--fill-dot":t.fillDot},t.class]),style:ie(t.style)},[z("div",{class:Q(["v-timeline-divider__before",N.value]),style:ie(u.value)},null),!t.hideDot&&z("div",{key:"dot",class:Q(["v-timeline-divider__dot",w.value,H.value,g.value]),style:ie(s.value)},[z("div",{class:Q(["v-timeline-divider__inner-dot",m.value,H.value]),style:ie(D.value)},[b.default?l(ul,{key:"icon-defaults",disabled:!t.icon,defaults:{VIcon:{color:t.iconColor,icon:t.icon,size:t.size}}},b.default):l(K,{key:"icon",color:t.iconColor,icon:t.icon,size:t.size},null)])]),z("div",{class:Q(["v-timeline-divider__after",N.value]),style:ie(u.value)},null)])),{}}}),nl=qe({density:String,dotColor:String,fillDot:Boolean,hideDot:Boolean,hideOpposite:{type:Boolean,default:void 0},icon:Xe,iconColor:String,lineInset:[Number,String],side:{type:String,validator:t=>t==null||["start","end"].includes(t)},...we(),...pl(),...Qe(),...Ye(),...Ke(),...Je()},"VTimelineItem"),me=Fe()({name:"VTimelineItem",props:nl(),setup(t,S){let{slots:b}=S;const{dimensionStyles:g}=dl(t),s=ml(0),D=U();return le(D,m=>{m&&(s.value=m.$el.querySelector(".v-timeline-divider__dot")?.getBoundingClientRect().width??0)},{flush:"post"}),De(()=>z("div",{class:Q(["v-timeline-item",{"v-timeline-item--fill-dot":t.fillDot,"v-timeline-item--side-start":t.side==="start","v-timeline-item--side-end":t.side==="end"},t.class]),style:ie([{"--v-timeline-dot-size":he(s.value),"--v-timeline-line-inset":t.lineInset?`calc(var(--v-timeline-dot-size) / 2 + ${he(t.lineInset)})`:he(0)},t.style])},[z("div",{class:"v-timeline-item__body",style:ie(g.value)},[b.default?.()]),l(Il,{ref:D,hideDot:t.hideDot,icon:t.icon,iconColor:t.iconColor,size:t.size,elevation:t.elevation,dotColor:t.dotColor,fillDot:t.fillDot,rounded:t.rounded},{default:b.icon}),t.density!=="compact"&&z("div",{class:"v-timeline-item__opposite"},[!t.hideOpposite&&b.opposite?.()])])),{}}}),Rl=qe({align:{type:String,default:"center",validator:t=>["center","start"].includes(t)},direction:{type:String,default:"vertical",validator:t=>["vertical","horizontal"].includes(t)},justify:{type:String,default:"auto",validator:t=>["auto","center"].includes(t)},side:{type:String,validator:t=>t==null||["start","end"].includes(t)},lineThickness:{type:[String,Number],default:2},lineColor:String,truncateLine:{type:String,validator:t=>["start","end","both"].includes(t)},...hl(nl({lineInset:0}),["dotColor","fillDot","hideOpposite","iconColor","lineInset","size"]),...we(),..._l(),...Je(),...yl()},"VTimeline"),Ml=Fe()({name:"VTimeline",props:Rl(),setup(t,S){let{slots:b}=S;const{themeClasses:g}=vl(t),{densityClasses:s}=cl(t),{rtlClasses:D}=fl();gl({VTimelineDivider:{lineColor:ee(()=>t.lineColor)},VTimelineItem:{density:ee(()=>t.density),dotColor:ee(()=>t.dotColor),fillDot:ee(()=>t.fillDot),hideOpposite:ee(()=>t.hideOpposite),iconColor:ee(()=>t.iconColor),lineColor:ee(()=>t.lineColor),lineInset:ee(()=>t.lineInset),size:ee(()=>t.size)}});const m=j(()=>{const w=t.side?t.side:t.density!=="default"?"end":null;return w&&`v-timeline--side-${w}`}),H=j(()=>{const w=["v-timeline--truncate-line-start","v-timeline--truncate-line-end"];switch(t.truncateLine){case"both":return w;case"start":return w[0];case"end":return w[1];default:return null}});return De(()=>l(t.tag,{class:Q(["v-timeline",`v-timeline--${t.direction}`,`v-timeline--align-${t.align}`,`v-timeline--justify-${t.justify}`,H.value,{"v-timeline--inset-line":!!t.lineInset},g.value,s.value,m.value,D.value,t.class]),style:ie([{"--v-timeline-line-thickness":he(t.lineThickness)},t.style])},b)),{}}}),Bl=ge({__name:"DSPPipeline",props:{dsp:{},selected:{}},emits:["onSelect","onAddFilter","onMoveFilter","onDeleteFilter"],setup(t,{emit:S}){const b=Oe(),g=t,s=S,D=V=>g.selected===V?"primary":"secondary",m=V=>V==="input"||V==="output"?!1:!g.dsp.filters[V].enabled,H=V=>g.selected===V?"primary":b.global.current.value.dark?"grey-darken-3":"grey-lighten-3",w=V=>({"filter-selected":g.selected===V}),N=V=>{s("onSelect",V)},u=(V,E)=>{s("onMoveFilter",{index:V,direction:E})},k=V=>{s("onDeleteFilter",V)},M=function(V,E){const q=[{label:"settings.dsp.move_up",labelArgs:[],action:()=>{u(E,"up")},disabled:E===0,icon:"mdi-arrow-up"},{label:"settings.dsp.move_down",labelArgs:[],action:()=>{u(E,"down")},disabled:E===g.dsp.filters.length-1,icon:"mdi-arrow-down"},{label:"settings.dsp.delete_filter",labelArgs:[],action:()=>{k(E)},icon:"mdi-delete"}];bl.emit("contextmenu",{items:q,posX:V.clientX,posY:V.clientY})};return(V,E)=>(c(),$(Ml,{density:"compact",side:"end"},{default:a(()=>[l(me,{"dot-color":D("input"),size:"x-small",onClick:E[0]||(E[0]=q=>N("input"))},{default:a(()=>[l(B,{flat:"",rounded:"pill",color:H("input"),class:Q([w("input"),"dsp-pipeline-card"])},{default:a(()=>[l(ae,{class:"px-3 py-1"},{default:a(()=>[f(A(V.$t("settings.dsp.input")),1)]),_:1})]),_:1},8,["color","class"])]),_:1},8,["dot-color"]),l(me,{"hide-dot":!0,size:"x-small"}),(c(!0),pe(fe,null,Ee(t.dsp.filters,(q,I)=>(c(),$(me,{key:I,"dot-color":D(I),size:"x-small","hide-dot":m(I),onClick:oe=>N(I),onContextmenu:Ze(oe=>M(oe,I),["prevent"])},{default:a(()=>[l(B,{flat:"",rounded:"pill",color:H(I),class:Q([w(I),"dsp-pipeline-card"])},{default:a(()=>[l(ae,{class:"px-3 py-1"},{default:a(()=>[f(A(V.$t(`settings.dsp.types.${q.type}`)),1)]),_:2},1024)]),_:2},1032,["color","class"])]),_:2},1032,["dot-color","hide-dot","onClick","onContextmenu"]))),128)),l(me,{"dot-color":"secondary",size:"x-small","hide-dot":!0},{default:a(()=>[l(B,{outlined:"",rounded:"pill",class:"dsp-pipeline-card add-filter-btn",elevation:0,onClick:E[1]||(E[1]=q=>s("onAddFilter"))},{default:a(()=>[l(ae,{class:"py-1 d-flex align-center"},{default:a(()=>[l(K,{size:"small",class:"mr-1"},{default:a(()=>[...E[3]||(E[3]=[f("mdi-plus",-1)])]),_:1}),f(" "+A(V.$t("settings.dsp.filter.add")),1)]),_:1})]),_:1})]),_:1}),l(me,{"hide-dot":!0,size:"x-small"}),l(me,{"dot-color":D("output"),size:"x-small",onClick:E[2]||(E[2]=q=>N("output"))},{default:a(()=>[l(B,{flat:"",rounded:"pill",color:H("output"),class:Q([w("output"),"dsp-pipeline-card"])},{default:a(()=>[l(ae,{class:"px-3 py-1"},{default:a(()=>[f(A(V.$t("settings.dsp.output")),1)]),_:1})]),_:1},8,["color","class"])]),_:1},8,["dot-color"])]),_:1}))}}),Hl=el(Bl,[["__scopeId","data-v-0e0b8e42"]]),Ul={style:{"min-width":"100px"},class:"v-label pl-2"},zl={style:{"min-width":"40px"},class:"pl-2"},J=ge({__name:"DSPSlider",props:Vl({type:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const S=t,b=Ie(t,"modelValue"),g=U(!1),s=j(()=>S.type==="gain"?{min:-15,max:15,step:.1,label:O("settings.dsp.parameter.gain"),unit:"dB",is_log:!1}:S.type==="q"?{min:.1,max:20,step:.1,label:O("settings.dsp.parameter.q_factor"),unit:"",is_log:!1}:S.type==="frequency"?{min:20,max:2e4,step:1,label:O("settings.dsp.parameter.frequency"),unit:"Hz",is_log:!0}:S.type),D=j({get:()=>g.value?b.value.toString():b.value>1e3?b.value.toFixed(0):b.value>100?b.value.toFixed(1):b.value.toFixed(2),set:u=>{b.value=Number(u)}}),m=j({get:()=>s.value.is_log?Math.log10(b.value):b.value,set:u=>{s.value.is_log?b.value=Math.pow(10,u):b.value=u}}),H=j(()=>s.value.is_log?Math.log10(s.value.max):s.value.max),w=j(()=>s.value.is_log?Math.log10(s.value.min):s.value.min),N=j(()=>s.value.is_log?Math.log10(s.value.step):s.value.step);return(u,k)=>(c(),$(te,{flat:"",color:"transparent"},{default:a(()=>[l(ae,{class:"d-flex align-center gap-4"},{default:a(()=>[z("span",Ul,A(s.value.label),1),l(wl,{modelValue:m.value,"onUpdate:modelValue":k[0]||(k[0]=M=>m.value=M),min:w.value,max:H.value,step:N.value,"hide-details":"",class:"flex-grow-1 pr-4",density:"compact",color:"primary"},null,8,["modelValue","min","max","step"]),l(ll,{modelValue:D.value,"onUpdate:modelValue":k[1]||(k[1]=M=>D.value=M),type:"number","hide-details":"",density:"compact",style:{"max-width":"100px"},onFocus:k[2]||(k[2]=M=>g.value=!0),onBlur:k[3]||(k[3]=M=>g.value=!1)},null,8,["modelValue"]),z("span",zl,A(s.value.unit),1)]),_:1})]),_:1}))}}),Nl={class:"d-flex flex-wrap justify-end align-center ga-2 pr-2"},xl={class:"d-flex align-center pl-1"},Wl=ge({__name:"DSPParametricEQ",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(t){const S={PK:L.PEAK,PEQ:L.PEAK,HP:L.HIGH_PASS,HPQ:L.HIGH_PASS,LP:L.LOW_PASS,LPQ:L.LOW_PASS,LS:L.LOW_SHELF,HS:L.HIGH_SHELF,NO:L.NOTCH},b={[L.PEAK]:"PK",[L.HIGH_PASS]:"HP",[L.LOW_PASS]:"LP",[L.LOW_SHELF]:"LS",[L.HIGH_SHELF]:"HS",[L.NOTCH]:"NO"},g=Object.entries(F).map(([n,e])=>({title:O(`settings.dsp.channels.${n}`),value:e})),s=n=>{const e=n.split(`
2
+ `),o=[];let P=!1,T={},C=F.ALL;for(const d of e)if(d.startsWith("Channel:")){const v=d.match(/Channel:\s*(.+)/);if(v&&v[1]){const _=v[1].trim().toUpperCase();_==="ALL"||_==="1 2"||_==="L R"?C=F.ALL:_==="L"||_==="1"||_==="FL"?(C=F.FL,P=!0):(_==="R"||_==="2"||_==="FR")&&(C=F.FR,P=!0)}T[C]||(T[C]=0)}else if(d.startsWith("Filter")){const v=d.match(/Filter(?:\s+\d+)?:\s+(ON|OFF)\s+(\w+)\s+(?:Fc\s+)?(\d+\.?\d*)\s*(?:Hz)?\s+(?:Gain\s+)?(-?\d+\.?\d*)\s+dB\s+(?:(?:Q\s+)?(\d+\.?\d*)|(?:BW\s+Oct\s+)(\d+\.?\d*))/);if(v){const[_,Y,Z,Re,Ce,ke,X]=v;Z!=="None"&&o.push({frequency:parseFloat(Re),gain:parseFloat(Ce),q:parseFloat(ke),type:S[Z]||L.PEAK,enabled:Y==="ON",channel:C})}}else if(d.startsWith("Preamp")){const v=d.match(/Preamp:\s*(-?\d+\.?\d*)\s+dB/);v&&(T[C]=parseFloat(v[1]))}let y;P?y=u.value.bands.filter(d=>!o.some(v=>v.channel===d.channel||v.channel===F.ALL||d.channel===F.ALL)):R.value!==F.ALL?(y=u.value.bands.filter(d=>d.channel!==F.ALL&&d.channel!==R.value),T.ALL&&(T[R.value]=T.ALL,T.ALL=0),o.forEach(d=>{d.channel=R.value})):(y=[],u.value.per_channel_preamp={}),u.value.bands=[...y,...o],Object.keys(T).length>0?(T.ALL&&(u.value.preamp=T.ALL),Object.entries(T).forEach(([d,v])=>{d!==F.ALL&&(u.value.per_channel_preamp[d]=v)})):(u.value.preamp=0,u.value.per_channel_preamp={}),Pe(()=>{G.value=-1})},D=n=>{const e=n.target;if(e.files&&e.files[0]){const o=e.files[0],P=new FileReader;P.onload=T=>{T.target?.result&&s(T.target.result)},P.readAsText(o)}},m=U(null),H=()=>{m.value?.click()},w=()=>{let n="";if(n+=`Preamp: ${ve.value.toFixed(2)} dB
3
+ `,re.value){const T=Object.values(F);for(const C of T){if(C===F.ALL)continue;const y=g.find(v=>v.value===C)?.title||C;n+=`
4
+ # ${y}
5
5
  `,n+=`Channel: ${C===F.FL?"L":"R"}
6
6
  `,u.value.per_channel_preamp[C]!==void 0&&(n+=`Preamp: ${u.value.per_channel_preamp[C].toFixed(2)} dB
7
- `);let d=1;u.value.bands.forEach(v=>{if(v.channel===C||v.channel===F.ALL){const h=V[v.type];n+=`Filter ${d++}: ${v.enabled?"ON":"OFF"} ${h} Fc ${v.frequency.toFixed(1)} Hz Gain ${v.gain.toFixed(2)} dB Q ${v.q.toFixed(3)}
8
- `}})}}else u.value.bands.forEach((T,C)=>{const _=V[T.type];n+=`Filter ${C+1}: ${T.enabled?"ON":"OFF"} ${_} Fc ${T.frequency.toFixed(1)} Hz Gain ${T.gain.toFixed(2)} dB Q ${T.q.toFixed(3)}
9
- `});const e=new Blob([n],{type:"text/plain"}),o=URL.createObjectURL(e),P=document.createElement("a");P.href=o,P.download=`music_assistant_eq_settings_${new Date().toISOString().split("T")[0]}.txt`,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(o)},N=Oe(),u=Ie(t,"modelValue"),k=U(null),M=U(null),y=Object.values(L).map(n=>({title:O(`settings.dsp.parametric_eq.filter_types.${n}`),value:n})),E=n=>![L.HIGH_PASS,L.LOW_PASS,L.NOTCH].includes(n),q=U({width:0,height:0,min_gain:-20,max_gain:20,min_freq:20,max_freq:2e4,padding_lr:40,padding_tb:20}),I=()=>{if(!k.value||!M.value)return;const n=N.global.current.value.dark,e=k.value.getContext("2d");if(!e)return;k.value.width=M.value.clientWidth*2,k.value.height=M.value.clientHeight*2,q.value.width=k.value.width/2,q.value.height=k.value.height/2,e.scale(2,2),e.clearRect(0,0,k.value.width,k.value.height),ce(e,q.value);const o=e.canvas.width/2;e.canvas.height/2;const P=(C,_,d)=>{let v=`hsla(${_*360/u.value.bands.length}, 60%, ${n?70:50}%, 0.5)`;d.beginPath(),_===j.value?(d.lineWidth=5,v=`hsla(${_*360/u.value.bands.length}, 70%, ${n?70:60}%, 1)`):d.lineWidth=2,d.strokeStyle=v;const h=new Float32Array(o);for(let X=0;X<o;X++)h[X]=r(X,q.value);const Y=new Float32Array(o),Z=new Float32Array(o);oe(ye,C).getFrequencyResponse(h,Y,Z);for(let X=q.value.padding_lr;X<o-q.value.padding_lr;X++){const sl=20*Math.log10(Y[X]),Me=p(sl,q.value);X===q.value.padding_lr?d.moveTo(X,Me):d.lineTo(X,Me)}d.stroke();const Ce=i(C.frequency,q.value),ke=p(C.gain,q.value);return d.beginPath(),d.fillStyle=v,d.arc(Ce,ke,6,0,2*Math.PI),d.fill(),{frequencies:h,magResponse:Y}},T=(C,_)=>{_.lineWidth=3,n?_.strokeStyle="#fff":_.strokeStyle="#000",_.beginPath();for(let d=q.value.padding_lr;d<o-q.value.padding_lr;d++){const v=p(C[d],q.value);d===q.value.padding_lr?_.moveTo(d,v):_.lineTo(d,v)}_.stroke()};if(R.value===F.ALL&&re.value){const C=Object.values(F).filter(d=>d!==F.ALL),_={};C.forEach(d=>{_[d]=new Float32Array(o).fill((u.value.preamp??0)+(u.value.per_channel_preamp[d]??0))}),u.value.bands.forEach((d,v)=>{if(d.enabled){const{magResponse:h}=P(d,v,e);if(d.channel===F.ALL)C.forEach(Y=>{for(let Z=0;Z<o;Z++)_[Y][Z]+=20*Math.log10(h[Z])});else for(let Y=0;Y<o;Y++)_[d.channel][Y]+=20*Math.log10(h[Y])}}),C.forEach(d=>{T(_[d],e)})}else{const C=new Float32Array(o).fill((u.value.preamp??0)+(u.value.per_channel_preamp[R.value]??0));u.value.bands.forEach((_,d)=>{if(_.enabled&&_.channel===R.value||_.channel===F.ALL){const{magResponse:v}=P(_,d,e);for(let h=0;h<o;h++)C[h]+=20*Math.log10(v[h])}}),T(C,e)}},oe=(n,e)=>{const o=n.createBiquadFilter();switch(e.type){case L.HIGH_PASS:o.type="highpass";break;case L.LOW_PASS:o.type="lowpass";break;case L.HIGH_SHELF:o.type="highshelf";break;case L.LOW_SHELF:o.type="lowshelf";break;case L.NOTCH:o.type="notch";break;case L.PEAK:o.type="peaking";break}return o.frequency.value=e.frequency,o.Q.value=e.q,o.gain.value=e.gain,o},ye=new AudioContext;G(()=>u.value.bands.map(n=>oe(ye,n)));const re=G(()=>u.value.bands.some(n=>n.channel!==F.ALL)||Object.keys(u.value.per_channel_preamp).length>0&&Object.values(u.value.per_channel_preamp).some(n=>n!==0)),ue=U(!1),j=U(-1),R=U(F.ALL),x=G(()=>u.value.bands[j.value]),ve=G({get:()=>u.value.preamp??0,set:n=>{u.value.preamp=n}}),_e=G({get:()=>u.value.per_channel_preamp[R.value]??0,set:n=>{R.value!==F.ALL&&(u.value.per_channel_preamp[R.value]=n)}}),de=n=>{u.value.bands.splice(n,1),j.value>=u.value.bands.length&&Pe(()=>{j.value=u.value.bands.length-1})},Ve=()=>{const n=u.value.bands.length;u.value.bands.push({frequency:1e3,q:1,gain:0,type:L.PEAK,enabled:!0,channel:R.value}),Pe(()=>{j.value=n})};le(()=>u.value.preamp,I),le(()=>u.value.per_channel_preamp,I,{deep:!0}),le(()=>(j.value,u.value.bands),()=>{j.value>=u.value.bands.length&&(j.value=u.value.bands.length-1),I()},{deep:!0}),le(()=>R.value,I),le(()=>N.global.current.value.dark,I),Cl(()=>{re.value&&(ue.value=!0)}),Le(()=>{I(),window.addEventListener("resize",I)});const i=(n,e)=>{const o=Math.log2(n/e.min_freq),P=Math.log2(e.max_freq/e.min_freq);return o/P*(e.width-e.padding_lr*2)+e.padding_lr},r=(n,e)=>{const o=Math.log2(e.max_freq/e.min_freq),P=e.min_freq*Math.pow(2,(n-e.padding_lr)/(e.width-e.padding_lr*2)*o);return Math.min(Math.max(P,e.min_freq),e.max_freq)},p=(n,e)=>e.height/2-n*(e.height-2*e.padding_tb)/(2*Math.max(Math.abs(e.min_gain),Math.abs(e.max_gain))),ce=(n,e)=>{const o=n.canvas.width/2,P=n.canvas.height/2;N.global.current.value.dark?(n.fillStyle="#eee",n.strokeStyle="#eee"):(n.fillStyle="#222",n.strokeStyle="#666"),n.lineWidth=1,[20,50,100,200,500,1e3,2e3,5e3,1e4,2e4].forEach(v=>{const h=i(v,e);n.beginPath(),n.moveTo(h,e.padding_tb),n.lineTo(h,P-e.padding_tb),n.stroke(),n.font="10px Arial",n.textAlign="center",n.fillText(v>=1e3?`${v/1e3}k`:v.toString(),h,P-5)});const _=e.max_gain-e.min_gain,d=Math.ceil(_/(e.height/30));for(let v=e.min_gain;v<=e.max_gain;v+=d){const h=p(v,e);n.beginPath(),n.moveTo(e.padding_lr,h),n.lineTo(o-e.padding_lr,h),n.stroke(),n.font="10px Arial",n.textAlign="right",n.fillText(`${v}dB`,e.padding_lr-3,h+3)}};return Le(()=>{const n=new ResizeObserver(()=>{I()});return M.value&&n.observe(M.value),()=>{n.disconnect()}}),(n,e)=>(c(),$(tl,{class:"pa-2"},{default:a(()=>[z("div",Nl,[ue.value?(c(),$(be,{key:1,modelValue:R.value,"onUpdate:modelValue":e[1]||(e[1]=o=>R.value=o),class:"pa-2",items:b(g),label:b(O)("settings.dsp.parametric_eq.edited_channel"),variant:"outlined",density:"comfortable",style:{"min-width":"250px"},"hide-details":""},null,8,["modelValue","items","label"])):(c(),$(B,{key:0,variant:"outlined",onClick:e[0]||(e[0]=()=>{ue.value=!0})},{default:a(()=>[l(K,{start:""},{default:a(()=>[...e[12]||(e[12]=[f("mdi-speaker-multiple",-1)])]),_:1}),f(" "+A(b(O)("settings.dsp.parametric_eq.show_multichannel_controls")),1)]),_:1})),l(B,{variant:"outlined",onClick:H},{default:a(()=>[l(K,{start:""},{default:a(()=>[...e[13]||(e[13]=[f("mdi-file-import",-1)])]),_:1}),f(" "+A(b(O)("settings.dsp.parametric_eq.import_apo")),1)]),_:1}),l(B,{variant:"outlined",onClick:w},{default:a(()=>[l(K,{start:""},{default:a(()=>[...e[14]||(e[14]=[f("mdi-file-export",-1)])]),_:1}),f(" "+A(b(O)("settings.dsp.parametric_eq.export_apo")),1)]),_:1}),z("input",{ref_key:"fileInputRef",ref:m,type:"file",accept:".txt",class:"d-none",onChange:D},null,544)]),l(te,{elevation:"0",color:"transparent"},{default:a(()=>[z("div",{ref_key:"graphContainer",ref:M,class:"graph-container"},[z("canvas",{ref_key:"canvas",ref:k,class:"frequency-graph"},null,512)],512)]),_:1}),l(te,{elevation:"0",color:"transparent",class:"border-t border-b rounded-0"},{default:a(()=>[l(ae,{class:"pa-0"},{default:a(()=>[l(kl,{modelValue:j.value,"onUpdate:modelValue":e[2]||(e[2]=o=>j.value=o),class:"mb-0 pa-2",mandatory:"","selected-class":"primary"},{default:a(()=>[(c(),$(Se,{key:-1,value:-1,filter:"",variant:"elevated"},{default:a(()=>[f(A(b(O)("settings.dsp.parametric_eq.preamp",{index:100})),1)]),_:1})),(c(!0),pe(fe,null,Ee(u.value.bands,(o,P)=>(c(),$(Se,{key:P,value:P,class:Q({"opacity-50":!o.enabled}),filter:"",variant:"elevated"},{default:a(()=>[f(A(o.channel===b(F).ALL?b(O)("settings.dsp.parametric_eq.band",{index:P+1}):b(O)("settings.dsp.parametric_eq.band_channel",{index:P+1,channel:b(O)(`settings.dsp.channels_compact.${o.channel}`)})),1)]),_:2},1032,["value","class"]))),128)),l(Se,{variant:"outlined",onClick:Ve},{default:a(()=>[l(K,{icon:"mdi-plus",start:""}),f(" "+A(R.value===b(F).ALL?b(O)("settings.dsp.parametric_eq.add_band"):b(O)("settings.dsp.parametric_eq.add_band_channel",{channel:b(O)(`settings.dsp.channels.${R.value}`)})),1)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),j.value===-1?(c(),$(te,{key:0,elevation:"0",color:"transparent"},{default:a(()=>[l(ae,null,{default:a(()=>[l(al,{dense:""},{default:a(()=>[l(Te,{cols:"12"},{default:a(()=>[l(J,{modelValue:ve.value,"onUpdate:modelValue":e[3]||(e[3]=o=>ve.value=o),type:"gain"},null,8,["modelValue"]),R.value!==b(F).ALL?(c(),$(J,{key:0,modelValue:_e.value,"onUpdate:modelValue":e[4]||(e[4]=o=>_e.value=o),type:{min:-15,max:15,step:.1,label:b(O)("settings.dsp.parametric_eq.per_channel_preamp",{channel:b(O)(`settings.dsp.channels.${R.value}`)}),unit:"dB",is_log:!1}},null,8,["modelValue","type"])):W("",!0)]),_:1})]),_:1})]),_:1})]),_:1})):W("",!0),x.value?(c(),pe(fe,{key:1},[l(Sl,null,{default:a(()=>[z("div",xl,[l($e,{modelValue:x.value.enabled,"onUpdate:modelValue":e[5]||(e[5]=o=>x.value.enabled=o),label:b(O)("settings.dsp.parametric_eq.enable_band"),density:"comfortable","hide-details":"",color:"primary"},null,8,["modelValue","label"]),l(Ae),l(B,{color:"error",variant:"tonal",onClick:e[6]||(e[6]=o=>de(j.value))},{default:a(()=>[l(K,null,{default:a(()=>[...e[15]||(e[15]=[f("mdi-delete",-1)])]),_:1}),f(" "+A(b(O)("settings.dsp.parametric_eq.delete_band")),1)]),_:1})])]),_:1}),l(be,{modelValue:x.value.type,"onUpdate:modelValue":e[7]||(e[7]=o=>x.value.type=o),items:b(y),label:b(O)("settings.dsp.parametric_eq.filter_type"),variant:"outlined",density:"comfortable",class:"pa-4","hide-details":""},null,8,["modelValue","items","label"]),l(J,{modelValue:x.value.frequency,"onUpdate:modelValue":e[8]||(e[8]=o=>x.value.frequency=o),type:"frequency"},null,8,["modelValue"]),E(x.value.type)?(c(),$(J,{key:0,modelValue:x.value.gain,"onUpdate:modelValue":e[9]||(e[9]=o=>x.value.gain=o),type:"gain"},null,8,["modelValue"])):W("",!0),l(J,{modelValue:x.value.q,"onUpdate:modelValue":e[10]||(e[10]=o=>x.value.q=o),type:"q"},null,8,["modelValue"]),ue.value?(c(),$(be,{key:1,modelValue:x.value.channel,"onUpdate:modelValue":e[11]||(e[11]=o=>x.value.channel=o),items:b(g),label:b(O)("settings.dsp.parametric_eq.channel"),variant:"outlined",density:"comfortable",class:"pa-4","hide-details":""},null,8,["modelValue","items","label"])):W("",!0)],64)):W("",!0)]),_:1}))}}),jl=el(Wl,[["__scopeId","data-v-ac29d681"]]),Gl=ge({__name:"DSPToneControl",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(t){const S=Ie(t,"modelValue");return(V,g)=>(c(),pe(fe,null,[l(J,{modelValue:S.value.bass_level,"onUpdate:modelValue":g[0]||(g[0]=s=>S.value.bass_level=s),type:{min:-10,max:10,step:.1,label:V.$t("settings.dsp.tone_control.bass_level"),unit:"dB",is_log:!1}},null,8,["modelValue","type"]),l(J,{modelValue:S.value.mid_level,"onUpdate:modelValue":g[1]||(g[1]=s=>S.value.mid_level=s),type:{min:-10,max:10,step:.1,label:V.$t("settings.dsp.tone_control.mid_level"),unit:"dB",is_log:!1}},null,8,["modelValue","type"]),l(J,{modelValue:S.value.treble_level,"onUpdate:modelValue":g[2]||(g[2]=s=>S.value.treble_level=s),type:{min:-10,max:10,step:.1,label:V.$t("settings.dsp.tone_control.treble_level"),unit:"dB",is_log:!1}},null,8,["modelValue","type"])],64))}}),Ql={key:0},Kl={class:"d-none d-md-inline"},Yl={class:"d-none d-md-inline"},pt=ge({__name:"EditPlayerDsp",props:{playerId:{}},setup(t){const{t:S}=Pl();Dl();const V=Oe(),g=t,s=U(),D=U([]),m=U(null),H=U(!1),w=U(!1),N=U(ne.PARAMETRIC_EQ),u=U("");U(window.innerWidth);const{mobile:k}=Ll();let M=!1,y;const E=Object.values(ne).map(i=>({value:i,title:S(`settings.dsp.types.${i}`)})),q=()=>V.global.current.value.dark?"bg-grey-darken-3":"bg-grey-lighten-3",I=i=>{m.value=i},oe=i=>S(i==="input"?"settings.dsp.input":i==="output"?"settings.dsp.output":`settings.dsp.types.${s.value?.filters[i].type}`),ye=()=>{if(!s.value)return;let i;switch(N.value){case ne.PARAMETRIC_EQ:i={preamp:0,per_channel_preamp:{},enabled:!0,type:ne.PARAMETRIC_EQ,bands:[]};break;case ne.TONE_CONTROL:i={enabled:!0,type:ne.TONE_CONTROL,bass_level:0,mid_level:0,treble_level:0};break;default:return}s.value.filters.push(i),H.value=!1,I(s.value.filters.length-1)},re=(i,r)=>{if(!s.value)return;const p=r==="up"?i-1:i+1;if(p<0||p>=s.value.filters.length)return;const[ce]=s.value.filters.splice(i,1);s.value.filters.splice(p,0,ce),m.value===i?m.value=p:m.value===p&&(m.value=i)},ue=i=>{m.value===i&&(m.value="input"),s.value?.filters.splice(i,1)},j=async i=>{!i||!i.config||(m.value="input",s.value=i.config)},R=async()=>{if(!s.value||!u.value.trim())return;const i={name:u.value.trim(),config:s.value};try{await se.saveDSPPreset(i),u.value="",w.value=!1}catch(r){console.error("Failed to save DSP preset:",r)}},x=async i=>{!i||!confirm(S("settings.dsp.presets.remove_confirm"))||(await se.removeDSPPreset(i),D.value=D.value.filter(r=>r.preset_id!==i))};le(k,i=>{!i&&m.value===null&&I("input")},{immediate:!0});const ve=G(()=>$l(se.players[g.playerId],27));le(()=>g.playerId,async i=>{y&&y(),M=!0,i&&(s.value=await se.getDSPConfig(i)),y=se.subscribe(He.PLAYER_DSP_CONFIG_UPDATED,r=>{M=!0,s.value=r.data},g.playerId)},{immediate:!0});const _e=se.subscribe(He.DSP_PRESETS_UPDATED,i=>{D.value=i.data});Le(async()=>{D.value=await se.getDSPPresets()}),Tl(()=>{y&&y(),_e()});let de=null;const Ve=i=>{de&&clearTimeout(de),de=setTimeout(async()=>{g.playerId&&await se.saveDSPConfig(g.playerId,i)},2e3)};return le(s,(i,r)=>{if(M){de&&clearTimeout(de),M=!1;return}r!==null&&i&&Ve(i)},{deep:!0}),(i,r)=>s.value?(c(),pe("section",Ql,[l(We,{color:"transparent",class:"border-b pr-4"},{default:a(()=>[l($e,{modelValue:s.value.enabled,"onUpdate:modelValue":r[0]||(r[0]=p=>s.value.enabled=p),"hide-details":"",color:"primary",class:"pl-4"},null,8,["modelValue"]),l(je,null,{default:a(()=>[f(A(i.$t("settings.dsp.configure_on",{name:ve.value})),1)]),_:1}),l(Al,{"offset-y":"",transition:"slide-y-transition"},{activator:a(({props:p})=>[l(B,ql(p,{class:["mr-4",q()]}),{default:a(()=>[l(K,{class:"p-0 ms-md-n1 me-md-2"},{default:a(()=>[...r[19]||(r[19]=[f(" mdi-tray-arrow-down ",-1)])]),_:1}),z("span",Kl,A(i.$t("settings.dsp.presets.load")),1)]),_:1},16,["class"])]),default:a(()=>[l(Fl,null,{default:a(()=>[D.value.length===0?(c(),$(ze,{key:0},{default:a(()=>[l(Ue,null,{default:a(()=>[f(A(i.$t("settings.dsp.presets.empty_warning")),1)]),_:1})]),_:1})):(c(!0),pe(fe,{key:1},Ee(D.value,p=>(c(),$(ze,{key:p.preset_id,onClick:ce=>j(p)},{append:a(()=>[l(B,{icon:"mdi-delete",variant:"text",density:"compact",onClick:Ze(ce=>x(p.preset_id),["stop"])},null,8,["onClick"])]),default:a(()=>[l(Ue,null,{default:a(()=>[f(A(p.name),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),l(B,{class:Q(q()),onClick:r[1]||(r[1]=p=>w.value=!0)},{default:a(()=>[l(K,{class:"p-0 ms-md-n1 me-md-2"},{default:a(()=>[...r[20]||(r[20]=[f(" mdi-content-save ",-1)])]),_:1}),z("span",Yl,A(i.$t("settings.dsp.presets.save")),1)]),_:1},8,["class"])]),_:1}),l(tl,{class:"pa-4"},{default:a(()=>[s.value.enabled?W("",!0):(c(),$(Ol,{key:0,type:"info",class:"mt-4",color:"transparent"},{default:a(()=>[f(A(i.$t("settings.dsp.disabled_message")),1)]),_:1})),l(al,{class:Q([{"justify-center":b(k)},"flex-nowrap"])},{default:a(()=>[!b(k)||m.value===null?(c(),$(Te,{key:0,class:Q(["flex-grow-0 flex-shrink-0",{"border-e pr-4":!b(k)}]),"align-self":"start"},{default:a(()=>[l(Hl,{dsp:s.value,selected:m.value,onOnSelect:I,onOnAddFilter:r[2]||(r[2]=p=>H.value=!0),onOnMoveFilter:r[3]||(r[3]=p=>re(p.index,p.direction)),onOnDeleteFilter:ue},null,8,["dsp","selected"])]),_:1},8,["class"])):W("",!0),m.value!=null?(c(),$(Te,{key:1,style:{"min-width":"0"}},{default:a(()=>[l(We,{density:"compact",color:i.$vuetify.theme.current.dark?"surface":"surface-light",class:"border-b"},{default:a(()=>[b(k)?(c(),$(B,{key:0,class:"hidden-xs-only",icon:"",onClick:r[4]||(r[4]=p=>m.value=null)},{default:a(()=>[l(K,null,{default:a(()=>[...r[21]||(r[21]=[f("mdi-arrow-left",-1)])]),_:1})]),_:1})):W("",!0),l(je,null,{default:a(()=>[f(A(oe(m.value)),1)]),_:1}),typeof m.value=="number"&&!b(k)&&m.value>0?(c(),$(B,{key:1,icon:"",onClick:r[5]||(r[5]=p=>re(m.value,"up"))},{default:a(()=>[l(K,null,{default:a(()=>[...r[22]||(r[22]=[f("mdi-arrow-up",-1)])]),_:1})]),_:1})):W("",!0),typeof m.value=="number"&&!b(k)&&m.value<s.value.filters.length-1?(c(),$(B,{key:2,icon:"",onClick:r[6]||(r[6]=p=>re(m.value,"down"))},{default:a(()=>[l(K,null,{default:a(()=>[...r[23]||(r[23]=[f("mdi-arrow-down",-1)])]),_:1})]),_:1})):W("",!0),typeof m.value=="number"?(c(),$($e,{key:3,modelValue:s.value.filters[m.value].enabled,"onUpdate:modelValue":r[7]||(r[7]=p=>s.value.filters[m.value].enabled=p),"hide-details":"",color:"primary",class:"mr-4"},null,8,["modelValue"])):W("",!0),typeof m.value=="number"?(c(),$(B,{key:4,icon:"",onClick:r[8]||(r[8]=p=>ue(m.value))},{default:a(()=>[l(K,null,{default:a(()=>[...r[24]||(r[24]=[f("mdi-delete",-1)])]),_:1})]),_:1})):W("",!0)]),_:1},8,["color"]),m.value==="input"?(c(),$(te,{key:0,flat:"",color:i.$vuetify.theme.current.dark?"surface":"surface-light"},{default:a(()=>[l(J,{modelValue:s.value.input_gain,"onUpdate:modelValue":r[9]||(r[9]=p=>s.value.input_gain=p),type:"gain"},null,8,["modelValue"])]),_:1},8,["color"])):m.value==="output"?(c(),$(te,{key:1,flat:"",color:i.$vuetify.theme.current.dark?"surface":"surface-light"},{default:a(()=>[l(J,{modelValue:s.value.output_gain,"onUpdate:modelValue":r[10]||(r[10]=p=>s.value.output_gain=p),type:"gain"},null,8,["modelValue"])]),_:1},8,["color"])):(c(),$(te,{key:2,flat:"",color:i.$vuetify.theme.current.dark?"surface":"surface-light"},{default:a(()=>[s.value.filters[m.value].type===b(ne).PARAMETRIC_EQ?(c(),$(jl,{key:0,modelValue:s.value.filters[m.value],"onUpdate:modelValue":r[11]||(r[11]=p=>s.value.filters[m.value]=p)},null,8,["modelValue"])):W("",!0),s.value.filters[m.value].type===b(ne).TONE_CONTROL?(c(),$(Gl,{key:1,modelValue:s.value.filters[m.value],"onUpdate:modelValue":r[12]||(r[12]=p=>s.value.filters[m.value]=p)},null,8,["modelValue"])):W("",!0)]),_:1},8,["color"]))]),_:1})):W("",!0)]),_:1},8,["class"])]),_:1}),l(Ge,{modelValue:w.value,"onUpdate:modelValue":r[15]||(r[15]=p=>w.value=p),"max-width":"300"},{default:a(()=>[l(te,null,{default:a(()=>[l(Ne,null,{default:a(()=>[f(A(i.$t("settings.dsp.presets.save")),1)]),_:1}),l(ae,null,{default:a(()=>[l(ll,{modelValue:u.value,"onUpdate:modelValue":r[13]||(r[13]=p=>u.value=p),label:i.$t("settings.dsp.presets.name"),placeholder:i.$t("settings.dsp.presets.name_placeholder"),variant:"outlined"},null,8,["modelValue","label","placeholder"])]),_:1}),l(xe,null,{default:a(()=>[l(Ae),l(B,{onClick:r[14]||(r[14]=p=>w.value=!1)},{default:a(()=>[f(A(i.$t("cancel")),1)]),_:1}),l(B,{color:"primary",disabled:!u.value.trim(),onClick:R},{default:a(()=>[f(A(i.$t("settings.dsp.presets.save")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(Ge,{modelValue:H.value,"onUpdate:modelValue":r[18]||(r[18]=p=>H.value=p),"max-width":"300"},{default:a(()=>[l(te,null,{default:a(()=>[l(Ne,null,{default:a(()=>[f(A(i.$t("settings.dsp.filter.add")),1)]),_:1}),l(ae,null,{default:a(()=>[l(be,{modelValue:N.value,"onUpdate:modelValue":r[16]||(r[16]=p=>N.value=p),items:b(E),label:i.$t("settings.dsp.filter.type")},null,8,["modelValue","items","label"])]),_:1}),l(xe,null,{default:a(()=>[l(Ae),l(B,{onClick:r[17]||(r[17]=p=>H.value=!1)},{default:a(()=>[f(A(i.$t("cancel")),1)]),_:1}),l(B,{color:"primary",onClick:ye},{default:a(()=>[f(A(i.$t("settings.dsp.filter.add")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])])):W("",!0)}});export{pt as default};
7
+ `);let d=1;u.value.bands.forEach(v=>{if(v.channel===C||v.channel===F.ALL){const _=b[v.type];n+=`Filter ${d++}: ${v.enabled?"ON":"OFF"} ${_} Fc ${v.frequency.toFixed(1)} Hz Gain ${v.gain.toFixed(2)} dB Q ${v.q.toFixed(3)}
8
+ `}})}}else u.value.bands.forEach((T,C)=>{const y=b[T.type];n+=`Filter ${C+1}: ${T.enabled?"ON":"OFF"} ${y} Fc ${T.frequency.toFixed(1)} Hz Gain ${T.gain.toFixed(2)} dB Q ${T.q.toFixed(3)}
9
+ `});const e=new Blob([n],{type:"text/plain"}),o=URL.createObjectURL(e),P=document.createElement("a");P.href=o,P.download=`music_assistant_eq_settings_${new Date().toISOString().split("T")[0]}.txt`,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(o)},N=Oe(),u=Ie(t,"modelValue"),k=U(null),M=U(null),V=Object.values(L).map(n=>({title:O(`settings.dsp.parametric_eq.filter_types.${n}`),value:n})),E=n=>![L.HIGH_PASS,L.LOW_PASS,L.NOTCH].includes(n),q=U({width:0,height:0,min_gain:-20,max_gain:20,min_freq:20,max_freq:2e4,padding_lr:40,padding_tb:20}),I=()=>{if(!k.value||!M.value)return;const n=N.global.current.value.dark,e=k.value.getContext("2d");if(!e)return;k.value.width=M.value.clientWidth*2,k.value.height=M.value.clientHeight*2,q.value.width=k.value.width/2,q.value.height=k.value.height/2,e.scale(2,2),e.clearRect(0,0,k.value.width,k.value.height),ce(e,q.value);const o=e.canvas.width/2;e.canvas.height/2;const P=(C,y,d)=>{let v=`hsla(${y*360/u.value.bands.length}, 60%, ${n?70:50}%, 0.5)`;d.beginPath(),y===G.value?(d.lineWidth=5,v=`hsla(${y*360/u.value.bands.length}, 70%, ${n?70:60}%, 1)`):d.lineWidth=2,d.strokeStyle=v;const _=new Float32Array(o);for(let X=0;X<o;X++)_[X]=r(X,q.value);const Y=new Float32Array(o),Z=new Float32Array(o);oe(ye,C).getFrequencyResponse(_,Y,Z);for(let X=q.value.padding_lr;X<o-q.value.padding_lr;X++){const sl=20*Math.log10(Y[X]),Me=p(sl,q.value);X===q.value.padding_lr?d.moveTo(X,Me):d.lineTo(X,Me)}d.stroke();const Ce=i(C.frequency,q.value),ke=p(C.gain,q.value);return d.beginPath(),d.fillStyle=v,d.arc(Ce,ke,6,0,2*Math.PI),d.fill(),{frequencies:_,magResponse:Y}},T=(C,y)=>{y.lineWidth=3,n?y.strokeStyle="#fff":y.strokeStyle="#000",y.beginPath();for(let d=q.value.padding_lr;d<o-q.value.padding_lr;d++){const v=p(C[d],q.value);d===q.value.padding_lr?y.moveTo(d,v):y.lineTo(d,v)}y.stroke()};if(R.value===F.ALL&&re.value){const C=Object.values(F).filter(d=>d!==F.ALL),y={};C.forEach(d=>{y[d]=new Float32Array(o).fill((u.value.preamp??0)+(u.value.per_channel_preamp[d]??0))}),u.value.bands.forEach((d,v)=>{if(d.enabled){const{magResponse:_}=P(d,v,e);if(d.channel===F.ALL)C.forEach(Y=>{for(let Z=0;Z<o;Z++)y[Y][Z]+=20*Math.log10(_[Z])});else for(let Y=0;Y<o;Y++)y[d.channel][Y]+=20*Math.log10(_[Y])}}),C.forEach(d=>{T(y[d],e)})}else{const C=new Float32Array(o).fill((u.value.preamp??0)+(u.value.per_channel_preamp[R.value]??0));u.value.bands.forEach((y,d)=>{if(y.enabled&&y.channel===R.value||y.channel===F.ALL){const{magResponse:v}=P(y,d,e);for(let _=0;_<o;_++)C[_]+=20*Math.log10(v[_])}}),T(C,e)}},oe=(n,e)=>{const o=n.createBiquadFilter();switch(e.type){case L.HIGH_PASS:o.type="highpass";break;case L.LOW_PASS:o.type="lowpass";break;case L.HIGH_SHELF:o.type="highshelf";break;case L.LOW_SHELF:o.type="lowshelf";break;case L.NOTCH:o.type="notch";break;case L.PEAK:o.type="peaking";break}return o.frequency.value=e.frequency,o.Q.value=e.q,o.gain.value=e.gain,o},ye=new AudioContext;j(()=>u.value.bands.map(n=>oe(ye,n)));const re=j(()=>u.value.bands.some(n=>n.channel!==F.ALL)||Object.keys(u.value.per_channel_preamp).length>0&&Object.values(u.value.per_channel_preamp).some(n=>n!==0)),ue=U(!1),G=U(-1),R=U(F.ALL),x=j(()=>u.value.bands[G.value]),ve=j({get:()=>u.value.preamp??0,set:n=>{u.value.preamp=n}}),_e=j({get:()=>u.value.per_channel_preamp[R.value]??0,set:n=>{R.value!==F.ALL&&(u.value.per_channel_preamp[R.value]=n)}}),de=n=>{u.value.bands.splice(n,1),G.value>=u.value.bands.length&&Pe(()=>{G.value=u.value.bands.length-1})},Ve=()=>{const n=u.value.bands.length;u.value.bands.push({frequency:1e3,q:1,gain:0,type:L.PEAK,enabled:!0,channel:R.value}),Pe(()=>{G.value=n})};le(()=>u.value.preamp,I),le(()=>u.value.per_channel_preamp,I,{deep:!0}),le(()=>(G.value,u.value.bands),()=>{G.value>=u.value.bands.length&&(G.value=u.value.bands.length-1),I()},{deep:!0}),le(()=>R.value,I),le(()=>N.global.current.value.dark,I),Cl(()=>{re.value&&(ue.value=!0)}),Le(()=>{I(),window.addEventListener("resize",I)});const i=(n,e)=>{const o=Math.log2(n/e.min_freq),P=Math.log2(e.max_freq/e.min_freq);return o/P*(e.width-e.padding_lr*2)+e.padding_lr},r=(n,e)=>{const o=Math.log2(e.max_freq/e.min_freq),P=e.min_freq*Math.pow(2,(n-e.padding_lr)/(e.width-e.padding_lr*2)*o);return Math.min(Math.max(P,e.min_freq),e.max_freq)},p=(n,e)=>e.height/2-n*(e.height-2*e.padding_tb)/(2*Math.max(Math.abs(e.min_gain),Math.abs(e.max_gain))),ce=(n,e)=>{const o=n.canvas.width/2,P=n.canvas.height/2;N.global.current.value.dark?(n.fillStyle="#eee",n.strokeStyle="#eee"):(n.fillStyle="#222",n.strokeStyle="#666"),n.lineWidth=1,[20,50,100,200,500,1e3,2e3,5e3,1e4,2e4].forEach(v=>{const _=i(v,e);n.beginPath(),n.moveTo(_,e.padding_tb),n.lineTo(_,P-e.padding_tb),n.stroke(),n.font="10px Arial",n.textAlign="center",n.fillText(v>=1e3?`${v/1e3}k`:v.toString(),_,P-5)});const y=e.max_gain-e.min_gain,d=Math.ceil(y/(e.height/30));for(let v=e.min_gain;v<=e.max_gain;v+=d){const _=p(v,e);n.beginPath(),n.moveTo(e.padding_lr,_),n.lineTo(o-e.padding_lr,_),n.stroke(),n.font="10px Arial",n.textAlign="right",n.fillText(`${v}dB`,e.padding_lr-3,_+3)}};return Le(()=>{const n=new ResizeObserver(()=>{I()});return M.value&&n.observe(M.value),()=>{n.disconnect()}}),(n,e)=>(c(),$(tl,{class:"pa-2"},{default:a(()=>[z("div",Nl,[ue.value?(c(),$(be,{key:1,modelValue:R.value,"onUpdate:modelValue":e[1]||(e[1]=o=>R.value=o),class:"pa-2",items:h(g),label:h(O)("settings.dsp.parametric_eq.edited_channel"),variant:"outlined",density:"comfortable",style:{"min-width":"250px"},"hide-details":""},null,8,["modelValue","items","label"])):(c(),$(B,{key:0,variant:"outlined",onClick:e[0]||(e[0]=()=>{ue.value=!0})},{default:a(()=>[l(K,{start:""},{default:a(()=>[...e[12]||(e[12]=[f("mdi-speaker-multiple",-1)])]),_:1}),f(" "+A(h(O)("settings.dsp.parametric_eq.show_multichannel_controls")),1)]),_:1})),l(B,{variant:"outlined",onClick:H},{default:a(()=>[l(K,{start:""},{default:a(()=>[...e[13]||(e[13]=[f("mdi-file-import",-1)])]),_:1}),f(" "+A(h(O)("settings.dsp.parametric_eq.import_apo")),1)]),_:1}),l(B,{variant:"outlined",onClick:w},{default:a(()=>[l(K,{start:""},{default:a(()=>[...e[14]||(e[14]=[f("mdi-file-export",-1)])]),_:1}),f(" "+A(h(O)("settings.dsp.parametric_eq.export_apo")),1)]),_:1}),z("input",{ref_key:"fileInputRef",ref:m,type:"file",accept:".txt",class:"d-none",onChange:D},null,544)]),l(te,{elevation:"0",color:"transparent"},{default:a(()=>[z("div",{ref_key:"graphContainer",ref:M,class:"graph-container"},[z("canvas",{ref_key:"canvas",ref:k,class:"frequency-graph"},null,512)],512)]),_:1}),l(te,{elevation:"0",color:"transparent",class:"border-t border-b rounded-0"},{default:a(()=>[l(ae,{class:"pa-0"},{default:a(()=>[l(kl,{modelValue:G.value,"onUpdate:modelValue":e[2]||(e[2]=o=>G.value=o),class:"mb-0 pa-2",mandatory:"","selected-class":"primary"},{default:a(()=>[(c(),$(Se,{key:-1,value:-1,filter:"",variant:"elevated"},{default:a(()=>[f(A(h(O)("settings.dsp.parametric_eq.preamp",{index:100})),1)]),_:1})),(c(!0),pe(fe,null,Ee(u.value.bands,(o,P)=>(c(),$(Se,{key:P,value:P,class:Q({"opacity-50":!o.enabled}),filter:"",variant:"elevated"},{default:a(()=>[f(A(o.channel===h(F).ALL?h(O)("settings.dsp.parametric_eq.band",{index:P+1}):h(O)("settings.dsp.parametric_eq.band_channel",{index:P+1,channel:h(O)(`settings.dsp.channels_compact.${o.channel}`)})),1)]),_:2},1032,["value","class"]))),128)),l(Se,{variant:"outlined",onClick:Ve},{default:a(()=>[l(K,{icon:"mdi-plus",start:""}),f(" "+A(R.value===h(F).ALL?h(O)("settings.dsp.parametric_eq.add_band"):h(O)("settings.dsp.parametric_eq.add_band_channel",{channel:h(O)(`settings.dsp.channels.${R.value}`)})),1)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),G.value===-1?(c(),$(te,{key:0,elevation:"0",color:"transparent"},{default:a(()=>[l(ae,null,{default:a(()=>[l(al,{dense:""},{default:a(()=>[l(Te,{cols:"12"},{default:a(()=>[l(J,{modelValue:ve.value,"onUpdate:modelValue":e[3]||(e[3]=o=>ve.value=o),type:"gain"},null,8,["modelValue"]),R.value!==h(F).ALL?(c(),$(J,{key:0,modelValue:_e.value,"onUpdate:modelValue":e[4]||(e[4]=o=>_e.value=o),type:{min:-15,max:15,step:.1,label:h(O)("settings.dsp.parametric_eq.per_channel_preamp",{channel:h(O)(`settings.dsp.channels.${R.value}`)}),unit:"dB",is_log:!1}},null,8,["modelValue","type"])):W("",!0)]),_:1})]),_:1})]),_:1})]),_:1})):W("",!0),x.value?(c(),pe(fe,{key:1},[l(Sl,null,{default:a(()=>[z("div",xl,[l($e,{modelValue:x.value.enabled,"onUpdate:modelValue":e[5]||(e[5]=o=>x.value.enabled=o),label:h(O)("settings.dsp.parametric_eq.enable_band"),density:"comfortable","hide-details":"",color:"primary"},null,8,["modelValue","label"]),l(Ae),l(B,{color:"error",variant:"tonal",onClick:e[6]||(e[6]=o=>de(G.value))},{default:a(()=>[l(K,null,{default:a(()=>[...e[15]||(e[15]=[f("mdi-delete",-1)])]),_:1}),f(" "+A(h(O)("settings.dsp.parametric_eq.delete_band")),1)]),_:1})])]),_:1}),l(be,{modelValue:x.value.type,"onUpdate:modelValue":e[7]||(e[7]=o=>x.value.type=o),items:h(V),label:h(O)("settings.dsp.parametric_eq.filter_type"),variant:"outlined",density:"comfortable",class:"pa-4","hide-details":""},null,8,["modelValue","items","label"]),l(J,{modelValue:x.value.frequency,"onUpdate:modelValue":e[8]||(e[8]=o=>x.value.frequency=o),type:"frequency"},null,8,["modelValue"]),E(x.value.type)?(c(),$(J,{key:0,modelValue:x.value.gain,"onUpdate:modelValue":e[9]||(e[9]=o=>x.value.gain=o),type:"gain"},null,8,["modelValue"])):W("",!0),l(J,{modelValue:x.value.q,"onUpdate:modelValue":e[10]||(e[10]=o=>x.value.q=o),type:"q"},null,8,["modelValue"]),ue.value?(c(),$(be,{key:1,modelValue:x.value.channel,"onUpdate:modelValue":e[11]||(e[11]=o=>x.value.channel=o),items:h(g),label:h(O)("settings.dsp.parametric_eq.channel"),variant:"outlined",density:"comfortable",class:"pa-4","hide-details":""},null,8,["modelValue","items","label"])):W("",!0)],64)):W("",!0)]),_:1}))}}),Gl=el(Wl,[["__scopeId","data-v-ac29d681"]]),jl=ge({__name:"DSPToneControl",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(t){const S=Ie(t,"modelValue");return(b,g)=>(c(),pe(fe,null,[l(J,{modelValue:S.value.bass_level,"onUpdate:modelValue":g[0]||(g[0]=s=>S.value.bass_level=s),type:{min:-10,max:10,step:.1,label:b.$t("settings.dsp.tone_control.bass_level"),unit:"dB",is_log:!1}},null,8,["modelValue","type"]),l(J,{modelValue:S.value.mid_level,"onUpdate:modelValue":g[1]||(g[1]=s=>S.value.mid_level=s),type:{min:-10,max:10,step:.1,label:b.$t("settings.dsp.tone_control.mid_level"),unit:"dB",is_log:!1}},null,8,["modelValue","type"]),l(J,{modelValue:S.value.treble_level,"onUpdate:modelValue":g[2]||(g[2]=s=>S.value.treble_level=s),type:{min:-10,max:10,step:.1,label:b.$t("settings.dsp.tone_control.treble_level"),unit:"dB",is_log:!1}},null,8,["modelValue","type"])],64))}}),Ql={key:0},Kl={class:"d-none d-md-inline"},Yl={class:"d-none d-md-inline"},pt=ge({__name:"EditPlayerDsp",props:{playerId:{}},setup(t){const{t:S}=Pl();Dl();const b=Oe(),g=t,s=U(),D=U([]),m=U(null),H=U(!1),w=U(!1),N=U(ne.PARAMETRIC_EQ),u=U("");U(window.innerWidth);const{mobile:k}=Ll();let M=!1,V;const E=Object.values(ne).map(i=>({value:i,title:S(`settings.dsp.types.${i}`)})),q=()=>b.global.current.value.dark?"bg-grey-darken-3":"bg-grey-lighten-3",I=i=>{m.value=i},oe=i=>S(i==="input"?"settings.dsp.input":i==="output"?"settings.dsp.output":`settings.dsp.types.${s.value?.filters[i].type}`),ye=()=>{if(!s.value)return;let i;switch(N.value){case ne.PARAMETRIC_EQ:i={preamp:0,per_channel_preamp:{},enabled:!0,type:ne.PARAMETRIC_EQ,bands:[]};break;case ne.TONE_CONTROL:i={enabled:!0,type:ne.TONE_CONTROL,bass_level:0,mid_level:0,treble_level:0};break;default:return}s.value.filters.push(i),H.value=!1,I(s.value.filters.length-1)},re=(i,r)=>{if(!s.value)return;const p=r==="up"?i-1:i+1;if(p<0||p>=s.value.filters.length)return;const[ce]=s.value.filters.splice(i,1);s.value.filters.splice(p,0,ce),m.value===i?m.value=p:m.value===p&&(m.value=i)},ue=i=>{m.value===i&&(m.value="input"),s.value?.filters.splice(i,1)},G=async i=>{!i||!i.config||(m.value="input",s.value=i.config)},R=async()=>{if(!s.value||!u.value.trim())return;const i={name:u.value.trim(),config:s.value};try{await se.saveDSPPreset(i),u.value="",w.value=!1}catch(r){console.error("Failed to save DSP preset:",r)}},x=async i=>{!i||!confirm(S("settings.dsp.presets.remove_confirm"))||(await se.removeDSPPreset(i),D.value=D.value.filter(r=>r.preset_id!==i))};le(k,i=>{!i&&m.value===null&&I("input")},{immediate:!0});const ve=j(()=>$l(se.players[g.playerId],27));le(()=>g.playerId,async i=>{V&&V(),M=!0,i&&(s.value=await se.getDSPConfig(i)),V=se.subscribe(He.PLAYER_DSP_CONFIG_UPDATED,r=>{M=!0,s.value=r.data},g.playerId)},{immediate:!0});const _e=se.subscribe(He.DSP_PRESETS_UPDATED,i=>{D.value=i.data});Le(async()=>{D.value=await se.getDSPPresets()}),Tl(()=>{V&&V(),_e()});let de=null;const Ve=i=>{de&&clearTimeout(de),de=setTimeout(async()=>{g.playerId&&await se.saveDSPConfig(g.playerId,i)},2e3)};return le(s,(i,r)=>{if(M){de&&clearTimeout(de),M=!1;return}r!==null&&i&&Ve(i)},{deep:!0}),(i,r)=>s.value?(c(),pe("section",Ql,[l(We,{color:"transparent",class:"border-b pr-4"},{default:a(()=>[l($e,{modelValue:s.value.enabled,"onUpdate:modelValue":r[0]||(r[0]=p=>s.value.enabled=p),"hide-details":"",color:"primary",class:"pl-4"},null,8,["modelValue"]),l(Ge,null,{default:a(()=>[f(A(i.$t("settings.dsp.configure_on",{name:ve.value})),1)]),_:1}),l(Al,{"offset-y":"",transition:"slide-y-transition"},{activator:a(({props:p})=>[l(B,ql(p,{class:["mr-4",q()]}),{default:a(()=>[l(K,{class:"p-0 ms-md-n1 me-md-2"},{default:a(()=>[...r[19]||(r[19]=[f(" mdi-tray-arrow-down ",-1)])]),_:1}),z("span",Kl,A(i.$t("settings.dsp.presets.load")),1)]),_:1},16,["class"])]),default:a(()=>[l(Fl,null,{default:a(()=>[D.value.length===0?(c(),$(ze,{key:0},{default:a(()=>[l(Ue,null,{default:a(()=>[f(A(i.$t("settings.dsp.presets.empty_warning")),1)]),_:1})]),_:1})):(c(!0),pe(fe,{key:1},Ee(D.value,p=>(c(),$(ze,{key:p.preset_id,onClick:ce=>G(p)},{append:a(()=>[l(B,{icon:"mdi-delete",variant:"text",density:"compact",onClick:Ze(ce=>x(p.preset_id),["stop"])},null,8,["onClick"])]),default:a(()=>[l(Ue,null,{default:a(()=>[f(A(p.name),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),l(B,{class:Q(q()),onClick:r[1]||(r[1]=p=>w.value=!0)},{default:a(()=>[l(K,{class:"p-0 ms-md-n1 me-md-2"},{default:a(()=>[...r[20]||(r[20]=[f(" mdi-content-save ",-1)])]),_:1}),z("span",Yl,A(i.$t("settings.dsp.presets.save")),1)]),_:1},8,["class"])]),_:1}),l(tl,{class:"pa-4"},{default:a(()=>[s.value.enabled?W("",!0):(c(),$(Ol,{key:0,type:"info",class:"mt-4",color:"transparent"},{default:a(()=>[f(A(i.$t("settings.dsp.disabled_message")),1)]),_:1})),l(al,{class:Q([{"justify-center":h(k)},"flex-nowrap"])},{default:a(()=>[!h(k)||m.value===null?(c(),$(Te,{key:0,class:Q(["flex-grow-0 flex-shrink-0",{"border-e pr-4":!h(k)}]),"align-self":"start"},{default:a(()=>[l(Hl,{dsp:s.value,selected:m.value,onOnSelect:I,onOnAddFilter:r[2]||(r[2]=p=>H.value=!0),onOnMoveFilter:r[3]||(r[3]=p=>re(p.index,p.direction)),onOnDeleteFilter:ue},null,8,["dsp","selected"])]),_:1},8,["class"])):W("",!0),m.value!=null?(c(),$(Te,{key:1,style:{"min-width":"0"}},{default:a(()=>[l(We,{density:"compact",color:i.$vuetify.theme.current.dark?"surface":"surface-light",class:"border-b"},{default:a(()=>[h(k)?(c(),$(B,{key:0,class:"hidden-xs-only",icon:"",onClick:r[4]||(r[4]=p=>m.value=null)},{default:a(()=>[l(K,null,{default:a(()=>[...r[21]||(r[21]=[f("mdi-arrow-left",-1)])]),_:1})]),_:1})):W("",!0),l(Ge,null,{default:a(()=>[f(A(oe(m.value)),1)]),_:1}),typeof m.value=="number"&&!h(k)&&m.value>0?(c(),$(B,{key:1,icon:"",onClick:r[5]||(r[5]=p=>re(m.value,"up"))},{default:a(()=>[l(K,null,{default:a(()=>[...r[22]||(r[22]=[f("mdi-arrow-up",-1)])]),_:1})]),_:1})):W("",!0),typeof m.value=="number"&&!h(k)&&m.value<s.value.filters.length-1?(c(),$(B,{key:2,icon:"",onClick:r[6]||(r[6]=p=>re(m.value,"down"))},{default:a(()=>[l(K,null,{default:a(()=>[...r[23]||(r[23]=[f("mdi-arrow-down",-1)])]),_:1})]),_:1})):W("",!0),typeof m.value=="number"?(c(),$($e,{key:3,modelValue:s.value.filters[m.value].enabled,"onUpdate:modelValue":r[7]||(r[7]=p=>s.value.filters[m.value].enabled=p),"hide-details":"",color:"primary",class:"mr-4"},null,8,["modelValue"])):W("",!0),typeof m.value=="number"?(c(),$(B,{key:4,icon:"",onClick:r[8]||(r[8]=p=>ue(m.value))},{default:a(()=>[l(K,null,{default:a(()=>[...r[24]||(r[24]=[f("mdi-delete",-1)])]),_:1})]),_:1})):W("",!0)]),_:1},8,["color"]),m.value==="input"?(c(),$(te,{key:0,flat:"",color:i.$vuetify.theme.current.dark?"surface":"surface-light"},{default:a(()=>[l(J,{modelValue:s.value.input_gain,"onUpdate:modelValue":r[9]||(r[9]=p=>s.value.input_gain=p),type:"gain"},null,8,["modelValue"])]),_:1},8,["color"])):m.value==="output"?(c(),$(te,{key:1,flat:"",color:i.$vuetify.theme.current.dark?"surface":"surface-light"},{default:a(()=>[l(J,{modelValue:s.value.output_gain,"onUpdate:modelValue":r[10]||(r[10]=p=>s.value.output_gain=p),type:"gain"},null,8,["modelValue"])]),_:1},8,["color"])):(c(),$(te,{key:2,flat:"",color:i.$vuetify.theme.current.dark?"surface":"surface-light"},{default:a(()=>[s.value.filters[m.value].type===h(ne).PARAMETRIC_EQ?(c(),$(Gl,{key:0,modelValue:s.value.filters[m.value],"onUpdate:modelValue":r[11]||(r[11]=p=>s.value.filters[m.value]=p)},null,8,["modelValue"])):W("",!0),s.value.filters[m.value].type===h(ne).TONE_CONTROL?(c(),$(jl,{key:1,modelValue:s.value.filters[m.value],"onUpdate:modelValue":r[12]||(r[12]=p=>s.value.filters[m.value]=p)},null,8,["modelValue"])):W("",!0)]),_:1},8,["color"]))]),_:1})):W("",!0)]),_:1},8,["class"])]),_:1}),l(je,{modelValue:w.value,"onUpdate:modelValue":r[15]||(r[15]=p=>w.value=p),"max-width":"300"},{default:a(()=>[l(te,null,{default:a(()=>[l(Ne,null,{default:a(()=>[f(A(i.$t("settings.dsp.presets.save")),1)]),_:1}),l(ae,null,{default:a(()=>[l(ll,{modelValue:u.value,"onUpdate:modelValue":r[13]||(r[13]=p=>u.value=p),label:i.$t("settings.dsp.presets.name"),placeholder:i.$t("settings.dsp.presets.name_placeholder"),variant:"outlined"},null,8,["modelValue","label","placeholder"])]),_:1}),l(xe,null,{default:a(()=>[l(Ae),l(B,{onClick:r[14]||(r[14]=p=>w.value=!1)},{default:a(()=>[f(A(i.$t("cancel")),1)]),_:1}),l(B,{color:"primary",disabled:!u.value.trim(),onClick:R},{default:a(()=>[f(A(i.$t("settings.dsp.presets.save")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(je,{modelValue:H.value,"onUpdate:modelValue":r[18]||(r[18]=p=>H.value=p),"max-width":"300"},{default:a(()=>[l(te,null,{default:a(()=>[l(Ne,null,{default:a(()=>[f(A(i.$t("settings.dsp.filter.add")),1)]),_:1}),l(ae,null,{default:a(()=>[l(be,{modelValue:N.value,"onUpdate:modelValue":r[16]||(r[16]=p=>N.value=p),items:h(E),label:i.$t("settings.dsp.filter.type")},null,8,["modelValue","items","label"])]),_:1}),l(xe,null,{default:a(()=>[l(Ae),l(B,{onClick:r[17]||(r[17]=p=>H.value=!1)},{default:a(()=>[f(A(i.$t("cancel")),1)]),_:1}),l(B,{color:"primary",onClick:ye},{default:a(()=>[f(A(i.$t("settings.dsp.filter.add")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])])):W("",!0)}});export{pt as default};
@@ -1 +1 @@
1
- import{d as I,i as g,j as B,m as l,a_ as S,l as _,ad as j,c as k,o as u,b as s,w as r,bI as N,bl as P,q as v,e as d,u as o,a as m,b3 as w,b4 as f,t as c,b5 as y,bE as U,ce as H,p as C,bC as L,n as O,bw as x,bJ as D}from"./index-LFx1jIjH.js";import{E as q}from"./EditConfig-UygF_D1P.js";import{n as z}from"./index.browser-OxPLOBIU.js";import{V as F}from"./VTextField-DyzwZgKh.js";import{V as J}from"./VSwitch-B-ONWUbe.js";import{a as R,b as G}from"./VBtn-BYKkZzw0.js";import"./VForm-DI6jEBhI.js";import"./VInput-B3Z2GK8Z.js";import"./VExpansionPanels-DUWI7Gyy.js";import"./VAlert-Cyb25ra3.js";import"./VSlider-B0DY4XNd.js";import"./VVirtualScroll-DYZmdOFl.js";import"./VDialog-zNF2U_x9.js";import"./VSpacer-Cg-cZSyv.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const K={key:0},Q={id:"auth",href:"",target:"_blank"},pe=I({__name:"EditProvider",props:{instanceId:{}},setup(h){const M=D(),t=g(),V=z(11),p=g(!1),b=g(!1),T=h;B(()=>{const n=l.subscribe(S.AUTH_SESSION,e=>{if(e.object_id!==V)return;const a=e.data;b.value=!0,window.setTimeout(()=>{const i=document.getElementById("auth");i.setAttribute("href",a),i.click()},100)});_(n)}),j(()=>T.instanceId,async n=>{n&&(t.value=await l.getProviderConfig(n))},{immediate:!0});const A=async function(n){p.value=!0,n.enabled=t.value.enabled,n.name=t.value.name||null,l.saveProviderConfig(t.value.domain,n,t.value.instance_id).then(()=>{M.push({name:"providersettings"})}).catch(e=>{alert(e)}).finally(()=>{p.value=!1,b.value=!1})},E=async function(n,e){p.value=!0;for(const a of Object.values(t.value.values))a.value!==void 0&&e[a.key]==null&&(e[a.key]=a.value);e.session_id=V,l.getProviderConfigEntries(t.value.domain,t.value.instance_id,n,e).then(a=>{t.value.values={};for(const i of a)t.value.values[i.key]=i}).catch(a=>{alert(a)}).finally(()=>{p.value=!1,b.value=!1})},$=function(n){const e=[],{t:a}=x();for(const i of n)i.includes("@")?e.push(`[${i.replace("@","")}](https://github.com/${i.replace("@","")})`):e.push(i);return`**${a("settings.codeowners")}**: `+e.join(" / ")};return(n,e)=>(u(),k("section",null,[s(N,null,{default:r(()=>[t.value&&o(l).providerManifests[t.value.domain]?(u(),k("div",K,[s(w,null,{default:r(()=>[f(c(n.$t("settings.setup_provider",[o(l).providerManifests[t.value.domain].name])),1)]),_:1}),s(y,{style:{"white-space":"normal"}},{default:r(()=>[f(c(o(l).providerManifests[t.value.domain].description),1)]),_:1}),e[5]||(e[5]=m("br",null,null,-1)),o(l).providerManifests[t.value.domain].codeowners.length?(u(),d(y,{key:0,innerHTML:o(U)($(o(l).providerManifests[t.value.domain].codeowners))},null,8,["innerHTML"])):v("",!0),o(l).providerManifests[t.value.domain].documentation?(u(),d(y,{key:1},{default:r(()=>[m("b",null,c(n.$t("settings.need_help_setup_provider")),1),e[4]||(e[4]=f("  ",-1)),m("a",{onClick:e[0]||(e[0]=a=>o(H)(o(l).providerManifests[t.value.domain].documentation))},c(n.$t("settings.check_docs")),1)]),_:1})):v("",!0),e[6]||(e[6]=m("br",null,null,-1)),s(C),e[7]||(e[7]=m("br",null,null,-1)),e[8]||(e[8]=m("br",null,null,-1)),"name"in t.value?(u(),d(F,{key:2,modelValue:t.value.name,"onUpdate:modelValue":e[1]||(e[1]=a=>t.value.name=a),placeholder:o(l).getProvider(t.value.instance_id)?.name,label:n.$t("settings.provider_name"),variant:"outlined",clearable:""},null,8,["modelValue","placeholder","label"])):v("",!0),"enabled"in t.value?(u(),d(J,{key:3,modelValue:t.value.enabled,"onUpdate:modelValue":e[2]||(e[2]=a=>t.value.enabled=a),label:n.$t("settings.enable_provider"),color:"primary",disabled:!o(l).providerManifests[t.value.domain]?.allow_disable},null,8,["modelValue","label","disabled"])):v("",!0)])):v("",!0),s(C),t.value?(u(),d(q,{key:1,"config-entries":Object.values(t.value.values),disabled:!t.value.enabled,onSubmit:A,onAction:E},null,8,["config-entries","disabled"])):v("",!0)]),_:1}),s(P,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=a=>p.value=a),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:r(()=>[b.value?(u(),d(O,{key:0,style:{"background-color":"white"}},{default:r(()=>[s(w,null,{default:r(()=>[...e[9]||(e[9]=[f("Authenticating...",-1)])]),_:1}),s(y,null,{default:r(()=>[...e[10]||(e[10]=[f("A new tab/popup should be opened where you can authenticate",-1)])]),_:1}),s(L,null,{default:r(()=>[m("a",Q,[s(R,null,{default:r(()=>[...e[11]||(e[11]=[f("Click here if the popup did not open",-1)])]),_:1})])]),_:1})]),_:1})):(u(),d(G,{key:1,indeterminate:"",size:"64",color:"primary"}))]),_:1},8,["modelValue"])]))}});export{pe as default};
1
+ import{d as I,i as g,j as B,m as l,a_ as S,l as _,ad as j,c as k,b as s,w as r,bI as N,bl as P,o as u,q as v,e as d,u as o,a as m,b3 as w,b4 as f,t as c,b5 as y,bE as U,cg as H,p as C,bC as L,n as O,bw as x,bJ as D}from"./index-BLuBzgcR.js";import{E as q}from"./EditConfig-BXS2Ap2c.js";import{n as z}from"./index.browser-OxPLOBIU.js";import{V as F}from"./VTextField-BRzkPyuL.js";import{V as J}from"./VSwitch-D4nwfxN1.js";import{a as R,b as G}from"./VBtn-i8gedOhv.js";import"./VForm-ChQquqpb.js";import"./VInput-S8c2HXsf.js";import"./VExpansionPanels-BWCnJP-B.js";import"./VAlert-Du-laR0E.js";import"./VSlider-bRJnej6Z.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VDialog-CUNnqGJy.js";import"./VSpacer-FdmIBMIx.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const K={key:0},Q={id:"auth",href:"",target:"_blank"},pe=I({__name:"EditProvider",props:{instanceId:{}},setup(h){const M=D(),t=g(),V=z(11),p=g(!1),b=g(!1),T=h;B(()=>{const n=l.subscribe(S.AUTH_SESSION,e=>{if(e.object_id!==V)return;const a=e.data;b.value=!0,window.setTimeout(()=>{const i=document.getElementById("auth");i.setAttribute("href",a),i.click()},100)});_(n)}),j(()=>T.instanceId,async n=>{n&&(t.value=await l.getProviderConfig(n))},{immediate:!0});const A=async function(n){p.value=!0,n.enabled=t.value.enabled,n.name=t.value.name||null,l.saveProviderConfig(t.value.domain,n,t.value.instance_id).then(()=>{M.push({name:"providersettings"})}).catch(e=>{alert(e)}).finally(()=>{p.value=!1,b.value=!1})},E=async function(n,e){p.value=!0;for(const a of Object.values(t.value.values))a.value!==void 0&&e[a.key]==null&&(e[a.key]=a.value);e.session_id=V,l.getProviderConfigEntries(t.value.domain,t.value.instance_id,n,e).then(a=>{t.value.values={};for(const i of a)t.value.values[i.key]=i}).catch(a=>{alert(a)}).finally(()=>{p.value=!1,b.value=!1})},$=function(n){const e=[],{t:a}=x();for(const i of n)i.includes("@")?e.push(`[${i.replace("@","")}](https://github.com/${i.replace("@","")})`):e.push(i);return`**${a("settings.codeowners")}**: `+e.join(" / ")};return(n,e)=>(u(),k("section",null,[s(N,null,{default:r(()=>[t.value&&o(l).providerManifests[t.value.domain]?(u(),k("div",K,[s(w,null,{default:r(()=>[f(c(n.$t("settings.setup_provider",[o(l).providerManifests[t.value.domain].name])),1)]),_:1}),s(y,{style:{"white-space":"normal"}},{default:r(()=>[f(c(o(l).providerManifests[t.value.domain].description),1)]),_:1}),e[5]||(e[5]=m("br",null,null,-1)),o(l).providerManifests[t.value.domain].codeowners.length?(u(),d(y,{key:0,innerHTML:o(U)($(o(l).providerManifests[t.value.domain].codeowners))},null,8,["innerHTML"])):v("",!0),o(l).providerManifests[t.value.domain].documentation?(u(),d(y,{key:1},{default:r(()=>[m("b",null,c(n.$t("settings.need_help_setup_provider")),1),e[4]||(e[4]=f("  ",-1)),m("a",{onClick:e[0]||(e[0]=a=>o(H)(o(l).providerManifests[t.value.domain].documentation))},c(n.$t("settings.check_docs")),1)]),_:1})):v("",!0),e[6]||(e[6]=m("br",null,null,-1)),s(C),e[7]||(e[7]=m("br",null,null,-1)),e[8]||(e[8]=m("br",null,null,-1)),"name"in t.value?(u(),d(F,{key:2,modelValue:t.value.name,"onUpdate:modelValue":e[1]||(e[1]=a=>t.value.name=a),placeholder:o(l).getProvider(t.value.instance_id)?.name,label:n.$t("settings.provider_name"),variant:"outlined",clearable:""},null,8,["modelValue","placeholder","label"])):v("",!0),"enabled"in t.value?(u(),d(J,{key:3,modelValue:t.value.enabled,"onUpdate:modelValue":e[2]||(e[2]=a=>t.value.enabled=a),label:n.$t("settings.enable_provider"),color:"primary",disabled:!o(l).providerManifests[t.value.domain]?.allow_disable},null,8,["modelValue","label","disabled"])):v("",!0)])):v("",!0),s(C),t.value?(u(),d(q,{key:1,"config-entries":Object.values(t.value.values),disabled:!t.value.enabled,onSubmit:A,onAction:E},null,8,["config-entries","disabled"])):v("",!0)]),_:1}),s(P,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=a=>p.value=a),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:r(()=>[b.value?(u(),d(O,{key:0,style:{"background-color":"white"}},{default:r(()=>[s(w,null,{default:r(()=>[...e[9]||(e[9]=[f("Authenticating...",-1)])]),_:1}),s(y,null,{default:r(()=>[...e[10]||(e[10]=[f("A new tab/popup should be opened where you can authenticate",-1)])]),_:1}),s(L,null,{default:r(()=>[m("a",Q,[s(R,null,{default:r(()=>[...e[11]||(e[11]=[f("Click here if the popup did not open",-1)])]),_:1})])]),_:1})]),_:1})):(u(),d(G,{key:1,indeterminate:"",size:"64",color:"primary"}))]),_:1},8,["modelValue"])]))}});export{pe as default};
@@ -1 +1 @@
1
- import{d as k,i as m,j as S,cf as s,cg as V,$ as e,c as I,o as c,b as o,w as i,bI as C,bl as N,b4 as d,t as g,u as p,a as f,e as T,q as h,b5 as E,p as w,bJ as q}from"./index-LFx1jIjH.js";import{E as x}from"./EditConfig-UygF_D1P.js";import{D as v}from"./constants-BXWEQHoz.js";import{V as B}from"./VToolbar-Dc2WDt1C.js";import{b as M}from"./VBtn-BYKkZzw0.js";import"./VForm-DI6jEBhI.js";import"./VInput-B3Z2GK8Z.js";import"./VExpansionPanels-DUWI7Gyy.js";import"./VAlert-Cyb25ra3.js";import"./VSwitch-B-ONWUbe.js";import"./VTextField-DyzwZgKh.js";import"./VVirtualScroll-DYZmdOFl.js";import"./VSlider-B0DY4XNd.js";import"./VDialog-zNF2U_x9.js";import"./VSpacer-Cg-cZSyv.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const Y=k({__name:"FrontendConfig",setup(D){const b=q(),n=m([]),r=m(!1);S(()=>{const a=localStorage.getItem("frontend.settings.menu_items"),t=a?a.split(","):v;n.value=[{key:"theme",type:s.STRING,label:"theme",default_value:"auto",required:!1,options:[{title:"auto",value:"auto"},{title:"dark",value:"dark"},{title:"light",value:"light"}],multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.theme")},{key:"language",type:s.STRING,label:"language",default_value:"auto",required:!1,options:[{title:"auto",value:"auto"},...V.global.availableLocales.map(l=>({title:l,value:l}))],multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.language")},{key:"menu_items",type:s.STRING,label:"menu_items",default_value:v,required:!1,options:[{title:e("home"),value:"home"},{title:e("search"),value:"search"},{title:e("artists"),value:"artists"},{title:e("albums"),value:"albums"},{title:e("tracks"),value:"tracks"},{title:e("playlists"),value:"playlists"},{title:e("audiobooks"),value:"audiobooks"},{title:e("podcasts"),value:"podcasts"},{title:e("radios"),value:"radios"},{title:e("browse"),value:"browse"},{title:e("settings.settings"),value:"settings"}],multi_value:!0,category:"generic",value:t},{key:"enable_builtin_player",type:s.BOOLEAN,label:"enable_builtin_player",default_value:!0,required:!0,multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.enable_builtin_player")!="false"}]});const y=async function(a){for(const t in a){const l=`frontend.settings.${t}`,u=a[t];u!=null?localStorage.setItem(l,u.toString()):localStorage.removeItem(l)}b.push({name:"home"}).then(()=>{window.location.reload()})},_=async function(a,t){};return(a,t)=>(c(),I("section",null,[o(B,{color:"transparent"},{title:i(()=>[d(g(p(e)("settings.frontend")),1)]),_:1}),o(C,null,{default:i(()=>[o(E,null,{default:i(()=>[d(g(p(e)("settings.frontend_desc")),1)]),_:1}),t[1]||(t[1]=f("br",null,null,-1)),t[2]||(t[2]=f("br",null,null,-1)),o(w),n.value?(c(),T(x,{key:0,"config-entries":n.value,disabled:!1,onSubmit:y,onAction:_},null,8,["config-entries"])):h("",!0)]),_:1}),o(N,{modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=l=>r.value=l),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:i(()=>[o(M,{indeterminate:"",size:"64",color:"primary"})]),_:1},8,["modelValue"])]))}});export{Y as default};
1
+ import{d as k,i as m,j as S,ch as s,ci as V,$ as e,c as I,b as o,w as i,bI as C,bl as h,o as c,b4 as d,t as g,u as p,a as f,e as N,q as T,b5 as E,p as w,bJ as q}from"./index-BLuBzgcR.js";import{E as x}from"./EditConfig-BXS2Ap2c.js";import{D as v}from"./constants-BXWEQHoz.js";import{V as B}from"./VToolbar-BFOvSQM-.js";import{b as M}from"./VBtn-i8gedOhv.js";import"./VForm-ChQquqpb.js";import"./VInput-S8c2HXsf.js";import"./VExpansionPanels-BWCnJP-B.js";import"./VAlert-Du-laR0E.js";import"./VSwitch-D4nwfxN1.js";import"./VTextField-BRzkPyuL.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VSlider-bRJnej6Z.js";import"./VDialog-CUNnqGJy.js";import"./VSpacer-FdmIBMIx.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";const Y=k({__name:"FrontendConfig",setup(D){const b=q(),n=m([]),r=m(!1);S(()=>{const a=localStorage.getItem("frontend.settings.menu_items"),t=a?a.split(","):v;n.value=[{key:"theme",type:s.STRING,label:"theme",default_value:"auto",required:!1,options:[{title:"auto",value:"auto"},{title:"dark",value:"dark"},{title:"light",value:"light"}],multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.theme")},{key:"language",type:s.STRING,label:"language",default_value:"auto",required:!1,options:[{title:"auto",value:"auto"},...V.global.availableLocales.map(l=>({title:l,value:l}))],multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.language")},{key:"menu_items",type:s.STRING,label:"menu_items",default_value:v,required:!1,options:[{title:e("home"),value:"home"},{title:e("search"),value:"search"},{title:e("artists"),value:"artists"},{title:e("albums"),value:"albums"},{title:e("tracks"),value:"tracks"},{title:e("playlists"),value:"playlists"},{title:e("audiobooks"),value:"audiobooks"},{title:e("podcasts"),value:"podcasts"},{title:e("radios"),value:"radios"},{title:e("browse"),value:"browse"},{title:e("settings.settings"),value:"settings"}],multi_value:!0,category:"generic",value:t},{key:"enable_builtin_player",type:s.BOOLEAN,label:"enable_builtin_player",default_value:!0,required:!0,multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.enable_builtin_player")!="false"}]});const y=async function(a){for(const t in a){const l=`frontend.settings.${t}`,u=a[t];u!=null?localStorage.setItem(l,u.toString()):localStorage.removeItem(l)}b.push({name:"home"}).then(()=>{window.location.reload()})},_=async function(a,t){};return(a,t)=>(c(),I("section",null,[o(B,{color:"transparent"},{title:i(()=>[d(g(p(e)("settings.frontend")),1)]),_:1}),o(C,null,{default:i(()=>[o(E,null,{default:i(()=>[d(g(p(e)("settings.frontend_desc")),1)]),_:1}),t[1]||(t[1]=f("br",null,null,-1)),t[2]||(t[2]=f("br",null,null,-1)),o(w),n.value?(c(),N(x,{key:0,"config-entries":n.value,disabled:!1,onSubmit:y,onAction:_},null,8,["config-entries"])):T("",!0)]),_:1}),o(h,{modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=l=>r.value=l),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:i(()=>[o(M,{indeterminate:"",size:"64",color:"primary"})]),_:1},8,["modelValue"])]))}});export{Y as default};
@@ -0,0 +1 @@
1
+ import{C as P}from"./Container-BVutxj42.js";import{d as y,N as S,m as w,bj as x,aV as h,L as C,c as m,o,E as B,b as u,w as c,q as _,a as M,t as I,F as b,r as R,e as g,s as $,i as v,j as E,a_ as U,l as N,$ as T,bq as A}from"./index-BLuBzgcR.js";import{W as D}from"./WidgetRow-B9fF60Oe.js";import{a as W}from"./PlayerCard-CA3BAmEY.js";import{V as L}from"./VToolbar-BFOvSQM-.js";import{a as O,b as j}from"./VBtn-i8gedOhv.js";import{_ as V}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{T as H}from"./Toolbar-RSDUeNZR.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./PanelviewItemCompact-Czo8xJLH.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./VAlert-Du-laR0E.js";import"./Button-BEhYIX-0.js";import"./VSlider-bRJnej6Z.js";const q={class:"mr-3"},F={key:0},J=y({__name:"PlayersWidgetRow",props:{settings:{},editMode:{type:Boolean}},emits:["update:settings"],setup(s,{emit:a}){const i=S(()=>Object.values(w.players).filter(e=>x(e)).sort((e,t)=>e.name.toUpperCase()>t.name?.toUpperCase()?1:-1).sort((e,t)=>n(e)-n(t))),p=a;function f(e){$.activePlayerId=e.player_id}function n(e){return e.playback_state==h.PLAYING?0:e.playback_state==h.PAUSED?1:e.current_media&&e.powered?3:e.current_media?4:99}return(e,t)=>{const r=C("swiper-slide"),l=C("swiper");return o(),m("div",{class:B(`widget-row ${s.settings&&!s.settings.enabled?"disabled":""}`)},[u(L,{class:"header",color:"transparent"},{title:c(()=>[M("span",q,I(e.$t("players")),1)]),append:c(()=>[s.editMode?(o(),m("div",F,[u(O,{icon:s.settings.enabled?"mdi-checkbox-marked":"mdi-checkbox-blank-outline",onClick:t[0]||(t[0]=d=>p("update:settings",{...s.settings,enabled:!s.settings.enabled}))},null,8,["icon"])])):_("",!0)]),_:1}),u(l,{"slides-per-view":"auto","space-between":15,"free-mode":!1,navigation:!1,mousewheel:{forceToAxis:!0,releaseOnEdges:!0}},{default:c(()=>[(o(!0),m(b,null,R(i.value,d=>(o(),g(r,{key:d.player_id},{default:c(()=>[(o(),g(W,{id:d.player_id,key:d.player_id,player:d,"show-volume-control":!1,"show-menu-button":!1,"show-sub-players":!1,"show-sync-controls":!1,style:{width:"305px"},onClick:k=>f(d)},null,8,["id","player","onClick"]))]),_:2},1024))),128))]),_:1})],2)}}}),Y=V(J,[["__scopeId","data-v-771a3548"]]),z=y({__name:"HomeWidgetRows",props:{editMode:{type:Boolean,default:!1}},setup(s){const a=v([]),i=v({}),p=async function(){const n=localStorage.getItem("widgetRowSettings");i.value=n?JSON.parse(n):{players:{position:0,enabled:!0}};const e=await w.getRecommendations(),t=[];let r=0;for(const l of e){r++;const d=i.value[l.uri]||{position:r,enabled:!0},k=l.translation_key?T(`recommendations.${l.translation_key}`,l.name):l.name;t.push({...l,settings:d,title:k}),a.value=t}};E(()=>{p();const n=w.subscribe(U.MEDIA_ITEM_PLAYED,async e=>{e.data&&!e.data.is_playing&&p()});N(n)});const f=function(n,e){for(const t of a.value)if(t.uri===n){t.settings=e;break}i.value[n]=e,localStorage.setItem("widgetRowSettings",JSON.stringify(i.value))};return(n,e)=>(o(),m(b,null,[i.value.players?.enabled||s.editMode?(o(),g(Y,{key:0,settings:i.value.players,"edit-mode":s.editMode,"onUpdate:settings":e[0]||(e[0]=t=>f("players",t))},null,8,["settings","edit-mode"])):_("",!0),(o(!0),m(b,null,R(a.value.filter(t=>t.items.length&&(t.settings.enabled||s.editMode)).sort((t,r)=>t.settings.position-r.settings.position),t=>(o(),m("div",{key:t.uri},[a.value.length?(o(),g(D,{key:0,"widget-row":t,"edit-mode":s.editMode,"onUpdate:settings":r=>f(t.uri,r)},null,8,["widget-row","edit-mode","onUpdate:settings"])):_("",!0)]))),128))],64))}}),G=y({__name:"HomeView",setup(s){const a=v(!1),i=S(()=>[{label:a.value?"homescreen_edit_disable":"homescreen_edit_enable",icon:"mdi-pencil",action:()=>{a.value=!a.value}}]);return(p,f)=>(o(),m("div",null,[u(H,{"show-loading":!0,"enforce-overflow-menu":!0,"menu-items":i.value,home:!0,color:"background",class:"editButton"},null,8,["menu-items"]),u(P,{variant:"comfortable"},{default:c(()=>[(o(),g(A,null,{fallback:c(()=>[u(j,{indeterminate:""})]),default:c(()=>[M("div",null,[u(z,{"edit-mode":a.value},null,8,["edit-mode"])])]),_:1}))]),_:1})]))}}),fe=V(G,[["__scopeId","data-v-d7f1cb62"]]);export{fe as default};
@@ -0,0 +1 @@
1
+ import{C as _e}from"./Container-BVutxj42.js";import{T as et}from"./Toolbar-RSDUeNZR.js";import{x as Ae,y as tt,O as at,a2 as it,b,D as $e,E as P,R as lt,G as st,a5 as ot,I as nt,an as ut,ai as rt,d as q,e as m,o as n,aA as ue,u as y,b0 as M,m as se,bw as Ce,i as $,N as H,bO as K,w as c,q as f,c as p,aF as ct,bN as Te,bG as oe,b4 as I,t as v,J as U,v as mt,M as C,g as O,a as R,aX as dt,bd as j,bP as ft,be as vt,bQ as Fe,bH as xe,bR as re,bS as Ve,bK as De,ae as yt,n as ht,bl as bt,V as pt,f as kt,by as Y,s as S,bC as wt,bz as gt,ar as It,l as ie,ad as X,j as St,ao as be,bT as Bt,k as pe,a_ as z,p as At,aR as $t,bt as Ct,F as ke,r as we,bu as ge,bv as le,bJ as Tt}from"./index-BLuBzgcR.js";import{B as Pe}from"./Button-BEhYIX-0.js";import{L as Ft}from"./ListItem-D3UfOTqB.js";import{_ as ne,V as Oe}from"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import{M as Le}from"./MediaItemThumb-4FqrTjbr.js";import{a as W}from"./VBtn-i8gedOhv.js";import{_ as ce}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as xt,P as Vt}from"./PanelviewItemCompact-Czo8xJLH.js";import{V as Dt}from"./VSpacer-FdmIBMIx.js";import{V as Pt}from"./VTextField-BRzkPyuL.js";import{a as Ot,V as Lt}from"./VInfiniteScroll-XtiIpwbc.js";import{V as Ie,a as Se}from"./VRow-Dw7kUaJt.js";import{V as Et}from"./VVirtualScroll-JP5E3DQw.js";import{V as Be}from"./VAlert-Du-laR0E.js";const Ee=Symbol.for("vuetify:v-item-group"),Mt=tt({...nt(),...ot({selectedClass:"v-item--selected"}),...st(),...lt()},"VItemGroup"),Me=Ae()({name:"VItemGroup",props:Mt(),emits:{"update:modelValue":e=>!0},setup(e,i){let{slots:w}=i;const{themeClasses:g}=at(e),{isSelected:l,select:k,next:B,prev:T,selected:u}=it(e,Ee);return()=>b(e.tag,{class:P(["v-item-group",g.value,e.class]),style:$e(e.style)},{default:()=>[w.default?.({isSelected:l,select:k,next:B,prev:T,selected:u.value})]})}}),L=Ae()({name:"VItem",props:ut(),emits:{"group:selected":e=>!0},setup(e,i){let{slots:w}=i;const{isSelected:g,select:l,toggle:k,selectedClass:B,value:T,disabled:u}=rt(e,Ee);return()=>w.default?.({isSelected:g.value,selectedClass:B.value,select:l,toggle:k,value:T.value,disabled:u.value})}}),Re=q({__name:"FavoriteButton",props:{item:{}},setup(e){const i=e;return(w,g)=>(n(),m(Pe,ue(i,{variant:"icon",icon:e.item?.favorite?"mdi-heart":"mdi-heart-outline",title:w.$t("tooltip.favorite"),onClick:[g[0]||(g[0]=l=>y(se).toggleFavorite(e.item)),g[1]||(g[1]=M(()=>{},["prevent"])),g[2]||(g[2]=M(()=>{},["stop"]))]}),null,16,["icon","title"]))}}),Rt={key:0,class:"media-thumb listitem-media-thumb"},Kt={key:1,class:"media-thumb listitem-media-thumb"},Nt={key:0},Yt={key:0},zt={key:0,class:"line-clamp-1"},Gt={key:1},Xt={key:0},Ht={key:1},Ut={key:2},jt={key:3},Wt={key:4},qt={key:5},Jt={key:6},Qt={key:7},Zt={key:5},_t={key:6},ea={class:"text-caption",style:{"padding-right":"10px","padding-left":"10px"}},ta=q({__name:"ListviewItem",props:{item:{},showTrackNumber:{type:Boolean,default:!0},showDiscNumber:{type:Boolean,default:!0},showPosition:{type:Boolean,default:!0},showProvider:{type:Boolean,default:!0},showAlbum:{type:Boolean,default:!0},showMenu:{type:Boolean,default:!0},showFavorite:{type:Boolean,default:!1},showDuration:{type:Boolean,default:!0},isSelected:{type:Boolean},isDisabled:{type:Boolean,default:!1},isAvailable:{type:Boolean,default:!0},isPlaying:{type:Boolean},showCheckboxes:{type:Boolean,default:!1},showDetails:{type:Boolean},parentItem:{default:void 0}},emits:["select"],setup(e,{emit:i}){const{t:w}=Ce(),g=$(!1),l=e,k=H(()=>{if(!("provider_mappings"in l.item))return"";for(const d of l.item.provider_mappings)if(d.audio_format&&d.audio_format.content_type!=null&&[K.DSF,K.FLAC,K.AIFF,K.WAV].includes(d.audio_format.content_type)&&(d.audio_format.sample_rate>48e3||d.audio_format.bit_depth>16))return`${d.audio_format.sample_rate/1e3}kHz ${d.audio_format.bit_depth} bits`;return""}),B=i,T=function(d){const h=d;re(l.item,h.clientX,h.clientY,l.parentItem)},u=function(d){if(l.showCheckboxes)return;const h=d;Ve(l.item,h.clientX,h.clientY,l.parentItem)},F=function(d){l.showCheckboxes||De(l.item,d.clientX,d.clientY,l.parentItem)};return(d,h)=>(n(),m(Ft,{link:"","show-menu-btn":e.showMenu,class:P({unavailable:!e.isAvailable}),onClick:M(u,["stop"]),onMenu:M(T,["stop"])},{prepend:c(()=>[e.showCheckboxes?(n(),p("div",Rt,[b(Oe,{"model-value":e.isSelected,onClick:h[0]||(h[0]=M(()=>{},["stop"])),"onUpdate:modelValue":h[1]||(h[1]=A=>{A!=null&&B("select",e.item,A)})},null,8,["model-value"])])):(n(),p("div",Kt,[b(Le,{size:"50",item:e.isAvailable?e.item:void 0,class:P({dimmed:g.value})},null,8,["item","class"])])),!e.showCheckboxes&&e.item.is_playable?(n(),m(W,{key:2,class:P({hidden:!g.value}),icon:"mdi-play",variant:"text",size:"small",style:{position:"absolute",left:"14px",bottom:"12px",color:"white","font-size":"18px"},onClick:M(F,["stop"]),onMouseenter:h[2]||(h[2]=A=>g.value=!0),onMouseleave:h[3]||(h[3]=A=>g.value=!1)},null,8,["class"])):f("",!0)]),title:c(()=>[e.item.media_type==y(C).FOLDER?(n(),p("span",Nt,[R("span",null,v(y(Fe)(e.item,y(w))),1)])):(n(),p("span",{key:1,class:P({"is-playing":e.isPlaying})},[I(v(e.item.name)+" ",1),"version"in e.item&&e.item.version?(n(),p("span",Yt,"("+v(e.item.version)+")",1)):f("",!0)],2)),e.item&&e.item.metadata?(n(),m(y(oe),{key:2,location:"bottom"},{activator:c(({props:A})=>[y(xe)(e.item.metadata.explicit||!1)?(n(),m(O,ue({key:0},A,{icon:"mdi-alpha-e-box",width:"35"}),null,16)):f("",!0)]),default:c(()=>[R("span",null,v(d.$t("tooltip.explicit")),1)]),_:1})):f("",!0)]),subtitle:c(()=>[e.item.media_type==y(C).TRACK&&"provider_mappings"in e.item?(n(),p("div",zt,[b(Me,null,{default:c(()=>["artists"in e.item?(n(),m(L,{key:0},{default:c(()=>[I(v(y(j)(e.item.artists,2)),1)]),_:1})):f("",!0),e.showAlbum&&"album"in e.item&&e.item.album?(n(),m(L,{key:1},{default:c(()=>[I(" • "+v(e.item.album.name),1)]),_:1})):f("",!0),e.showDiscNumber&&"disc_number"in e.item&&e.item.disc_number?(n(),m(L,{key:2},{default:c(()=>[b(O,{style:{"margin-left":"5px"},icon:"md:album"}),I(" "+v(e.item.disc_number),1)]),_:1})):f("",!0),e.showTrackNumber&&"track_number"in e.item&&e.item.track_number?(n(),m(L,{key:3},{default:c(()=>[b(O,{style:{"margin-left":"5px"},icon:"mdi-music-circle-outline"}),I(" "+v(e.item.track_number),1)]),_:1})):e.showPosition&&"position"in e.item&&e.item.position?(n(),m(L,{key:4},{default:c(()=>[b(O,{style:{"margin-left":"5px"},icon:"mdi-music-circle-outline"}),I(" "+v(e.item.position),1)]),_:1})):f("",!0)]),_:1})])):e.item.media_type==y(C).ALBUM&&"year"in e.item?(n(),p("div",Gt,[e.item.album_type!=y(ft).UNKNOWN?(n(),p("span",Xt,v(d.$t("album_type."+e.item.album_type))+" • ",1)):f("",!0),R("span",null,v(y(j)(e.item.artists)),1),e.item.year?(n(),p("span",Ht," • "+v(e.item.year),1)):f("",!0)])):"artists"in e.item&&e.item.artists?(n(),p("div",Ut,v(y(j)(e.item.artists)),1)):"owner"in e.item&&e.item.owner?(n(),p("div",jt,v(e.item.owner),1)):"authors"in e.item&&e.item.authors?(n(),p("div",Wt,v(e.item.authors.join(" / ")),1)):"publisher"in e.item&&e.item.publisher?(n(),p("div",qt,v(e.item.publisher),1)):"metadata"in e.item&&e.item.metadata?.description&&[y(C).RADIO,y(C).PLAYLIST,y(C).FOLDER].includes(e.item.media_type)?(n(),p("div",Jt,v(y(vt)(e.item.metadata.description,150)),1)):"media_type"in e.item&&!e.item.provider_mappings?(n(),p("div",Qt,v(d.$t(e.item.media_type)),1)):f("",!0)]),append:c(()=>[e.isPlaying?(n(),m(ne,{key:0})):f("",!0),k.value?(n(),m(ct,{key:1,src:y(Te),width:"30",class:P(d.$vuetify.theme.current.dark?"hiresicondark":"hiresicon")},{default:c(()=>[b(y(oe),{activator:"parent",location:"bottom"},{default:c(()=>[I(v(k.value),1)]),_:1})]),_:1},8,["src","class"])):f("",!0),y(U)("bp2")&&e.showProvider?(n(),m(mt,{key:2,domain:e.item.media_type==y(C).PLAYLIST?e.item.provider_mappings[0].provider_domain:e.item.provider,size:24},null,8,["domain"])):f("",!0),"fully_played"in e.item&&e.item.fully_played?(n(),m(O,{key:3,title:d.$t("item_fully_played")},{default:c(()=>[...h[4]||(h[4]=[I("mdi-check",-1)])]),_:1},8,["title"])):"resume_position_ms"in e.item&&e.item.resume_position_ms?(n(),m(O,{key:4,title:d.$t("item_in_progress")},{default:c(()=>[...h[5]||(h[5]=[I("mdi-clock-fast",-1)])]),_:1},8,["title"])):f("",!0),y(U)("bp3")&&"favorite"in e.item&&e.showFavorite&&!d.$vuetify.display.mobile?(n(),p("div",Zt,[b(Re,{item:e.item},null,8,["item"])])):f("",!0),e.showDuration&&"duration"in e.item&&e.item.duration&&y(U)("bp0")?(n(),p("div",_t,[R("div",null,[R("span",ea,v(y(dt)(e.item.duration)),1)])])):f("",!0)]),_:1},8,["show-menu-btn","class"]))}}),aa=ce(ta,[["__scopeId","data-v-9ae0d4eb"]]),ia={key:0},la=["src"],sa={key:0},oa=q({__name:"PanelviewItem",props:{item:{},size:{default:200},isSelected:{type:Boolean},showCheckboxes:{type:Boolean,default:!1},showMediaType:{type:Boolean,default:!1},showActions:{type:Boolean,default:!1},showTrackNumber:{type:Boolean,default:!1},isAvailable:{type:Boolean,default:!0},isPlaying:{type:Boolean},parentItem:{default:void 0}},emits:["select"],setup(e,{emit:i}){const w=e,g=H(()=>{for(const u of w.item.provider_mappings)if(u.audio_format&&u.audio_format.content_type!=null&&[K.DSF,K.FLAC,K.AIFF,K.WAV].includes(u.audio_format.content_type)&&(u.audio_format.sample_rate>48e3||u.audio_format.bit_depth>16))return`${u.audio_format.sample_rate/1e3}kHz ${u.audio_format.bit_depth} bits`;return""}),l=i,k=function(u){if(w.showCheckboxes)return;const F="clientX"in u?u.clientX:u.touches[0].clientX,d="clientY"in u?u.clientY:u.touches[0].clientY;re(w.item,F,d,w.parentItem)},B=function(u){if(w.showCheckboxes){l("select",w.item,!w.isSelected);return}Ve(w.item,u.clientX,u.clientY,w.parentItem)},T=function(u){w.showCheckboxes||De(w.item,u.clientX,u.clientY,w.parentItem)};return(u,F)=>{const d=gt("hold");return n(),m(xt,null,{default:c(({isHovering:h,props:A})=>[yt((n(),m(ht,ue(A,{tile:"",hover:"",class:["panel-item",{unavailable:!e.isAvailable}],onClick:B,onContextmenu:M(k,["right","prevent"])}),{default:c(()=>[e.showCheckboxes?(n(),m(bt,{key:0,"model-value":e.showCheckboxes,contained:"",scrim:e.isSelected?u.$vuetify.theme.current.dark?"rgba(0,0,0,.75)":"rgba(255,255,255,.75)":"#ffffff00"},{default:c(()=>[b(Oe,{class:"panel-item-checkbox",ripple:!1,"model-value":e.isSelected},null,8,["model-value"])]),_:1},8,["model-value","scrim"])):f("",!0),b(Le,{item:e.isAvailable?e.item:void 0,style:{height:"auto"}},null,8,["item"]),b(pt,{variant:"text",slim:"",tile:"",density:"compact",class:"panel-item-details"},{default:c(()=>[b(kt,null,{default:c(()=>[e.item.media_type==y(C).FOLDER?(n(),p("span",ia,[R("span",null,v(y(Fe)(e.item,u.$t)),1)])):(n(),p("span",{key:1,class:P({"is-playing":e.isPlaying})},v(e.item.name),3)),"version"in e.item&&e.item.version?(n(),p("span",{key:2,class:P({"is-playing":e.isPlaying})}," - "+v(e.item.version),3)):f("",!0)]),_:1}),"artists"in e.item&&e.item.artists?(n(),m(Y,{key:0,class:"line-clamp-1"},{default:c(()=>[I(v(y(j)(e.item.artists,1)),1)]),_:1})):f("",!0),"authors"in e.item&&e.item.authors?(n(),m(Y,{key:1,class:"line-clamp-1"},{default:c(()=>[I(v(e.item.authors.join(" / ")),1)]),_:1})):"publisher"in e.item&&e.item.publisher?(n(),m(Y,{key:2,class:"line-clamp-1"},{default:c(()=>[I(v(e.item.publisher),1)]),_:1})):"owner"in e.item&&e.item.owner?(n(),m(Y,{key:3,class:"line-clamp-1"},{default:c(()=>[I(v(e.item.owner),1)]),_:1})):e.showMediaType?(n(),m(Y,{key:4,class:"line-clamp-1"},{default:c(()=>[I(v(u.$t(e.item.media_type)),1)]),_:1})):(n(),m(Y,{key:5,class:"line-clamp-1"}))]),_:1}),e.isPlaying&&!e.showActions?(n(),m(ne,{key:1,"icon-style":"position: absolute; right: 5px; bottom: 5px","show-badge":!1})):f("",!0),(h||y(S).isTouchscreen)&&e.isAvailable&&e.item.is_playable?(n(),m(W,{key:2,icon:"mdi-play",color:"primary",fab:"",style:$e(`position: absolute; right: 15px; bottom: ${e.showActions?90:35}px; opacity: 0.8`),onClick:M(T,["stop"])},null,8,["style"])):f("",!0),e.showActions?(n(),m(wt,{key:3,class:"panel-item-actions"},{default:c(()=>[b(Me,{style:{padding:"0"}},{default:c(()=>[y(xe)(e.item.metadata.explicit||!1)?(n(),m(L,{key:0},{default:c(()=>[b(O,{size:"30",icon:"mdi-alpha-e-box"})]),_:1})):f("",!0),g.value?(n(),m(L,{key:1},{default:c(()=>[b(O,{class:P(u.$vuetify.theme.current.dark?"hiresicon":"hiresiconinverted")},{default:c(()=>[R("img",{src:y(Te),width:"30"},null,8,la),b(oe,{activator:"parent",location:"bottom"},{default:c(()=>[I(v(g.value),1)]),_:1})]),_:1},8,["class"])]),_:1})):f("",!0),e.showTrackNumber&&"track_number"in e.item&&e.item.track_number?(n(),m(L,{key:2},{default:c(()=>[b(O,{size:"small",icon:"mdi-music-circle-outline"}),e.item.disc_number?(n(),p("span",sa,v(e.item.disc_number)+"/",1)):f("",!0),I(v(e.item.track_number),1)]),_:1})):"position"in e.item&&e.item.position?(n(),m(L,{key:3},{default:c(()=>[b(O,{size:"small",icon:"mdi-music-circle-outline"}),I(" "+v(e.item.position),1)]),_:1})):f("",!0),y(U)("bp3")?(n(),m(L,{key:4},{default:c(()=>[b(Re,{item:e.item},null,8,["item"])]),_:1})):f("",!0)]),_:1}),e.isPlaying?(n(),m(ne,{key:0,"show-badge":!1})):f("",!0),b(Dt),h||u.$vuetify.display.mobile?(n(),m(Pe,{key:1,variant:"list",icon:"mdi-dots-vertical",style:{"padding-right":"0","margin-right":"-5px"},onClick:M(k,["stop"])})):f("",!0)]),_:2},1024)):f("",!0)]),_:2},1040,["class"])),[[d,k]])]),_:1})}}}),na=ce(oa,[["__scopeId","data-v-bb3ba95c"]]),ua={key:0},ra={key:2},ca=q({__name:"ItemsListing",props:{itemtype:{},sortKeys:{default:()=>["name","sort_name"]},showTrackNumber:{type:Boolean,default:!0},showProvider:{type:Boolean,default:Object.keys(se.providers).length>1},showAlbum:{type:Boolean,default:!0},showFavoritesOnlyFilter:{type:Boolean,default:!0},showDuration:{type:Boolean,default:!0},parentItem:{default:void 0},showAlbumArtistsOnlyFilter:{type:Boolean},showSearchButton:{type:Boolean,default:void 0},showRefreshButton:{type:Boolean,default:void 0},showSelectButton:{type:Boolean,default:void 0},showAlbumTypeFilter:{type:Boolean,default:void 0},updateAvailable:{type:Boolean},title:{default:void 0},hideOnEmpty:{type:Boolean,default:!1},showLibraryOnlyFilter:{type:Boolean,default:!1},allowCollapse:{type:Boolean,default:!1},allowKeyHooks:{type:Boolean,default:!1},extraMenuItems:{default:void 0},loadPagedData:{type:Function,default:void 0},loadItems:{type:Function,default:void 0},limit:{default:50},total:{default:void 0},infiniteScroll:{type:Boolean,default:!0},path:{default:void 0},icon:{default:void 0},restoreState:{type:Boolean,default:!1},onTitleClick:{type:Function,default:void 0}},setup(e){const i=e,w=Tt(),{t:g}=Ce(),l=$({offset:0,limit:50,sortBy:"name",search:"",libraryOnly:!1}),k=$("list"),B=$(!1),T=$(!1),u=$([]),F=$([]),d=$(!1),h=$([]),A=$(!1),V=$(!1),N=$(!0),E=$(!1),G=$(!1),J=$(!1),me=function(){l.value.search="",B.value=!1},Q=function(){be(()=>{document.getElementById("searchInput")?.focus()})},Ke=function(){B.value?me():(B.value=!0,Q())},Z=function(){if(i.onTitleClick){i.onTitleClick();return}N.value=!N.value;const t=`${i.path}.${i.itemtype}`;localStorage.setItem(`expand.${t}`,N.value.toString())},_=function(t){k.value=t;const s=`${i.path}.${i.itemtype}`;localStorage.setItem(`viewMode.${s}`,t)},Ne=function(){l.value.favoritesOnly=!l.value.favoritesOnly;const t=l.value.favoritesOnly?"true":"false",s=`${i.path}.${i.itemtype}`;localStorage.setItem(`favoriteFilter.${s}`,t),D(void 0,void 0,!0)},Ye=function(){l.value.libraryOnly=!l.value.libraryOnly;const t=l.value.libraryOnly?"true":"false",s=`${i.path}.${i.itemtype}`;localStorage.setItem(`libraryFilter.${s}`,t),D(!0,void 0,!0)},ze=function(){l.value.albumArtistsFilter=!l.value.albumArtistsFilter;const t=l.value.albumArtistsFilter?"true":"false",s=`${i.path}.${i.itemtype}`;localStorage.setItem(`albumArtistsFilter.${s}`,t),D(void 0,void 0,!0)},ee=function(t){return h.value.includes(t)},te=function(t,s){const a=S.curQueueItem?.media_item;if(!a)return!1;switch(s){case"tracks":return t.item_id===a.item_id;case"albums":return"album"in a?t.item_id===a.album.item_id:!1;case"artists":return"artists"in a?Array.isArray(a.artists)&&a.artists.some(o=>o.item_id===t.item_id):!1;case"radios":return t.item_id===a.item_id;case"podcasts":return"podcast"in a?t.item_id===a.podcast.item_id:!1;case"podcastepisodes":return t.item_id===a.item_id;default:return!1}},ae=function(t,s){if(s)h.value.includes(t)||h.value.push(t);else for(let a=0;a<h.value.length;a++)h.value[a]===t&&h.value.splice(a,1)},Ge=function(){V.value&&(h.value=[]),V.value=!V.value},Xe=function(){D(!0,!0)},He=function(){l.value.search="",B.value=!1,D(void 0,void 0,!0)},Ue=function(t){t!==void 0&&(l.value.sortBy=t);const s=`${i.path}.${i.itemtype}`;localStorage.setItem(`sortBy.${s}`,l.value.sortBy),D(void 0,void 0,!0)},je=function(t){l.value.albumType?.includes(t)?l.value.albumType=l.value.albumType?.filter(a=>a!==t):(l.value.albumType=l.value.albumType||[],l.value.albumType.push(t));const s=`${i.path}.${i.itemtype}`;localStorage.setItem(`albumType.${s}`,l.value.albumType.join(",")),D(void 0,void 0,!0)},We=function(){S.globalSearchTerm=l.value.search,i.itemtype=="artists"?S.globalSearchType=C.ARTIST:i.itemtype=="albums"?S.globalSearchType=C.ALBUM:i.itemtype=="tracks"?S.globalSearchType=C.TRACK:i.itemtype=="playlists"?S.globalSearchType=C.PLAYLIST:i.itemtype=="audiobooks"?S.globalSearchType=C.AUDIOBOOK:i.itemtype=="podcasts"?S.globalSearchType=C.PODCAST:i.itemtype=="radios"&&(S.globalSearchType=C.RADIO),w.push({name:"search"})},de=async function({done:t}){if(E.value){t("empty");return}await D(void 0,void 0,void 0,l.value.offset+i.limit),t("ok")},qe=async function(){for(;!E.value;)await de({done:function(){}})},fe=H(()=>{var t=!1;return l.value.search&&l.value.search.length!==0&&(t=!0),t}),ve=H(()=>B.value&&N.value);It(()=>{ve.value||(T.value=!1)});const Je=H(()=>{if(i.allowCollapse===!0&&!N.value)return[{label:"tooltip.collapse_expand",icon:"mdi-chevron-down",action:Z,overflowAllowed:!1}];const t=[];return i.showSelectButton!==!1&&(V.value&&t.push({label:"tooltip.select_all",icon:"mdi-select-all",action:he}),t.push({label:"tooltip.select_items",icon:V.value?"mdi-checkbox-multiple-outline":"mdi-checkbox-multiple-blank-outline",action:Ge,active:V.value})),i.showLibraryOnlyFilter===!0&&t.push({label:"tooltip.filter_library",icon:"mdi-bookshelf",action:Ye,active:l.value.libraryOnly}),i.showFavoritesOnlyFilter===!0&&t.push({label:"tooltip.filter_favorites",icon:l.value.favoritesOnly?"mdi-heart":"mdi-heart-outline",action:Ne,active:l.value.favoritesOnly}),i.showAlbumArtistsOnlyFilter===!0&&t.push({label:"tooltip.album_artist_filter",icon:l.value.albumArtistsFilter?"mdi-account-music":"mdi-account-music-outline",action:ze,active:l.value.albumArtistsFilter}),i.showAlbumTypeFilter&&t.push({label:"tooltip.album_type",icon:"mdi-album",disabled:d.value,subItems:["album","single","ep","compilation","live","soundtrack","unknown"].map(s=>({label:`album_type.${s}`,selected:l.value.albumType?.includes(s),action:()=>{je(s)}}))}),(i.showRefreshButton!==!1||A.value)&&t.push({label:A.value?"tooltip.refresh_new_content":"tooltip.refresh",icon:"mdi-refresh",action:Xe,active:A.value,disabled:d.value}),i.sortKeys?.length&&t.push({label:"tooltip.sort_options",icon:"mdi-sort",disabled:i.sortKeys.length<=1||d.value,subItems:i.sortKeys.map(s=>({label:`sort.${s}`,selected:l.value.sortBy==s,action:()=>{Ue(s)}}))}),i.showSearchButton!==!1&&t.push({label:fe.value?"tooltip.search_filter_active":"tooltip.search",icon:"mdi-magnify",action:Ke,active:fe.value,disabled:d.value}),t.push({label:"tooltip.toggle_view_mode",icon:k.value=="list"?"mdi-view-list":"mdi-grid",subItems:[{label:"view.list",icon:"mdi-view-list",selected:k.value=="list",action:()=>{_("list")}},{label:"view.panel",icon:"mdi-grid",selected:k.value=="panel",action:()=>{_("panel")}},{label:"view.panel_compact",icon:"mdi-grid",selected:k.value=="panel_compact",action:()=>{_("panel_compact")}}]}),i.extraMenuItems?.length&&t.push(...i.extraMenuItems),i.allowCollapse===!0&&t.push({label:"tooltip.collapse_expand",icon:"mdi-chevron-up",action:Z}),t}),D=async function(t=!1,s=!1,a=!1,o=0){if(!d.value){if(d.value=!0,a&&i.loadPagedData!=null&&(t=!0),(t||s)&&(o=0,E.value&&(J.value=!0),E.value=!1,G.value=!1,A.value=!1),l.value.offset=o,l.value.limit=i.limit,l.value.refresh=s,i.loadPagedData!=null){const r=await i.loadPagedData(l.value);l.value.offset?u.value.push(...r):u.value=r,Math.abs(r.length-i.limit)>10&&(E.value=!0)}else if(i.loadItems!=null){(!G.value||s)&&(F.value=await i.loadItems(l.value),G.value=!0);const r=Ze(F.value,l.value);l.value.offset?u.value.push(...r):u.value=r,E.value=r.length<i.limit}l.value.refresh=!1,d.value=!1,J.value=!1}},Qe=async function(){const t=`${i.path}.${i.itemtype}`,s=localStorage.getItem(`viewMode.${t}`);s&&s!=="null"?k.value=s:i.itemtype=="artists"||i.itemtype=="albums"?k.value="panel":k.value="list";const a=localStorage.getItem(`sortBy.${t}`);if(a&&a!=="null"&&i.sortKeys.includes(a)?l.value.sortBy=a:l.value.sortBy=i.sortKeys[0],i.showFavoritesOnlyFilter!==!1){const o=localStorage.getItem(`favoriteFilter.${t}`);o&&o=="true"&&(l.value.favoritesOnly=!0)}if(i.showLibraryOnlyFilter!==!1){const o=localStorage.getItem(`libraryFilter.${t}`);o&&o=="true"&&(l.value.libraryOnly=!0)}if(i.showAlbumArtistsOnlyFilter!==!1){const o=localStorage.getItem(`albumArtistsFilter.${t}`);o&&(l.value.albumArtistsFilter=o=="true")}if(i.allowCollapse!==!1){const o=localStorage.getItem(`expand.${t}`);o&&(N.value=o=="true")}if(i.showAlbumTypeFilter===!0){const o=localStorage.getItem(`albumType.${t}`);o&&(l.value.albumType=o.split(","))}if(i.restoreState){let o=`search.${t}`;i.parentItem&&(o+=i.parentItem.item_id);const r=localStorage.getItem(o);r&&r!=="null"&&(l.value.search=r)}},ye=function(t){S.dialogActive||d.value||(t.key==="Escape"&&me(),!T.value&&(t.key==="a"&&(t.ctrlKey||t.metaKey)?(t.preventDefault(),he()):!T.value&&t.key=="Backspace"?Q():!T.value&&t.key.length==1&&(B.value=!0,Q())))};i.allowKeyHooks&&(document.addEventListener("keydown",ye),ie(()=>{document.removeEventListener("keydown",ye)})),i.restoreState&&ie(()=>{const t=i.path||i.itemtype,s=document.querySelector("#cont");S.prevState={path:t,scrollPos:s?.scrollTop||0,pagedItems:u.value,allItems:F.value,allItemsReceived:E.value,initialDataReceived:G.value,params:l.value}}),X(()=>l.value.search,t=>{t&&(B.value=!0),D(void 0,void 0,!0);let s=`search.${i.path}.${i.itemtype}`;i.parentItem&&(s+=i.parentItem.item_id),localStorage.setItem(s,l.value.search)}),X(()=>i.path,t=>{d.value!=!0&&(u.value=[],F.value=[],D(!0))}),X(()=>i.parentItem,()=>{d.value!=!0&&(F.value=[],A.value=!0)},{deep:!0}),X(()=>i.limit,t=>{l.value.limit=t}),X(()=>i.updateAvailable,t=>{d.value||(A.value=t)},{immediate:!0}),St(async()=>{Qe();const t=i.path||i.itemtype;i.restoreState&&S.prevState?.path==t?(l.value=S.prevState.params,u.value=S.prevState.pagedItems,F.value=S.prevState.allItems,E.value=S.prevState.allItemsReceived,G.value=S.prevState.initialDataReceived,be(()=>{const a=document.getElementById("cont");a&&Bt(a,S.prevState.scrollPos,50)}),d.value=!1):D(!0),pe.on("clearSelection",()=>{h.value=[],V.value=!1});const s=se.subscribe_multi([z.MEDIA_ITEM_UPDATED,z.MEDIA_ITEM_DELETED,z.MEDIA_ITEM_PLAYED],a=>{if(a.event==z.MEDIA_ITEM_DELETED)u.value=u.value.filter(o=>o.uri!=a.object_id);else if(a.event==z.MEDIA_ITEM_UPDATED){const o=u.value.findIndex(r=>r.uri==a.object_id);o>=0&&(u.value[o]=a.data)}else if(a.event==z.MEDIA_ITEM_PLAYED){const o=u.value.findIndex(r=>r.uri==a.object_id);o>=0&&("fully_played"in u.value[o]&&(u.value[o].fully_played=a.data.fully_played),"resume_position_ms"in u.value[o]&&(u.value[o].resume_position_ms=a.data.seconds_played*1e3))}});ie(()=>{pe.off("clearSelection"),s()})});const x=function(t,s=!1){return t?"translation_key"in t&&t.translation_key&&t.name?g(t.translation_key,[t.name]):"translation_key"in t&&t.translation_key?g(t.translation_key):s&&"sort_name"in t&&t.sort_name?t.sort_name:t.name:""},Ze=function(t,s){let a=[];if(s.search){const o=s.search.toLowerCase();for(const r of t)(r.name.toLowerCase().includes(o)||"album"in r&&r.album?.name.toLowerCase().includes(o)||"artists"in r&&r.artists&&r.artists.length&&r.artists[0].name.toLowerCase().includes(o))&&a.push(r)}else a=[...t];return s.sortBy=="name"&&a.sort((o,r)=>x(o).localeCompare(x(r),void 0,{numeric:!0})),s.sortBy=="sort_name"&&a.sort((o,r)=>x(o,!0).localeCompare(x(r,!0),void 0,{numeric:!0})),s.sortBy=="name_desc"&&a.sort((o,r)=>x(r).localeCompare(x(o),void 0,{numeric:!0})),s.sortBy=="sort_name_desc"&&a.sort((o,r)=>x(r,!0).localeCompare(x(o,!0),void 0,{numeric:!0})),s.sortBy=="album"&&a.sort((o,r)=>x(o.album).localeCompare(x(r.album),void 0,{numeric:!0})),s.sortBy=="artist"&&a.sort((o,r)=>x(o.artists[0]).localeCompare(x(r.artists[0]))),s.sortBy=="track_number"&&(a.sort((o,r)=>(o.track_number||0)-(r.track_number||0)),a.sort((o,r)=>(o.disc_number||0)-(r.disc_number||0))),s.sortBy=="position"&&a.sort((o,r)=>(o.position||0)-(r.position||0)),s.sortBy=="position_desc"&&a.sort((o,r)=>(r.position||0)-(o.position||0)),s.sortBy=="year"&&a.sort((o,r)=>(o.year||0)-(r.year||0)),s.sortBy=="year_desc"&&a.sort((o,r)=>(r.year||0)-(o.year||0)),s.sortBy=="recent"&&a.sort((o,r)=>(r.timestamp_added||0)-(o.timestamp_added||0)),s.sortBy=="duration"&&a.sort((o,r)=>(o.duration||0)-(r.duration||0)),s.sortBy=="duration_desc"&&a.sort((o,r)=>(r.duration||0)-(o.duration||0)),s.sortBy=="provider"&&a.sort((o,r)=>o.provider.localeCompare(r.provider)),s.favoritesOnly&&(a=a.filter(o=>o.favorite)),s.albumType&&s.albumType.length>0&&(a=a.filter(o=>s.albumType?.includes(o.album_type))),a.slice(s.offset,s.offset+s.limit)},he=async function(){let t=!0;(i.total||F.value.length)>250&&(t=await new Promise(a=>{confirm(g("select_all_confirmation"))?a(!0):a(!1)})),t&&(await qe(),h.value=u.value,V.value=!0)};return(t,s)=>e.hideOnEmpty&&u.value.length==0?f("",!0):(n(),p("section",ua,[b(et,{icon:e.icon,title:e.title,count:l.value.search?u.value.length:e.total||F.value.length,color:"transparent","menu-items":Je.value,onTitleClicked:Z},{title:c(()=>[$t(t.$slots,"title",{},()=>[I(v(e.title),1)],!0)]),_:3},8,["icon","title","count","menu-items"]),b(At),ve.value?(n(),m(Pt,{key:0,id:"searchInput",modelValue:l.value.search,"onUpdate:modelValue":s[0]||(s[0]=a=>l.value.search=a),clearable:"","prepend-inner-icon":"mdi-magnify",label:t.$t("search"),"hide-details":"",variant:"filled",style:{width:"auto","margin-top":"10px"},onFocus:s[1]||(s[1]=a=>T.value=!0),onBlur:s[2]||(s[2]=a=>T.value=!1),"onClick:clear":He},null,8,["modelValue","label"])):f("",!0),N.value?(n(),m(_e,{key:1,variant:k.value=="list"?"default":"panel",style:{overflow:"hidden"}},{default:c(()=>[d.value?(n(),m(Ct,{key:0,color:"accent",height:"4",indeterminate:"",rounded:""})):f("",!0),!J.value&&!(u.value.length==0&&E.value)?(n(),m(Ot,{key:1,onLoad:de,mode:e.infiniteScroll?"intersect":"manual","load-more-text":t.$t("load_more_items"),"empty-text":"",style:{overflow:"hidden"}},{default:c(()=>[k.value=="panel"?(n(),m(Ie,{key:0},{default:c(()=>[(n(!0),p(ke,null,we(u.value,a=>(n(),m(Se,{key:a.uri,cols:"12",class:P(`col-${y(ge)(t.$vuetify.display.width)}`)},{default:c(()=>[b(na,{item:a,"is-selected":ee(a),"show-checkboxes":V.value,"show-actions":["tracks","albums","albumtracks"].includes(e.itemtype),"show-track-number":e.showTrackNumber,"is-available":y(le)(a),"is-playing":te(a,e.itemtype),"parent-item":e.parentItem,onSelect:ae},null,8,["item","is-selected","show-checkboxes","show-actions","show-track-number","is-available","is-playing","parent-item"])]),_:2},1032,["class"]))),128))]),_:1})):f("",!0),k.value=="panel_compact"?(n(),m(Ie,{key:1},{default:c(()=>[(n(!0),p(ke,null,we(u.value,a=>(n(),m(Se,{key:a.uri,cols:"12",class:P(`col-${y(ge)(t.$vuetify.display.width)}`)},{default:c(()=>[b(Vt,{item:a,"is-selected":ee(a),"show-checkboxes":V.value,"is-available":y(le)(a),"is-playing":te(a,e.itemtype),"parent-item":e.parentItem,onSelect:ae},null,8,["item","is-selected","show-checkboxes","is-available","is-playing","parent-item"])]),_:2},1032,["class"]))),128))]),_:1})):f("",!0),k.value=="list"?(n(),m(Et,{key:2,"item-height":70,height:"100%",items:u.value,style:{height:"100%",overflow:"hidden"}},{default:c(({item:a})=>[b(aa,{item:a,"show-track-number":e.showTrackNumber,"show-disc-number":e.showTrackNumber,"show-duration":e.showDuration,"show-favorite":e.showFavoritesOnlyFilter,"show-menu":a.is_playable,"show-provider":e.showProvider,"show-album":e.showAlbum,"show-checkboxes":V.value,"is-selected":ee(a),"is-available":y(le)(a),"is-playing":te(a,e.itemtype),"show-details":e.itemtype.includes("versions"),"parent-item":e.parentItem,onSelect:ae},null,8,["item","show-track-number","show-disc-number","show-duration","show-favorite","show-menu","show-provider","show-album","show-checkboxes","is-selected","is-available","is-playing","show-details","parent-item"])]),_:1},8,["items"])):f("",!0)]),_:1},8,["mode","load-more-text"])):f("",!0),!d.value&&u.value.length==0?(n(),p("div",ra,[!d.value&&u.value.length==0&&(l.value.search||l.value.favoritesOnly)?(n(),m(Be,{key:0,title:t.$t("no_content_filter")},{default:c(()=>[l.value.search?(n(),m(W,{key:0,style:{"margin-top":"15px"},onClick:We},{default:c(()=>[I(v(t.$t("try_global_search")),1)]),_:1})):f("",!0)]),_:1},8,["title"])):!d.value&&u.value.length==0?(n(),m(Be,{key:1},{default:c(()=>[I(v(t.$t("no_content")),1)]),_:1})):f("",!0)])):f("",!0),b(Lt,{"model-value":h.value.length>1,timeout:-1,style:{"margin-bottom":"120px"}},{actions:c(()=>[b(W,{color:"primary",variant:"text",onClick:s[3]||(s[3]=a=>y(re)(h.value,a.clientX,a.clientY,e.parentItem))},{default:c(()=>[I(v(t.$t("actions")),1)]),_:1})]),default:c(()=>[R("span",null,v(t.$t("items_selected",[h.value.length])),1)]),_:1},8,["model-value"])]),_:1},8,["variant"])):f("",!0)]))}}),Ca=ce(ca,[["__scopeId","data-v-551a2a2b"]]);export{Ca as I};
@@ -0,0 +1 @@
1
+ import{I as p}from"./ItemsListing-CqOkN5bP.js";import{d as c,i,s as l,j as d,m as e,a_ as y,l as b,e as _,u as s,M as f,o as v}from"./index-BLuBzgcR.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";const G=c({name:"Albums",__name:"LibraryAlbums",setup(h){const a=i(!1),o=i(l.libraryAlbumsCount),n=["name","name_desc","sort_name","sort_name_desc","year","year_desc","timestamp_added","timestamp_added_desc","last_played","last_played_desc","play_count","play_count_desc","artist_name","artist_name_desc"];d(()=>{const t=e.subscribe(y.MEDIA_ITEM_ADDED,r=>{r.object_id?.startsWith("library://artist")&&(a.value=!0)});b(t)});const m=async function(t){return a.value=!1,u(t),await e.getLibraryAlbums(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy,t.albumType)},u=async function(t){if(!t.favoritesOnly&&!t.albumType){o.value=l.libraryAlbumsCount;return}o.value=await e.getLibraryAlbumsCount(t.favoritesOnly||void 0,t.albumType||void 0)};return(t,r)=>(v(),_(p,{itemtype:"albums",path:"libraryalbums","show-provider":!1,"show-favorites-only-filter":!0,"load-paged-data":m,"sort-keys":n,"update-available":a.value,title:t.$t("albums"),"allow-key-hooks":!0,"show-search-button":!0,icon:"mdi-album","restore-state":!0,total:o.value,"show-album-type-filter":!0,"extra-menu-items":[{label:"sync_now",icon:"mdi-sync",action:()=>{s(e).startSync([s(f).ALBUM])},overflowAllowed:!0,disabled:s(e).syncTasks.value.length>0}]},null,8,["update-available","title","total","extra-menu-items"]))}});export{G as default};
@@ -0,0 +1 @@
1
+ import{I as c}from"./ItemsListing-CqOkN5bP.js";import{d as p,i,s as l,j as d,m as e,a_ as y,l as f,e as _,u as r,M as b,o as v}from"./index-BLuBzgcR.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";const z=p({name:"Artists",__name:"LibraryArtists",setup(A){const s=i(!1),o=i(l.libraryArtistsCount),n=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","last_played","last_played_desc","play_count","play_count_desc"],u=async function(t){return s.value=!1,m(t),await e.getLibraryArtists(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy,t.albumArtistsFilter)},m=async function(t){if(!t.favoritesOnly&&!t.albumArtistsFilter){o.value=l.libraryArtistsCount;return}o.value=await e.getLibraryArtistsCount(t.favoritesOnly||!1,t.albumArtistsFilter||!1)};return d(()=>{const t=e.subscribe(y.MEDIA_ITEM_ADDED,a=>{a.object_id?.startsWith("library://artist")&&(s.value=!0)});f(t)}),(t,a)=>(v(),_(c,{itemtype:"artists",path:"libraryartists","show-provider":!1,"show-favorites-only-filter":!0,"load-paged-data":u,"show-album-artists-only-filter":!0,"update-available":s.value,title:t.$t("artists"),"allow-key-hooks":!0,"show-search-button":!0,"sort-keys":n,icon:"mdi-account-outline","restore-state":!0,total:o.value,"extra-menu-items":[{label:"sync_now",icon:"mdi-sync",action:()=>{r(e).startSync([r(b).ARTIST])},overflowAllowed:!0,disabled:r(e).syncTasks.value.length>0}]},null,8,["update-available","title","total","extra-menu-items"]))}});export{z as default};
@@ -0,0 +1 @@
1
+ import{I as m}from"./ItemsListing-CqOkN5bP.js";import{d as p,i as r,s as n,j as c,m as t,a_ as y,l as b,e as _,u as i,M as f,o as v}from"./index-BLuBzgcR.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";const G=p({name:"Audiobooks",__name:"LibraryAudiobooks",setup(k){const e=r(!1),a=r(n.libraryAudiobooksCount),l=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","timestamp_modified","timestamp_modified_desc","last_played","last_played_desc","play_count","play_count_desc"],u=async function(o){return e.value=!1,d(o),await t.getLibraryAudiobooks(o.favoritesOnly||void 0,o.search,o.limit,o.offset,o.sortBy)},d=async function(o){if(!o.favoritesOnly){a.value=n.libraryAudiobooksCount;return}a.value=await t.getLibraryAudiobooksCount(o.favoritesOnly||!1)};return c(()=>{const o=t.subscribe(y.MEDIA_ITEM_ADDED,s=>{s.object_id?.startsWith("library://audiobook")&&(e.value=!0)});b(o)}),(o,s)=>(v(),_(m,{itemtype:"audiobooks",path:"libraryaudiobooks","show-duration":!1,"show-provider":!0,"show-favorites-only-filter":!0,"load-paged-data":u,"show-library":!0,"sort-keys":l,"update-available":e.value,title:o.$t("audiobooks"),"allow-key-hooks":!0,"show-search-button":!0,icon:"mdi-book-play-outline","restore-state":!0,total:a.value,"extra-menu-items":[{label:"sync_now",icon:"mdi-sync",action:()=>{i(t).startSync([i(f).AUDIOBOOK])},overflowAllowed:!0,disabled:i(t).syncTasks.value.length>0}]},null,8,["update-available","title","total","extra-menu-items"]))}});export{G as default};
@@ -0,0 +1 @@
1
+ import{I as f}from"./ItemsListing-CqOkN5bP.js";import{d as b,bw as v,i as o,s as m,m as e,M as h,j as w,P as I,a_ as r,l as E,e as P,o as T}from"./index-BLuBzgcR.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";const N=b({name:"Playlists",__name:"LibraryPlaylists",setup(A){const{t:u}=v(),i=o(!1),l=o(m.libraryPlaylistsCount),n=o([{label:"sync_now",icon:"mdi-sync",action:()=>{e.startSync([h.PLAYLIST])},overflowAllowed:!0,disabled:e.syncTasks.value.length>0}]),c=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","timestamp_modified","timestamp_modified_desc","last_played","last_played_desc","play_count","play_count_desc"],y=async function(t){return i.value=!1,d(t),await e.getLibraryPlaylists(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy)},d=async function(t){if(!t.favoritesOnly){l.value=m.libraryPlaylistsCount;return}l.value=await e.getLibraryPlaylistsCount(t.favoritesOnly||!1)};w(()=>{const t=[];for(const a of Object.values(e.providers).filter(p=>p.available&&p.supported_features.includes(I.PLAYLIST_CREATE)))t.push({label:"create_playlist_on",labelArgs:[a.name],action:()=>{_(a.instance_id)},icon:"mdi-playlist-plus"});t.length&&n.value.push({label:"create_playlist_on",icon:"mdi-playlist-plus",subItems:t});const s=e.subscribe_multi([r.MEDIA_ITEM_ADDED,r.MEDIA_ITEM_UPDATED,r.MEDIA_ITEM_DELETED],a=>{a.object_id?.startsWith("library://playlist")&&(i.value=!0)});E(s)});const _=async function(t){const s=prompt(u("new_playlist_name"));s&&await e.createPlaylist(s,t).then(()=>location.reload()).catch(a=>alert(a))};return(t,s)=>(T(),P(f,{itemtype:"playlists",path:"libraryplaylists","show-duration":!1,"show-provider":!0,"show-favorites-only-filter":!0,"load-paged-data":y,"show-library":!0,"sort-keys":c,"update-available":i.value,title:t.$t("playlists"),"allow-key-hooks":!0,"show-search-button":!0,"extra-menu-items":n.value,icon:"mdi-playlist-play","restore-state":!0,total:l.value},null,8,["update-available","title","extra-menu-items","total"]))}});export{N as default};
@@ -0,0 +1 @@
1
+ import{I as c}from"./ItemsListing-CqOkN5bP.js";import{d as p,i,s as n,j as u,m as e,a_ as y,l as _,e as f,u as s,M as b,o as v}from"./index-BLuBzgcR.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";const F=p({name:"Podcasts",__name:"LibraryPodcasts",setup(h){const o=i(!1),a=i(n.libraryPodcastsCount),l=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","timestamp_modified","timestamp_modified_desc","last_played","last_played_desc","play_count","play_count_desc"],d=async function(t){return o.value=!1,m(t),await e.getLibraryPodcasts(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy)},m=async function(t){if(!t.favoritesOnly){a.value=n.libraryPodcastsCount;return}a.value=await e.getLibraryPodcastsCount(t.favoritesOnly||!1)};return u(()=>{const t=e.subscribe(y.MEDIA_ITEM_ADDED,r=>{r.object_id?.startsWith("library://podcast")&&(o.value=!0)});_(t)}),(t,r)=>(v(),f(c,{itemtype:"podcasts",path:"librarypodcasts","show-duration":!1,"show-provider":!0,"show-favorites-only-filter":!0,"load-paged-data":d,"show-library":!0,"sort-keys":l,"update-available":o.value,title:t.$t("podcasts"),"allow-key-hooks":!0,"show-search-button":!0,icon:"mdi-podcast","restore-state":!0,total:a.value,"extra-menu-items":[{label:"sync_now",icon:"mdi-sync",action:()=>{s(e).startSync([s(b).PODCAST])},overflowAllowed:!0,disabled:s(e).syncTasks.value.length>0}]},null,8,["update-available","title","total","extra-menu-items"]))}});export{F as default};
@@ -0,0 +1 @@
1
+ import{I as f}from"./ItemsListing-CqOkN5bP.js";import{d as _,i as l,s as n,j as v,m as e,a_ as b,l as w,c as h,b as d,u as o,M as m,F as g,o as A}from"./index-BLuBzgcR.js";import{_ as R}from"./AddManualLink.vue_vue_type_script_setup_true_lang-Btxi9C62.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";import"./VDialog-CUNnqGJy.js";const Q=_({name:"Radios",__name:"LibraryRadios",setup(D){const s=l(!1),i=l(n.libraryRadiosCount),r=l(!1),u=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","last_played","last_played_desc","play_count","play_count_desc"];v(()=>{const t=e.subscribe(b.MEDIA_ITEM_ADDED,a=>{a.object_id?.startsWith("library://radio")&&(s.value=!0)});w(t)});const p=async function(t){return s.value=!1,c(t),await e.getLibraryRadios(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy)},c=async function(t){if(!t.favoritesOnly){i.value=n.libraryRadiosCount;return}i.value=await e.getLibraryRadiosCount(t.favoritesOnly||!1)};return(t,a)=>(A(),h(g,null,[d(f,{itemtype:"radios",path:"libraryradios","show-duration":!1,"show-provider":!1,"show-favorites-only-filter":!0,"load-paged-data":p,"sort-keys":u,"update-available":s.value,title:t.$t("radios"),"show-search-button":!0,"allow-key-hooks":!0,"extra-menu-items":[{label:"sync_now",icon:"mdi-sync",action:()=>{o(e).startSync([o(m).RADIO])},overflowAllowed:!0,disabled:o(e).syncTasks.value.length>0},{label:"add_url_item",labelArgs:[],action:()=>{r.value=!0},icon:"mdi-playlist-plus"}],icon:"mdi-access-point","restore-state":!0,total:i.value},null,8,["update-available","title","extra-menu-items","total"]),d(R,{modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=y=>r.value=y),type:o(m).RADIO},null,8,["modelValue","type"])],64))}});export{Q as default};
@@ -0,0 +1 @@
1
+ import{I as f}from"./ItemsListing-CqOkN5bP.js";import{d as _,i as l,s as n,j as v,m as e,a_ as b,l as k,c as w,b as u,u as o,M as m,F as T,o as h}from"./index-BLuBzgcR.js";import{_ as g}from"./AddManualLink.vue_vue_type_script_setup_true_lang-Btxi9C62.js";import"./Container-BVutxj42.js";import"./index-CBho6rsP.js";import"./VContainer-DOe7JF0h.js";/* empty css */import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Toolbar-RSDUeNZR.js";import"./VToolbar-BFOvSQM-.js";import"./VBtn-i8gedOhv.js";import"./Button-BEhYIX-0.js";import"./ListItem-D3UfOTqB.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import"./VInput-S8c2HXsf.js";import"./MediaItemThumb-4FqrTjbr.js";import"./PanelviewItemCompact-Czo8xJLH.js";import"./VSpacer-FdmIBMIx.js";import"./VTextField-BRzkPyuL.js";import"./VInfiniteScroll-XtiIpwbc.js";import"./layout-Dtt5lK8k.js";import"./VRow-Dw7kUaJt.js";import"./VVirtualScroll-JP5E3DQw.js";import"./VAlert-Du-laR0E.js";import"./VDialog-CUNnqGJy.js";const Q=_({name:"Tracks",__name:"LibraryTracks",setup(A){const r=l(!1),s=l(n.libraryTracksCount),i=l(!1),c=["name","name_desc","sort_name","sort_name_desc","duration","duration_desc","timestamp_added","timestamp_added_desc","last_played","last_played_desc","play_count","play_count_desc"];v(()=>{const t=e.subscribe(b.MEDIA_ITEM_ADDED,a=>{a.object_id?.startsWith("library://track")&&(r.value=!0)});k(t)});const d=async function(t){return t.favoritesOnly=t.favoritesOnly||void 0,r.value=!1,p(t),await e.getLibraryTracks(t.favoritesOnly,t.search,t.limit,t.offset,t.sortBy)},p=async function(t){if(!t.favoritesOnly){s.value=n.libraryTracksCount;return}s.value=await e.getLibraryTracksCount(t.favoritesOnly||!1)};return(t,a)=>(h(),w(T,null,[u(f,{itemtype:"tracks",path:"librarytracks","show-provider":!1,"show-favorites-only-filter":!0,"show-track-number":!1,"load-paged-data":d,"sort-keys":c,"show-album":!0,"update-available":r.value,title:t.$t("tracks"),"show-search-button":!0,"allow-key-hooks":!0,"extra-menu-items":[{label:"sync_now",icon:"mdi-sync",action:()=>{o(e).startSync([o(m).TRACK])},overflowAllowed:!0,disabled:o(e).syncTasks.value.length>0},{label:"add_url_item",labelArgs:[],action:()=>{i.value=!0},icon:"mdi-playlist-plus"}],icon:"mdi-music-note","restore-state":!0,total:s.value},null,8,["update-available","title","extra-menu-items","total"]),u(g,{modelValue:i.value,"onUpdate:modelValue":a[0]||(a[0]=y=>i.value=y),type:o(m).RADIO},null,8,["modelValue","type"])],64))}});export{Q as default};
@@ -0,0 +1 @@
1
+ import{N as m,d as B,aP as b,ae as p,o as c,e as u,V as w,aA as $,b0 as d,u as f,aQ as h,r as I,w as v,aR as y,q as k,bz as C}from"./index-BLuBzgcR.js";import{m as g,B as L}from"./Button-BEhYIX-0.js";import{z as P}from"./index-CBho6rsP.js";import{_ as M}from"./_plugin-vue_export-helper-DlAUqK2U.js";const S=t=>{const l=m(()=>{const{variant:n,showMenuBtn:e,...s}=t,i={...s,"aria-label":t["aria-label"]};return P(n).with("compact",()=>({...i,density:t.density||"compact",class:t.class?`list-item-compact ${t.class}`:"list-item-compact"})).with("comfortable",()=>({...i,density:t.density||"comfortable",class:t.class?`list-item-comfortable ${t.class}`:"list-item-comfortable"})).with("default",()=>({...i,class:t.class?`list-item-default ${t.class}`:"list-item-default"})).otherwise(()=>({...i,class:t.class?`list-item-default ${t.class}`:"list-item-default"}))}),o=m(()=>g("list-item-main",t.variant&&`list-item--${t.variant}`));return{listItemProps:l,listItemClasses:o}},D={variant:"default",showMenuBtn:!1,link:!1},N=B({__name:"ListItem",props:b({showMenuBtn:{type:Boolean},variant:{},active:{type:Boolean},disabled:{type:Boolean},link:{type:Boolean},nav:{type:Boolean},density:{},height:{},lines:{type:[String,Boolean]},subtitle:{},title:{},value:{},color:{},rounded:{type:[Boolean,String,Number]},tag:{},to:{},href:{},replace:{type:Boolean},exact:{type:Boolean},class:{},style:{},"aria-label":{},role:{}},D),emits:["click","menu","input"],setup(t){const l=t,{listItemProps:o,listItemClasses:n}=S(l);return(e,s)=>{const i=C("hold");return p((c(),u(w,$(f(o),{class:f(n),onClick:s[1]||(s[1]=a=>e.$emit("click",a)),onContextmenu:s[2]||(s[2]=d(a=>e.$emit("menu",a),["right","prevent"])),onInput:s[3]||(s[3]=a=>e.$emit("input",a))}),h({_:2},[I(e.$slots,(a,r)=>({name:r,fn:v(()=>[y(e.$slots,r,{},void 0,!0)])})),e.$slots.append||t.showMenuBtn?{name:"append",fn:v(()=>[y(e.$slots,"append",{},void 0,!0),t.showMenuBtn?(c(),u(L,{key:0,variant:"icon",icon:"mdi-dots-vertical","aria-label":"Show context menu",onClick:s[0]||(s[0]=d(a=>e.$emit("menu",a),["stop"]))})):k("",!0)]),key:"0"}:void 0]),1040,["class"])),[[i,a=>e.$emit("menu",a)]])}}}),Q=M(N,[["__scopeId","data-v-e242bb46"]]);export{Q as L};
@@ -0,0 +1 @@
1
+ import{d as X,i as Y,N as z,c as u,b as s,e as r,q as b,p as B,w as t,o as i,F as h,r as V,E,u as d,bu as F,ae as R,n as A,aA as S,b0 as j,aF as q,bx as y,V as H,f as U,b4 as p,t as v,by as G,g as J,bi as K,m as k,bz as O,k as Q}from"./index-BLuBzgcR.js";import{C as W}from"./Container-BVutxj42.js";import{T as Z}from"./Toolbar-RSDUeNZR.js";import{V as I,a as ee}from"./VRow-Dw7kUaJt.js";import{b as te}from"./VBtn-i8gedOhv.js";import{V as ae}from"./PanelviewItemCompact-Czo8xJLH.js";import{_ as oe}from"./_plugin-vue_export-helper-DlAUqK2U.js";const se={style:{"margin-bottom":"10px"}},ie=X({__name:"MediaItemImages",props:{modelValue:{}},emits:["update:modelValue"],setup(f,{emit:w}){const C=f,c=Y(!1),x=w,P=function(e){window.open(e,"_blank")},g=function(e,a){const n="clientX"in e?e.clientX:e.touches[0].clientX,m="clientY"in e?e.clientY:e.touches[0].clientY;Q.emit("contextmenu",{items:[{label:"image_make_primary",icon:"mdi-star-box",action:()=>{N(a)}}],posX:n,posY:m})},L=function(e){return k.getProvider(e)?k.getProvider(e).name:e},M=function(e,a){P(y(a))},_=function(){c.value=!c.value},N=function(e){const a=[e];a.push(...C.modelValue.filter(n=>n!=e)),x("update:modelValue",a)},T=z(()=>[{label:"tooltip.collapse_expand",icon:c.value?"mdi-chevron-up":"mdi-chevron-down",action:_,overflowAllowed:!1}]);return(e,a)=>{const n=O("hold");return i(),u("section",se,[s(Z,{title:e.$t("images"),"menu-items":T.value,onTitleClicked:_},null,8,["title","menu-items"]),s(B),c.value?(i(),r(W,{key:0},{default:t(()=>[(i(!0),u(h,null,V(d(K),m=>(i(),r(I,{key:m},{default:t(()=>[(i(!0),u(h,null,V(f.modelValue.filter(o=>o.type==m),(o,$)=>(i(),r(ee,{key:o.path,cols:"12",class:E(`col-${d(F)(e.$vuetify.display.width)}`)},{default:t(()=>[s(ae,null,{default:t(({props:D})=>[R((i(),r(A,S({ref_for:!0},D,{tile:"",hover:"",class:"panel-item",onClick:l=>{M(l,o)},onContextmenu:j(l=>{g(l,o)},["right","prevent"])}),{default:t(()=>[s(q,{src:d(y)(o,256),class:"bg-grey-lighten-2",width:"100%"},{placeholder:t(()=>[s(I,{align:"center",class:"fill-height ma-0",justify:"center"},{default:t(()=>[s(te,{color:"grey-lighten-5",indeterminate:""})]),_:1})]),_:1},8,["src"]),s(H,{variant:"text",slim:"",tile:"",density:"compact",class:"panel-item-details"},{default:t(()=>[s(U,{width:"95%"},{default:t(()=>[p(v(e.$t("image_type")+": "+o.type),1)]),_:2},1024),s(G,{class:"line-clamp-1",style:{"margin-right":"25px"}},{default:t(()=>[p(v(e.$t("image_source")+": "+L(o.provider)),1)]),_:2},1024),$==0?(i(),r(J,{key:0,size:"x-large",style:{position:"absolute",right:"0",bottom:"5px"},color:"orange",title:e.$t("tooltip.primary_image")},{default:t(()=>[...a[0]||(a[0]=[p("mdi-star-box",-1)])]),_:1},8,["title"])):b("",!0)]),_:2},1024)]),_:2},1040,["onClick","onContextmenu"])),[[n,l=>{g(l,o)}]])]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:2},1024))),128))]),_:1})):b("",!0)])}}}),pe=oe(ie,[["__scopeId","data-v-d74e8be5"]]);export{pe as M};
@@ -1 +1 @@
1
- import{c8 as o}from"./index-LFx1jIjH.js";import{_ as a}from"./_plugin-vue_export-helper-DlAUqK2U.js";const t=a(o,[["__scopeId","data-v-565bc716"]]);export{t as M};
1
+ import{c8 as o}from"./index-BLuBzgcR.js";import{_ as a}from"./_plugin-vue_export-helper-DlAUqK2U.js";const t=a(o,[["__scopeId","data-v-565bc716"]]);export{t as M};
@@ -0,0 +1 @@
1
+ import{u as S,V as d,a as i,m as A,b as R}from"./VInput-S8c2HXsf.js";import{x as D,y as U,a0 as q,i as z,c2 as E,C as M,c3 as $,b as m,aA as b,aI as j,S as G,d as H,c as t,o as n,F as J,q as f,D as y,a as o}from"./index-BLuBzgcR.js";const K=U({...A(),...G(R(),["inline"])},"VCheckbox"),Q=D()({name:"VCheckbox",inheritAttrs:!1,props:K(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,r){let{attrs:a,slots:u}=r;const s=q(e,"modelValue"),{isFocused:p,focus:V,blur:v}=S(e),c=z(),k=E();return M(()=>{const[g,h]=$(a),x=d.filterProps(e),B=i.filterProps(e);return m(d,b({ref:c,class:["v-checkbox",e.class]},g,x,{modelValue:s.value,"onUpdate:modelValue":l=>s.value=l,id:e.id||`checkbox-${k}`,focused:p.value,style:e.style}),{...u,default:l=>{let{id:w,messagesId:C,isDisabled:P,isReadonly:I,isValid:F}=l;return m(i,b(B,{id:w.value,"aria-describedby":C.value,disabled:P.value,readonly:I.value},h,{error:F.value===!1,modelValue:s.value,"onUpdate:modelValue":N=>s.value=N,onFocus:V,onBlur:v}),u)}})}),j({},c)}}),T=H({__name:"NowPlayingBadge",props:{showBadge:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},badgeStyle:{default:""},iconStyle:{default:""}},setup(e){return(r,a)=>(n(),t(J,null,[e.showBadge?(n(),t("span",{key:0,style:y(e.badgeStyle),class:"now-playing-badge","aria-label":"Now playing"}," Now playing ",4)):f("",!0),e.showIcon?(n(),t("div",{key:1,style:y(e.iconStyle),class:"now-playing-icon"},[...a[0]||(a[0]=[o("div",{class:"bar"},null,-1),o("div",{class:"bar"},null,-1),o("div",{class:"bar"},null,-1),o("div",{class:"bar"},null,-1)])],4)):f("",!0)],64))}});export{Q as V,T as _};
@@ -0,0 +1 @@
1
+ import{x as P,y as I,a0 as M,aB as p,aE as D,d as S,e as s,o as i,w as l,ae as A,n as X,aA as Y,b0 as g,q as o,a as w,b as c,bl as H,c as f,u as y,s as N,V as T,f as z,M as E,t as n,bQ as L,E as x,by as m,b4 as u,bd as O,bS as $,bz as F,bR as R,bK as j}from"./index-BLuBzgcR.js";import{V as q,_ as K}from"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";import{M as Q}from"./MediaItemThumb-4FqrTjbr.js";import{a as G}from"./VBtn-i8gedOhv.js";import{_ as J}from"./_plugin-vue_export-helper-DlAUqK2U.js";const U=I({disabled:Boolean,modelValue:{type:Boolean,default:null},...D()},"VHover"),W=P()({name:"VHover",props:U(),emits:{"update:modelValue":e=>!0},setup(e,b){let{slots:a}=b;const d=M(e,"modelValue"),{runOpenDelay:r,runCloseDelay:h}=p(e,v=>!e.disabled&&(d.value=v));return()=>a.default?.({isHovering:d.value,props:{onMouseenter:r,onMouseleave:h}})}}),Z={class:"thumb-container"},_={key:1,class:"play-button-overlay"},ee={key:0},te=S({__name:"PanelviewItemCompact",props:{item:{},size:{default:200},isSelected:{type:Boolean,default:!1},showCheckboxes:{type:Boolean,default:!1},permanentOverlay:{type:Boolean,default:!1},isAvailable:{type:Boolean,default:!0},isPlaying:{type:Boolean},parentItem:{default:void 0},disabled:{type:Boolean}},emits:["select"],setup(e,{emit:b}){const a=e,d=b,r=function(t){if(a.showCheckboxes)return;const C="clientX"in t?t.clientX:t.touches[0].clientX,k="clientY"in t?t.clientY:t.touches[0].clientY;R(a.item,C,k,a.parentItem)},h=function(t){if(a.showCheckboxes){d("select",a.item,!a.isSelected);return}$(a.item,t.clientX,t.clientY,a.parentItem)},v=function(t){a.showCheckboxes||j(a.item,t.clientX,t.clientY,a.parentItem)};return(t,C)=>{const k=F("hold");return i(),s(W,null,{default:l(({isHovering:V,props:B})=>[A((i(),s(X,Y(B,{class:{"on-hover":V,unavailable:!e.isAvailable},elevation:"0",disabled:e.disabled,onClick:h,onContextmenu:g(r,["right","prevent"])}),{default:l(()=>[e.showCheckboxes?(i(),s(H,{key:0,"model-value":e.showCheckboxes,contained:"",scrim:e.isSelected?t.$vuetify.theme.current.dark?"rgba(0,0,0,.75)":"rgba(255,255,255,.75)":"#ffffff00"},{default:l(()=>[c(q,{class:"panel-item-checkbox",ripple:!1,"model-value":e.isSelected},null,8,["model-value"])]),_:1},8,["model-value","scrim"])):o("",!0),w("div",Z,[c(Q,{item:e.isAvailable?e.item:void 0},null,8,["item"]),e.isPlaying?(i(),s(K,{key:0,"icon-style":"position: absolute; right: 5px; bottom: 5px","show-badge":!1})):o("",!0),(V||y(N).isTouchscreen)&&e.isAvailable&&e.item.is_playable?(i(),f("div",_,[c(G,{icon:"mdi-play",color:"white",fab:"",style:{opacity:"0.6","font-size":"20px"},onClick:g(v,["stop"])})])):o("",!0)]),c(T,{variant:"text",slim:"",tile:"",density:"compact",class:"panel-item-details"},{default:l(()=>[c(z,null,{default:l(()=>[e.item.media_type==y(E).FOLDER?(i(),f("span",ee,[w("span",null,n(y(L)(e.item,t.$t)),1)])):(i(),f("span",{key:1,class:x({"is-playing":e.isPlaying})},n(e.item.name),3)),"version"in e.item&&e.item.version?(i(),f("span",{key:2,class:x({"is-playing":e.isPlaying})}," - "+n(e.item.version),3)):o("",!0)]),_:1}),"artists"in e.item&&e.item.artists?(i(),s(m,{key:0,class:"line-clamp-1"},{default:l(()=>[u(n(y(O)(e.item.artists,1)),1)]),_:1})):o("",!0),"authors"in e.item&&e.item.authors?(i(),s(m,{key:1,class:"line-clamp-1"},{default:l(()=>[u(n(e.item.authors.join(" / ")),1)]),_:1})):"publisher"in e.item&&e.item.publisher?(i(),s(m,{key:2,class:"line-clamp-1"},{default:l(()=>[u(n(e.item.publisher),1)]),_:1})):"owner"in e.item&&e.item.owner?(i(),s(m,{key:3,class:"line-clamp-1"},{default:l(()=>[u(n(e.item.owner),1)]),_:1})):"provider_mappings"in e.item?o("",!0):(i(),s(m,{key:4,class:"line-clamp-1"},{default:l(()=>[u(n(t.$t(e.item.media_type)),1)]),_:1}))]),_:1})]),_:2},1040,["class","disabled"])),[[k,r]])]),_:1})}}}),oe=J(te,[["__scopeId","data-v-4a833c3f"]]);export{oe as P,W as V};
@@ -0,0 +1 @@
1
+ import{i as B,N as q,e as g,o,aQ as H,r as W,w as m,aR as Y,aA as j,b0 as C,d as G,h as X,q as f,c as p,V as A,D as E,u as s,b8 as w,b as h,g as k,a as $,t as v,b9 as I,b4 as P,m as r,bf as z,p as J,F as K,be as Z,aU as R,aV as M,aT as V,s as S,$ as Q,ba as x,b1 as N,b2 as ee,aZ as ae,bg as le,ad as te,n as ie,E as oe,J as U,M as se,bd as ne,b6 as re,bk as de,aF as ue,k as me,bh as O,bi as D}from"./index-BLuBzgcR.js";import{B as T}from"./Button-BEhYIX-0.js";import{M as ce}from"./MediaItemThumb-4FqrTjbr.js";import{_ as L}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as pe}from"./VSlider-bRJnej6Z.js";import{V as ye}from"./NowPlayingBadge.vue_vue_type_style_index_0_lang-Dwz4QKKd.js";const ve={props:{width:String,height:String,style:String,allowWheel:Boolean},emits:["update:model-value"],setup(e,t){const n=B(!0),l=q(()=>({class:"player-volume",hideDetails:!0,trackSize:2,thumbSize:n.value?0:10,step:2,elevation:0,style:`width: ${e.width}; height:${e.height}; display: inline-grid; ${e.style}`})),_=q(()=>({...l.value,...t}));return{isThumbHidden:n,playerVolumeProps:_,onWheel:({deltaY:c})=>{if(!e.allowWheel)return;const y=_.value.step,d=t.attrs["model-value"],u=c<0?y:-y;t.emit("update:model-value",d+u)}}}};function be(e,t,n,l,_,i){return o(),g(pe,j(l.playerVolumeProps,{onTouchstart:t[0]||(t[0]=c=>l.isThumbHidden=!1),onTouchend:t[1]||(t[1]=c=>l.isThumbHidden=!0),onMouseenter:t[2]||(t[2]=c=>l.isThumbHidden=!1),onMouseleave:t[3]||(t[3]=c=>l.isThumbHidden=!0),onWheel:C(l.onWheel,["prevent"]),onEnd:t[4]||(t[4]=c=>e.$emit("update:model-value",c))}),H({_:2},[W(e.$slots,(c,y)=>({name:y,fn:m(()=>[Y(e.$slots,y,{},void 0,!0)])}))]),1040,["onWheel"])}const F=L(ve,[["render",be],["__scopeId","data-v-af51e13c"]]),fe={key:1,class:"text-caption volumecaption"},ge={key:0,class:"text-caption volumecaption"},he=G({__name:"VolumeControl",props:{player:{},showSyncControls:{type:Boolean},showSubPlayers:{type:Boolean},showHeadingRow:{type:Boolean},showVolumeControl:{type:Boolean},allowWheel:{type:Boolean}},setup(e){const t=e,n=B([]),l=B([]),_=B(void 0),i=q(()=>t.player.group_members.length>0),c=function(d){const u=[];for(const a of d.group_members){const b=r?.players[a];b&&b.volume_control!=w&&b&&b.available&&!u.includes(b)&&u.push(b)}if(t.showSyncControls&&d.supported_features.includes(R.SET_MEMBERS))for(const a of Object.values(r?.players))a.player_id!=d.player_id&&(!d.can_group_with.includes(a.player_id)&&!d.can_group_with.includes(a.provider)||a.available&&a.type!=z.GROUP&&(a.active_group&&a.active_group!=d.player_id||a.active_source&&a.playback_state==M.PLAYING&&![d.player_id,a.player_id].includes(a.active_source)||u.includes(a)||u.push(a)));return u.sort((a,b)=>a.name.toUpperCase()>b.name.toUpperCase()?1:-1),u},y=async function(d,u){const a=t.player.player_id;u?(l.value.includes(d)&&(l.value=l.value.filter(b=>b!=d)),n.value.includes(d)||n.value.push(d),r.players[a].group_members.push(d)):(n.value.includes(d)&&(n.value=n.value.filter(b=>b!=d)),l.value.includes(d)||l.value.push(d),r.players[a].group_members=r.players[a].group_members.filter(b=>b!=d)),_.value!=null&&clearTimeout(_.value),!(n.value.length==0&&l.value.length==0)&&(_.value=setTimeout(async()=>{r.playerCommandSetMembers(a,n.value.length?n.value:void 0,l.value.length?l.value:void 0).catch(async()=>{r.players[a]=await r.getPlayer(a)}).finally(()=>{n.value=[],l.value=[]})},500))};return(d,u)=>(o(),g(X,{style:{overflow:"hidden",padding:"0"},lines:"two"},{default:m(()=>[e.showHeadingRow?(o(),g(A,{key:0,class:"volumesliderrow heading",link:!1,style:E(e.player.powered==!1?"opacity: 0.6":"opacity: 1")},{prepend:m(()=>[h(k,{size:25,icon:e.player.icon,style:{"margin-left":"6px",opacity:"0.6"}},null,8,["icon"])]),default:m(()=>[$("h5",null,v(s(I)(e.player,27)),1)]),append:m(()=>[e.player.power_control!=s(w)?(o(),g(T,{key:0,class:"powerbtn",variant:"icon",onClick:u[0]||(u[0]=C(a=>s(r).playerCommandPowerToggle(e.player.player_id),["stop"]))},{default:m(()=>[h(k,{size:25,icon:"mdi-power"})]),_:1})):f("",!0)]),_:1},8,["style"])):f("",!0),e.showVolumeControl&&(e.player.volume_control!=s(w)||e.player.group_members.length)?(o(),g(A,{key:1,class:"volumesliderrow",link:!1,style:E(e.player.powered==!1?"opacity: 0.35":"opacity: 0.75")},{prepend:m(()=>[h(T,{icon:"",style:{height:"25px"},disabled:e.player.type==s(z).GROUP||e.player.group_members.length>0||e.player.mute_control==s(w),onClick:u[1]||(u[1]=C(a=>s(r).playerCommandMuteToggle(e.player.player_id),["stop"]))},{default:m(()=>[h(k,{size:25,icon:e.player.volume_muted?"mdi-volume-mute":"mdi-volume-medium"},null,8,["icon"])]),_:1},8,["disabled"])]),default:m(()=>[e.player.volume_control!=s(w)||e.player.group_members.length?(o(),g(F,{key:0,color:"secondary",width:"100%","is-powered":e.player.powered!=!1,disabled:!e.player.available,"model-value":Math.round(e.player.group_members.length?e.player.group_volume:e.player.volume_level||0),onClick:u[2]||(u[2]=C(()=>{},["stop"])),"onUpdate:modelValue":u[3]||(u[3]=a=>e.player.group_members.length>0?s(r).playerCommandGroupVolume(e.player.player_id,a):s(r).playerCommandVolumeSet(e.player.player_id,a))},null,8,["is-powered","disabled","model-value"])):f("",!0)]),append:m(()=>[i.value&&!e.showSubPlayers?(o(),g(k,{key:0,class:"expandbtn"},{default:m(()=>[...u[7]||(u[7]=[P(" mdi-chevron-down ",-1)])]),_:1})):(o(),p("div",fe,v(Math.round(e.player.group_members.length?e.player.group_volume:e.player.volume_level||0)),1))]),_:1},8,["style"])):f("",!0),e.showSubPlayers&&(e.player.group_members.length>0||e.showSyncControls)&&c(e.player).length>0?(o(),p("div",{key:2,onClick:u[6]||(u[6]=C(()=>{},["stop"]))},[h(J,{style:{"margin-top":"10px","margin-bottom":"15px"}}),(o(!0),p(K,null,W(c(e.player),a=>(o(),p("div",{key:a.player_id},[h(A,{class:"volumesliderrow",link:!1,style:E(a.powered!=!1||e.showSyncControls?"opacity: 0.75":"opacity: 0.4"),onClick:u[4]||(u[4]=C(()=>{},["stop"]))},{prepend:m(()=>[h(k,{size:30,icon:a.icon,style:{"margin-left":"6px",opacity:"0.6"}},null,8,["icon"])]),default:m(()=>[$("h6",null,v(s(Z)(a.name,27)),1)]),append:m(()=>[e.showSyncControls?(o(),g(ye,{key:0,ripple:!1,disabled:a.player_id==e.player.player_id||e.player.static_group_members.includes(a.player_id)&&e.player.group_members.includes(a.player_id),"model-value":e.player.group_members.includes(a.player_id)||a.player_id==e.player.player_id,size:"22",class:"checkbox","onUpdate:modelValue":b=>y(a.player_id,b)},null,8,["disabled","model-value","onUpdate:modelValue"])):f("",!0)]),_:2},1032,["style"]),a.volume_control!=s(w)?(o(),g(A,{key:0,class:"volumesliderrow",link:!1,style:E(a.powered==!1?"opacity: 0.4":"opacity: 0.75"),onClick:u[5]||(u[5]=C(()=>{},["stop"]))},{prepend:m(()=>[h(T,{icon:"",disabled:!a.available||a.mute_control==s(w),style:{height:"25px"},onClick:b=>s(r).playerCommandMuteToggle(a.player_id)},{default:m(()=>[h(k,{size:25,icon:a.volume_muted?"mdi-volume-mute":"mdi-volume-medium"},null,8,["icon"])]),_:2},1032,["disabled","onClick"])]),default:m(()=>[a.volume_control!=s(w)?(o(),g(F,{key:0,color:"secondary",width:"100%","is-powered":a.powered!=!1,disabled:!a.available,"allow-wheel":e.allowWheel,"model-value":Math.round(a.volume_level||0),"onUpdate:modelValue":b=>s(r).playerCommandVolumeSet(a.player_id,b)},null,8,["is-powered","disabled","allow-wheel","model-value","onUpdate:modelValue"])):f("",!0)]),append:m(()=>[a.volume_control!=s(w)?(o(),p("div",ge,v(a.volume_level),1)):f("",!0)]),_:2},1032,["style"])):f("",!0),u[8]||(u[8]=$("div",{style:{height:"14px"}},null,-1))]))),128))])):f("",!0)]),_:1}))}}),_e=L(he,[["__scopeId","data-v-407df88f"]]),we=(e,t)=>{const n=[];e?.power_control!=w&&n.push({label:e.powered?"power_off_player":"power_on_player",labelArgs:[],action:()=>{r.playerCommandPowerToggle(e.player_id)},icon:"mdi-power"}),(e?.playback_state=="playing"||e?.playback_state=="paused")&&n.push({label:"stop_playback",labelArgs:[],action:()=>{r.playerCommandStop(e.player_id)},icon:"mdi-stop"});const l=Object.values(r.players).filter(i=>i.player_id!=e.player_id&&i.available&&i.enabled&&(i.can_group_with.includes(e.provider)||i.can_group_with.includes(e.player_id))&&i.supported_features.includes(R.SET_MEMBERS)&&!i.synced_to);e.supported_features.includes(R.SET_MEMBERS)&&!e.synced_to&&e.type==z.PLAYER&&e.group_members.length==0&&l.length>0&&n.push({label:"sync_player_with",labelArgs:[],icon:"mdi-link-variant",subItems:l.map(i=>({label:i.name,labelArgs:[],action:()=>{r.playerCommandGroup(e.player_id,i.player_id)}})).sort((i,c)=>i.label.toUpperCase()>c.label?.toUpperCase()?1:-1)}),t&&n.push({label:t.shuffle_enabled?"shuffle_disable":"shuffle_enable",labelArgs:[],action:()=>{r.queueCommandShuffleToggle(t.queue_id)},icon:t.shuffle_enabled?"mdi-shuffle-disabled":"mdi-shuffle"}),t&&n.push({label:"select_repeat_mode",labelArgs:[],subItems:[{label:"repeat_mode.off",labelArgs:[],action:()=>{r.queueCommandRepeat(t.queue_id,V.OFF)},selected:t.repeat_mode==V.OFF},{label:"repeat_mode.all",labelArgs:[],action:()=>{r.queueCommandRepeat(t.queue_id,V.ALL)},selected:t.repeat_mode==V.ALL},{label:"repeat_mode.one",labelArgs:[],action:()=>{r.queueCommandRepeat(t.queue_id,V.ONE)},selected:t.repeat_mode==V.ONE}],icon:"mdi-repeat"}),t?.items&&n.push({label:"transfer_queue",icon:"mdi-swap-horizontal",subItems:Object.values(r.players).filter(i=>i.player_id!=t.queue_id&&i.player_id!=e.player_id&&i.available&&i.enabled&&!i.synced_to).map(i=>({label:i.name,labelArgs:[],action:()=>{r.queueCommandTransfer(t.queue_id,i.player_id),S.activePlayerId=i.player_id}})).sort((i,c)=>i.label.toUpperCase()>c.label?.toUpperCase()?1:-1)}),t?.items&&n.push({label:"queue_clear",labelArgs:[],action:()=>{r.queueCommandClear(t.queue_id)},icon:"mdi-cancel"});const _=e.source_list.filter(i=>!i.passive||i.id==e.active_source);return e.active_source!=e.player_id&&_.push({id:e.player_id,name:Q("music_assistant_source"),passive:!1,can_play_pause:!0,can_seek:!0,can_next_previous:!0}),!e.synced_to&&_.length>0&&n.push({label:"select_source",labelArgs:[],icon:"mdi-import",subItems:_.map(i=>({label:i.name,labelArgs:[],disabled:i.id==e.active_source,selected:i.id==e.active_source,action:()=>{r.playerCommandGroupSelectSource(e.player_id,i.id)}})).sort((i,c)=>i.label.toUpperCase()>c.label?.toUpperCase()?1:-1)}),t&&"dont_stop_the_music_enabled"in t&&n.push({label:t.dont_stop_the_music_enabled?"dont_stop_the_music_disable":"dont_stop_the_music_enable",labelArgs:[],action:()=>{r.queueCommandDontStopTheMusicToggle(t.queue_id)},icon:"mdi-all-inclusive"}),n.push({label:"open_player_settings",labelArgs:[],action:()=>{S.showFullscreenPlayer=!1,S.showPlayersMenu=!1,x.push(`/settings/editplayer/${e.player_id}`)},icon:"mdi-cog-outline"}),e.type!==z.GROUP&&n.push({label:"open_dsp_settings",labelArgs:[],action:()=>{S.showFullscreenPlayer=!1,S.showPlayersMenu=!1,x.push(`/settings/editplayer/${e.player_id}/dsp`)},icon:"mdi-equalizer"}),n},ke={class:"player-media-thumb"},Ce={key:1},Se={key:2,class:"icon-thumb"},Ve={key:0,style:{"margin-bottom":"3px"}},Te={key:0},Ae={key:1},Me={key:1},Be={key:0,style:{"font-size":"0.85rem","font-weight":"500","white-space":"nowrap"}},$e={key:0},qe={key:0},ze={key:1},Ee={key:2},Pe={class:"v-list-item-subtitle",style:{"font-size":"0.85rem","white-space":"nowrap"}},Ue={key:0},Ie={key:1},Re={key:2},Le={key:3},xe={key:4},Ne={key:5},Oe={key:6},De={key:7},Fe=G({__name:"PlayerCard",props:{player:{},showVolumeControl:{type:Boolean},showMenuButton:{type:Boolean},showSubPlayers:{type:Boolean},showSyncControls:{type:Boolean},allowPowerControl:{type:Boolean}},emits:["click"],setup(e){const t=e,n=q(()=>{if(t.player&&t.player.active_source&&t.player.active_source in r.queues)return r.queues[t.player.active_source];if(t.player&&!t.player.active_source&&t.player.player_id in r.queues)return r.queues[t.player.player_id]}),l=q(()=>{if(n.value&&n.value.active)return n.value.current_item}),_=function(y){me.emit("contextmenu",{items:we(t.player,n.value),posX:y.clientX,posY:y.clientY})},i=B({0:"",1:"",2:"",3:"",4:"",5:"",lightColor:"",darkColor:""}),c=new Image;return c.src=ae.theme.current.value.dark?N:ee,c.crossOrigin="Anonymous",c.addEventListener("load",function(){i.value=le(c)}),te(l,y=>{y?.media_item?c.src=O(y.media_item,D.THUMB)||"":y?c.src=O(y,D.THUMB)||"":c.src=""},{immediate:!0}),(y,d)=>(o(),g(ie,{flat:"",class:oe(["panel-item",{"panel-item-selected":e.player.player_id==s(S).activePlayerId,"panel-item-idle":e.player.playback_state==s(M).IDLE,"panel-item-off":e.player.powered==!1}]),ripple:!1,disabled:!e.player.available,onClick:d[2]||(d[2]=u=>y.$emit("click",e.player))},{default:m(()=>[h(A,{class:"panel-item-details",flat:"",ripple:!1},{prepend:m(()=>[$("div",ke,[e.player.powered!=!1&&l.value?(o(),g(ce,{key:0,class:"media-thumb",size:"60",item:l.value,fallback:s(N)},null,8,["item","fallback"])):e.player.powered!=!1&&!n.value&&e.player.current_media?.image_url?(o(),p("div",Ce,[h(ue,{class:"media-thumb",size:"60",src:e.player.current_media.image_url},null,8,["src"])])):(o(),p("div",Se,[h(k,{size:"24",icon:e.player.type==s(z).PLAYER&&e.player.group_members.length?"mdi-speaker-multiple":e.player.icon,style:{display:"table-cell",opacity:"0.8"}},null,8,["icon"])]))])]),title:m(()=>[s(de).player_id===e.player.player_id?(o(),p("div",Ve,[e.player.name=="This Device"?(o(),p("span",Te,v(y.$t("this_device")),1)):(o(),p("span",Ae,v(s(I)(e.player,27)),1)),h(k,{size:"20",class:"ml-2",icon:s(S).deviceType=="phone"?"mdi-cellphone":"mdi-monitor"},null,8,["icon"])])):(o(),p("div",Me,v(s(I)(e.player,27)),1))]),subtitle:m(()=>[e.player.powered!=!1?(o(),p("div",Be,[l.value?.media_item?(o(),p("div",$e,[P(v(l.value?.media_item.name)+" ",1),"version"in l.value?.media_item&&l.value?.media_item.version?(o(),p("span",qe,"("+v(l.value?.media_item.version)+")",1)):f("",!0)])):l.value?(o(),p("div",ze,v(l.value?.name),1)):!n.value&&e.player.current_media?.title?(o(),p("div",Ee,v(e.player.current_media.title),1)):f("",!0)])):f("",!0)]),default:m(()=>[$("div",Pe,[e.player.powered==!1?(o(),p("div",Ue,v(y.$t("off")),1)):l.value?.media_item&&l.value?.media_item?.media_type==s(se).TRACK&&"album"in l.value?.media_item&&l.value?.media_item.album?(o(),p("div",Ie,v(s(ne)(l.value?.media_item.artists))+" • "+v(l.value?.media_item.album.name),1)):l.value?.media_item&&"artists"in l.value?.media_item&&l.value?.media_item.artists.length>0?(o(),p("div",Re,v(l.value?.media_item.artists[0].name),1)):l.value?.streamdetails?.stream_metadata&&l.value?.streamdetails?.stream_metadata.title&&l.value?.streamdetails?.stream_metadata.artist?(o(),p("div",Le,v(l.value?.streamdetails?.stream_metadata.artist)+" - "+v(l.value?.streamdetails?.stream_metadata.title),1)):l.value?.streamdetails?.stream_metadata&&l.value?.streamdetails?.stream_metadata.title?(o(),p("div",xe,v(l.value?.streamdetails?.stream_metadata.title),1)):l.value?.media_item?.metadata.description?(o(),p("div",Ne,v(l.value?.media_item.metadata.description),1)):!n.value&&e.player.active_source?(o(),p("div",Oe,v(y.$t("external_source_active",[s(re)(e.player)])),1)):n.value?.items==0?(o(),p("div",De,v(y.$t("queue_empty")),1)):f("",!0)])]),append:m(()=>[e.player.playback_state==s(M).PAUSED||e.player.playback_state==s(M).PLAYING||n.value?.items?(o(),g(T,{key:0,variant:"icon",class:"player-command-btn",onClick:d[0]||(d[0]=C(u=>{s(r).playerCommandPlayPause(e.player.player_id),s(S).activePlayerId=e.player.player_id},["stop"]))},{default:m(()=>[h(k,{size:s(U)({breakpoint:"phone"})?"30":"32",icon:e.player.playback_state==s(M).PLAYING?"mdi-pause":"mdi-play"},null,8,["size","icon"])]),_:1})):f("",!0),e.player.power_control!=s(w)&&e.allowPowerControl?(o(),g(T,{key:1,variant:"icon",class:"player-command-btn",onClick:d[1]||(d[1]=C(u=>{s(r).playerCommandPowerToggle(e.player.player_id),s(S).activePlayerId=e.player.player_id},["stop"]))},{default:m(()=>[h(k,{size:s(U)({breakpoint:"phone"})?"30":"32"},{default:m(()=>[...d[3]||(d[3]=[P("mdi-power",-1)])]),_:1},8,["size"])]),_:1})):f("",!0),e.showMenuButton?(o(),g(T,{key:2,variant:"icon",class:"player-command-btn",style:{"margin-right":"-5px"},onClick:C(_,["stop"])},{default:m(()=>[h(k,{size:s(U)({breakpoint:"phone"})?"30":"32"},{default:m(()=>[...d[4]||(d[4]=[P("mdi-dots-vertical",-1)])]),_:1},8,["size"])]),_:1})):f("",!0)]),_:1}),e.showVolumeControl?(o(),g(_e,{key:0,player:e.player,"show-sync-controls":e.showSyncControls,"show-heading-row":!1,"show-sub-players":e.showSubPlayers,"show-volume-control":e.player.powered!=!1,"allow-wheel":!1},null,8,["player","show-sync-controls","show-sub-players","show-volume-control"])):f("",!0)]),_:1},8,["class","disabled"]))}}),Je=L(Fe,[["__scopeId","data-v-f0fdac10"]]);export{F as P,_e as V,Je as a,we as g};
@@ -0,0 +1 @@
1
+ .v-slider.v-input--horizontal .v-input__control[data-v-af51e13c]{min-height:5px}.v-slider.v-input--horizontal[data-v-af51e13c]{margin-inline:unset!important}.volumesliderrow[data-v-407df88f]{margin-top:0;padding-top:0;padding-bottom:0;height:30px;min-height:30px}.heading[data-v-407df88f]{margin-bottom:5px;height:35px}.volumecaption[data-v-407df88f]{width:28px;text-align:right;margin-right:-8px}.expandbtn[data-v-407df88f]{margin-right:-12px}.powerbtn[data-v-407df88f]{right:8px}.volumesliderrow[data-v-407df88f] .v-list-item__prepend{width:40px;margin-left:-25px}.volumesliderrow[data-v-407df88f] .v-list-item__append{width:20px}.checkbox[data-v-407df88f]{margin-right:-5px;width:25px;margin-top:-30px;height:22px!important;min-height:22px!important;display:unset}.syncbtn[data-v-407df88f]{margin-right:-32px;height:25px!important;padding-bottom:20px}.panel-item-details[data-v-f0fdac10]{width:100%;margin:0!important;padding:0!important;min-height:72px}.panel-item-details[data-v-f0fdac10] .v-list-item__content{display:flex;flex-direction:column;justify-content:center;min-height:60px}.volumesliderrow[data-v-f0fdac10]{margin-top:0;padding-top:0;padding-bottom:0;height:24px;min-height:24px}.volumecaption[data-v-f0fdac10]{width:25px;text-align:right;margin-right:0}.volumesliderrow[data-v-f0fdac10] .v-list-item__prepend{width:40px;margin-left:-25px}.volumesliderrow[data-v-f0fdac10] .v-expansion-panel-text__wrapper{padding:0}.player-media-thumb[data-v-f0fdac10]{margin-right:10px}.media-thumb[data-v-f0fdac10]{width:60px;height:60px;border-radius:4px;background-color:#0000004d}.icon-thumb[data-v-f0fdac10]{width:60px;height:60px;border-radius:4px;background-color:#0000004d;display:flex;align-items:center;justify-content:center}.media-thumb[data-v-f0fdac10]{width:55px;height:55px;border-radius:4px;background-color:#0000004d}.icon-thumb[data-v-f0fdac10]{width:55px;height:55px;margin-top:5px;border-radius:4px;background-color:#0000004d;display:inline-table}.panel-item[data-v-f0fdac10]{border-style:ridge;border-width:thin;border-color:#cccccc5e;padding:5px 8px;background-color:#a2bcff1a;opacity:1;transition:opacity .4s ease-in-out;border-radius:6px;margin:5px 0 8px;height:100%;width:auto}.panel-item-idle[data-v-f0fdac10]{opacity:.8}.panel-item-off[data-v-f0fdac10]{opacity:.6}.panel-item-selected[data-v-f0fdac10]{border-color:#2f2f2f5e;background-color:#a2bcff66}.player-command-btn[data-v-f0fdac10]{width:35px;min-width:35px;margin-left:5px}