music-assistant-frontend 2.17.20__py3-none-any.whl → 2.17.28__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of music-assistant-frontend might be problematic. Click here for more details.
- music_assistant_frontend/assets/About-BlM2bNNU.css +1 -0
- music_assistant_frontend/assets/About-DD-Ra6q9.js +1 -0
- music_assistant_frontend/assets/AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js +1 -0
- music_assistant_frontend/assets/AddPlayerGroup-cntNx9PL.js +1 -0
- music_assistant_frontend/assets/AddProviderDetails-DoKLUG5n.js +1 -0
- music_assistant_frontend/assets/AlbumDetails-iZRC2HAx.js +1 -0
- music_assistant_frontend/assets/{ArtistDetails-CR47rAMr.js → ArtistDetails-pWsx0uxv.js} +1 -1
- music_assistant_frontend/assets/AudiobookDetails-Dk3PEU9D.js +1 -0
- music_assistant_frontend/assets/BrowseView-g_5UPiVj.js +1 -0
- music_assistant_frontend/assets/{Button-faGxxowY.js → Button-Cm9Kv1fL.js} +1 -1
- music_assistant_frontend/assets/{Container-D5KFPVjs.js → Container-BunIU4BI.js} +1 -1
- music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-WD6jKrT1.js +1 -0
- music_assistant_frontend/assets/Default-BoZpM67W.css +1 -0
- music_assistant_frontend/assets/Default-D3QbBdka.js +21 -0
- music_assistant_frontend/assets/EditConfig-Bo92pQzx.js +2 -0
- music_assistant_frontend/assets/EditConfig-CcxrPgWJ.css +1 -0
- music_assistant_frontend/assets/EditCoreConfig-Dn-oiBmv.js +1 -0
- music_assistant_frontend/assets/{EditPlayer-Cgs9ko95.js → EditPlayer-C4U8nmpt.js} +1 -1
- music_assistant_frontend/assets/{EditPlayerDsp-D98k0PKW.js → EditPlayerDsp-DIRF5Ifm.js} +3 -3
- music_assistant_frontend/assets/{EditProvider-CgzI4UVG.js → EditProvider-DH6yzgKO.js} +1 -1
- music_assistant_frontend/assets/FrontendConfig-DGr-C8uc.js +1 -0
- music_assistant_frontend/assets/HomeView-CF-2XJYc.js +1 -0
- music_assistant_frontend/assets/{ItemsListing-DL5ZjBes.css → ItemsListing-DBRgGdb9.css} +1 -1
- music_assistant_frontend/assets/ItemsListing-DiFULYEk.js +1 -0
- music_assistant_frontend/assets/{LibraryAlbums-BGHrSh_z.js → LibraryAlbums-DsXvfpDF.js} +1 -1
- music_assistant_frontend/assets/{LibraryArtists-rX5Sb_ET.js → LibraryArtists-CvhNCIa6.js} +1 -1
- music_assistant_frontend/assets/{LibraryAudiobooks-BL7Qa-rV.js → LibraryAudiobooks-BXD39SCR.js} +1 -1
- music_assistant_frontend/assets/{LibraryPlaylists-mtIVGJsc.js → LibraryPlaylists-CVSNqj6B.js} +1 -1
- music_assistant_frontend/assets/{LibraryPodcasts-DFW7qn7z.js → LibraryPodcasts-D-KYAv5K.js} +1 -1
- music_assistant_frontend/assets/{LibraryRadios-3VXOISsH.js → LibraryRadios-DXJv2vPJ.js} +1 -1
- music_assistant_frontend/assets/{LibraryTracks-D1kcnNYD.js → LibraryTracks-BW-Ne0K5.js} +1 -1
- music_assistant_frontend/assets/{ListItem-DXTT8_G5.js → ListItem-DNqmHglz.js} +1 -1
- music_assistant_frontend/assets/MediaItemImages-B-oQ8T4k.js +1 -0
- music_assistant_frontend/assets/MediaItemThumb-Djieuu-m.js +1 -0
- music_assistant_frontend/assets/{PanelviewItemCompact-BKBJxxoM.js → PanelviewItemCompact-zZvQaI6t.js} +1 -1
- music_assistant_frontend/assets/{PlayerCard-BtmAlIKh.css → PlayerCard-B-1h1GH8.css} +1 -1
- music_assistant_frontend/assets/PlayerCard-CbOeDESo.js +1 -0
- music_assistant_frontend/assets/Players-CMiHL1Xr.js +1 -0
- music_assistant_frontend/assets/Players-DiFMAcvk.css +1 -0
- music_assistant_frontend/assets/PlaylistDetails-BYOLLggx.js +1 -0
- music_assistant_frontend/assets/PodcastDetails-BMWkoQkv.js +1 -0
- music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-DzvsLzds.js +8 -0
- music_assistant_frontend/assets/Providers-BVL70bSb.js +1 -0
- music_assistant_frontend/assets/Providers-Df6R6NDc.css +1 -0
- music_assistant_frontend/assets/RadioDetails-Dk19WXMn.js +1 -0
- music_assistant_frontend/assets/RemoteAccessSettings-Bf5s7Cwr.css +1 -0
- music_assistant_frontend/assets/RemoteAccessSettings-Cc9VhqAV.js +1 -0
- music_assistant_frontend/assets/Search-gIzJ4Lef.js +1 -0
- music_assistant_frontend/assets/{ServerLogs-BzVXmR6_.js → ServerLogs-DEmjg0ji.js} +2 -2
- music_assistant_frontend/assets/Settings-BPCFcSEv.js +1 -0
- music_assistant_frontend/assets/{Settings-CDWcSKlt.css → Settings-CbTYv9HY.css} +1 -1
- music_assistant_frontend/assets/SystemConfig-DzuRfqZX.js +1 -0
- music_assistant_frontend/assets/{Toolbar-CVFN8H4Z.css → Toolbar-DOjWle_n.css} +1 -1
- music_assistant_frontend/assets/Toolbar-xH_GEfSi.js +1 -0
- music_assistant_frontend/assets/{TrackDetails-CkCm62Ec.js → TrackDetails-Bpl4yjoA.js} +1 -1
- music_assistant_frontend/assets/{UserManagement-c_dhgxwj.js → UserManagement-BmZul5Bv.js} +1 -1
- music_assistant_frontend/assets/{UserProfile-CpcF98Ve.js → UserProfile-C9aw6Mo0.js} +1 -1
- music_assistant_frontend/assets/{VAlert-CFvRz3gu.js → VAlert-CBrxai34.js} +1 -1
- music_assistant_frontend/assets/{VCheckboxBtn-B5wUW3kZ.js → VCheckboxBtn-BMAdXnae.js} +1 -1
- music_assistant_frontend/assets/VDialog-BndVdZhi.js +1 -0
- music_assistant_frontend/assets/VExpansionPanels-lmUrDJt6.js +1 -0
- music_assistant_frontend/assets/{VForm-DDKxMAmn.js → VForm-Dpln05ME.js} +1 -1
- music_assistant_frontend/assets/VInfiniteScroll-B-XMauN8.css +1 -0
- music_assistant_frontend/assets/{VInfiniteScroll-DataCA15.js → VInfiniteScroll-B5bUrC-Z.js} +1 -1
- music_assistant_frontend/assets/VSelect-uSApsKq0.js +1 -0
- music_assistant_frontend/assets/VSelectionControl-S-aELuKm.js +1 -0
- music_assistant_frontend/assets/{VSlider-Dcfg9Wg5.js → VSlider-DzdWVMUa.js} +1 -1
- music_assistant_frontend/assets/{VSwitch-DQEiK9D_.js → VSwitch-B-1g31ug.js} +1 -1
- music_assistant_frontend/assets/VToolbar-D1tRNhN6.css +1 -0
- music_assistant_frontend/assets/VToolbar-hGVdN8lh.js +1 -0
- music_assistant_frontend/assets/{VVirtualScroll-Cg5AQGzG.js → VVirtualScroll-C1eeqQrQ.js} +1 -1
- music_assistant_frontend/assets/WidgetRow-DKnAiOkf.js +1 -0
- music_assistant_frontend/assets/index-W5yBuLNV.css +1 -0
- music_assistant_frontend/assets/{index-Dj6UKNsX.js → index-rZUS0c3q.js} +81 -75
- music_assistant_frontend/assets/{marquee_text_sync-R3hHMfp7.js → marquee_text_sync-AT1GwuhW.js} +1 -1
- music_assistant_frontend/assets/userPreferences-a0gVUlkp.js +1 -0
- music_assistant_frontend/assets/workbox-window.prod.es5-BIl4cyR9.js +2 -0
- music_assistant_frontend/index.html +2 -2
- music_assistant_frontend/sw.js +2 -2
- {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/METADATA +1 -1
- music_assistant_frontend-2.17.28.dist-info/RECORD +148 -0
- music_assistant_frontend/assets/About-Ba3VLBU-.css +0 -1
- music_assistant_frontend/assets/About-eW-4urJV.js +0 -1
- music_assistant_frontend/assets/AddManualLink.vue_vue_type_script_setup_true_lang-DQP6MVZU.js +0 -1
- music_assistant_frontend/assets/AddPlayerGroup-DrpKvGgv.js +0 -1
- music_assistant_frontend/assets/AddProviderDetails-CWS1vCiZ.js +0 -1
- music_assistant_frontend/assets/AlbumDetails-wRWGtQUA.js +0 -1
- music_assistant_frontend/assets/AudiobookDetails-CE9gIq3Q.js +0 -1
- music_assistant_frontend/assets/BrowseView-Cx_P4-_Y.js +0 -1
- music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-Cad6HStr.js +0 -1
- music_assistant_frontend/assets/Default-GVlZdAUf.css +0 -1
- music_assistant_frontend/assets/Default-KyHEk5ZR.js +0 -21
- music_assistant_frontend/assets/EditConfig-B0XoDh_u.js +0 -1
- music_assistant_frontend/assets/EditConfig-TBO3lEGx.css +0 -1
- music_assistant_frontend/assets/EditCoreConfig-DFyuSEd9.js +0 -1
- music_assistant_frontend/assets/FrontendConfig-B-B9Z2Vn.js +0 -1
- music_assistant_frontend/assets/HomeView-DFXlCmKt.js +0 -1
- music_assistant_frontend/assets/ItemsListing-BP5XXmLQ.js +0 -1
- music_assistant_frontend/assets/MediaItemImages-RwaXDWAp.js +0 -1
- music_assistant_frontend/assets/MediaItemThumb-DYAHQAuC.js +0 -1
- music_assistant_frontend/assets/PlayerCard-DdgZ3XZ5.js +0 -1
- music_assistant_frontend/assets/Players-BelAvYKh.js +0 -1
- music_assistant_frontend/assets/PlaylistDetails-Bf5e08Ep.js +0 -1
- music_assistant_frontend/assets/PodcastDetails-B8Mjw_8n.js +0 -1
- music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js +0 -8
- music_assistant_frontend/assets/Providers-BYVx_A_K.js +0 -1
- music_assistant_frontend/assets/Providers-Dpp2O4F9.css +0 -1
- music_assistant_frontend/assets/RadioDetails-pOddxrkl.js +0 -1
- music_assistant_frontend/assets/Search-B6SlCk_7.js +0 -1
- music_assistant_frontend/assets/Settings-Cqw-X9OU.js +0 -1
- music_assistant_frontend/assets/SystemConfig-BOdTwx9R.js +0 -1
- music_assistant_frontend/assets/Toolbar-B32L_M7G.js +0 -1
- music_assistant_frontend/assets/VDialog-5KHkpnhE.js +0 -1
- music_assistant_frontend/assets/VExpansionPanels-DboS79vY.js +0 -1
- music_assistant_frontend/assets/VInfiniteScroll-Bbntx9NP.css +0 -1
- music_assistant_frontend/assets/VSelect-VNw4nPSb.js +0 -1
- music_assistant_frontend/assets/VSelectionControl-CCjz0Lnv.js +0 -1
- music_assistant_frontend/assets/VToolbar-COKHN9Hu.css +0 -1
- music_assistant_frontend/assets/VToolbar-w3YLtQh8.js +0 -1
- music_assistant_frontend/assets/WidgetRow-CZHmyp7T.js +0 -1
- music_assistant_frontend/assets/index-iTwi4kPx.css +0 -1
- music_assistant_frontend/assets/userPreferences-CpcwN_LW.js +0 -1
- music_assistant_frontend/assets/workbox-window.prod.es5-CwtvwXb3.js +0 -2
- music_assistant_frontend-2.17.20.dist-info/RECORD +0 -145
- {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/WHEEL +0 -0
- {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/licenses/LICENSE +0 -0
- {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field .v-field__input>input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden}.v-combobox__content{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-menu>.v-overlay__content.v-combobox__content{border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{transform:rotate(180deg)}.configrow[data-v-9e1654bf]{display:flex;width:100%;padding:0}.configcolumnleft[data-v-9e1654bf]{flex:90%}.configcolumnright[data-v-9e1654bf]{align-content:flex-end;vertical-align:middle}.helpicon[data-v-9e1654bf]{margin-top:0;margin-right:-10px}.actionbutton.v-btn.v-btn--density-default[data-v-9e1654bf]{height:50px;width:100%;margin-top:0;margin-bottom:10px}div.v-expansion-panel[data-v-9e1654bf]{background-color:transparent}.configrowpanel[data-v-9e1654bf] .v-expansion-panel-title{padding:0 5px 10px 0}.configrowpanel[data-v-9e1654bf] .v-expansion-panel-text__wrapper{padding:10px 0 0}.configcolumnleft[data-v-9e1654bf] .v-text-field,.configcolumnleft[data-v-9e1654bf] .v-select,.configcolumnleft[data-v-9e1654bf] .v-combobox{margin-top:8px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ay as _,bN as x,J as c,L as k,az as d,aA as r,o as n,aG as l,aB as m,aI as h,E,bi as N,bh as B,aN as I,c3 as j,b8 as w,bx as O,aP as i,aE as S}from"./index-rZUS0c3q.js";import{E as z}from"./EditConfig-Bo92pQzx.js";import{n as A}from"./index.browser-OxPLOBIU.js";import"./VForm-Dpln05ME.js";import"./VExpansionPanels-lmUrDJt6.js";import"./VDialog-BndVdZhi.js";import"./VAlert-CBrxai34.js";import"./VSwitch-B-1g31ug.js";import"./VSelectionControl-S-aELuKm.js";import"./VSlider-DzdWVMUa.js";import"./VSelect-uSApsKq0.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VCheckboxBtn-BMAdXnae.js";const D={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},Q=_({__name:"EditCoreConfig",props:{domain:{}},setup(f){const p=S(),{t:v}=x(),a=c(),g=A(11),s=c(!1),y=f;k(()=>y.domain,async t=>{t&&(a.value=await i.getCoreConfig(t))},{immediate:!0});const C=t=>{const e=v(`settings.core_module.${t.domain}.description`);return e!==`settings.core_module.${t.domain}.description`?e:i.providerManifests[t.domain].description},b=async function(t){s.value=!0,i.saveCoreConfig(a.value.domain,t).then(()=>{s.value=!1,p.push({name:"providersettings"})}).catch(e=>{alert(e),s.value=!1})},V=async function(t,e){s.value=!0;for(const o of Object.values(a.value.values))o.value!==void 0&&e[o.key]==null&&(e[o.key]=o.value);e.session_id=g,i.getCoreConfigEntries(a.value.domain,t,e).then(o=>{a.value.values={};for(const u of o)a.value.values[u.key]=u;s.value=!1}).catch(o=>{alert(o),s.value=!1})};return(t,e)=>(r(),d("section",null,[n(j,null,{default:l(()=>[a.value?(r(),d("div",D,[n(N,null,{default:l(()=>[B(I(C(a.value)),1)]),_:1}),e[1]||(e[1]=E("br",null,null,-1))])):m("",!0),a.value?(r(),h(z,{key:1,"config-entries":Object.values(a.value.values),disabled:!1,onSubmit:b,onAction:V},null,8,["config-entries"])):m("",!0)]),_:1}),n(O,{modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=o=>s.value=o),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:l(()=>[n(w,{indeterminate:"",size:"64",color:"primary"})]),_:1},8,["modelValue"])]))}});export{Q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ay as B,J as c,aP as t,bb as L,a4 as M,i as N,br as g,cH as _,b2 as V,L as w,az as P,aA as s,o as p,aG as d,aB as u,E as o,aI as y,aD as r,bg as A,bh as v,aN as i,bi as f,cB as G,aU as D,bH as O,c3 as R,aE as q}from"./index-rZUS0c3q.js";import{E as F}from"./EditConfig-Bo92pQzx.js";import{n as j}from"./index.browser-OxPLOBIU.js";import{V as H}from"./VSwitch-B-1g31ug.js";import"./VForm-Dpln05ME.js";import"./VExpansionPanels-lmUrDJt6.js";import"./VDialog-BndVdZhi.js";import"./VAlert-CBrxai34.js";import"./VSlider-DzdWVMUa.js";import"./VSelect-uSApsKq0.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";const Y={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},ie=B({__name:"EditPlayer",props:{playerId:{}},setup(C){const S=q(),e=c(),I=j(11),E=c(!1),m=C,b=c(!1);(async()=>{if(m.playerId)try{b.value=(await t.getDSPConfig(m.playerId)).enabled}catch(a){console.error("Error fetching DSP config:",a)}})();const T=t.subscribe(L.PLAYER_DSP_CONFIG_UPDATED,a=>{b.value=a.data.enabled});M(T);const $=N(()=>{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});w(()=>m.playerId,async a=>{a&&(e.value=await t.getPlayerConfig(a))},{immediate:!0});const U=async function(a){delete a.dsp_settings,a.enabled=e.value.enabled,a.name=e.value.name||null,t.savePlayerConfig(m.playerId,a),S.push({name:"playersettings"})},h=async function(a,l){E.value=!0;for(const n of Object.values(e.value.values))n.value!==void 0&&l[n.key]==null&&(l[n.key]=n.value);l.session_id=I,t.getPlayerConfigEntries(e.value.player_id,a,l).then(n=>{e.value.values={};for(const k of n)e.value.values[k.key]=k}).catch(n=>{alert(n)}).finally(()=>{E.value=!1})};return(a,l)=>(s(),P("section",null,[p(R,null,{default:d(()=>[e.value&&r(t).getProviderManifest(e.value.provider).domain in r(t).providerManifests?(s(),P("div",Y,[p(A,null,{default:d(()=>[v(i(a.$t("settings.config_player",[e.value.name||r(t).players[e.value.player_id]?.name||e.value.default_name])),1)]),_:1}),p(f,null,{default:d(()=>[o("b",null,i(a.$t("settings.player_id"))+": ",1),v(i(e.value.player_id),1)]),_:1}),p(f,null,{default:d(()=>[o("b",null,i(a.$t("settings.player_provider"))+": ",1),v(i(r(t).getProviderManifest(e.value.provider)?.name)+" ",1),r(t).getProviderManifest(e.value.provider)?.documentation?(s(),P("a",{key:0,onClick:l[0]||(l[0]=n=>r(G)(r(t).getProviderManifest(e.value.provider)?.documentation))}," ["+i(a.$t("settings.check_docs"))+"]",1)):u("",!0)]),_:1}),r(t).players[e.value.player_id]?(s(),y(f,{key:0},{default:d(()=>[o("b",null,i(a.$t("settings.player_model"))+": ",1),v(i(r(t).players[e.value.player_id].device_info.manufacturer)+" / "+i(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?(s(),y(f,{key:1},{default:d(()=>[o("b",null,i(a.$t("settings.player_address"))+": ",1),v(i(r(t).players[e.value.player_id].device_info.ip_address),1)]),_:1})):u("",!0),r(t).players[e.value.player_id]?(s(),y(f,{key:2},{default:d(()=>[o("b",null,i(a.$t("settings.player_type_label"))+": ",1),v(i(a.$t(`player_type.${r(t).players[e.value.player_id].type}`)),1)]),_:1})):u("",!0),l[3]||(l[3]=o("br",null,null,-1)),p(D),l[4]||(l[4]=o("br",null,null,-1)),l[5]||(l[5]=o("br",null,null,-1)),"name"in e.value?(s(),y(O,{key:3,modelValue:e.value.name,"onUpdate:modelValue":l[1]||(l[1]=n=>e.value.name=n),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?(s(),y(H,{key:4,modelValue:e.value.enabled,"onUpdate:modelValue":l[2]||(l[2]=n=>e.value.enabled=n),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]=o("br",null,null,-1)),p(D),e.value?(s(),y(F,{key:1,disabled:!e.value.enabled,"config-entries":$.value,onSubmit:U,onAction:h},null,8,["disabled","config-entries"])):u("",!0)]),_:1})]))}});export{ie as default};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{g as Fe,p as qe,df as il,c as Be,f as ol,e as rl,n as De,E as z,q as ie,r as Q,o as l,aJ as K,ak as ul,A as Qe,dg as Ke,z as Xe,C as we,cx as Ye,bX as dl,K as ml,J as U,L as le,s as he,x as Je,bZ as pl,G as vl,d as cl,H as fl,m as gl,t as ee,i as W,v as yl,B as _l,at as hl,aw as ge,u as Oe,aG as $,ay as c,aE as a,ax as pe,M as B,c1 as ae,bf as f,aL as A,ag as fe,aF as Ee,bb as Ze,aM as bl,_ as el,bR as Vl,bS as Ie,aR as O,aQ as te,bF as ll,dh as L,di as F,a2 as Cl,a3 as Le,cG as tl,az as G,aB as h,bG as kl,bI as Se,bN as al,bO as $e,dj as Sl,bU as Te,R as Pe,bL as Pl,dk as ne,a8 as Ll,bj as $l,aN as se,b9 as He,a4 as Tl,b2 as Al,aD as Fl,aK as Ue,aH as ze,ad as ql,be as xe,bT as Ne,aC as Dl}from"./index-Dj6UKNsX.js";import{V as wl}from"./VSlider-Dcfg9Wg5.js";import{V as be}from"./VSelect-VNw4nPSb.js";import{V as Ae}from"./VSwitch-DQEiK9D_.js";import{a as Ge,V as je}from"./VToolbar-w3YLtQh8.js";import{V as Ol}from"./VAlert-CFvRz3gu.js";import{V as We}from"./VDialog-5KHkpnhE.js";import"./VVirtualScroll-Cg5AQGzG.js";import"./VCheckboxBtn-B5wUW3kZ.js";import"./VSelectionControl-CCjz0Lnv.js";const El=qe({dotColor:String,fillDot:Boolean,hideDot:Boolean,icon:Ye,iconColor:String,lineColor:String,...we(),...Xe(),...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:x,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",x.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",x.value]),style:ie(u.value)},null)])),{}}}),nl=qe({density:String,dotColor:String,fillDot:Boolean,hideDot:Boolean,hideOpposite:{type:Boolean,default:void 0},icon:Ye,iconColor:String,lineInset:[Number,String],side:{type:String,validator:t=>t==null||["start","end"].includes(t)},...we(),...pl(),...Qe(),...Xe(),...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=W(()=>{const w=t.side?t.side:t.density!=="default"?"end":null;return w&&`v-timeline--side-${w}`}),H=W(()=>{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}),x=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=>x("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=>x(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=>x("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=W(()=>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=W({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=W({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=W(()=>s.value.is_log?Math.log10(s.value.max):s.value.max),w=W(()=>s.value.is_log?Math.log10(s.value.min):s.value.min),x=W(()=>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:x.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}))}}),xl={class:"d-flex flex-wrap justify-end align-center ga-2 pr-2"},Nl={class:"d-flex align-center pl-1"},Gl=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[_,
|
|
1
|
+
import{g as Fe,p as qe,dk as il,c as Be,f as ol,e as rl,n as De,E as z,q as ie,r as Q,o as l,aL as K,an as ul,A as Qe,dl as Ke,z as Ye,C as we,cA as Xe,bZ as dl,K as ml,J as U,L as le,s as he,x as Je,b$ as pl,G as vl,d as cl,H as fl,m as gl,t as ee,i as j,v as yl,B as _l,av as hl,ay as ge,u as Oe,aI as $,aA as c,aG as a,az as pe,M as B,c3 as ae,bh as f,aN as A,ah as fe,aH as Ee,bd as Ze,aO as bl,_ as el,bT as Vl,bU as Ie,aT as O,aS as te,bH as ll,dm as L,dn as F,a2 as Cl,a3 as Le,cL as tl,aB as G,aD as h,bI as kl,bK as Se,bP as al,bQ as $e,cG as Sl,bW as Te,R as Pe,bN as Pl,dp as ne,a8 as Ll,bl as $l,aP as se,bb as He,a4 as Tl,b4 as Al,aF as Fl,aM as Ue,aJ as ze,ae as ql,bg as Ne,bV as xe,aE as Dl}from"./index-rZUS0c3q.js";import{V as wl}from"./VSlider-DzdWVMUa.js";import{V as be}from"./VSelect-uSApsKq0.js";import{V as Ae}from"./VSwitch-B-1g31ug.js";import{a as Ge,V as We}from"./VToolbar-hGVdN8lh.js";import{V as Ol}from"./VAlert-CBrxai34.js";import{V as je}from"./VDialog-BndVdZhi.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.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"},Gl=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(()=>{W.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
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
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
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
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)},x=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=x.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===j.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 Y=0;Y<o;Y++)_[Y]=r(Y,q.value);const X=new Float32Array(o),Z=new Float32Array(o);oe(ye,C).getFrequencyResponse(_,X,Z);for(let Y=q.value.padding_lr;Y<o-q.value.padding_lr;Y++){const sl=20*Math.log10(X[Y]),Me=p(sl,q.value);Y===q.value.padding_lr?d.moveTo(Y,Me):d.lineTo(Y,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:X}},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(X=>{for(let Z=0;Z<o;Z++)y[X][Z]+=20*Math.log10(_[Z])});else for(let X=0;X<o;X++)y[d.channel][X]+=20*Math.log10(_[X])}}),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;W(()=>u.value.bands.map(n=>oe(ye,n)));const re=W(()=>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),N=W(()=>u.value.bands[j.value]),ve=W({get:()=>u.value.preamp??0,set:n=>{u.value.preamp=n}}),_e=W({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(()=>x.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;x.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",xl,[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: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(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}),j.value===-1?(c(),$(te,{key:0,elevation:"0",color:"transparent"},{default:a(()=>[l(ae,null,{default:a(()=>[l(al,{dense:""},{default:a(()=>[l($e,{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"])):G("",!0)]),_:1})]),_:1})]),_:1})]),_:1})):G("",!0),N.value?(c(),pe(fe,{key:1},[l(Sl,null,{default:a(()=>[z("div",Nl,[l(Ae,{modelValue:N.value.enabled,"onUpdate:modelValue":e[5]||(e[5]=o=>N.value.enabled=o),label:h(O)("settings.dsp.parametric_eq.enable_band"),density:"comfortable","hide-details":"",color:"primary"},null,8,["modelValue","label"]),l(Te),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(h(O)("settings.dsp.parametric_eq.delete_band")),1)]),_:1})])]),_:1}),l(be,{modelValue:N.value.type,"onUpdate:modelValue":e[7]||(e[7]=o=>N.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:N.value.frequency,"onUpdate:modelValue":e[8]||(e[8]=o=>N.value.frequency=o),type:"frequency"},null,8,["modelValue"]),E(N.value.type)?(c(),$(J,{key:0,modelValue:N.value.gain,"onUpdate:modelValue":e[9]||(e[9]=o=>N.value.gain=o),type:"gain"},null,8,["modelValue"])):G("",!0),l(J,{modelValue:N.value.q,"onUpdate:modelValue":e[10]||(e[10]=o=>N.value.q=o),type:"q"},null,8,["modelValue"]),ue.value?(c(),$(be,{key:1,modelValue:N.value.channel,"onUpdate:modelValue":e[11]||(e[11]=o=>N.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"])):G("",!0)],64)):G("",!0)]),_:1}))}}),jl=el(Gl,[["__scopeId","data-v-ac29d681"]]),Wl=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"},Xl={class:"d-none d-md-inline"},ot=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),x=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(x.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)}},N=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=W(()=>$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(je,{color:"transparent",class:"border-b pr-4"},{default:a(()=>[l(Ae,{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=>j(p)},{append:a(()=>[l(B,{icon:"mdi-delete",variant:"text",density:"compact",onClick:Ze(ce=>N(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",Xl,A(i.$t("settings.dsp.presets.save")),1)]),_:1},8,["class"])]),_:1}),l(tl,{class:"pa-4"},{default:a(()=>[s.value.enabled?G("",!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(),$($e,{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"])):G("",!0),m.value!=null?(c(),$($e,{key:1,style:{"min-width":"0"}},{default:a(()=>[l(je,{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})):G("",!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})):G("",!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})):G("",!0),typeof m.value=="number"?(c(),$(Ae,{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"])):G("",!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})):G("",!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(),$(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"])):G("",!0),s.value.filters[m.value].type===h(ne).TONE_CONTROL?(c(),$(Wl,{key:1,modelValue:s.value.filters[m.value],"onUpdate:modelValue":r[12]||(r[12]=p=>s.value.filters[m.value]=p)},null,8,["modelValue"])):G("",!0)]),_:1},8,["color"]))]),_:1})):G("",!0)]),_:1},8,["class"])]),_:1}),l(We,{modelValue:w.value,"onUpdate:modelValue":r[15]||(r[15]=p=>w.value=p),"max-width":"300"},{default:a(()=>[l(te,null,{default:a(()=>[l(xe,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(Ne,null,{default:a(()=>[l(Te),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(We,{modelValue:H.value,"onUpdate:modelValue":r[18]||(r[18]=p=>H.value=p),"max-width":"300"},{default:a(()=>[l(te,null,{default:a(()=>[l(xe,null,{default:a(()=>[f(A(i.$t("settings.dsp.filter.add")),1)]),_:1}),l(ae,null,{default:a(()=>[l(be,{modelValue:x.value,"onUpdate:modelValue":r[16]||(r[16]=p=>x.value=p),items:h(E),label:i.$t("settings.dsp.filter.type")},null,8,["modelValue","items","label"])]),_:1}),l(Ne,null,{default:a(()=>[l(Te),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"])])):G("",!0)}});export{ot as default};
|
|
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===W.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),W=U(-1),R=U(F.ALL),x=j(()=>u.value.bands[W.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),W.value>=u.value.bands.length&&Pe(()=>{W.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(()=>{W.value=n})};le(()=>u.value.preamp,I),le(()=>u.value.per_channel_preamp,I,{deep:!0}),le(()=>(W.value,u.value.bands),()=>{W.value>=u.value.bands.length&&(W.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:W.value,"onUpdate:modelValue":e[2]||(e[2]=o=>W.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}),W.value===-1?(c(),$(te,{key:0,elevation:"0",color:"transparent"},{default:a(()=>[l(ae,null,{default:a(()=>[l(al,{dense:""},{default:a(()=>[l($e,{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"])):G("",!0)]),_:1})]),_:1})]),_:1})]),_:1})):G("",!0),x.value?(c(),pe(fe,{key:1},[l(Sl,null,{default:a(()=>[z("div",xl,[l(Ae,{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(Te),l(B,{color:"error",variant:"tonal",onClick:e[6]||(e[6]=o=>de(W.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"])):G("",!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"])):G("",!0)],64)):G("",!0)]),_:1}))}}),Wl=el(Gl,[["__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"},ot=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)},W=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(Ae,{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=>W(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?G("",!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(),$($e,{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"])):G("",!0),m.value!=null?(c(),$($e,{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})):G("",!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})):G("",!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})):G("",!0),typeof m.value=="number"?(c(),$(Ae,{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"])):G("",!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})):G("",!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(),$(Wl,{key:0,modelValue:s.value.filters[m.value],"onUpdate:modelValue":r[11]||(r[11]=p=>s.value.filters[m.value]=p)},null,8,["modelValue"])):G("",!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"])):G("",!0)]),_:1},8,["color"]))]),_:1})):G("",!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(Te),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(Te),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"])])):G("",!0)}});export{ot as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ay as S,J as b,a3 as I,aP as l,bb as N,a4 as P,L as _,az as V,aA as r,o as s,aG as i,aB as v,aI as m,aD as u,E as p,bg as k,bh as f,aN as w,bi as y,c0 as U,aU as h,bH as $,c3 as j,bV as x,M as H,aS as L,b8 as O,bx as D,bN as z,aE as F}from"./index-rZUS0c3q.js";import{E as G}from"./EditConfig-Bo92pQzx.js";import{n as J}from"./index.browser-OxPLOBIU.js";import{V as R}from"./VSwitch-B-1g31ug.js";import"./VForm-Dpln05ME.js";import"./VExpansionPanels-lmUrDJt6.js";import"./VDialog-BndVdZhi.js";import"./VAlert-CBrxai34.js";import"./VSlider-DzdWVMUa.js";import"./VSelect-uSApsKq0.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";const q={key:0},K={id:"auth",href:"",target:"_blank"},re=S({__name:"EditProvider",props:{instanceId:{}},setup(C){const M=F(),a=b(),g=J(11),d=b(!1),c=b(!1),A=C;I(()=>{const n=l.subscribe(N.AUTH_SESSION,e=>{if(e.object_id!==g)return;const t=e.data;c.value=!0,window.setTimeout(()=>{const o=document.getElementById("auth");o.setAttribute("href",t),o.click()},100)});P(n)}),_(()=>A.instanceId,async n=>{n&&(a.value=await l.getProviderConfig(n))},{immediate:!0});const E=async function(n){d.value=!0,n.enabled=a.value.enabled,n.name=a.value.name||null,l.saveProviderConfig(a.value.domain,n,a.value.instance_id).then(()=>{M.push({name:"providersettings"})}).catch(e=>{alert(e)}).finally(()=>{d.value=!1,c.value=!1})},T=async function(n,e){d.value=!0;for(const t of Object.values(a.value.values))t.value!==void 0&&e[t.key]==null&&(e[t.key]=t.value);e.session_id=g,l.getProviderConfigEntries(a.value.domain,a.value.instance_id,n,e).then(t=>{a.value.values={};for(const o of t)a.value.values[o.key]=o}).catch(t=>{alert(t)}).finally(()=>{d.value=!1,c.value=!1})},B=function(n){const e=[],{t}=z();for(const o of n)o.includes("@")?e.push(`[${o.replace("@","")}](https://github.com/${o.replace("@","")})`):e.push(o);return`**${t("settings.codeowners")}**: `+e.join(" / ")};return(n,e)=>(r(),V("section",null,[s(j,null,{default:i(()=>[a.value&&u(l).providerManifests[a.value.domain]?(r(),V("div",q,[s(k,null,{default:i(()=>[f(w(n.$t("settings.setup_provider",[u(l).providerManifests[a.value.domain].name])),1)]),_:1}),s(y,{style:{"white-space":"normal"}},{default:i(()=>[f(w(u(l).providerManifests[a.value.domain].description),1)]),_:1}),e[3]||(e[3]=p("br",null,null,-1)),u(l).providerManifests[a.value.domain].codeowners.length?(r(),m(y,{key:0,innerHTML:u(U)(B(u(l).providerManifests[a.value.domain].codeowners))},null,8,["innerHTML"])):v("",!0),e[4]||(e[4]=p("br",null,null,-1)),s(h),e[5]||(e[5]=p("br",null,null,-1)),e[6]||(e[6]=p("br",null,null,-1)),"name"in a.value?(r(),m($,{key:1,modelValue:a.value.name,"onUpdate:modelValue":e[0]||(e[0]=t=>a.value.name=t),placeholder:u(l).getProvider(a.value.instance_id)?.name,label:n.$t("settings.provider_name"),variant:"outlined",clearable:""},null,8,["modelValue","placeholder","label"])):v("",!0),"enabled"in a.value?(r(),m(R,{key:2,modelValue:a.value.enabled,"onUpdate:modelValue":e[1]||(e[1]=t=>a.value.enabled=t),label:n.$t("settings.enable_provider"),color:"primary",disabled:!u(l).providerManifests[a.value.domain]?.allow_disable},null,8,["modelValue","label","disabled"])):v("",!0)])):v("",!0),s(h),a.value?(r(),m(G,{key:1,"config-entries":Object.values(a.value.values),disabled:!a.value.enabled,onSubmit:E,onAction:T},null,8,["config-entries","disabled"])):v("",!0)]),_:1}),s(D,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=t=>d.value=t),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:i(()=>[c.value?(r(),m(L,{key:0,style:{"background-color":"white"}},{default:i(()=>[s(k,null,{default:i(()=>[...e[7]||(e[7]=[f("Authenticating...",-1)])]),_:1}),s(y,null,{default:i(()=>[...e[8]||(e[8]=[f("A new tab/popup should be opened where you can authenticate",-1)])]),_:1}),s(x,null,{default:i(()=>[p("a",K,[s(H,null,{default:i(()=>[...e[9]||(e[9]=[f("Click here if the popup did not open",-1)])]),_:1})])]),_:1})]),_:1})):(r(),m(O,{key:1,indeterminate:"",size:"64",color:"primary"}))]),_:1},8,["modelValue"])]))}});export{re as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ay as v,J as d,a3 as b,cH as s,cI as S,aT as e,aP as I,ax as k,cJ as E,az as h,aA as m,o as r,aG as p,aI as w,aB as C,c3 as N,b8 as T,bx as V,aE as q}from"./index-rZUS0c3q.js";import{E as A}from"./EditConfig-Bo92pQzx.js";import{D as g}from"./constants-CXMxJR4j.js";import"./VForm-Dpln05ME.js";import"./VExpansionPanels-lmUrDJt6.js";import"./VDialog-BndVdZhi.js";import"./VAlert-CBrxai34.js";import"./VSwitch-B-1g31ug.js";import"./VSelectionControl-S-aELuKm.js";import"./VSlider-DzdWVMUa.js";import"./VSelect-uSApsKq0.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VCheckboxBtn-BMAdXnae.js";const j=v({__name:"FrontendConfig",setup(R){const f=q(),n=d([]),u=d(!1);b(()=>{const l=localStorage.getItem("frontend.settings.menu_items"),a=l?l.split(","):g,t=[{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"},...S.global.availableLocales.map(o=>({title:o,value:o}))],multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.language")},{key:"menu_items",type:s.STRING,label:"menu_items",default_value:g,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:a},{key:"force_mobile_layout",type:s.BOOLEAN,label:"force_mobile_layout",default_value:!1,required:!1,multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.force_mobile_layout")==="true"}];if(!I.isRemoteConnection.value&&!k.isIngressSession){t.splice(3,0,{key:"web_player_mode",type:s.STRING,label:"web_player_mode",default_value:"sendspin",required:!1,options:[{title:e("settings.web_player_mode.options.sendspin"),value:"sendspin"},{title:e("settings.web_player_mode.options.disabled"),value:"disabled"}],multi_value:!1,category:"generic",value:localStorage.getItem("frontend.settings.web_player_mode")||"sendspin"});const o=E();t.splice(4,0,{key:"sendspin_sync_delay",type:s.INTEGER,label:"sendspin_sync_delay",default_value:o,required:!1,multi_value:!1,category:"generic",value:parseInt(localStorage.getItem("frontend.settings.sendspin_sync_delay")||String(o),10)});const c=localStorage.getItem("frontend.settings.sendspin_output_latency_compensation");t.splice(5,0,{key:"sendspin_output_latency_compensation",type:s.BOOLEAN,label:"sendspin_output_latency_compensation",default_value:!0,required:!1,multi_value:!1,category:"generic",value:c!==null?c==="true":!0})}n.value=t});const y=async function(l){for(const a in l){const t=`frontend.settings.${a}`,i=l[a];i!=null?localStorage.setItem(t,i.toString()):localStorage.removeItem(t)}f.push({name:"home"}).then(()=>{window.location.reload()})},_=async function(l,a){};return(l,a)=>(m(),h("section",null,[r(N,null,{default:p(()=>[n.value?(m(),w(A,{key:0,"config-entries":n.value,disabled:!1,onSubmit:y,onAction:_},null,8,["config-entries"])):C("",!0)]),_:1}),r(V,{modelValue:u.value,"onUpdate:modelValue":a[0]||(a[0]=t=>u.value=t),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:p(()=>[r(T,{indeterminate:"",size:"64",color:"primary"})]),_:1},8,["modelValue"])]))}});export{j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as A}from"./Container-BunIU4BI.js";import{W as D}from"./WidgetRow-DKnAiOkf.js";import{u as T}from"./userPreferences-a0gVUlkp.js";import{ay as V,i as z,aP as h,bv as N,b3 as P,az as _,aA as r,r as W,o as a,aG as s,aB as k,M as I,E as x,aN as H,aY as M,ah as U,aH as E,aI as m,ax as i,_ as R,J as C,a3 as F,bb as Y,a4 as G,L as J,aT as O,b4 as j,aF as q,aJ as w,aD as c,bE as $,am as S,aL as b,aU as K,aE as Q,ae as X,b8 as Z,bF as ee,by as te}from"./index-rZUS0c3q.js";import{a as ae}from"./PlayerCard-CbOeDESo.js";import{V as se}from"./VToolbar-hGVdN8lh.js";import{T as re}from"./Toolbar-xH_GEfSi.js";import"./index-kQIztB-E.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./MediaItemThumb-Djieuu-m.js";import"./VAlert-CBrxai34.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./Button-Cm9Kv1fL.js";import"./VSlider-DzdWVMUa.js";const ne={class:"mr-3"},oe={key:0},ie=V({__name:"PlayersWidgetRow",props:{settings:{},editMode:{type:Boolean}},emits:["update:settings"],setup(l,{emit:g}){const n=z(()=>Object.values(h.players).filter(e=>N(e)).sort((e,f)=>e.name.toUpperCase()>f.name?.toUpperCase()?1:-1).sort((e,f)=>p(e)-p(f))),y=g;function v(e){i.activePlayerId=e.player_id}function p(e){return e.playback_state==P.PLAYING?0:e.playback_state==P.PAUSED?1:e.current_media&&e.powered?3:e.current_media?4:99}return(e,f)=>{const d=M("swiper-slide"),o=M("swiper");return r(),_("div",{class:W(`widget-row ${l.settings&&!l.settings.enabled?"disabled":""}`)},[a(se,{class:"header",color:"transparent"},{title:s(()=>[x("span",ne,H(e.$t("players")),1)]),append:s(()=>[l.editMode?(r(),_("div",oe,[a(I,{icon:l.settings.enabled?"mdi-checkbox-marked":"mdi-checkbox-blank-outline",onClick:f[0]||(f[0]=t=>y("update:settings",{...l.settings,enabled:!l.settings.enabled}))},null,8,["icon"])])):k("",!0)]),_:1}),a(o,{"slides-per-view":"auto","space-between":15,"free-mode":!1,navigation:!1,mousewheel:{forceToAxis:!0,releaseOnEdges:!0}},{default:s(()=>[(r(!0),_(U,null,E(n.value,t=>(r(),m(d,{key:t.player_id},{default:s(()=>[(r(),m(ae,{id:t.player_id,key:t.player_id,player:t,"show-volume-control":!1,"show-menu-button":!1,"show-sub-players":!1,"show-sync-controls":!1,style:{width:"305px"},onClick:u=>v(t)},null,8,["id","player","onClick"]))]),_:2},1024))),128))]),_:1})],2)}}}),le=R(ie,[["__scopeId","data-v-771a3548"]]),de=V({__name:"HomeWidgetRows",props:{editMode:{type:Boolean,default:!1}},setup(l){const g=C([]),n=C({}),{getPreference:y,setPreference:v}=T(),p=y("widgetRowSettings",{players:{position:0,enabled:!0}}),e=async function(){i.currentUser?.preferences?n.value=p.value||{players:{position:0,enabled:!0}}:n.value={players:{position:0,enabled:!0}};const d=await h.getRecommendations(),o=[];let t=0;for(const u of d){t++;const B=n.value[u.uri]||{position:t,enabled:!0},L=u.translation_key?O(`recommendations.${u.translation_key}`,u.name):u.name;o.push({...u,settings:B,title:L}),g.value=o}};F(()=>{e();const d=h.subscribe(Y.MEDIA_ITEM_PLAYED,async o=>{o.data&&!o.data.is_playing&&e()});G(d)}),J(()=>i.currentUser?.preferences,d=>{d&&e()},{immediate:!1});const f=function(d,o){for(const t of g.value)if(t.uri===d){t.settings=o;break}n.value[d]=o,v("widgetRowSettings",n.value)};return(d,o)=>(r(),_(U,null,[n.value.players?.enabled||l.editMode?(r(),m(le,{key:0,settings:n.value.players,"edit-mode":l.editMode,"onUpdate:settings":o[0]||(o[0]=t=>f("players",t))},null,8,["settings","edit-mode"])):k("",!0),(r(!0),_(U,null,E(g.value.filter(t=>t.items.length&&(t.settings.enabled||l.editMode)).sort((t,u)=>t.settings.position-u.settings.position),t=>(r(),_("div",{key:t.uri},[g.value.length?(r(),m(D,{key:0,"widget-row":t,"edit-mode":l.editMode,"onUpdate:settings":u=>f(t.uri,u)},null,8,["widget-row","edit-mode","onUpdate:settings"])):k("",!0)]))),128))],64))}}),ue=V({__name:"HomeView",setup(l){const g=Q(),n=C(!1),y=()=>{te.logout()};return(v,p)=>(r(),_("div",null,[a(re,{"show-loading":!0,home:!0,color:"background"},{append:s(()=>[a(j,{location:"bottom end",scrim:""},{activator:s(({props:e})=>[a(I,X({variant:"plain",style:{width:"40px",height:"40px","margin-right":"8px"}},e),{default:s(()=>[a($,{size:"40",color:c(i).currentUser?.avatar_url?void 0:"primary",class:"user-avatar"},{default:s(()=>[c(i).currentUser?.avatar_url?(r(),m(S,{key:0,src:c(i).currentUser.avatar_url},null,8,["src"])):(r(),m(b,{key:1,icon:"mdi-account",size:"20",color:"white"}))]),_:1},8,["color"])]),_:1},16)]),default:s(()=>[a(q,{density:"compact",slim:"",tile:""},{default:s(()=>[a(w,{title:c(i).currentUser?.display_name||c(i).currentUser?.username,subtitle:c(i).currentUser?.username,disabled:"",class:"user-header-item"},{prepend:s(()=>[a($,{size:"40",color:c(i).currentUser?.avatar_url?void 0:"primary",class:"user-avatar"},{default:s(()=>[c(i).currentUser?.avatar_url?(r(),m(S,{key:0,src:c(i).currentUser.avatar_url},null,8,["src"])):(r(),m(b,{key:1,icon:"mdi-account",size:"20",color:"white"}))]),_:1},8,["color"])]),_:1},8,["title","subtitle"]),a(K,{class:"my-1"}),a(w,{title:v.$t("auth.profile"),onClick:p[0]||(p[0]=e=>c(g).push({name:"profile"}))},{prepend:s(()=>[a(b,{icon:"mdi-account-cog"})]),_:1},8,["title"]),a(w,{title:v.$t(n.value?"homescreen_edit_disable":"homescreen_edit_enable"),onClick:p[1]||(p[1]=e=>n.value=!n.value)},{prepend:s(()=>[a(b,{icon:"mdi-pencil"})]),_:1},8,["title"]),c(i).isIngressSession?k("",!0):(r(),m(w,{key:0,title:v.$t("auth.logout"),onClick:y},{prepend:s(()=>[a(b,{icon:"mdi-logout"})]),_:1},8,["title"]))]),_:1})]),_:1})]),_:1}),a(A,{variant:"comfortable"},{default:s(()=>[(r(),m(ee,null,{fallback:s(()=>[a(Z,{indeterminate:""})]),default:s(()=>[x("div",null,[a(de,{"edit-mode":n.value},null,8,["edit-mode"])])]),_:1}))]),_:1})]))}}),Pe=R(ue,[["__scopeId","data-v-22a0cc44"]]);export{Pe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-item-group{flex:0 1 auto;max-width:100%;position:relative;transition:.2s cubic-bezier(.4,0,.2,1)}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;inset:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}@media (forced-colors: active){.v-snackbar__wrapper{border:thick solid}}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}@media (prefers-reduced-motion: reduce){.v-snackbar-transition-enter-active{transition-property:opacity}}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}.unavailable[data-v-cf65a966],.dimmed[data-v-cf65a966]{opacity:.3}.hidden[data-v-cf65a966]{opacity:0}.hiresicon[data-v-cf65a966]{margin-top:5px;margin-right:15px;margin-left:15px;filter:invert(100%)}.hiresicondark[data-v-cf65a966]{margin-top:5px;margin-right:15px;margin-left:15px}.v-card.unavailable[data-v-bb3ba95c]{opacity:.3}.panel-item[data-v-bb3ba95c]{height:100%;padding:10px;border:none;border-style:none!important}.panel-item-checkbox[data-v-bb3ba95c]{position:absolute;width:100%;height:auto;left:0;right:0}.panel-item-details[data-v-bb3ba95c]{margin-top:10px;padding-left:0!important;padding-right:0!important;height:40px}.panel-item-actions[data-v-bb3ba95c]{padding:0;margin:10px 0 0;height:40px;min-height:unset!important}panel-item-details[data-v-bb3ba95c] .v-list-item__content{height:30px}.v-card--active[data-v-bb3ba95c]{background-color:red}.hiresicon[data-v-bb3ba95c]{margin-right:10px}.hiresiconinverted[data-v-bb3ba95c]{margin-right:10px;filter:invert(100%)}.col-2[data-v-
|
|
1
|
+
.v-item-group{flex:0 1 auto;max-width:100%;position:relative;transition:.2s cubic-bezier(.4,0,.2,1)}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;inset:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}@media (forced-colors: active){.v-snackbar__wrapper{border:thick solid}}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}@media (prefers-reduced-motion: reduce){.v-snackbar-transition-enter-active{transition-property:opacity}}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}.unavailable[data-v-cf65a966],.dimmed[data-v-cf65a966]{opacity:.3}.hidden[data-v-cf65a966]{opacity:0}.hiresicon[data-v-cf65a966]{margin-top:5px;margin-right:15px;margin-left:15px;filter:invert(100%)}.hiresicondark[data-v-cf65a966]{margin-top:5px;margin-right:15px;margin-left:15px}.v-card.unavailable[data-v-bb3ba95c]{opacity:.3}.panel-item[data-v-bb3ba95c]{height:100%;padding:10px;border:none;border-style:none!important}.panel-item-checkbox[data-v-bb3ba95c]{position:absolute;width:100%;height:auto;left:0;right:0}.panel-item-details[data-v-bb3ba95c]{margin-top:10px;padding-left:0!important;padding-right:0!important;height:40px}.panel-item-actions[data-v-bb3ba95c]{padding:0;margin:10px 0 0;height:40px;min-height:unset!important}panel-item-details[data-v-bb3ba95c] .v-list-item__content{height:30px}.v-card--active[data-v-bb3ba95c]{background-color:red}.hiresicon[data-v-bb3ba95c]{margin-right:10px}.hiresiconinverted[data-v-bb3ba95c]{margin-right:10px;filter:invert(100%)}.col-2[data-v-599e3d6b]{width:50%;max-width:50%;flex-basis:50%;padding:8px}.col-3[data-v-599e3d6b]{width:33.3%;max-width:33.3%;flex-basis:33.3%;padding:8px}.col-4[data-v-599e3d6b]{width:25%;max-width:25%;flex-basis:25%;padding:8px}.col-5[data-v-599e3d6b]{width:20%;max-width:20%;flex-basis:20%;padding:8px}.col-6[data-v-599e3d6b]{width:16.6%;max-width:16.6%;flex-basis:16.6%;padding:8px}.col-7[data-v-599e3d6b]{width:14.2%;max-width:14.2%;flex-basis:14.2%;padding:8px}.col-8[data-v-599e3d6b]{width:12.5%;max-width:12.5%;flex-basis:12.5%;padding:8px}.col-9[data-v-599e3d6b]{width:11.1%;max-width:11.1%;flex-basis:11.1%;padding:8px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as vt}from"./Container-BunIU4BI.js";import{T as ft}from"./Toolbar-xH_GEfSi.js";import{g as we,p as Re,G as Ee,l as yt,o as k,q as Ne,r as R,v as Ye,x as ht,w as bt,C as pt,$ as kt,U as wt,j as gt,c9 as It,aa as Bt,ca as At,f as St,J as C,K as ye,T as Tt,a1 as Ct,L as j,a3 as Ke,cb as Pt,i as W,n as Ft,bx as he,ae as ie,ap as xt,ai as Vt,cc as Lt,z as Dt,cd as Mt,ce as Ot,cf as $t,a7 as Rt,R as be,cg as Et,ch as Nt,a2 as Ue,ci as Yt,E,bJ as ze,an as Kt,ay as re,aI as m,aA as s,aD as y,bd as G,aP as oe,bN as Ge,cj as X,aG as c,aB as v,az as I,b5 as ae,am as Ut,c8 as He,c1 as pe,bh as S,aN as h,aV as zt,aQ as V,aL as Y,b7 as Gt,bp as ne,ck as Ht,bq as jt,cl as je,c2 as Xe,M as ue,c4 as qe,cm as ge,cn as We,_ as Ie,bO as Xt,N as qt,aS as Wt,aM as Jt,bS as J,aJ as Qt,ax as T,bV as Zt,bW as _t,aR as q,co as ea,a4 as ve,cp as ta,aO as xe,bb as Q,a$ as aa,aU as ia,bH as la,bP as Ve,ah as Le,aH as De,bM as fe,aE as sa,b3 as oa,bQ as Me,bL as Oe}from"./index-rZUS0c3q.js";import{M as Je}from"./Button-Cm9Kv1fL.js";import{L as na}from"./ListItem-DNqmHglz.js";import{_ as ke,V as Qe,u as ua}from"./userPreferences-a0gVUlkp.js";import{M as Ze}from"./MediaItemThumb-Djieuu-m.js";import{V as ra,P as ca}from"./PanelviewItemCompact-zZvQaI6t.js";import{V as ma}from"./VInfiniteScroll-B5bUrC-Z.js";import{V as da}from"./VVirtualScroll-C1eeqQrQ.js";import{V as $e}from"./VAlert-CBrxai34.js";const _e=Symbol.for("vuetify:v-item-group"),va=Re({...pt(),...bt({selectedClass:"v-item--selected"}),...ht(),...Ye()},"VItemGroup"),et=we()({name:"VItemGroup",props:va(),emits:{"update:modelValue":e=>!0},setup(e,a){let{slots:p}=a;const{themeClasses:f}=Ee(e),{isSelected:A,select:B,next:l,prev:g,selected:d}=yt(e,_e);return()=>k(e.tag,{class:R(["v-item-group",f.value,e.class]),style:Ne(e.style)},{default:()=>[p.default?.({isSelected:A,select:B,next:l,prev:g,selected:d.value})]})}}),K=we()({name:"VItem",props:kt(),emits:{"group:selected":e=>!0},setup(e,a){let{slots:p}=a;const{isSelected:f,select:A,toggle:B,selectedClass:l,value:g,disabled:d}=wt(e,_e);return()=>p.default?.({isSelected:f.value,selectedClass:l.value,select:A,toggle:B,value:g.value,disabled:d.value})}});function fa(e){const a=ye(e());let p=-1;function f(){clearInterval(p)}function A(){f(),be(()=>a.value=e())}function B(l){const g=l?getComputedStyle(l):{transitionDuration:.2},d=parseFloat(g.transitionDuration)*1e3||200;if(f(),a.value<=0)return;const F=performance.now();p=window.setInterval(()=>{const n=performance.now()-F+d;a.value=Math.max(e()-n,0),a.value<=0&&f()},d)}return Rt(f),{clear:f,time:a,start:B,reset:A}}const ya=Re({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Ot({location:"bottom"}),...Mt(),...Dt(),...Lt(),...Ye(),...Vt($t({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","retainFocus","captureFocus","disableInitialFocus","scrim","scrollStrategy","stickToTarget","viewportMargin"])},"VSnackbar"),ha=we()({name:"VSnackbar",props:ya(),emits:{"update:modelValue":e=>!0},setup(e,a){let{slots:p}=a;const f=gt(e,"modelValue"),{positionClasses:A}=It(e),{scopeId:B}=Bt(),{themeClasses:l}=Ee(e),{colorClasses:g,colorStyles:d,variantClasses:F}=At(e),{roundedClasses:n}=St(e),b=fa(()=>Number(e.timeout)),w=C(),x=C(),O=ye(!1),L=ye(0),N=C(),$=Tt(Et,void 0);Ct(()=>!!$,()=>{const P=Nt();Ue(()=>{N.value=P.mainStyles.value})}),j(f,H),j(()=>e.timeout,H),Ke(()=>{f.value&&H()});let U=-1;function H(){b.reset(),window.clearTimeout(U);const P=Number(e.timeout);if(!f.value||P===-1)return;const z=Pt(x.value);b.start(z),U=window.setTimeout(()=>{f.value=!1},P)}function le(){b.reset(),window.clearTimeout(U)}function Z(){O.value=!0,le()}function se(){O.value=!1,H()}function _(P){L.value=P.touches[0].clientY}function ee(P){Math.abs(L.value-P.changedTouches[0].clientY)>50&&(f.value=!1)}function ce(){O.value&&se()}const me=W(()=>e.location.split(" ").reduce((P,z)=>(P[`v-snackbar--${z}`]=!0,P),{}));return Ft(()=>{const P=he.filterProps(e),z=!!(p.default||p.text||e.text);return k(he,ie({ref:w,class:["v-snackbar",{"v-snackbar--active":f.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},me.value,A.value,e.class],style:[N.value,e.style]},P,{modelValue:f.value,"onUpdate:modelValue":te=>f.value=te,contentProps:ie({class:["v-snackbar__wrapper",l.value,g.value,n.value,F.value],style:[d.value],onPointerenter:Z,onPointerleave:se},P.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:_,onTouchend:ee,onAfterLeave:ce},B),{default:()=>[Yt(!1,"v-snackbar"),e.timer&&!O.value&&E("div",{key:"timer",class:"v-snackbar__timer"},[k(ze,{ref:x,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,modelValue:b.time.value},null)]),z&&E("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[p.text?.()??e.text,p.default?.()]),p.actions&&k(Kt,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[E("div",{class:"v-snackbar__actions"},[p.actions({isActive:f})])]})],activator:p.activator})}),xt({},w)}}),tt=re({__name:"FavoriteButton",props:{item:{}},setup(e){const a=e;return(p,f)=>(s(),m(Je,ie(a,{variant:"icon",icon:e.item?.favorite?"mdi-heart":"mdi-heart-outline",title:p.$t("tooltip.favorite"),onClick:[f[0]||(f[0]=A=>y(oe).toggleFavorite(e.item)),f[1]||(f[1]=G(()=>{},["prevent"])),f[2]||(f[2]=G(()=>{},["stop"]))]}),null,16,["icon","title"]))}}),ba={key:0,class:"media-thumb listitem-media-thumb"},pa={key:1,class:"media-thumb listitem-media-thumb"},ka={key:0},wa={key:0},ga={key:0,class:"line-clamp-1"},Ia={key:1},Ba={key:0},Aa={key:1},Sa={key:2},Ta={key:3},Ca={key:4},Pa={key:5},Fa={key:6},xa={key:7},Va={key:5},La={key:6},Da={class:"text-caption",style:{"padding-right":"10px","padding-left":"10px"}},Ma=re({__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:a}){const{t:p}=Ge(),f=C(!1),A=e,B=W(()=>{if(!("provider_mappings"in A.item))return"";for(const n of A.item.provider_mappings)if(n.audio_format&&n.audio_format.content_type!=null&&[X.DSF,X.FLAC,X.AIFF,X.WAV].includes(n.audio_format.content_type)&&(n.audio_format.sample_rate>48e3||n.audio_format.bit_depth>16))return`${n.audio_format.sample_rate/1e3}kHz ${n.audio_format.bit_depth} bits`;return""}),l=a,g=function(n){const b=n;ge(A.item,b.clientX,b.clientY,A.parentItem)},d=function(n){if(A.showCheckboxes)return;const b=n;We(A.item,b.clientX,b.clientY,A.parentItem)},F=function(n){A.showCheckboxes||qe(A.item,n.clientX,n.clientY,A.parentItem)};return(n,b)=>(s(),m(na,{link:"","show-menu-btn":e.showMenu,class:R({unavailable:!e.isAvailable}),onClick:G(d,["stop"]),onMenu:G(g,["stop"])},{prepend:c(()=>[e.showCheckboxes?(s(),I("div",ba,[k(Qe,{"model-value":e.isSelected,onClick:b[0]||(b[0]=G(()=>{},["stop"])),"onUpdate:modelValue":b[1]||(b[1]=w=>{w!=null&&l("select",e.item,w)})},null,8,["model-value"])])):(s(),I("div",pa,[k(Ze,{size:"50",item:e.isAvailable?e.item:void 0,class:R({dimmed:f.value})},null,8,["item","class"])])),!e.showCheckboxes&&e.item.is_playable?(s(),m(ue,{key:2,class:R({hidden:!f.value}),icon:"mdi-play",variant:"text",size:"small",style:{position:"absolute",left:"14px",bottom:"12px",color:"white","font-size":"18px"},onClick:G(F,["stop"]),onMouseenter:b[2]||(b[2]=w=>f.value=!0),onMouseleave:b[3]||(b[3]=w=>f.value=!1)},null,8,["class"])):v("",!0)]),title:c(()=>[e.item.media_type==y(V).FOLDER?(s(),I("span",ka,[E("span",null,h(y(je)(e.item,y(p))),1)])):(s(),I("span",{key:1,class:R({"is-playing":e.isPlaying})},[S(h(e.item.name)+" ",1),"version"in e.item&&e.item.version?(s(),I("span",wa,"("+h(e.item.version)+")",1)):v("",!0)],2)),e.item&&e.item.metadata?(s(),m(y(pe),{key:2,location:"bottom"},{activator:c(({props:w})=>[y(Xe)(e.item.metadata.explicit||!1)?(s(),m(Y,ie({key:0},w,{icon:"mdi-alpha-e-box",width:"35"}),null,16)):v("",!0)]),default:c(()=>[E("span",null,h(n.$t("tooltip.explicit")),1)]),_:1})):v("",!0)]),subtitle:c(()=>[e.item.media_type==y(V).TRACK&&"provider_mappings"in e.item?(s(),I("div",ga,[k(et,null,{default:c(()=>["artists"in e.item?(s(),m(K,{key:0},{default:c(()=>[S(h(y(ne)(e.item.artists,2)),1)]),_:1})):v("",!0),e.showAlbum&&"album"in e.item&&e.item.album?(s(),m(K,{key:1},{default:c(()=>[S(" • "+h(e.item.album.name),1)]),_:1})):v("",!0),e.showDiscNumber&&"disc_number"in e.item&&e.item.disc_number?(s(),m(K,{key:2},{default:c(()=>[k(Y,{style:{"margin-left":"5px"},icon:"md:album"}),S(" "+h(e.item.disc_number),1)]),_:1})):v("",!0),e.showTrackNumber&&"track_number"in e.item&&e.item.track_number?(s(),m(K,{key:3},{default:c(()=>[k(Y,{style:{"margin-left":"5px"},icon:"mdi-music-circle-outline"}),S(" "+h(e.item.track_number),1)]),_:1})):e.showPosition&&"position"in e.item&&e.item.position?(s(),m(K,{key:4},{default:c(()=>[k(Y,{style:{"margin-left":"5px"},icon:"mdi-music-circle-outline"}),S(" "+h(e.item.position),1)]),_:1})):v("",!0)]),_:1})])):e.item.media_type==y(V).ALBUM&&"year"in e.item?(s(),I("div",Ia,[e.item.album_type!=y(Ht).UNKNOWN?(s(),I("span",Ba,h(n.$t("album_type."+e.item.album_type))+" • ",1)):v("",!0),E("span",null,h(y(ne)(e.item.artists)),1),e.item.year?(s(),I("span",Aa," • "+h(e.item.year),1)):v("",!0)])):"artists"in e.item&&e.item.artists?(s(),I("div",Sa,h(y(ne)(e.item.artists)),1)):"owner"in e.item&&e.item.owner?(s(),I("div",Ta,h(e.item.owner),1)):"authors"in e.item&&e.item.authors?(s(),I("div",Ca,h(e.item.authors.join(" / ")),1)):"publisher"in e.item&&e.item.publisher?(s(),I("div",Pa,h(e.item.publisher),1)):"metadata"in e.item&&e.item.metadata?.description&&[y(V).RADIO,y(V).PLAYLIST,y(V).FOLDER].includes(e.item.media_type)?(s(),I("div",Fa,h(y(jt)(e.item.metadata.description,150)),1)):"media_type"in e.item&&!e.item.provider_mappings?(s(),I("div",xa,h(n.$t(e.item.media_type)),1)):v("",!0)]),append:c(()=>[e.isPlaying?(s(),m(ke,{key:0,"show-badge":y(ae)("bp7")},null,8,["show-badge"])):v("",!0),B.value?(s(),m(Ut,{key:1,src:y(He),width:"30",class:R(n.$vuetify.theme.current.dark?"hiresicondark":"hiresicon")},{default:c(()=>[k(y(pe),{activator:"parent",location:"bottom"},{default:c(()=>[S(h(B.value),1)]),_:1})]),_:1},8,["src","class"])):v("",!0),y(ae)("bp2")&&e.showProvider?(s(),m(zt,{key:2,domain:e.item.media_type==y(V).PLAYLIST?e.item.provider_mappings[0].provider_domain:e.item.provider,size:24},null,8,["domain"])):v("",!0),"fully_played"in e.item&&e.item.fully_played?(s(),m(Y,{key:3,title:n.$t("item_fully_played")},{default:c(()=>[...b[4]||(b[4]=[S("mdi-check",-1)])]),_:1},8,["title"])):"resume_position_ms"in e.item&&e.item.resume_position_ms?(s(),m(Y,{key:4,title:n.$t("item_in_progress")},{default:c(()=>[...b[5]||(b[5]=[S("mdi-clock-fast",-1)])]),_:1},8,["title"])):v("",!0),y(ae)("bp3")&&"favorite"in e.item&&e.showFavorite&&!n.$vuetify.display.mobile?(s(),I("div",Va,[k(tt,{item:e.item},null,8,["item"])])):v("",!0),e.showDuration&&"duration"in e.item&&e.item.duration&&y(ae)("bp0")?(s(),I("div",La,[E("div",null,[E("span",Da,h(y(Gt)(e.item.duration)),1)])])):v("",!0)]),_:1},8,["show-menu-btn","class"]))}}),Oa=Ie(Ma,[["__scopeId","data-v-cf65a966"]]),$a={key:0},Ra=["src"],Ea={key:0},Na=re({__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:a}){const p=e,f=W(()=>{for(const d of p.item.provider_mappings)if(d.audio_format&&d.audio_format.content_type!=null&&[X.DSF,X.FLAC,X.AIFF,X.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""}),A=a,B=function(d){if(p.showCheckboxes)return;const F="clientX"in d?d.clientX:d.touches[0].clientX,n="clientY"in d?d.clientY:d.touches[0].clientY;ge(p.item,F,n,p.parentItem)},l=function(d){if(p.showCheckboxes){A("select",p.item,!p.isSelected);return}We(p.item,d.clientX,d.clientY,p.parentItem)},g=function(d){p.showCheckboxes||qe(p.item,d.clientX,d.clientY,p.parentItem)};return(d,F)=>{const n=Xt("hold");return s(),m(ra,null,{default:c(({isHovering:b,props:w})=>[qt((s(),m(Wt,ie(w,{tile:"",hover:"",class:["panel-item",{unavailable:!e.isAvailable}],onClick:l,onContextmenu:G(B,["right","prevent"])}),{default:c(()=>[e.showCheckboxes?(s(),m(he,{key:0,"model-value":e.showCheckboxes,contained:"",scrim:e.isSelected?d.$vuetify.theme.current.dark?"rgba(0,0,0,.75)":"rgba(255,255,255,.75)":"#ffffff00"},{default:c(()=>[k(Qe,{class:"panel-item-checkbox",ripple:!1,"model-value":e.isSelected},null,8,["model-value"])]),_:1},8,["model-value","scrim"])):v("",!0),k(Ze,{item:e.isAvailable?e.item:void 0,style:{height:"auto"}},null,8,["item"]),k(Qt,{variant:"text",slim:"",tile:"",density:"compact",class:"panel-item-details"},{default:c(()=>[k(Jt,null,{default:c(()=>[e.item.media_type==y(V).FOLDER?(s(),I("span",$a,[E("span",null,h(y(je)(e.item,d.$t)),1)])):(s(),I("span",{key:1,class:R({"is-playing":e.isPlaying})},h(e.item.name),3)),"version"in e.item&&e.item.version?(s(),I("span",{key:2,class:R({"is-playing":e.isPlaying})}," - "+h(e.item.version),3)):v("",!0)]),_:1}),"artists"in e.item&&e.item.artists?(s(),m(J,{key:0,class:"line-clamp-1"},{default:c(()=>[S(h(y(ne)(e.item.artists,1)),1)]),_:1})):v("",!0),"authors"in e.item&&e.item.authors?(s(),m(J,{key:1,class:"line-clamp-1"},{default:c(()=>[S(h(e.item.authors.join(" / ")),1)]),_:1})):"publisher"in e.item&&e.item.publisher?(s(),m(J,{key:2,class:"line-clamp-1"},{default:c(()=>[S(h(e.item.publisher),1)]),_:1})):"owner"in e.item&&e.item.owner?(s(),m(J,{key:3,class:"line-clamp-1"},{default:c(()=>[S(h(e.item.owner),1)]),_:1})):e.showMediaType?(s(),m(J,{key:4,class:"line-clamp-1"},{default:c(()=>[S(h(d.$t(e.item.media_type)),1)]),_:1})):(s(),m(J,{key:5,class:"line-clamp-1"}))]),_:1}),e.isPlaying&&!e.showActions?(s(),m(ke,{key:1,"icon-style":"position: absolute; right: 5px; bottom: 5px","show-badge":!1})):v("",!0),(b||y(T).isTouchscreen)&&e.isAvailable&&e.item.is_playable?(s(),m(ue,{key:2,icon:"mdi-play",color:"primary",fab:"",style:Ne(`position: absolute; right: 15px; bottom: ${e.showActions?90:35}px; opacity: 0.8`),onClick:G(g,["stop"])},null,8,["style"])):v("",!0),e.showActions?(s(),m(Zt,{key:3,class:"panel-item-actions"},{default:c(()=>[k(et,{style:{padding:"0"}},{default:c(()=>[y(Xe)(e.item.metadata.explicit||!1)?(s(),m(K,{key:0},{default:c(()=>[k(Y,{size:"30",icon:"mdi-alpha-e-box"})]),_:1})):v("",!0),f.value?(s(),m(K,{key:1},{default:c(()=>[k(Y,{class:R(d.$vuetify.theme.current.dark?"hiresicon":"hiresiconinverted")},{default:c(()=>[E("img",{src:y(He),width:"30"},null,8,Ra),k(pe,{activator:"parent",location:"bottom"},{default:c(()=>[S(h(f.value),1)]),_:1})]),_:1},8,["class"])]),_:1})):v("",!0),e.showTrackNumber&&"track_number"in e.item&&e.item.track_number?(s(),m(K,{key:2},{default:c(()=>[k(Y,{size:"small",icon:"mdi-music-circle-outline"}),e.item.disc_number?(s(),I("span",Ea,h(e.item.disc_number)+"/",1)):v("",!0),S(h(e.item.track_number),1)]),_:1})):"position"in e.item&&e.item.position?(s(),m(K,{key:3},{default:c(()=>[k(Y,{size:"small",icon:"mdi-music-circle-outline"}),S(" "+h(e.item.position),1)]),_:1})):v("",!0),y(ae)("bp3")?(s(),m(K,{key:4},{default:c(()=>[k(tt,{item:e.item},null,8,["item"])]),_:1})):v("",!0)]),_:1}),e.isPlaying?(s(),m(ke,{key:0,"show-badge":!1})):v("",!0),k(_t),b||d.$vuetify.display.mobile?(s(),m(Je,{key:1,variant:"list",icon:"mdi-dots-vertical",style:{"padding-right":"0","margin-right":"-5px"},onClick:G(B,["stop"])})):v("",!0)]),_:2},1024)):v("",!0)]),_:2},1040,["class"])),[[n,B]])]),_:1})}}}),Ya=Ie(Na,[["__scopeId","data-v-bb3ba95c"]]),Ka={key:0},Ua={key:2},za=re({__name:"ItemsListing",props:{itemtype:{},sortKeys:{default:()=>["name","sort_name"]},showTrackNumber:{type:Boolean,default:!0},showProvider:{type:Boolean,default:Object.keys(oe.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},showProviderFilter:{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 a=e,p=sa(),{t:f}=Ge(),{getItemsListingPreferences:A,setItemsListingPreference:B}=ua(),l=C({offset:0,limit:50,sortBy:"name",search:"",libraryOnly:!1}),g=C("list"),d=C(!1),F=C(!1),n=C([]),b=C([]),w=C(!1),x=C([]),O=C(!1),L=C(!1),N=C(!0),$=C(!1),U=C(!1),H=C(!1),le=function(){l.value.search="",d.value=!1},Z=function(){be(()=>{document.getElementById("searchInput")?.focus()})},se=function(){d.value?le():(d.value=!0,Z())},_=function(){if(a.onTitleClick){a.onTitleClick();return}N.value=!N.value,B(a.path||a.itemtype,a.itemtype,"expand",N.value)},ee=function(t){g.value=t,B(a.path||a.itemtype,a.itemtype,"viewMode",t)},ce=function(){l.value.favoritesOnly=!l.value.favoritesOnly,B(a.path||a.itemtype,a.itemtype,"favoriteFilter",l.value.favoritesOnly),D(void 0,void 0,!0)},me=function(){l.value.libraryOnly=!l.value.libraryOnly,B(a.path||a.itemtype,a.itemtype,"libraryFilter",l.value.libraryOnly),D(!0,void 0,!0)},P=function(){l.value.albumArtistsFilter=!l.value.albumArtistsFilter,B(a.path||a.itemtype,a.itemtype,"albumArtistsFilter",l.value.albumArtistsFilter),D(void 0,void 0,!0)},z=function(t){return x.value.includes(t)},te=function(t,o){if(T.activePlayer?.playback_state!=oa.PLAYING)return!1;const i=T.curQueueItem?.media_item;if(!i)return!1;switch(o){case"tracks":return t.item_id===i.item_id;case"albums":return"album"in i?t.item_id===i.album.item_id:!1;case"artists":return"artists"in i?Array.isArray(i.artists)&&i.artists.some(u=>u.item_id===t.item_id):!1;case"radios":return t.item_id===i.item_id;case"podcasts":return"podcast"in i?t.item_id===i.podcast.item_id:!1;case"podcastepisodes":return t.item_id===i.item_id;default:return!1}},de=function(t,o){if(o)x.value.includes(t)||x.value.push(t);else for(let i=0;i<x.value.length;i++)x.value[i]===t&&x.value.splice(i,1)},at=function(){L.value&&(x.value=[]),L.value=!L.value},it=function(){D(!0,!0)},lt=function(){l.value.search="",d.value=!1,D(void 0,void 0,!0)},st=function(t){t!==void 0&&(l.value.sortBy=t),B(a.path||a.itemtype,a.itemtype,"sortBy",l.value.sortBy),D(void 0,void 0,!0)},ot=function(t){l.value.albumType?.includes(t)?l.value.albumType=l.value.albumType?.filter(o=>o!==t):(l.value.albumType=l.value.albumType||[],l.value.albumType.push(t)),B(a.path||a.itemtype,a.itemtype,"albumType",l.value.albumType),D(void 0,void 0,!0)},nt=function(t){l.value.provider?.includes(t)?l.value.provider=l.value.provider?.filter(o=>o!==t):(l.value.provider=l.value.provider||[],l.value.provider.push(t)),l.value.provider.length===0&&(l.value.provider=void 0),B(a.path||a.itemtype,a.itemtype,"providerFilter",l.value.provider),D(void 0,void 0,!0)},ut=function(){T.globalSearchTerm=l.value.search,a.itemtype=="artists"?T.globalSearchType=V.ARTIST:a.itemtype=="albums"?T.globalSearchType=V.ALBUM:a.itemtype=="tracks"?T.globalSearchType=V.TRACK:a.itemtype=="playlists"?T.globalSearchType=V.PLAYLIST:a.itemtype=="audiobooks"?T.globalSearchType=V.AUDIOBOOK:a.itemtype=="podcasts"?T.globalSearchType=V.PODCAST:a.itemtype=="radios"&&(T.globalSearchType=V.RADIO),p.push({name:"search"})},Be=async function({done:t}){if($.value){t("empty");return}await D(void 0,void 0,void 0,l.value.offset+a.limit),t("ok")},rt=async function(){for(;!$.value;)await Be({done:function(){}})},Ae=W(()=>{var t=!1;return l.value.search&&l.value.search.length!==0&&(t=!0),t}),Se=W(()=>d.value&&N.value),Te=W(()=>{const o={artists:q.LIBRARY_ARTISTS,albums:q.LIBRARY_ALBUMS,tracks:q.LIBRARY_TRACKS,playlists:q.LIBRARY_PLAYLISTS,radios:q.LIBRARY_RADIOS,podcasts:q.LIBRARY_PODCASTS,audiobooks:q.LIBRARY_AUDIOBOOKS}[a.itemtype];return Object.values(oe.providers).filter(i=>i.type!==ea.MUSIC?!1:o?i.supported_features.includes(o):!0).map(i=>({label:i.name,value:i.instance_id})).sort((i,u)=>i.label.localeCompare(u.label))});Ue(()=>{Se.value||(F.value=!1)});const ct=W(()=>{if(a.allowCollapse===!0&&!N.value)return[{label:"tooltip.collapse_expand",icon:"mdi-chevron-down",action:_,overflowAllowed:!1}];const t=[];return a.showSelectButton!==!1&&(L.value&&t.push({label:"tooltip.select_all",icon:"mdi-select-all",action:Fe}),t.push({label:"tooltip.select_items",icon:L.value?"mdi-checkbox-multiple-outline":"mdi-checkbox-multiple-blank-outline",action:at,active:L.value})),a.showLibraryOnlyFilter===!0&&t.push({label:"tooltip.filter_library",icon:"mdi-bookshelf",action:me,active:l.value.libraryOnly}),a.showFavoritesOnlyFilter===!0&&t.push({label:"tooltip.filter_favorites",icon:l.value.favoritesOnly?"mdi-heart":"mdi-heart-outline",action:ce,active:l.value.favoritesOnly}),a.showAlbumArtistsOnlyFilter===!0&&t.push({label:"tooltip.album_artist_filter",icon:l.value.albumArtistsFilter?"mdi-account-music":"mdi-account-music-outline",action:P,active:l.value.albumArtistsFilter}),a.showAlbumTypeFilter&&t.push({label:"tooltip.album_type",icon:"mdi-album",disabled:w.value,active:l.value.albumType&&l.value.albumType.length>0,closeOnContentClick:!1,subItems:["album","single","ep","compilation","live","soundtrack","unknown"].map(o=>({label:`album_type.${o}`,selected:l.value.albumType?.includes(o),action:()=>{ot(o)}}))}),a.showProviderFilter&&Te.value.length>1&&t.push({label:"tooltip.filter_provider",icon:"mdi-package-variant",disabled:w.value,active:l.value.provider&&l.value.provider.length>0,closeOnContentClick:!1,subItems:Te.value.map(o=>({label:o.label,selected:l.value.provider?.includes(o.value),action:()=>{nt(o.value)}}))}),(a.showRefreshButton!==!1||O.value)&&t.push({label:O.value?"tooltip.refresh_new_content":"tooltip.refresh",icon:"mdi-refresh",action:it,active:O.value,disabled:w.value}),a.sortKeys?.length&&t.push({label:"tooltip.sort_options",icon:"mdi-sort",disabled:a.sortKeys.length<=1||w.value,subItems:a.sortKeys.map(o=>({label:`sort.${o}`,selected:l.value.sortBy==o,action:()=>{st(o)}}))}),a.showSearchButton!==!1&&t.push({label:Ae.value?"tooltip.search_filter_active":"tooltip.search",icon:"mdi-magnify",action:se,active:Ae.value,disabled:w.value}),t.push({label:"tooltip.toggle_view_mode",icon:g.value=="list"?"mdi-view-list":"mdi-grid",subItems:[{label:"view.list",icon:"mdi-view-list",selected:g.value=="list",action:()=>{ee("list")}},{label:"view.panel",icon:"mdi-grid",selected:g.value=="panel",action:()=>{ee("panel")}},{label:"view.panel_compact",icon:"mdi-grid",selected:g.value=="panel_compact",action:()=>{ee("panel_compact")}}]}),a.extraMenuItems?.length&&t.push(...a.extraMenuItems),a.allowCollapse===!0&&t.push({label:"tooltip.collapse_expand",icon:"mdi-chevron-up",action:_}),t}),D=async function(t=!1,o=!1,i=!1,u=0){if(!w.value){if(w.value=!0,i&&a.loadPagedData!=null&&(t=!0),(t||o)&&(u=0,$.value&&(H.value=!0),$.value=!1,U.value=!1,O.value=!1),l.value.offset=u,l.value.limit=a.limit,l.value.refresh=o,a.loadPagedData!=null){const r=await a.loadPagedData(l.value);l.value.offset?n.value.push(...r):n.value=r,Math.abs(r.length-a.limit)>10&&($.value=!0)}else if(a.loadItems!=null){(!U.value||o)&&(b.value=await a.loadItems(l.value),U.value=!0);const r=dt(b.value,l.value);l.value.offset?n.value.push(...r):n.value=r,$.value=r.length<a.limit}l.value.refresh=!1,w.value=!1,H.value=!1}},Ce=A(a.path||a.itemtype,a.itemtype),mt=async function(){const t=Ce.value;t.viewMode?g.value=t.viewMode:a.itemtype=="artists"||a.itemtype=="albums"?g.value="panel":g.value="list",t.sortBy&&a.sortKeys.includes(t.sortBy)?l.value.sortBy=t.sortBy:l.value.sortBy=a.sortKeys[0],a.showFavoritesOnlyFilter!==!1&&t.favoriteFilter&&(l.value.favoritesOnly=t.favoriteFilter),a.showLibraryOnlyFilter!==!1&&t.libraryFilter&&(l.value.libraryOnly=t.libraryFilter),a.showAlbumArtistsOnlyFilter!==!1&&t.albumArtistsFilter!==void 0&&(l.value.albumArtistsFilter=t.albumArtistsFilter),a.allowCollapse!==!1&&t.expand!==void 0&&(N.value=t.expand),a.showAlbumTypeFilter===!0&&t.albumType&&(l.value.albumType=t.albumType),a.showProviderFilter===!0&&t.providerFilter&&(l.value.provider=t.providerFilter),a.restoreState&&t.search&&(l.value.search=t.search)},Pe=function(t){T.dialogActive||w.value||(t.key==="Escape"&&le(),!F.value&&(t.key==="a"&&(t.ctrlKey||t.metaKey)?(t.preventDefault(),Fe()):!F.value&&t.key=="Backspace"?Z():!F.value&&t.key.length==1&&(d.value=!0,Z())))};a.allowKeyHooks&&(document.addEventListener("keydown",Pe),ve(()=>{document.removeEventListener("keydown",Pe)})),a.restoreState&&ve(()=>{const t=a.path||a.itemtype,o=document.querySelector("#cont");T.prevState={path:t,scrollPos:o?.scrollTop||0,pagedItems:n.value,allItems:b.value,allItemsReceived:$.value,initialDataReceived:U.value,params:l.value}}),j(()=>l.value.search,t=>{t&&(d.value=!0),D(void 0,void 0,!0),a.restoreState&&B(a.path||a.itemtype,a.itemtype,"search",l.value.search)}),j(()=>a.path,t=>{w.value!=!0&&(n.value=[],b.value=[],D(!0))}),j(()=>a.parentItem,()=>{w.value!=!0&&(b.value=[],O.value=!0)},{deep:!0}),j(()=>a.limit,t=>{l.value.limit=t}),j(()=>a.updateAvailable,t=>{w.value||(O.value=t)},{immediate:!0}),j(Ce,()=>mt(),{immediate:!0}),Ke(async()=>{const t=a.path||a.itemtype;a.restoreState&&T.prevState?.path==t?(l.value=T.prevState.params,n.value=T.prevState.pagedItems,b.value=T.prevState.allItems,$.value=T.prevState.allItemsReceived,U.value=T.prevState.initialDataReceived,be(()=>{const i=document.getElementById("cont");i&&ta(i,T.prevState.scrollPos,50)}),w.value=!1):D(!0),xe.on("clearSelection",()=>{x.value=[],L.value=!1});const o=oe.subscribe_multi([Q.MEDIA_ITEM_UPDATED,Q.MEDIA_ITEM_DELETED,Q.MEDIA_ITEM_PLAYED],i=>{if(i.event==Q.MEDIA_ITEM_DELETED)n.value=n.value.filter(u=>u.uri!=i.object_id);else if(i.event==Q.MEDIA_ITEM_UPDATED){const u=n.value.findIndex(r=>r.uri==i.object_id);u>=0&&(n.value[u]=i.data)}else if(i.event==Q.MEDIA_ITEM_PLAYED){const u=n.value.findIndex(r=>r.uri==i.object_id);u>=0&&("fully_played"in n.value[u]&&(n.value[u].fully_played=i.data.fully_played),"resume_position_ms"in n.value[u]&&(n.value[u].resume_position_ms=i.data.seconds_played*1e3))}});ve(()=>{xe.off("clearSelection"),o()})});const M=function(t,o=!1){return t?"translation_key"in t&&t.translation_key&&t.name?f(t.translation_key,[t.name]):"translation_key"in t&&t.translation_key?f(t.translation_key):o&&"sort_name"in t&&t.sort_name?t.sort_name:t.name:""},dt=function(t,o){let i=[];if(o.search){const u=o.search.toLowerCase();for(const r of t)(r.name.toLowerCase().includes(u)||"album"in r&&r.album?.name.toLowerCase().includes(u)||"artists"in r&&r.artists&&r.artists.length&&r.artists[0].name.toLowerCase().includes(u))&&i.push(r)}else i=[...t];return o.sortBy=="name"&&i.sort((u,r)=>M(u).localeCompare(M(r),void 0,{numeric:!0})),o.sortBy=="sort_name"&&i.sort((u,r)=>M(u,!0).localeCompare(M(r,!0),void 0,{numeric:!0})),o.sortBy=="name_desc"&&i.sort((u,r)=>M(r).localeCompare(M(u),void 0,{numeric:!0})),o.sortBy=="sort_name_desc"&&i.sort((u,r)=>M(r,!0).localeCompare(M(u,!0),void 0,{numeric:!0})),o.sortBy=="album"&&i.sort((u,r)=>M(u.album).localeCompare(M(r.album),void 0,{numeric:!0})),o.sortBy=="artist"&&i.sort((u,r)=>M(u.artists[0]).localeCompare(M(r.artists[0]))),o.sortBy=="track_number"&&(i.sort((u,r)=>(u.track_number||0)-(r.track_number||0)),i.sort((u,r)=>(u.disc_number||0)-(r.disc_number||0))),o.sortBy=="position"&&i.sort((u,r)=>(u.position||0)-(r.position||0)),o.sortBy=="position_desc"&&i.sort((u,r)=>(r.position||0)-(u.position||0)),o.sortBy=="year"&&i.sort((u,r)=>(u.year||0)-(r.year||0)),o.sortBy=="year_desc"&&i.sort((u,r)=>(r.year||0)-(u.year||0)),o.sortBy=="recent"&&i.sort((u,r)=>(r.timestamp_added||0)-(u.timestamp_added||0)),o.sortBy=="duration"&&i.sort((u,r)=>(u.duration||0)-(r.duration||0)),o.sortBy=="duration_desc"&&i.sort((u,r)=>(r.duration||0)-(u.duration||0)),o.sortBy=="provider"&&i.sort((u,r)=>u.provider.localeCompare(r.provider)),o.favoritesOnly&&(i=i.filter(u=>u.favorite)),o.albumType&&o.albumType.length>0&&(i=i.filter(u=>o.albumType?.includes(u.album_type))),i.slice(o.offset,o.offset+o.limit)},Fe=async function(){let t=!0;(a.total||b.value.length)>250&&(t=await new Promise(i=>{confirm(f("select_all_confirmation"))?i(!0):i(!1)})),t&&(await rt(),x.value=n.value,L.value=!0)};return(t,o)=>e.hideOnEmpty&&n.value.length==0?v("",!0):(s(),I("section",Ka,[k(ft,{icon:e.icon,title:e.title,count:l.value.search?n.value.length:e.total||b.value.length,color:"transparent","menu-items":ct.value,onTitleClicked:_},{title:c(()=>[aa(t.$slots,"title",{},()=>[S(h(e.title),1)],!0)]),_:3},8,["icon","title","count","menu-items"]),k(ia),Se.value?(s(),m(la,{key:0,id:"searchInput",modelValue:l.value.search,"onUpdate:modelValue":o[0]||(o[0]=i=>l.value.search=i),clearable:"","prepend-inner-icon":"mdi-magnify",label:t.$t("search"),"hide-details":"",variant:"filled",style:{width:"auto","margin-top":"10px"},onFocus:o[1]||(o[1]=i=>F.value=!0),onBlur:o[2]||(o[2]=i=>F.value=!1),"onClick:clear":lt},null,8,["modelValue","label"])):v("",!0),N.value?(s(),m(vt,{key:1,variant:g.value=="list"?"default":"panel",style:{overflow:"hidden"}},{default:c(()=>[w.value?(s(),m(ze,{key:0,color:"accent",height:"4",indeterminate:"",rounded:""})):v("",!0),!H.value&&!(n.value.length==0&&$.value)?(s(),m(ma,{key:1,onLoad:Be,mode:e.infiniteScroll?"intersect":"manual","load-more-text":t.$t("load_more_items"),"empty-text":"",style:{overflow:"hidden"}},{default:c(()=>[g.value=="panel"?(s(),m(Ve,{key:0},{default:c(()=>[(s(!0),I(Le,null,De(n.value,i=>(s(),m(Me,{key:i.uri,cols:"12",class:R(`col-${y(Oe)(t.$vuetify.display.width)}`)},{default:c(()=>[k(Ya,{item:i,"is-selected":z(i),"show-checkboxes":L.value,"show-actions":["tracks","albums","albumtracks"].includes(e.itemtype),"show-track-number":e.showTrackNumber,"is-available":y(fe)(i),"is-playing":te(i,e.itemtype),"parent-item":e.parentItem,onSelect:de},null,8,["item","is-selected","show-checkboxes","show-actions","show-track-number","is-available","is-playing","parent-item"])]),_:2},1032,["class"]))),128))]),_:1})):v("",!0),g.value=="panel_compact"?(s(),m(Ve,{key:1},{default:c(()=>[(s(!0),I(Le,null,De(n.value,i=>(s(),m(Me,{key:i.uri,cols:"12",class:R(`col-${y(Oe)(t.$vuetify.display.width)}`)},{default:c(()=>[k(ca,{item:i,"is-selected":z(i),"show-checkboxes":L.value,"is-available":y(fe)(i),"is-playing":te(i,e.itemtype),"parent-item":e.parentItem,onSelect:de},null,8,["item","is-selected","show-checkboxes","is-available","is-playing","parent-item"])]),_:2},1032,["class"]))),128))]),_:1})):v("",!0),g.value=="list"?(s(),m(da,{key:2,"item-height":70,height:"100%",items:n.value,style:{height:"100%",overflow:"hidden"}},{default:c(({item:i})=>[k(Oa,{item:i,"show-track-number":e.showTrackNumber,"show-disc-number":e.showTrackNumber,"show-duration":e.showDuration,"show-favorite":e.showFavoritesOnlyFilter,"show-menu":i.is_playable,"show-provider":e.showProvider,"show-album":e.showAlbum,"show-checkboxes":L.value,"is-selected":z(i),"is-available":y(fe)(i),"is-playing":te(i,e.itemtype),"show-details":e.itemtype.includes("versions"),"parent-item":e.parentItem,onSelect:de},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"])):v("",!0)]),_:1},8,["mode","load-more-text"])):v("",!0),!w.value&&n.value.length==0?(s(),I("div",Ua,[!w.value&&n.value.length==0&&(l.value.search||l.value.favoritesOnly)?(s(),m($e,{key:0,title:t.$t("no_content_filter")},{default:c(()=>[l.value.search?(s(),m(ue,{key:0,style:{"margin-top":"15px"},onClick:ut},{default:c(()=>[S(h(t.$t("try_global_search")),1)]),_:1})):v("",!0)]),_:1},8,["title"])):!w.value&&n.value.length==0?(s(),m($e,{key:1},{default:c(()=>[S(h(t.$t("no_content")),1)]),_:1})):v("",!0)])):v("",!0),k(ha,{"model-value":x.value.length>1,timeout:-1,style:{"margin-bottom":"120px"}},{actions:c(()=>[k(ue,{color:"primary",variant:"text",onClick:o[3]||(o[3]=i=>y(ge)(x.value,i.clientX,i.clientY,e.parentItem))},{default:c(()=>[S(h(t.$t("actions")),1)]),_:1})]),default:c(()=>[E("span",null,h(t.$t("items_selected",[x.value.length])),1)]),_:1},8,["model-value"])]),_:1},8,["variant"])):v("",!0)]))}}),ti=Ie(za,[["__scopeId","data-v-599e3d6b"]]);export{ti as I};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as d}from"./ItemsListing-
|
|
1
|
+
import{I as d}from"./ItemsListing-DiFULYEk.js";import{ay as m,J as i,ax as s,a3 as p,aP as r,bb as b,a4 as c,aI as y,aA as v}from"./index-rZUS0c3q.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const j=m({name:"Albums",__name:"LibraryAlbums",setup(_){const o=i(!1),e=i(s.libraryAlbumsCount),l=["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"];p(()=>{const t=r.subscribe(b.MEDIA_ITEM_ADDED,a=>{a.object_id?.startsWith("library://artist")&&(o.value=!0)});c(t)});const n=async function(t){return o.value=!1,u(t),await r.getLibraryAlbums(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy,t.albumType,t.provider&&t.provider.length>0?t.provider:void 0)},u=async function(t){if(!t.favoritesOnly&&!t.albumType&&!t.provider){e.value=s.libraryAlbumsCount;return}if(t.provider&&t.provider.length>0){e.value=void 0;return}e.value=await r.getLibraryAlbumsCount(t.favoritesOnly||void 0,t.albumType||void 0)};return(t,a)=>(v(),y(d,{itemtype:"albums",path:"libraryalbums","show-provider":!1,"show-favorites-only-filter":!0,"load-paged-data":n,"sort-keys":l,"update-available":o.value,title:t.$t("albums"),"allow-key-hooks":!0,"show-search-button":!0,icon:"mdi-album","restore-state":!0,total:e.value,"show-album-type-filter":!0,"show-provider-filter":!0},null,8,["update-available","title","total"]))}});export{j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as d}from"./ItemsListing-
|
|
1
|
+
import{I as d}from"./ItemsListing-DiFULYEk.js";import{ay as c,J as s,ax as a,a3 as p,aP as o,bb as f,a4 as v,aI as m,aA as y}from"./index-rZUS0c3q.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const x=c({name:"Artists",__name:"LibraryArtists",setup(_){const r=s(!1),e=s(a.libraryArtistsCount),l=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","last_played","last_played_desc","play_count","play_count_desc"],n=async function(t){return r.value=!1,u(t),await o.getLibraryArtists(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy,t.albumArtistsFilter,t.provider&&t.provider.length>0?t.provider:void 0)},u=async function(t){if(!t.favoritesOnly&&!t.albumArtistsFilter&&!t.provider){e.value=a.libraryArtistsCount;return}if(t.provider&&t.provider.length>0){e.value=void 0;return}e.value=await o.getLibraryArtistsCount(t.favoritesOnly||!1,t.albumArtistsFilter||!1)};return p(()=>{const t=o.subscribe(f.MEDIA_ITEM_ADDED,i=>{i.object_id?.startsWith("library://artist")&&(r.value=!0)});v(t)}),(t,i)=>(y(),m(d,{itemtype:"artists",path:"libraryartists","show-provider":!1,"show-favorites-only-filter":!0,"load-paged-data":n,"show-album-artists-only-filter":!0,"update-available":r.value,title:t.$t("artists"),"allow-key-hooks":!0,"show-search-button":!0,"sort-keys":l,icon:"mdi-account-outline","restore-state":!0,total:e.value,"show-provider-filter":!0},null,8,["update-available","title","total"]))}});export{x as default};
|
music_assistant_frontend/assets/{LibraryAudiobooks-BL7Qa-rV.js → LibraryAudiobooks-BXD39SCR.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as u}from"./ItemsListing-
|
|
1
|
+
import{I as u}from"./ItemsListing-DiFULYEk.js";import{ay as p,J as a,ax as s,a3 as c,aP as i,bb as m,a4 as b,aI as f,aA as v}from"./index-rZUS0c3q.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const j=p({name:"Audiobooks",__name:"LibraryAudiobooks",setup(y){const e=a(!1),t=a(s.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"],n=async function(o){return e.value=!1,d(o),await i.getLibraryAudiobooks(o.favoritesOnly||void 0,o.search,o.limit,o.offset,o.sortBy,o.provider&&o.provider.length>0?o.provider:void 0)},d=async function(o){if(!o.favoritesOnly&&!o.provider){t.value=s.libraryAudiobooksCount;return}if(o.provider&&o.provider.length>0){t.value=void 0;return}t.value=await i.getLibraryAudiobooksCount(o.favoritesOnly||!1)};return c(()=>{const o=i.subscribe(m.MEDIA_ITEM_ADDED,r=>{r.object_id?.startsWith("library://audiobook")&&(e.value=!0)});b(o)}),(o,r)=>(v(),f(u,{itemtype:"audiobooks",path:"libraryaudiobooks","show-duration":!1,"show-provider":!0,"show-favorites-only-filter":!0,"load-paged-data":n,"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:t.value,"show-provider-filter":!0},null,8,["update-available","title","total"]))}});export{j as default};
|
music_assistant_frontend/assets/{LibraryPlaylists-mtIVGJsc.js → LibraryPlaylists-CVSNqj6B.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as
|
|
1
|
+
import{I as f}from"./ItemsListing-DiFULYEk.js";import{ay as v,bN as b,J as l,ax as p,a3 as h,aP as s,aR as I,bb as r,a4 as E,aI as w,aA as P}from"./index-rZUS0c3q.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const N=v({name:"Playlists",__name:"LibraryPlaylists",setup(A){const{t:c}=b(),o=l(!1),i=l(p.libraryPlaylistsCount),n=l([]),d=["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 o.value=!1,m(t),await s.getLibraryPlaylists(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy,t.provider&&t.provider.length>0?t.provider:void 0)},m=async function(t){if(!t.favoritesOnly&&!t.provider){i.value=p.libraryPlaylistsCount;return}if(t.provider&&t.provider.length>0){i.value=void 0;return}i.value=await s.getLibraryPlaylistsCount(t.favoritesOnly||!1)};h(()=>{const t=[];for(const e of Object.values(s.providers).filter(u=>u.available&&u.supported_features.includes(I.PLAYLIST_CREATE)))t.push({label:"create_playlist_on",labelArgs:[e.name],action:()=>{_(e.instance_id)},icon:"mdi-playlist-plus"});t.length&&n.value.push({label:"create_playlist_on",icon:"mdi-playlist-plus",subItems:t});const a=s.subscribe_multi([r.MEDIA_ITEM_ADDED,r.MEDIA_ITEM_UPDATED,r.MEDIA_ITEM_DELETED],e=>{e.object_id?.startsWith("library://playlist")&&(o.value=!0)});E(a)});const _=async function(t){const a=prompt(c("new_playlist_name"));a&&await s.createPlaylist(a,t).then(()=>location.reload()).catch(e=>alert(e))};return(t,a)=>(P(),w(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":d,"update-available":o.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:i.value,"show-provider-filter":!0},null,8,["update-available","title","extra-menu-items","total"]))}});export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as c}from"./ItemsListing-
|
|
1
|
+
import{I as c}from"./ItemsListing-DiFULYEk.js";import{ay as u,J as r,ax as i,a3 as p,aP as a,bb as m,a4 as f,aI as v,aA as _}from"./index-rZUS0c3q.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const x=u({name:"Podcasts",__name:"LibraryPodcasts",setup(y){const o=r(!1),e=r(i.libraryPodcastsCount),d=["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"],l=async function(t){return o.value=!1,n(t),await a.getLibraryPodcasts(t.favoritesOnly||void 0,t.search,t.limit,t.offset,t.sortBy,t.provider&&t.provider.length>0?t.provider:void 0)},n=async function(t){if(!t.favoritesOnly&&!t.provider){e.value=i.libraryPodcastsCount;return}if(t.provider&&t.provider.length>0){e.value=void 0;return}e.value=await a.getLibraryPodcastsCount(t.favoritesOnly||!1)};return p(()=>{const t=a.subscribe(m.MEDIA_ITEM_ADDED,s=>{s.object_id?.startsWith("library://podcast")&&(o.value=!0)});f(t)}),(t,s)=>(_(),v(c,{itemtype:"podcasts",path:"librarypodcasts","show-duration":!1,"show-provider":!0,"show-favorites-only-filter":!0,"load-paged-data":l,"show-library":!0,"sort-keys":d,"update-available":o.value,title:t.$t("podcasts"),"allow-key-hooks":!0,"show-search-button":!0,icon:"mdi-podcast","restore-state":!0,total:e.value,"show-provider-filter":!0},null,8,["update-available","title","total"]))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as c}from"./AddManualLink.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as c}from"./AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js";import{I as f}from"./ItemsListing-DiFULYEk.js";import{ay as v,J as r,ax as l,a3 as y,aP as s,bb as _,a4 as b,az as h,aA as g,o as n,aD as w,aQ as A,ah as D}from"./index-rZUS0c3q.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./VDialog-BndVdZhi.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const N=v({name:"Radios",__name:"LibraryRadios",setup(R){const a=r(!1),t=r(l.libraryRadiosCount),i=r(!1),d=["name","name_desc","sort_name","sort_name_desc","timestamp_added","timestamp_added_desc","last_played","last_played_desc","play_count","play_count_desc"];y(()=>{const e=s.subscribe(_.MEDIA_ITEM_ADDED,o=>{o.object_id?.startsWith("library://radio")&&(a.value=!0)});b(e)});const u=async function(e){return a.value=!1,p(e),await s.getLibraryRadios(e.favoritesOnly||void 0,e.search,e.limit,e.offset,e.sortBy,e.provider&&e.provider.length>0?e.provider:void 0)},p=async function(e){if(!e.favoritesOnly&&!e.provider){t.value=l.libraryRadiosCount;return}if(e.provider&&e.provider.length>0){t.value=void 0;return}t.value=await s.getLibraryRadiosCount(e.favoritesOnly||!1)};return(e,o)=>(g(),h(D,null,[n(f,{itemtype:"radios",path:"libraryradios","show-duration":!1,"show-provider":!1,"show-favorites-only-filter":!0,"load-paged-data":u,"sort-keys":d,"update-available":a.value,title:e.$t("radios"),"show-search-button":!0,"allow-key-hooks":!0,"extra-menu-items":[{label:"add_url_item",labelArgs:[],action:()=>{i.value=!0},icon:"mdi-playlist-plus"}],icon:"mdi-access-point","restore-state":!0,total:t.value,"show-provider-filter":!0},null,8,["update-available","title","extra-menu-items","total"]),n(c,{modelValue:i.value,"onUpdate:modelValue":o[0]||(o[0]=m=>i.value=m),type:w(A).RADIO},null,8,["modelValue","type"])],64))}});export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as p}from"./AddManualLink.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as p}from"./AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js";import{I as f}from"./ItemsListing-DiFULYEk.js";import{ay as v,J as i,ax as l,a3 as y,aP as s,bb as _,a4 as b,az as k,aA as h,o as n,aD as w,aQ as T,ah as g}from"./index-rZUS0c3q.js";import"./Toolbar-xH_GEfSi.js";import"./VToolbar-hGVdN8lh.js";import"./VDialog-BndVdZhi.js";import"./Container-BunIU4BI.js";import"./index-kQIztB-E.js";import"./Button-Cm9Kv1fL.js";import"./ListItem-DNqmHglz.js";import"./userPreferences-a0gVUlkp.js";import"./VCheckboxBtn-BMAdXnae.js";import"./VSelectionControl-S-aELuKm.js";import"./MediaItemThumb-Djieuu-m.js";import"./PanelviewItemCompact-zZvQaI6t.js";import"./VInfiniteScroll-B5bUrC-Z.js";import"./VVirtualScroll-C1eeqQrQ.js";import"./VAlert-CBrxai34.js";const P=v({name:"Tracks",__name:"LibraryTracks",setup(A){const o=i(!1),t=i(l.libraryTracksCount),r=i(!1),u=["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"];y(()=>{const e=s.subscribe(_.MEDIA_ITEM_ADDED,a=>{a.object_id?.startsWith("library://track")&&(o.value=!0)});b(e)});const d=async function(e){return e.favoritesOnly=e.favoritesOnly||void 0,o.value=!1,c(e),await s.getLibraryTracks(e.favoritesOnly,e.search,e.limit,e.offset,e.sortBy,e.provider&&e.provider.length>0?e.provider:void 0)},c=async function(e){if(!e.favoritesOnly&&!e.provider){t.value=l.libraryTracksCount;return}if(e.provider&&e.provider.length>0){t.value=void 0;return}t.value=await s.getLibraryTracksCount(e.favoritesOnly||!1)};return(e,a)=>(h(),k(g,null,[n(f,{itemtype:"tracks",path:"librarytracks","show-provider":!1,"show-favorites-only-filter":!0,"show-track-number":!1,"load-paged-data":d,"sort-keys":u,"show-album":!0,"update-available":o.value,title:e.$t("tracks"),"show-search-button":!0,"allow-key-hooks":!0,"extra-menu-items":[{label:"add_url_item",labelArgs:[],action:()=>{r.value=!0},icon:"mdi-playlist-plus"}],icon:"mdi-music-note","restore-state":!0,total:t.value,"show-provider-filter":!0},null,8,["update-available","title","extra-menu-items","total"]),n(p,{modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=m=>r.value=m),type:w(T).RADIO},null,8,["modelValue","type"])],64))}});export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as r,
|
|
1
|
+
import{i as r,ay as B,a_ as b,N as p,aA as c,aI as u,aJ as $,ae as w,bd as d,aD as f,aK as h,aH as I,aG as v,a$ as y,aB as k,bO as C,_ as M}from"./index-rZUS0c3q.js";import{m as g,M as L}from"./Button-Cm9Kv1fL.js";import{M as P}from"./index-kQIztB-E.js";const S=t=>{const l=r(()=>{const{variant:o,showMenuBtn:e,...s}=t,i={...s,"aria-label":t["aria-label"]};return P(o).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"}))}),n=r(()=>g("list-item-main",t.variant&&`list-item--${t.variant}`));return{listItemProps:l,listItemClasses:n}},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:n,listItemClasses:o}=S(l);return(e,s)=>{const i=C("hold");return p((c(),u($,w(f(n),{class:f(o),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,m)=>({name:m,fn:v(()=>[y(e.$slots,m,{},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)]])}}}),H=M(N,[["__scopeId","data-v-e242bb46"]]);export{H as L};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ay as B,J as R,i as S,az as u,aA as n,o as s,aI as r,aB as h,aU as X,aG as t,ah as _,aH as y,aD as d,bu as Y,bO as z,bP as V,bQ as A,r as E,bL as H,N as J,aS as O,ae as U,bd as j,am as F,bR as v,b8 as G,aJ as Q,aM as q,bh as p,aN as I,bS as K,aL as W,aO as Z,aP as k,_ as ee}from"./index-rZUS0c3q.js";import{C as te}from"./Container-BunIU4BI.js";import{T as ae}from"./Toolbar-xH_GEfSi.js";import{V as oe}from"./PanelviewItemCompact-zZvQaI6t.js";const se={style:{"margin-bottom":"10px"}},ne=B({__name:"MediaItemImages",props:{modelValue:{}},emits:["update:modelValue"],setup(f,{emit:C}){const w=f,c=R(!1),x=C,P=function(e){window.open(e,"_blank")},g=function(e,a){const i="clientX"in e?e.clientX:e.touches[0].clientX,m="clientY"in e?e.clientY:e.touches[0].clientY;Z.emit("contextmenu",{items:[{label:"image_make_primary",icon:"mdi-star-box",action:()=>{N(a)}}],posX:i,posY:m})},L=function(e){return k.getProvider(e)?k.getProvider(e).name:e},M=function(e,a){P(v(a))},b=function(){c.value=!c.value},N=function(e){const a=[e];a.push(...w.modelValue.filter(i=>i!=e)),x("update:modelValue",a)},T=S(()=>[{label:"tooltip.collapse_expand",icon:c.value?"mdi-chevron-up":"mdi-chevron-down",action:b,overflowAllowed:!1}]);return(e,a)=>{const i=z("hold");return n(),u("section",se,[s(ae,{title:e.$t("images"),"menu-items":T.value,onTitleClicked:b},null,8,["title","menu-items"]),s(X),c.value?(n(),r(te,{key:0},{default:t(()=>[(n(!0),u(_,null,y(d(Y),m=>(n(),r(V,{key:m},{default:t(()=>[(n(!0),u(_,null,y(f.modelValue.filter(o=>o.type==m),(o,$)=>(n(),r(A,{key:o.path,cols:"12",class:E(`col-${d(H)(e.$vuetify.display.width)}`)},{default:t(()=>[s(oe,null,{default:t(({props:D})=>[J((n(),r(O,U({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(F,{src:d(v)(o,256),class:"bg-grey-lighten-2",width:"100%"},{placeholder:t(()=>[s(V,{align:"center",class:"fill-height ma-0",justify:"center"},{default:t(()=>[s(G,{color:"grey-lighten-5",indeterminate:""})]),_:1})]),_:1},8,["src"]),s(Q,{variant:"text",slim:"",tile:"",density:"compact",class:"panel-item-details"},{default:t(()=>[s(q,{width:"95%"},{default:t(()=>[p(I(e.$t("image_type")+": "+o.type),1)]),_:2},1024),s(K,{class:"line-clamp-1",style:{"margin-right":"25px"}},{default:t(()=>[p(I(e.$t("image_source")+": "+L(o.provider)),1)]),_:2},1024),$==0?(n(),r(W,{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"])):h("",!0)]),_:2},1024)]),_:2},1040,["onClick","onContextmenu"])),[[i,l=>{g(l,o)}]])]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:2},1024))),128))]),_:1})):h("",!0)])}}}),me=ee(ne,[["__scopeId","data-v-d74e8be5"]]);export{me as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as a,cx as s}from"./index-rZUS0c3q.js";const c=a(s,[["__scopeId","data-v-565bc716"]]);export{c as M};
|