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.

Files changed (127) hide show
  1. music_assistant_frontend/assets/About-BlM2bNNU.css +1 -0
  2. music_assistant_frontend/assets/About-DD-Ra6q9.js +1 -0
  3. music_assistant_frontend/assets/AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js +1 -0
  4. music_assistant_frontend/assets/AddPlayerGroup-cntNx9PL.js +1 -0
  5. music_assistant_frontend/assets/AddProviderDetails-DoKLUG5n.js +1 -0
  6. music_assistant_frontend/assets/AlbumDetails-iZRC2HAx.js +1 -0
  7. music_assistant_frontend/assets/{ArtistDetails-CR47rAMr.js → ArtistDetails-pWsx0uxv.js} +1 -1
  8. music_assistant_frontend/assets/AudiobookDetails-Dk3PEU9D.js +1 -0
  9. music_assistant_frontend/assets/BrowseView-g_5UPiVj.js +1 -0
  10. music_assistant_frontend/assets/{Button-faGxxowY.js → Button-Cm9Kv1fL.js} +1 -1
  11. music_assistant_frontend/assets/{Container-D5KFPVjs.js → Container-BunIU4BI.js} +1 -1
  12. music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-WD6jKrT1.js +1 -0
  13. music_assistant_frontend/assets/Default-BoZpM67W.css +1 -0
  14. music_assistant_frontend/assets/Default-D3QbBdka.js +21 -0
  15. music_assistant_frontend/assets/EditConfig-Bo92pQzx.js +2 -0
  16. music_assistant_frontend/assets/EditConfig-CcxrPgWJ.css +1 -0
  17. music_assistant_frontend/assets/EditCoreConfig-Dn-oiBmv.js +1 -0
  18. music_assistant_frontend/assets/{EditPlayer-Cgs9ko95.js → EditPlayer-C4U8nmpt.js} +1 -1
  19. music_assistant_frontend/assets/{EditPlayerDsp-D98k0PKW.js → EditPlayerDsp-DIRF5Ifm.js} +3 -3
  20. music_assistant_frontend/assets/{EditProvider-CgzI4UVG.js → EditProvider-DH6yzgKO.js} +1 -1
  21. music_assistant_frontend/assets/FrontendConfig-DGr-C8uc.js +1 -0
  22. music_assistant_frontend/assets/HomeView-CF-2XJYc.js +1 -0
  23. music_assistant_frontend/assets/{ItemsListing-DL5ZjBes.css → ItemsListing-DBRgGdb9.css} +1 -1
  24. music_assistant_frontend/assets/ItemsListing-DiFULYEk.js +1 -0
  25. music_assistant_frontend/assets/{LibraryAlbums-BGHrSh_z.js → LibraryAlbums-DsXvfpDF.js} +1 -1
  26. music_assistant_frontend/assets/{LibraryArtists-rX5Sb_ET.js → LibraryArtists-CvhNCIa6.js} +1 -1
  27. music_assistant_frontend/assets/{LibraryAudiobooks-BL7Qa-rV.js → LibraryAudiobooks-BXD39SCR.js} +1 -1
  28. music_assistant_frontend/assets/{LibraryPlaylists-mtIVGJsc.js → LibraryPlaylists-CVSNqj6B.js} +1 -1
  29. music_assistant_frontend/assets/{LibraryPodcasts-DFW7qn7z.js → LibraryPodcasts-D-KYAv5K.js} +1 -1
  30. music_assistant_frontend/assets/{LibraryRadios-3VXOISsH.js → LibraryRadios-DXJv2vPJ.js} +1 -1
  31. music_assistant_frontend/assets/{LibraryTracks-D1kcnNYD.js → LibraryTracks-BW-Ne0K5.js} +1 -1
  32. music_assistant_frontend/assets/{ListItem-DXTT8_G5.js → ListItem-DNqmHglz.js} +1 -1
  33. music_assistant_frontend/assets/MediaItemImages-B-oQ8T4k.js +1 -0
  34. music_assistant_frontend/assets/MediaItemThumb-Djieuu-m.js +1 -0
  35. music_assistant_frontend/assets/{PanelviewItemCompact-BKBJxxoM.js → PanelviewItemCompact-zZvQaI6t.js} +1 -1
  36. music_assistant_frontend/assets/{PlayerCard-BtmAlIKh.css → PlayerCard-B-1h1GH8.css} +1 -1
  37. music_assistant_frontend/assets/PlayerCard-CbOeDESo.js +1 -0
  38. music_assistant_frontend/assets/Players-CMiHL1Xr.js +1 -0
  39. music_assistant_frontend/assets/Players-DiFMAcvk.css +1 -0
  40. music_assistant_frontend/assets/PlaylistDetails-BYOLLggx.js +1 -0
  41. music_assistant_frontend/assets/PodcastDetails-BMWkoQkv.js +1 -0
  42. music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-DzvsLzds.js +8 -0
  43. music_assistant_frontend/assets/Providers-BVL70bSb.js +1 -0
  44. music_assistant_frontend/assets/Providers-Df6R6NDc.css +1 -0
  45. music_assistant_frontend/assets/RadioDetails-Dk19WXMn.js +1 -0
  46. music_assistant_frontend/assets/RemoteAccessSettings-Bf5s7Cwr.css +1 -0
  47. music_assistant_frontend/assets/RemoteAccessSettings-Cc9VhqAV.js +1 -0
  48. music_assistant_frontend/assets/Search-gIzJ4Lef.js +1 -0
  49. music_assistant_frontend/assets/{ServerLogs-BzVXmR6_.js → ServerLogs-DEmjg0ji.js} +2 -2
  50. music_assistant_frontend/assets/Settings-BPCFcSEv.js +1 -0
  51. music_assistant_frontend/assets/{Settings-CDWcSKlt.css → Settings-CbTYv9HY.css} +1 -1
  52. music_assistant_frontend/assets/SystemConfig-DzuRfqZX.js +1 -0
  53. music_assistant_frontend/assets/{Toolbar-CVFN8H4Z.css → Toolbar-DOjWle_n.css} +1 -1
  54. music_assistant_frontend/assets/Toolbar-xH_GEfSi.js +1 -0
  55. music_assistant_frontend/assets/{TrackDetails-CkCm62Ec.js → TrackDetails-Bpl4yjoA.js} +1 -1
  56. music_assistant_frontend/assets/{UserManagement-c_dhgxwj.js → UserManagement-BmZul5Bv.js} +1 -1
  57. music_assistant_frontend/assets/{UserProfile-CpcF98Ve.js → UserProfile-C9aw6Mo0.js} +1 -1
  58. music_assistant_frontend/assets/{VAlert-CFvRz3gu.js → VAlert-CBrxai34.js} +1 -1
  59. music_assistant_frontend/assets/{VCheckboxBtn-B5wUW3kZ.js → VCheckboxBtn-BMAdXnae.js} +1 -1
  60. music_assistant_frontend/assets/VDialog-BndVdZhi.js +1 -0
  61. music_assistant_frontend/assets/VExpansionPanels-lmUrDJt6.js +1 -0
  62. music_assistant_frontend/assets/{VForm-DDKxMAmn.js → VForm-Dpln05ME.js} +1 -1
  63. music_assistant_frontend/assets/VInfiniteScroll-B-XMauN8.css +1 -0
  64. music_assistant_frontend/assets/{VInfiniteScroll-DataCA15.js → VInfiniteScroll-B5bUrC-Z.js} +1 -1
  65. music_assistant_frontend/assets/VSelect-uSApsKq0.js +1 -0
  66. music_assistant_frontend/assets/VSelectionControl-S-aELuKm.js +1 -0
  67. music_assistant_frontend/assets/{VSlider-Dcfg9Wg5.js → VSlider-DzdWVMUa.js} +1 -1
  68. music_assistant_frontend/assets/{VSwitch-DQEiK9D_.js → VSwitch-B-1g31ug.js} +1 -1
  69. music_assistant_frontend/assets/VToolbar-D1tRNhN6.css +1 -0
  70. music_assistant_frontend/assets/VToolbar-hGVdN8lh.js +1 -0
  71. music_assistant_frontend/assets/{VVirtualScroll-Cg5AQGzG.js → VVirtualScroll-C1eeqQrQ.js} +1 -1
  72. music_assistant_frontend/assets/WidgetRow-DKnAiOkf.js +1 -0
  73. music_assistant_frontend/assets/index-W5yBuLNV.css +1 -0
  74. music_assistant_frontend/assets/{index-Dj6UKNsX.js → index-rZUS0c3q.js} +81 -75
  75. music_assistant_frontend/assets/{marquee_text_sync-R3hHMfp7.js → marquee_text_sync-AT1GwuhW.js} +1 -1
  76. music_assistant_frontend/assets/userPreferences-a0gVUlkp.js +1 -0
  77. music_assistant_frontend/assets/workbox-window.prod.es5-BIl4cyR9.js +2 -0
  78. music_assistant_frontend/index.html +2 -2
  79. music_assistant_frontend/sw.js +2 -2
  80. {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/METADATA +1 -1
  81. music_assistant_frontend-2.17.28.dist-info/RECORD +148 -0
  82. music_assistant_frontend/assets/About-Ba3VLBU-.css +0 -1
  83. music_assistant_frontend/assets/About-eW-4urJV.js +0 -1
  84. music_assistant_frontend/assets/AddManualLink.vue_vue_type_script_setup_true_lang-DQP6MVZU.js +0 -1
  85. music_assistant_frontend/assets/AddPlayerGroup-DrpKvGgv.js +0 -1
  86. music_assistant_frontend/assets/AddProviderDetails-CWS1vCiZ.js +0 -1
  87. music_assistant_frontend/assets/AlbumDetails-wRWGtQUA.js +0 -1
  88. music_assistant_frontend/assets/AudiobookDetails-CE9gIq3Q.js +0 -1
  89. music_assistant_frontend/assets/BrowseView-Cx_P4-_Y.js +0 -1
  90. music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-Cad6HStr.js +0 -1
  91. music_assistant_frontend/assets/Default-GVlZdAUf.css +0 -1
  92. music_assistant_frontend/assets/Default-KyHEk5ZR.js +0 -21
  93. music_assistant_frontend/assets/EditConfig-B0XoDh_u.js +0 -1
  94. music_assistant_frontend/assets/EditConfig-TBO3lEGx.css +0 -1
  95. music_assistant_frontend/assets/EditCoreConfig-DFyuSEd9.js +0 -1
  96. music_assistant_frontend/assets/FrontendConfig-B-B9Z2Vn.js +0 -1
  97. music_assistant_frontend/assets/HomeView-DFXlCmKt.js +0 -1
  98. music_assistant_frontend/assets/ItemsListing-BP5XXmLQ.js +0 -1
  99. music_assistant_frontend/assets/MediaItemImages-RwaXDWAp.js +0 -1
  100. music_assistant_frontend/assets/MediaItemThumb-DYAHQAuC.js +0 -1
  101. music_assistant_frontend/assets/PlayerCard-DdgZ3XZ5.js +0 -1
  102. music_assistant_frontend/assets/Players-BelAvYKh.js +0 -1
  103. music_assistant_frontend/assets/PlaylistDetails-Bf5e08Ep.js +0 -1
  104. music_assistant_frontend/assets/PodcastDetails-B8Mjw_8n.js +0 -1
  105. music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js +0 -8
  106. music_assistant_frontend/assets/Providers-BYVx_A_K.js +0 -1
  107. music_assistant_frontend/assets/Providers-Dpp2O4F9.css +0 -1
  108. music_assistant_frontend/assets/RadioDetails-pOddxrkl.js +0 -1
  109. music_assistant_frontend/assets/Search-B6SlCk_7.js +0 -1
  110. music_assistant_frontend/assets/Settings-Cqw-X9OU.js +0 -1
  111. music_assistant_frontend/assets/SystemConfig-BOdTwx9R.js +0 -1
  112. music_assistant_frontend/assets/Toolbar-B32L_M7G.js +0 -1
  113. music_assistant_frontend/assets/VDialog-5KHkpnhE.js +0 -1
  114. music_assistant_frontend/assets/VExpansionPanels-DboS79vY.js +0 -1
  115. music_assistant_frontend/assets/VInfiniteScroll-Bbntx9NP.css +0 -1
  116. music_assistant_frontend/assets/VSelect-VNw4nPSb.js +0 -1
  117. music_assistant_frontend/assets/VSelectionControl-CCjz0Lnv.js +0 -1
  118. music_assistant_frontend/assets/VToolbar-COKHN9Hu.css +0 -1
  119. music_assistant_frontend/assets/VToolbar-w3YLtQh8.js +0 -1
  120. music_assistant_frontend/assets/WidgetRow-CZHmyp7T.js +0 -1
  121. music_assistant_frontend/assets/index-iTwi4kPx.css +0 -1
  122. music_assistant_frontend/assets/userPreferences-CpcwN_LW.js +0 -1
  123. music_assistant_frontend/assets/workbox-window.prod.es5-CwtvwXb3.js +0 -2
  124. music_assistant_frontend-2.17.20.dist-info/RECORD +0 -145
  125. {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/WHEEL +0 -0
  126. {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/licenses/LICENSE +0 -0
  127. {music_assistant_frontend-2.17.20.dist-info → music_assistant_frontend-2.17.28.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{aw as P,J as a,L as g,i as S,a3 as W,a4 as L,ax as I,ay as k,E as B,q as C,aZ as N,R as q,_ as z}from"./index-Dj6UKNsX.js";const $=30,F=2e3,U=4e3,M=1e3,V=P({__name:"MarqueeText",props:{sync:{},disabled:{type:Boolean}},setup(f){const e=a(null),n=a(null),m=a(0),y=a(0),c=a(0),u=a(!1),v=a(!1),h=a(!1),i=f;let s=i.sync?._registerAnimation();g(()=>i.sync,t=>{s!==void 0&&s.unregister(),s=t?._registerAnimation(),b()});const d=S(()=>Math.max(y.value-m.value,0)),o=S(()=>d.value/$*1e3),O=S(()=>({transform:`translateX(${-c.value}px)`,transition:u.value?`transform ${o.value}ms linear`:`transform ${M}ms ease-in-out`}));let r=null;const _=(t,l)=>Promise.race([new Promise(p=>setTimeout(p,t)),new Promise((p,A)=>l.addEventListener("abort",A,{once:!0}))]),b=async()=>{if(r&&!r.signal.aborted&&r.abort(),u.value=!1,c.value=0,i.disabled===!0||d.value<=0||o.value<=0||!v.value){s?.unregister();return}s?.setScrollingDuration(o.value),r=new AbortController;const t=r;try{for(await _(200,t.signal);!t.signal.aborted;){s!==void 0&&await Promise.race([s.sync(),new Promise((A,T)=>t.signal.addEventListener("abort",T,{once:!0}))]),u.value=!1,c.value=0;const p=(s?.maxDuration()??o.value)-o.value;await _((h.value?0:M+F)+p,t.signal),h.value=!1,u.value=!0,c.value=d.value,await _(o.value+U,t.signal)}}catch{u.value=!1,c.value=0}},D=new ResizeObserver(()=>{e.value&&(m.value=e.value.clientWidth)}),R=new MutationObserver(()=>{n.value&&(y.value=n.value.scrollWidth)}),w=new IntersectionObserver(t=>{const[l]=t;v.value=l.isIntersecting},{threshold:0}),x=()=>{q(()=>{!e.value||!n.value||(y.value=n.value.scrollWidth,m.value=e.value.clientWidth)}),!(!e.value||!n.value)&&(R.observe(n.value,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["style","class"]}),D.observe(e.value),w.observe(e.value))},E=()=>{r&&(r.abort(),r=null),s?.unregister(),R.disconnect(),D.disconnect(),w.disconnect(),v.value=!1};return W(()=>{i.disabled!==!0&&x()}),L(()=>{E()}),g([d,v,()=>i.disabled],()=>{b()},{flush:"post"}),g(()=>i.disabled,()=>{i.disabled===!0?E():(h.value=!0,x())}),(t,l)=>(k(),I("div",{ref_key:"containerRef",ref:e,class:"container"},[B("div",{ref_key:"scrollingRef",ref:n,class:"scrolling",style:C(O.value)},[N(t.$slots,"default",{},void 0,!0)],4)],512))}}),J=z(V,[["__scopeId","data-v-6e5989d8"]]);class Y{parentSync;id;promiseResolver=null;constructor(e){this.parentSync=e,this.id=Symbol()}setScrollingDuration(e){e>0?this.parentSync._componentDurations.set(this.id,e):this.unregister()}maxDuration(){return this.parentSync._componentDurations.size===0?0:Math.max(...this.parentSync._componentDurations.values())}sync(){return new Promise(e=>{this.promiseResolver=e,this.parentSync._pendingSync.push(e),this.parentSync._tryResolveWaiting()})}unregister(){if(this.promiseResolver){const e=this.parentSync._pendingSync.indexOf(this.promiseResolver);e>-1&&this.parentSync._pendingSync.splice(e,1),this.promiseResolver(),this.promiseResolver=null}this.parentSync._componentDurations.delete(this.id),this.parentSync._tryResolveWaiting()}}class X{_componentDurations;_pendingSync;constructor(){this._componentDurations=new Map,this._pendingSync=[]}_registerAnimation(){return new Y(this)}_tryResolveWaiting(){if(this._pendingSync?.length===this._componentDurations.size){const e=this._pendingSync;this._pendingSync=[];for(const n of e)n()}}}export{J as M,X as a};
1
+ import{ay as P,J as a,L as g,i as S,a3 as W,a4 as L,az as I,aA as k,E as z,q as B,a$ as C,R as N,_ as $}from"./index-rZUS0c3q.js";const q=30,F=2e3,U=4e3,M=1e3,V=P({__name:"MarqueeText",props:{sync:{},disabled:{type:Boolean}},setup(f){const e=a(null),n=a(null),m=a(0),y=a(0),c=a(0),u=a(!1),v=a(!1),h=a(!1),i=f;let s=i.sync?._registerAnimation();g(()=>i.sync,t=>{s!==void 0&&s.unregister(),s=t?._registerAnimation(),b()});const d=S(()=>Math.max(y.value-m.value,0)),o=S(()=>d.value/q*1e3),O=S(()=>({transform:`translateX(${-c.value}px)`,transition:u.value?`transform ${o.value}ms linear`:`transform ${M}ms ease-in-out`}));let r=null;const _=(t,l)=>Promise.race([new Promise(p=>setTimeout(p,t)),new Promise((p,E)=>l.addEventListener("abort",E,{once:!0}))]),b=async()=>{if(r&&!r.signal.aborted&&r.abort(),u.value=!1,c.value=0,i.disabled===!0||d.value<=0||o.value<=0||!v.value){s?.unregister();return}s?.setScrollingDuration(o.value),r=new AbortController;const t=r;try{for(await _(200,t.signal);!t.signal.aborted;){s!==void 0&&await Promise.race([s.sync(),new Promise((E,T)=>t.signal.addEventListener("abort",T,{once:!0}))]),u.value=!1,c.value=0;const p=(s?.maxDuration()??o.value)-o.value;await _((h.value?0:M+F)+p,t.signal),h.value=!1,u.value=!0,c.value=d.value,await _(o.value+U,t.signal)}}catch{u.value=!1,c.value=0}},D=new ResizeObserver(()=>{e.value&&(m.value=e.value.clientWidth)}),R=new MutationObserver(()=>{n.value&&(y.value=n.value.scrollWidth)}),w=new IntersectionObserver(t=>{const[l]=t;v.value=l.isIntersecting},{threshold:0}),x=()=>{N(()=>{!e.value||!n.value||(y.value=n.value.scrollWidth,m.value=e.value.clientWidth)}),!(!e.value||!n.value)&&(R.observe(n.value,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["style","class"]}),D.observe(e.value),w.observe(e.value))},A=()=>{r&&(r.abort(),r=null),s?.unregister(),R.disconnect(),D.disconnect(),w.disconnect(),v.value=!1};return W(()=>{i.disabled!==!0&&x()}),L(()=>{A()}),g([d,v,()=>i.disabled],()=>{b()},{flush:"post"}),g(()=>i.disabled,()=>{i.disabled===!0?A():(h.value=!0,x())}),(t,l)=>(k(),I("div",{ref_key:"containerRef",ref:e,class:"container"},[z("div",{ref_key:"scrollingRef",ref:n,class:"scrolling",style:B(O.value)},[C(t.$slots,"default",{},void 0,!0)],4)],512))}}),J=$(V,[["__scopeId","data-v-6e5989d8"]]);class Y{parentSync;id;promiseResolver=null;constructor(e){this.parentSync=e,this.id=Symbol()}setScrollingDuration(e){e>0?this.parentSync._componentDurations.set(this.id,e):this.unregister()}maxDuration(){return this.parentSync._componentDurations.size===0?0:Math.max(...this.parentSync._componentDurations.values())}sync(){return new Promise(e=>{this.promiseResolver=e,this.parentSync._pendingSync.push(e),this.parentSync._tryResolveWaiting()})}unregister(){if(this.promiseResolver){const e=this.parentSync._pendingSync.indexOf(this.promiseResolver);e>-1&&this.parentSync._pendingSync.splice(e,1),this.promiseResolver(),this.promiseResolver=null}this.parentSync._componentDurations.delete(this.id),this.parentSync._tryResolveWaiting()}}class X{_componentDurations;_pendingSync;constructor(){this._componentDurations=new Map,this._pendingSync=[]}_registerAnimation(){return new Y(this)}_tryResolveWaiting(){if(this._pendingSync?.length===this._componentDurations.size){const e=this._pendingSync;this._pendingSync=[];for(const n of e)n()}}}export{J as M,X as a};
@@ -0,0 +1 @@
1
+ import{V as P,m as F}from"./VCheckboxBtn-BMAdXnae.js";import{g as A,p as K,j as L,cs as R,J,ct as z,n as E,cu as O,cv as V,o as k,ae as U,ap as j,ai as q,cw as D,ay as M,az as y,aA as g,ah as G,aB as h,q as w,E as d,i as v,ax as s,aP as H}from"./index-rZUS0c3q.js";const Q=K({...D(),...q(F(),["inline"])},"VCheckbox"),X=A()({name:"VCheckbox",inheritAttrs:!1,props:Q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,l){let{attrs:o,slots:u}=l;const c=L(e,"modelValue"),{isFocused:t,focus:r,blur:n}=R(e),a=J(),i=z();return E(()=>{const[f,b]=O(o),p=V.filterProps(e),x=P.filterProps(e);return k(V,U({ref:a,class:["v-checkbox",e.class]},f,p,{modelValue:c.value,"onUpdate:modelValue":m=>c.value=m,id:e.id||`checkbox-${i}`,focused:t.value,style:e.style}),{...u,default:m=>{let{id:B,messagesId:C,isDisabled:I,isReadonly:N,isValid:S}=m;return k(P,U(x,{id:B.value,"aria-describedby":C.value,disabled:I.value,readonly:N.value},b,{error:S.value===!1,modelValue:c.value,"onUpdate:modelValue":$=>c.value=$,onFocus:r,onBlur:n}),u)}})}),j({},a)}}),Y=M({__name:"NowPlayingBadge",props:{showBadge:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},badgeStyle:{default:""},iconStyle:{default:""}},setup(e){return(l,o)=>(g(),y(G,null,[e.showBadge?(g(),y("span",{key:0,style:w(e.badgeStyle),class:"now-playing-badge","aria-label":"Now playing"}," Now playing ",4)):h("",!0),e.showIcon?(g(),y("div",{key:1,style:w(e.iconStyle),class:"now-playing-icon"},[...o[0]||(o[0]=[d("div",{class:"bar"},null,-1),d("div",{class:"bar"},null,-1),d("div",{class:"bar"},null,-1),d("div",{class:"bar"},null,-1)])],4)):h("",!0)],64))}});function Z(){const e=v(()=>s.currentUser);function l(t,r){return v(()=>{if(!s.currentUser?.preferences)return r;const n=s.currentUser.preferences[t];return n!==void 0?n:r})}async function o(t,r){if(!s.currentUser){console.warn("Cannot set preference: no user logged in");return}s.currentUser.preferences||(s.currentUser.preferences={});const n=JSON.parse(JSON.stringify(r)),a={...s.currentUser.preferences,[t]:n};s.currentUser.preferences=a;try{await H.updateUser(s.currentUser.user_id,{preferences:a})}catch(i){console.error("Failed to update user preferences:",i)}}function u(t,r){const n=`${t}.${r}`;return v(()=>s.currentUser?.preferences?s.currentUser.preferences[`itemsListing.${n}`]||{}:{})}async function c(t,r,n,a){const f=`itemsListing.${`${t}.${r}`}`,p={...u(t,r).value,[n]:a};await o(f,p)}return{currentUser:e,getPreference:l,setPreference:o,getItemsListingPreferences:u,setItemsListingPreference:c}}export{X as V,Y as _,Z as u};
@@ -0,0 +1,2 @@
1
+ try{self["workbox:window:7.3.0"]&&_()}catch{}function b(n,r){return new Promise((function(t){var o=new MessageChannel;o.port1.onmessage=function(f){t(f.data)},n.postMessage(r,[o.port2])}))}function P(n,r){(r==null||r>n.length)&&(r=n.length);for(var t=0,o=Array(r);t<r;t++)o[t]=n[t];return o}function j(n,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(n,W(o.key),o)}}function S(n,r){var t=typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(t)return(t=t.call(n)).next.bind(t);if(Array.isArray(n)||(t=(function(f,c){if(f){if(typeof f=="string")return P(f,c);var a={}.toString.call(f).slice(8,-1);return a==="Object"&&f.constructor&&(a=f.constructor.name),a==="Map"||a==="Set"?Array.from(f):a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?P(f,c):void 0}})(n))||r){t&&(n=t);var o=0;return function(){return o>=n.length?{done:!0}:{done:!1,value:n[o++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w(n,r){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,o){return t.__proto__=o,t},w(n,r)}function W(n){var r=(function(t,o){if(typeof t!="object"||!t)return t;var f=t[Symbol.toPrimitive];if(f!==void 0){var c=f.call(t,o);if(typeof c!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)})(n,"string");return typeof r=="symbol"?r:r+""}try{self["workbox:core:7.3.0"]&&_()}catch{}var m=function(){var n=this;this.promise=new Promise((function(r,t){n.resolve=r,n.reject=t}))};function y(n,r){var t=location.href;return new URL(n,t).href===new URL(r,t).href}var d=function(n,r){this.type=n,Object.assign(this,r)};function l(n,r,t){return t?r?r(n):n:(n&&n.then||(n=Promise.resolve(n)),r?n.then(r):n)}function k(){}var L={type:"SKIP_WAITING"};function E(n,r){return n&&n.then?n.then(k):Promise.resolve()}var O=(function(n){function r(c,a){var e,i;return a===void 0&&(a={}),(e=n.call(this)||this).nn={},e.tn=0,e.rn=new m,e.en=new m,e.on=new m,e.un=0,e.an=new Set,e.cn=function(){var u=e.fn,s=u.installing;e.tn>0||!y(s.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=s,u.removeEventListener("updatefound",e.cn)):(e.hn=s,e.an.add(s),e.rn.resolve(s)),++e.tn,s.addEventListener("statechange",e.ln)},e.ln=function(u){var s=e.fn,v=u.target,h=v.state,p=v===e.vn,g={sw:v,isExternal:p,originalEvent:u};!p&&e.mn&&(g.isUpdate=!0),e.dispatchEvent(new d(h,g)),h==="installed"?e.wn=self.setTimeout((function(){h==="installed"&&s.waiting===v&&e.dispatchEvent(new d("waiting",g))}),200):h==="activating"&&(clearTimeout(e.wn),p||e.en.resolve(v))},e.yn=function(u){var s=e.hn,v=s!==navigator.serviceWorker.controller;e.dispatchEvent(new d("controlling",{isExternal:v,originalEvent:u,sw:s,isUpdate:e.mn})),v||e.on.resolve(s)},e.gn=(i=function(u){var s=u.data,v=u.ports,h=u.source;return l(e.getSW(),(function(){e.an.has(h)&&e.dispatchEvent(new d("message",{data:s,originalEvent:u,ports:v,sw:h}))}))},function(){for(var u=[],s=0;s<arguments.length;s++)u[s]=arguments[s];try{return Promise.resolve(i.apply(this,u))}catch(v){return Promise.reject(v)}}),e.sn=c,e.nn=a,navigator.serviceWorker.addEventListener("message",e.gn),e}var t,o;o=n,(t=r).prototype=Object.create(o.prototype),t.prototype.constructor=t,w(t,o);var f=r.prototype;return f.register=function(c){var a=(c===void 0?{}:c).immediate,e=a!==void 0&&a;try{var i=this;return l((function(u,s){var v=u();return v&&v.then?v.then(s):s(v)})((function(){if(!e&&document.readyState!=="complete")return E(new Promise((function(u){return window.addEventListener("load",u)})))}),(function(){return i.mn=!!navigator.serviceWorker.controller,i.dn=i.pn(),l(i.bn(),(function(u){i.fn=u,i.dn&&(i.hn=i.dn,i.en.resolve(i.dn),i.on.resolve(i.dn),i.dn.addEventListener("statechange",i.ln,{once:!0}));var s=i.fn.waiting;return s&&y(s.scriptURL,i.sn.toString())&&(i.hn=s,Promise.resolve().then((function(){i.dispatchEvent(new d("waiting",{sw:s,wasWaitingBeforeRegister:!0}))})).then((function(){}))),i.hn&&(i.rn.resolve(i.hn),i.an.add(i.hn)),i.fn.addEventListener("updatefound",i.cn),navigator.serviceWorker.addEventListener("controllerchange",i.yn),i.fn}))})))}catch(u){return Promise.reject(u)}},f.update=function(){try{return this.fn?l(E(this.fn.update())):l()}catch(c){return Promise.reject(c)}},f.getSW=function(){return this.hn!==void 0?Promise.resolve(this.hn):this.rn.promise},f.messageSW=function(c){try{return l(this.getSW(),(function(a){return b(a,c)}))}catch(a){return Promise.reject(a)}},f.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&b(this.fn.waiting,L)},f.pn=function(){var c=navigator.serviceWorker.controller;return c&&y(c.scriptURL,this.sn.toString())?c:void 0},f.bn=function(){try{var c=this;return l((function(a,e){try{var i=a()}catch(u){return e(u)}return i&&i.then?i.then(void 0,e):i})((function(){return l(navigator.serviceWorker.register(c.sn,c.nn),(function(a){return c.un=performance.now(),a}))}),(function(a){throw a})))}catch(a){return Promise.reject(a)}},(function(c,a,e){return a&&j(c.prototype,a),Object.defineProperty(c,"prototype",{writable:!1}),c})(r,[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])})((function(){function n(){this.Pn=new Map}var r=n.prototype;return r.addEventListener=function(t,o){this.jn(t).add(o)},r.removeEventListener=function(t,o){this.jn(t).delete(o)},r.dispatchEvent=function(t){t.target=this;for(var o,f=S(this.jn(t.type));!(o=f()).done;)(0,o.value)(t)},r.jn=function(t){return this.Pn.has(t)||this.Pn.set(t,new Set),this.Pn.get(t)},n})());export{O as Workbox,d as WorkboxEvent,b as messageSW};
@@ -13,8 +13,8 @@
13
13
  <link rel="icon" href="favicon.ico" />
14
14
  <title>Music Assistant</title>
15
15
  <meta name="description" content="Music Assistant - Music library manager for Home Assistant">
16
- <script type="module" crossorigin src="./assets/index-Dj6UKNsX.js"></script>
17
- <link rel="stylesheet" crossorigin href="./assets/index-iTwi4kPx.css">
16
+ <script type="module" crossorigin src="./assets/index-rZUS0c3q.js"></script>
17
+ <link rel="stylesheet" crossorigin href="./assets/index-W5yBuLNV.css">
18
18
  <link rel="manifest" href="./manifest.webmanifest"><style>@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(./assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style></head>
19
19
  <body>
20
20
  <noscript>
@@ -1,2 +1,2 @@
1
- try{self["workbox:core:7.2.0"]&&_()}catch{}const x=(a,...e)=>{let t=a;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},N=x;class f extends Error{constructor(e,t){const s=N(e,t);super(s),this.name=e,this.details=t}}const d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},b=a=>[d.prefix,a,d.suffix].filter(e=>e&&e.length>0).join("-"),E=a=>{for(const e of Object.keys(d))a(e)},L={updateDetails:a=>{E(e=>{typeof a[e]=="string"&&(d[e]=a[e])})},getGoogleAnalyticsName:a=>a||b(d.googleAnalytics),getPrecacheName:a=>a||b(d.precache),getPrefix:()=>d.prefix,getRuntimeName:a=>a||b(d.runtime),getSuffix:()=>d.suffix};function k(a,e){const t=e();return a.waitUntil(t),t}try{self["workbox:precaching:7.2.0"]&&_()}catch{}const M="__WB_REVISION__";function I(a){if(!a)throw new f("add-to-cache-list-unexpected-type",{entry:a});if(typeof a=="string"){const n=new URL(a,location.href);return{cacheKey:n.href,url:n.href}}const{revision:e,url:t}=a;if(!t)throw new f("add-to-cache-list-unexpected-type",{entry:a});if(!e){const n=new URL(t,location.href);return{cacheKey:n.href,url:n.href}}const s=new URL(t,location.href),r=new URL(t,location.href);return s.searchParams.set(M,e),{cacheKey:s.href,url:r.href}}class q{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:s})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const r=t.originalRequest.url;s?this.notUpdatedURLs.push(r):this.updatedURLs.push(r)}return s}}}class O{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:s})=>{const r=s?.cacheKey||this._precacheController.getCacheKeyForURL(t.url);return r?new Request(r,{headers:t.headers}):t},this._precacheController=e}}let y;function W(){if(y===void 0){const a=new Response("");if("body"in a)try{new Response(a.body),y=!0}catch{y=!1}y=!1}return y}async function A(a,e){let t=null;if(a.url&&(t=new URL(a.url).origin),t!==self.location.origin)throw new f("cross-origin-copy-response",{origin:t});const s=a.clone(),n={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},c=W()?s.body:await s.blob();return new Response(c,n)}const H=a=>new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),"");function K(a,e){const t=new URL(a);for(const s of e)t.searchParams.delete(s);return t.href}async function S(a,e,t,s){const r=K(e.url,t);if(e.url===r)return a.match(e,s);const n=Object.assign(Object.assign({},s),{ignoreSearch:!0}),c=await a.keys(e,n);for(const i of c){const o=K(i.url,t);if(r===o)return a.match(i,s)}}class D{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const j=new Set;async function F(){for(const a of j)await a()}function B(a){return new Promise(e=>setTimeout(e,a))}try{self["workbox:strategies:7.2.0"]&&_()}catch{}function R(a){return typeof a=="string"?new Request(a):a}class ${constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new D,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let s=R(e);if(s.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const c=await t.preloadResponse;if(c)return c}const r=this.hasCallback("fetchDidFail")?s.clone():null;try{for(const c of this.iterateCallbacks("requestWillFetch"))s=await c({request:s.clone(),event:t})}catch(c){if(c instanceof Error)throw new f("plugin-error-request-will-fetch",{thrownErrorMessage:c.message})}const n=s.clone();try{let c;c=await fetch(s,s.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const i of this.iterateCallbacks("fetchDidSucceed"))c=await i({event:t,request:n,response:c});return c}catch(c){throw r&&await this.runCallbacks("fetchDidFail",{error:c,event:t,originalRequest:r.clone(),request:n.clone()}),c}}async fetchAndCachePut(e){const t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){const t=R(e);let s;const{cacheName:r,matchOptions:n}=this._strategy,c=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},n),{cacheName:r});s=await caches.match(c,i);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:r,matchOptions:n,cachedResponse:s,request:c,event:this.event})||void 0;return s}async cachePut(e,t){const s=R(e);await B(0);const r=await this.getCacheKey(s,"write");if(!t)throw new f("cache-put-with-no-response",{url:H(r.url)});const n=await this._ensureResponseSafeToCache(t);if(!n)return!1;const{cacheName:c,matchOptions:i}=this._strategy,o=await self.caches.open(c),u=this.hasCallback("cacheDidUpdate"),l=u?await S(o,r.clone(),["__WB_REVISION__"],i):null;try{await o.put(r,u?n.clone():n)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await F(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:c,oldResponse:l,newResponse:n.clone(),request:r,event:this.event});return!0}async getCacheKey(e,t){const s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let r=e;for(const n of this.iterateCallbacks("cacheKeyWillBeUsed"))r=R(await n({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[s]=r}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const s=this._pluginStateMap.get(t);yield n=>{const c=Object.assign(Object.assign({},n),{state:s});return t[e](c)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(const r of this.iterateCallbacks("cacheWillUpdate"))if(t=await r({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return s||t&&t.status!==200&&(t=void 0),t}}class V{constructor(e={}){this.cacheName=L.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,s=typeof e.request=="string"?new Request(e.request):e.request,r="params"in e?e.params:void 0,n=new $(this,{event:t,request:s,params:r}),c=this._getResponse(n,s,t),i=this._awaitComplete(c,n,s,t);return[c,i]}async _getResponse(e,t,s){await e.runCallbacks("handlerWillStart",{event:s,request:t});let r;try{if(r=await this._handle(t,e),!r||r.type==="error")throw new f("no-response",{url:t.url})}catch(n){if(n instanceof Error){for(const c of e.iterateCallbacks("handlerDidError"))if(r=await c({error:n,event:s,request:t}),r)break}if(!r)throw n}for(const n of e.iterateCallbacks("handlerWillRespond"))r=await n({event:s,request:t,response:r});return r}async _awaitComplete(e,t,s,r){let n,c;try{n=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:r,request:s,response:n}),await t.doneWaiting()}catch(i){i instanceof Error&&(c=i)}if(await t.runCallbacks("handlerDidComplete",{event:r,request:s,response:n,error:c}),t.destroy(),c)throw c}}class p extends V{constructor(e={}){e.cacheName=L.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const s=await t.cacheMatch(e);return s||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let s;const r=t.params||{};if(this._fallbackToNetwork){const n=r.integrity,c=e.integrity,i=!c||c===n;s=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?c||n:void 0})),n&&i&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,s.clone()))}else throw new f("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return s}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const s=await t.fetch(e);if(!await t.cachePut(e,s.clone()))throw new f("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,r]of this.plugins.entries())r!==p.copyRedirectedCacheableResponsesPlugin&&(r===p.defaultPrecacheCacheabilityPlugin&&(e=s),r.cacheWillUpdate&&t++);t===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:a}){return!a||a.status>=400?null:a}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:a}){return a.redirected?await A(a):a}};class G{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:L.getPrecacheName(e),plugins:[...t,new O({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const s of e){typeof s=="string"?t.push(s):s&&s.revision===void 0&&t.push(s.url);const{cacheKey:r,url:n}=I(s),c=typeof s!="string"&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(n)&&this._urlsToCacheKeys.get(n)!==r)throw new f("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(n),secondEntry:r});if(typeof s!="string"&&s.integrity){if(this._cacheKeysToIntegrities.has(r)&&this._cacheKeysToIntegrities.get(r)!==s.integrity)throw new f("add-to-cache-list-conflicting-integrities",{url:n});this._cacheKeysToIntegrities.set(r,s.integrity)}if(this._urlsToCacheKeys.set(n,r),this._urlsToCacheModes.set(n,c),t.length>0){const i=`Workbox is precaching URLs without revision info: ${t.join(", ")}
2
- This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(i)}}}install(e){return k(e,async()=>{const t=new q;this.strategy.plugins.push(t);for(const[n,c]of this._urlsToCacheKeys){const i=this._cacheKeysToIntegrities.get(c),o=this._urlsToCacheModes.get(n),u=new Request(n,{integrity:i,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:c},request:u,event:e}))}const{updatedURLs:s,notUpdatedURLs:r}=t;return{updatedURLs:s,notUpdatedURLs:r}})}activate(e){return k(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),s=await t.keys(),r=new Set(this._urlsToCacheKeys.values()),n=[];for(const c of s)r.has(c.url)||(await t.delete(c),n.push(c.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new f("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:t},s.params),this.strategy.handle(s))}}let U;const v=()=>(U||(U=new G),U);try{self["workbox:routing:7.2.0"]&&_()}catch{}const T="GET",C=a=>a&&typeof a=="object"?a:{handle:a};class m{constructor(e,t,s=T){this.handler=C(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=C(e)}}class Q extends m{constructor(e,t,s){const r=({url:n})=>{const c=e.exec(n.href);if(c&&!(n.origin!==location.origin&&c.index!==0))return c.slice(1)};super(r,t,s)}}class z{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,s=Promise.all(t.urlsToCache.map(r=>{typeof r=="string"&&(r=[r]);const n=new Request(...r);return this.handleRequest({request:n,event:e})}));e.waitUntil(s),e.ports&&e.ports[0]&&s.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){const s=new URL(e.url,location.href);if(!s.protocol.startsWith("http"))return;const r=s.origin===location.origin,{params:n,route:c}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:s});let i=c&&c.handler;const o=e.method;if(!i&&this._defaultHandlerMap.has(o)&&(i=this._defaultHandlerMap.get(o)),!i)return;let u;try{u=i.handle({url:s,request:e,event:t,params:n})}catch(h){u=Promise.reject(h)}const l=c&&c.catchHandler;return u instanceof Promise&&(this._catchHandler||l)&&(u=u.catch(async h=>{if(l)try{return await l.handle({url:s,request:e,event:t,params:n})}catch(P){P instanceof Error&&(h=P)}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:t});throw h})),u}findMatchingRoute({url:e,sameOrigin:t,request:s,event:r}){const n=this._routes.get(s.method)||[];for(const c of n){let i;const o=c.match({url:e,sameOrigin:t,request:s,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(i=void 0),{route:c,params:i}}return{}}setDefaultHandler(e,t=T){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new f("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new f("unregister-route-route-not-registered")}}let w;const J=()=>(w||(w=new z,w.addFetchListener(),w.addCacheListener()),w);function X(a,e,t){let s;if(typeof a=="string"){const n=new URL(a,location.href),c=({url:i})=>i.href===n.href;s=new m(c,e,t)}else if(a instanceof RegExp)s=new Q(a,e,t);else if(typeof a=="function")s=new m(a,e,t);else if(a instanceof m)s=a;else throw new f("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return J().registerRoute(s),s}function Y(a,e=[]){for(const t of[...a.searchParams.keys()])e.some(s=>s.test(t))&&a.searchParams.delete(t);return a}function*Z(a,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:s=!0,urlManipulation:r}={}){const n=new URL(a,location.href);n.hash="",yield n.href;const c=Y(n,e);if(yield c.href,t&&c.pathname.endsWith("/")){const i=new URL(c.href);i.pathname+=t,yield i.href}if(s){const i=new URL(c.href);i.pathname+=".html",yield i.href}if(r){const i=r({url:n});for(const o of i)yield o.href}}class ee extends m{constructor(e,t){const s=({request:r})=>{const n=e.getURLsToCacheKeys();for(const c of Z(r.url,t)){const i=n.get(c);if(i){const o=e.getIntegrityForCacheKey(i);return{cacheKey:i,integrity:o}}}};super(s,e.strategy)}}function te(a){const e=v(),t=new ee(e,a);X(t)}function se(a){v().precache(a)}function ae(a,e){se(a),te(e)}ae([{"revision":null,"url":"assets/About-Ba3VLBU-.css"},{"revision":null,"url":"assets/About-eW-4urJV.js"},{"revision":null,"url":"assets/AddManualLink.vue_vue_type_script_setup_true_lang-DQP6MVZU.js"},{"revision":null,"url":"assets/AddPlayerGroup-DrpKvGgv.js"},{"revision":null,"url":"assets/AddProviderDetails-CWS1vCiZ.js"},{"revision":null,"url":"assets/AlbumDetails-wRWGtQUA.js"},{"revision":null,"url":"assets/ArtistDetails-CR47rAMr.js"},{"revision":null,"url":"assets/AudiobookDetails-CE9gIq3Q.js"},{"revision":null,"url":"assets/BrowseView-Cx_P4-_Y.js"},{"revision":null,"url":"assets/BrowseView-DsuxryYQ.css"},{"revision":null,"url":"assets/Button-D25yJYMO.css"},{"revision":null,"url":"assets/Button-faGxxowY.js"},{"revision":null,"url":"assets/constants-CXMxJR4j.js"},{"revision":null,"url":"assets/Container-D5KFPVjs.js"},{"revision":null,"url":"assets/Container-Df7sl-nn.css"},{"revision":null,"url":"assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-Cad6HStr.js"},{"revision":null,"url":"assets/Default-GVlZdAUf.css"},{"revision":null,"url":"assets/Default-KyHEk5ZR.js"},{"revision":null,"url":"assets/EditConfig-B0XoDh_u.js"},{"revision":null,"url":"assets/EditConfig-TBO3lEGx.css"},{"revision":null,"url":"assets/EditCoreConfig-DFyuSEd9.js"},{"revision":null,"url":"assets/EditPlayer-Cgs9ko95.js"},{"revision":null,"url":"assets/EditPlayerDsp-aJcSg6U0.css"},{"revision":null,"url":"assets/EditPlayerDsp-D98k0PKW.js"},{"revision":null,"url":"assets/EditProvider-CgzI4UVG.js"},{"revision":null,"url":"assets/FrontendConfig-B-B9Z2Vn.js"},{"revision":null,"url":"assets/HomeView-BprizvGE.css"},{"revision":null,"url":"assets/HomeView-DFXlCmKt.js"},{"revision":null,"url":"assets/index-Dj6UKNsX.js"},{"revision":null,"url":"assets/index-iTwi4kPx.css"},{"revision":null,"url":"assets/index-kQIztB-E.js"},{"revision":null,"url":"assets/index.browser-OxPLOBIU.js"},{"revision":null,"url":"assets/ItemsListing-BP5XXmLQ.js"},{"revision":null,"url":"assets/ItemsListing-DL5ZjBes.css"},{"revision":null,"url":"assets/LibraryAlbums-BGHrSh_z.js"},{"revision":null,"url":"assets/LibraryArtists-rX5Sb_ET.js"},{"revision":null,"url":"assets/LibraryAudiobooks-BL7Qa-rV.js"},{"revision":null,"url":"assets/LibraryPlaylists-mtIVGJsc.js"},{"revision":null,"url":"assets/LibraryPodcasts-DFW7qn7z.js"},{"revision":null,"url":"assets/LibraryRadios-3VXOISsH.js"},{"revision":null,"url":"assets/LibraryTracks-D1kcnNYD.js"},{"revision":null,"url":"assets/ListItem-CZjh-Z2L.css"},{"revision":null,"url":"assets/ListItem-DXTT8_G5.js"},{"revision":null,"url":"assets/marquee_text_sync-CWCHA3k2.css"},{"revision":null,"url":"assets/marquee_text_sync-R3hHMfp7.js"},{"revision":null,"url":"assets/MediaItemImages-EU1ndGHN.css"},{"revision":null,"url":"assets/MediaItemImages-RwaXDWAp.js"},{"revision":null,"url":"assets/MediaItemThumb-DYAHQAuC.js"},{"revision":null,"url":"assets/PanelviewItemCompact-BKBJxxoM.js"},{"revision":null,"url":"assets/PanelviewItemCompact-BzbA-hBb.css"},{"revision":null,"url":"assets/PlayerCard-BtmAlIKh.css"},{"revision":null,"url":"assets/PlayerCard-DdgZ3XZ5.js"},{"revision":null,"url":"assets/Players-BelAvYKh.js"},{"revision":null,"url":"assets/PlaylistDetails-Bf5e08Ep.js"},{"revision":null,"url":"assets/PodcastDetails-B8Mjw_8n.js"},{"revision":null,"url":"assets/ProviderDetails-sWAPBlBe.css"},{"revision":null,"url":"assets/ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js"},{"revision":null,"url":"assets/Providers-BYVx_A_K.js"},{"revision":null,"url":"assets/Providers-Dpp2O4F9.css"},{"revision":null,"url":"assets/RadioDetails-pOddxrkl.js"},{"revision":null,"url":"assets/Search-B6SlCk_7.js"},{"revision":null,"url":"assets/ServerLogs-BzVXmR6_.js"},{"revision":null,"url":"assets/ServerLogs-D16I7ozL.css"},{"revision":null,"url":"assets/Settings-CDWcSKlt.css"},{"revision":null,"url":"assets/Settings-Cqw-X9OU.js"},{"revision":null,"url":"assets/SystemConfig-BKi5ffMS.css"},{"revision":null,"url":"assets/SystemConfig-BOdTwx9R.js"},{"revision":null,"url":"assets/Toolbar-B32L_M7G.js"},{"revision":null,"url":"assets/Toolbar-CVFN8H4Z.css"},{"revision":null,"url":"assets/TrackDetails-CkCm62Ec.js"},{"revision":null,"url":"assets/UserManagement-BXsqKl-G.css"},{"revision":null,"url":"assets/UserManagement-c_dhgxwj.js"},{"revision":null,"url":"assets/userPreferences-Cm6AcKY5.css"},{"revision":null,"url":"assets/userPreferences-CpcwN_LW.js"},{"revision":null,"url":"assets/UserProfile-2WJSaYoR.css"},{"revision":null,"url":"assets/UserProfile-CpcF98Ve.js"},{"revision":null,"url":"assets/VAlert-BDbtqfCV.css"},{"revision":null,"url":"assets/VAlert-CFvRz3gu.js"},{"revision":null,"url":"assets/VCheckboxBtn-B5wUW3kZ.js"},{"revision":null,"url":"assets/VDialog-5KHkpnhE.js"},{"revision":null,"url":"assets/VDialog-DwTSAOeg.css"},{"revision":null,"url":"assets/VExpansionPanels-B8KjM0Qi.css"},{"revision":null,"url":"assets/VExpansionPanels-DboS79vY.js"},{"revision":null,"url":"assets/VForm-DDKxMAmn.js"},{"revision":null,"url":"assets/VInfiniteScroll-Bbntx9NP.css"},{"revision":null,"url":"assets/VInfiniteScroll-DataCA15.js"},{"revision":null,"url":"assets/VSelect-DMb2DNZp.css"},{"revision":null,"url":"assets/VSelect-VNw4nPSb.js"},{"revision":null,"url":"assets/VSelectionControl-CCjz0Lnv.js"},{"revision":null,"url":"assets/VSelectionControl-CIeJsqfW.css"},{"revision":null,"url":"assets/VSlider-Dcfg9Wg5.js"},{"revision":null,"url":"assets/VSlider-DlBvQp-0.css"},{"revision":null,"url":"assets/VSwitch-DQEiK9D_.js"},{"revision":null,"url":"assets/VSwitch-Mm7Rd7At.css"},{"revision":null,"url":"assets/VToolbar-COKHN9Hu.css"},{"revision":null,"url":"assets/VToolbar-w3YLtQh8.js"},{"revision":null,"url":"assets/VVirtualScroll-BNcY_ygg.css"},{"revision":null,"url":"assets/VVirtualScroll-Cg5AQGzG.js"},{"revision":null,"url":"assets/WidgetRow-CZHmyp7T.js"},{"revision":null,"url":"assets/WidgetRow-CzKBwQIP.css"},{"revision":null,"url":"assets/workbox-window.prod.es5-CwtvwXb3.js"},{"revision":"b6268c87e907c948e8408929bbd0e3bc","url":"index.html"},{"revision":"9dcff4d5e3fe756d5b20591dd92c0b5a","url":"apple-touch-icon.png"},{"revision":"ffe9ee24ed29912b6010c575378a6d79","url":"favicon.ico"},{"revision":"e112791d52bbf4e114786dc7f6abcf8a","url":"pwa-192x192.png"},{"revision":"0bf5daea613cc918d32731e59e6e5a9f","url":"pwa-512x512.png"},{"revision":"5e0bd1c281a62a380d7a948085bfe2d1","url":"robots.txt"},{"revision":"838096e4feffab91eb11fbca2168ed4d","url":"manifest.webmanifest"}]);const g=new Map;self.addEventListener("message",a=>{const{type:e,data:t}=a.data;if(e==="http-proxy-response"){const{id:s,status:r,headers:n,body:c}=t,i=g.get(s);if(i){g.delete(s);try{const o=ne(c),u=new Response(o,{status:r,headers:new Headers(n)});i.resolve(u)}catch(o){i.reject(o)}}}else e==="set-remote-mode"&&(self.isRemoteMode=t.isRemote)});self.addEventListener("fetch",a=>{const e=new URL(a.request.url),s=["/imageproxy","/preview"].some(r=>e.pathname.startsWith(r));if(self.isRemoteMode&&s){a.respondWith(re(a.request));return}if(s){a.respondWith(fetch(a.request));return}});async function re(a){const e=new URL(a.url),t=a.url,s=await caches.open("ma-http-proxy-v1"),r=await s.match(t);if(r)return r;const n=ce(),c=new Promise((l,h)=>{g.set(n,{resolve:l,reject:h}),setTimeout(()=>{g.has(n)&&(g.delete(n),h(new Error("HTTP proxy request timeout")))},3e4)}),i={},o=["accept","accept-encoding"];for(const l of o){const h=a.headers.get(l);h&&(i[l]=h)}const u=await self.clients.matchAll();if(u.length>0)u[0].postMessage({type:"http-proxy-request",data:{id:n,method:a.method,path:e.pathname+e.search,headers:i}});else return g.delete(n),new Response("Service worker error: No client found",{status:503});try{const l=await c;if(l.status===304&&r)return r;if(l.status>=200&&l.status<300){const h=l.clone();s.put(t,h)}return l}catch(l){return console.error("[ServiceWorker] HTTP proxy error:",l),r||new Response(l.message,{status:500})}}function ne(a){const e=new Uint8Array(a.length/2);for(let t=0;t<a.length;t+=2)e[t/2]=parseInt(a.substring(t,t+2),16);return e}function ce(){return`req_${Date.now()}_${Math.random().toString(36).substring(2,11)}`}self.isRemoteMode=!1;self.addEventListener("activate",a=>{a.waitUntil(self.clients.claim())});
1
+ try{self["workbox:core:7.3.0"]&&_()}catch{}const T=(a,...e)=>{let t=a;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},N=T;class f extends Error{constructor(e,t){const s=N(e,t);super(s),this.name=e,this.details=t}}const d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},b=a=>[d.prefix,a,d.suffix].filter(e=>e&&e.length>0).join("-"),E=a=>{for(const e of Object.keys(d))a(e)},L={updateDetails:a=>{E(e=>{typeof a[e]=="string"&&(d[e]=a[e])})},getGoogleAnalyticsName:a=>a||b(d.googleAnalytics),getPrecacheName:a=>a||b(d.precache),getPrefix:()=>d.prefix,getRuntimeName:a=>a||b(d.runtime),getSuffix:()=>d.suffix};function k(a,e){const t=e();return a.waitUntil(t),t}try{self["workbox:precaching:7.3.0"]&&_()}catch{}const M="__WB_REVISION__";function I(a){if(!a)throw new f("add-to-cache-list-unexpected-type",{entry:a});if(typeof a=="string"){const n=new URL(a,location.href);return{cacheKey:n.href,url:n.href}}const{revision:e,url:t}=a;if(!t)throw new f("add-to-cache-list-unexpected-type",{entry:a});if(!e){const n=new URL(t,location.href);return{cacheKey:n.href,url:n.href}}const s=new URL(t,location.href),r=new URL(t,location.href);return s.searchParams.set(M,e),{cacheKey:s.href,url:r.href}}class q{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:s})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const r=t.originalRequest.url;s?this.notUpdatedURLs.push(r):this.updatedURLs.push(r)}return s}}}class O{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:s})=>{const r=s?.cacheKey||this._precacheController.getCacheKeyForURL(t.url);return r?new Request(r,{headers:t.headers}):t},this._precacheController=e}}let y;function W(){if(y===void 0){const a=new Response("");if("body"in a)try{new Response(a.body),y=!0}catch{y=!1}y=!1}return y}async function A(a,e){let t=null;if(a.url&&(t=new URL(a.url).origin),t!==self.location.origin)throw new f("cross-origin-copy-response",{origin:t});const s=a.clone(),n={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},c=W()?s.body:await s.blob();return new Response(c,n)}const S=a=>new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),"");function K(a,e){const t=new URL(a);for(const s of e)t.searchParams.delete(s);return t.href}async function H(a,e,t,s){const r=K(e.url,t);if(e.url===r)return a.match(e,s);const n=Object.assign(Object.assign({},s),{ignoreSearch:!0}),c=await a.keys(e,n);for(const i of c){const o=K(i.url,t);if(r===o)return a.match(i,s)}}class D{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const j=new Set;async function F(){for(const a of j)await a()}function B(a){return new Promise(e=>setTimeout(e,a))}try{self["workbox:strategies:7.3.0"]&&_()}catch{}function R(a){return typeof a=="string"?new Request(a):a}class ${constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new D,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let s=R(e);if(s.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const c=await t.preloadResponse;if(c)return c}const r=this.hasCallback("fetchDidFail")?s.clone():null;try{for(const c of this.iterateCallbacks("requestWillFetch"))s=await c({request:s.clone(),event:t})}catch(c){if(c instanceof Error)throw new f("plugin-error-request-will-fetch",{thrownErrorMessage:c.message})}const n=s.clone();try{let c;c=await fetch(s,s.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const i of this.iterateCallbacks("fetchDidSucceed"))c=await i({event:t,request:n,response:c});return c}catch(c){throw r&&await this.runCallbacks("fetchDidFail",{error:c,event:t,originalRequest:r.clone(),request:n.clone()}),c}}async fetchAndCachePut(e){const t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){const t=R(e);let s;const{cacheName:r,matchOptions:n}=this._strategy,c=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},n),{cacheName:r});s=await caches.match(c,i);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:r,matchOptions:n,cachedResponse:s,request:c,event:this.event})||void 0;return s}async cachePut(e,t){const s=R(e);await B(0);const r=await this.getCacheKey(s,"write");if(!t)throw new f("cache-put-with-no-response",{url:S(r.url)});const n=await this._ensureResponseSafeToCache(t);if(!n)return!1;const{cacheName:c,matchOptions:i}=this._strategy,o=await self.caches.open(c),u=this.hasCallback("cacheDidUpdate"),l=u?await H(o,r.clone(),["__WB_REVISION__"],i):null;try{await o.put(r,u?n.clone():n)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await F(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:c,oldResponse:l,newResponse:n.clone(),request:r,event:this.event});return!0}async getCacheKey(e,t){const s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let r=e;for(const n of this.iterateCallbacks("cacheKeyWillBeUsed"))r=R(await n({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[s]=r}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const s=this._pluginStateMap.get(t);yield n=>{const c=Object.assign(Object.assign({},n),{state:s});return t[e](c)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){const e=this._extendLifetimePromises.splice(0),s=(await Promise.allSettled(e)).find(r=>r.status==="rejected");if(s)throw s.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(const r of this.iterateCallbacks("cacheWillUpdate"))if(t=await r({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return s||t&&t.status!==200&&(t=void 0),t}}class V{constructor(e={}){this.cacheName=L.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,s=typeof e.request=="string"?new Request(e.request):e.request,r="params"in e?e.params:void 0,n=new $(this,{event:t,request:s,params:r}),c=this._getResponse(n,s,t),i=this._awaitComplete(c,n,s,t);return[c,i]}async _getResponse(e,t,s){await e.runCallbacks("handlerWillStart",{event:s,request:t});let r;try{if(r=await this._handle(t,e),!r||r.type==="error")throw new f("no-response",{url:t.url})}catch(n){if(n instanceof Error){for(const c of e.iterateCallbacks("handlerDidError"))if(r=await c({error:n,event:s,request:t}),r)break}if(!r)throw n}for(const n of e.iterateCallbacks("handlerWillRespond"))r=await n({event:s,request:t,response:r});return r}async _awaitComplete(e,t,s,r){let n,c;try{n=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:r,request:s,response:n}),await t.doneWaiting()}catch(i){i instanceof Error&&(c=i)}if(await t.runCallbacks("handlerDidComplete",{event:r,request:s,response:n,error:c}),t.destroy(),c)throw c}}class p extends V{constructor(e={}){e.cacheName=L.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const s=await t.cacheMatch(e);return s||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let s;const r=t.params||{};if(this._fallbackToNetwork){const n=r.integrity,c=e.integrity,i=!c||c===n;s=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?c||n:void 0})),n&&i&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,s.clone()))}else throw new f("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return s}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const s=await t.fetch(e);if(!await t.cachePut(e,s.clone()))throw new f("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,r]of this.plugins.entries())r!==p.copyRedirectedCacheableResponsesPlugin&&(r===p.defaultPrecacheCacheabilityPlugin&&(e=s),r.cacheWillUpdate&&t++);t===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:a}){return!a||a.status>=400?null:a}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:a}){return a.redirected?await A(a):a}};class G{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:L.getPrecacheName(e),plugins:[...t,new O({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const s of e){typeof s=="string"?t.push(s):s&&s.revision===void 0&&t.push(s.url);const{cacheKey:r,url:n}=I(s),c=typeof s!="string"&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(n)&&this._urlsToCacheKeys.get(n)!==r)throw new f("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(n),secondEntry:r});if(typeof s!="string"&&s.integrity){if(this._cacheKeysToIntegrities.has(r)&&this._cacheKeysToIntegrities.get(r)!==s.integrity)throw new f("add-to-cache-list-conflicting-integrities",{url:n});this._cacheKeysToIntegrities.set(r,s.integrity)}if(this._urlsToCacheKeys.set(n,r),this._urlsToCacheModes.set(n,c),t.length>0){const i=`Workbox is precaching URLs without revision info: ${t.join(", ")}
2
+ This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(i)}}}install(e){return k(e,async()=>{const t=new q;this.strategy.plugins.push(t);for(const[n,c]of this._urlsToCacheKeys){const i=this._cacheKeysToIntegrities.get(c),o=this._urlsToCacheModes.get(n),u=new Request(n,{integrity:i,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:c},request:u,event:e}))}const{updatedURLs:s,notUpdatedURLs:r}=t;return{updatedURLs:s,notUpdatedURLs:r}})}activate(e){return k(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),s=await t.keys(),r=new Set(this._urlsToCacheKeys.values()),n=[];for(const c of s)r.has(c.url)||(await t.delete(c),n.push(c.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new f("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:t},s.params),this.strategy.handle(s))}}let U;const v=()=>(U||(U=new G),U);try{self["workbox:routing:7.3.0"]&&_()}catch{}const x="GET",C=a=>a&&typeof a=="object"?a:{handle:a};class m{constructor(e,t,s=x){this.handler=C(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=C(e)}}class Q extends m{constructor(e,t,s){const r=({url:n})=>{const c=e.exec(n.href);if(c&&!(n.origin!==location.origin&&c.index!==0))return c.slice(1)};super(r,t,s)}}class z{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,s=Promise.all(t.urlsToCache.map(r=>{typeof r=="string"&&(r=[r]);const n=new Request(...r);return this.handleRequest({request:n,event:e})}));e.waitUntil(s),e.ports&&e.ports[0]&&s.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){const s=new URL(e.url,location.href);if(!s.protocol.startsWith("http"))return;const r=s.origin===location.origin,{params:n,route:c}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:s});let i=c&&c.handler;const o=e.method;if(!i&&this._defaultHandlerMap.has(o)&&(i=this._defaultHandlerMap.get(o)),!i)return;let u;try{u=i.handle({url:s,request:e,event:t,params:n})}catch(h){u=Promise.reject(h)}const l=c&&c.catchHandler;return u instanceof Promise&&(this._catchHandler||l)&&(u=u.catch(async h=>{if(l)try{return await l.handle({url:s,request:e,event:t,params:n})}catch(P){P instanceof Error&&(h=P)}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:t});throw h})),u}findMatchingRoute({url:e,sameOrigin:t,request:s,event:r}){const n=this._routes.get(s.method)||[];for(const c of n){let i;const o=c.match({url:e,sameOrigin:t,request:s,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(i=void 0),{route:c,params:i}}return{}}setDefaultHandler(e,t=x){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new f("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new f("unregister-route-route-not-registered")}}let w;const J=()=>(w||(w=new z,w.addFetchListener(),w.addCacheListener()),w);function X(a,e,t){let s;if(typeof a=="string"){const n=new URL(a,location.href),c=({url:i})=>i.href===n.href;s=new m(c,e,t)}else if(a instanceof RegExp)s=new Q(a,e,t);else if(typeof a=="function")s=new m(a,e,t);else if(a instanceof m)s=a;else throw new f("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return J().registerRoute(s),s}function Y(a,e=[]){for(const t of[...a.searchParams.keys()])e.some(s=>s.test(t))&&a.searchParams.delete(t);return a}function*Z(a,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:s=!0,urlManipulation:r}={}){const n=new URL(a,location.href);n.hash="",yield n.href;const c=Y(n,e);if(yield c.href,t&&c.pathname.endsWith("/")){const i=new URL(c.href);i.pathname+=t,yield i.href}if(s){const i=new URL(c.href);i.pathname+=".html",yield i.href}if(r){const i=r({url:n});for(const o of i)yield o.href}}class ee extends m{constructor(e,t){const s=({request:r})=>{const n=e.getURLsToCacheKeys();for(const c of Z(r.url,t)){const i=n.get(c);if(i){const o=e.getIntegrityForCacheKey(i);return{cacheKey:i,integrity:o}}}};super(s,e.strategy)}}function te(a){const e=v(),t=new ee(e,a);X(t)}function se(a){v().precache(a)}function ae(a,e){se(a),te(e)}ae([{"revision":"df09aa075dd4335abc8da56c75f77683","url":"index.html"},{"revision":null,"url":"assets/workbox-window.prod.es5-BIl4cyR9.js"},{"revision":null,"url":"assets/userPreferences-a0gVUlkp.js"},{"revision":null,"url":"assets/userPreferences-Cm6AcKY5.css"},{"revision":null,"url":"assets/marquee_text_sync-CWCHA3k2.css"},{"revision":null,"url":"assets/marquee_text_sync-AT1GwuhW.js"},{"revision":null,"url":"assets/index.browser-OxPLOBIU.js"},{"revision":null,"url":"assets/index-rZUS0c3q.js"},{"revision":null,"url":"assets/index-kQIztB-E.js"},{"revision":null,"url":"assets/index-W5yBuLNV.css"},{"revision":null,"url":"assets/constants-CXMxJR4j.js"},{"revision":null,"url":"assets/WidgetRow-DKnAiOkf.js"},{"revision":null,"url":"assets/WidgetRow-CzKBwQIP.css"},{"revision":null,"url":"assets/VVirtualScroll-C1eeqQrQ.js"},{"revision":null,"url":"assets/VVirtualScroll-BNcY_ygg.css"},{"revision":null,"url":"assets/VToolbar-hGVdN8lh.js"},{"revision":null,"url":"assets/VToolbar-D1tRNhN6.css"},{"revision":null,"url":"assets/VSwitch-Mm7Rd7At.css"},{"revision":null,"url":"assets/VSwitch-B-1g31ug.js"},{"revision":null,"url":"assets/VSlider-DzdWVMUa.js"},{"revision":null,"url":"assets/VSlider-DlBvQp-0.css"},{"revision":null,"url":"assets/VSelectionControl-S-aELuKm.js"},{"revision":null,"url":"assets/VSelectionControl-CIeJsqfW.css"},{"revision":null,"url":"assets/VSelect-uSApsKq0.js"},{"revision":null,"url":"assets/VSelect-DMb2DNZp.css"},{"revision":null,"url":"assets/VInfiniteScroll-B5bUrC-Z.js"},{"revision":null,"url":"assets/VInfiniteScroll-B-XMauN8.css"},{"revision":null,"url":"assets/VForm-Dpln05ME.js"},{"revision":null,"url":"assets/VExpansionPanels-lmUrDJt6.js"},{"revision":null,"url":"assets/VExpansionPanels-B8KjM0Qi.css"},{"revision":null,"url":"assets/VDialog-DwTSAOeg.css"},{"revision":null,"url":"assets/VDialog-BndVdZhi.js"},{"revision":null,"url":"assets/VCheckboxBtn-BMAdXnae.js"},{"revision":null,"url":"assets/VAlert-CBrxai34.js"},{"revision":null,"url":"assets/VAlert-BDbtqfCV.css"},{"revision":null,"url":"assets/UserProfile-C9aw6Mo0.js"},{"revision":null,"url":"assets/UserProfile-2WJSaYoR.css"},{"revision":null,"url":"assets/UserManagement-BmZul5Bv.js"},{"revision":null,"url":"assets/UserManagement-BXsqKl-G.css"},{"revision":null,"url":"assets/TrackDetails-Bpl4yjoA.js"},{"revision":null,"url":"assets/Toolbar-xH_GEfSi.js"},{"revision":null,"url":"assets/Toolbar-DOjWle_n.css"},{"revision":null,"url":"assets/SystemConfig-DzuRfqZX.js"},{"revision":null,"url":"assets/SystemConfig-BKi5ffMS.css"},{"revision":null,"url":"assets/Settings-CbTYv9HY.css"},{"revision":null,"url":"assets/Settings-BPCFcSEv.js"},{"revision":null,"url":"assets/ServerLogs-DEmjg0ji.js"},{"revision":null,"url":"assets/ServerLogs-D16I7ozL.css"},{"revision":null,"url":"assets/Search-gIzJ4Lef.js"},{"revision":null,"url":"assets/RemoteAccessSettings-Cc9VhqAV.js"},{"revision":null,"url":"assets/RemoteAccessSettings-Bf5s7Cwr.css"},{"revision":null,"url":"assets/RadioDetails-Dk19WXMn.js"},{"revision":null,"url":"assets/Providers-Df6R6NDc.css"},{"revision":null,"url":"assets/Providers-BVL70bSb.js"},{"revision":null,"url":"assets/ProviderDetails.vue_vue_type_script_setup_true_lang-DzvsLzds.js"},{"revision":null,"url":"assets/ProviderDetails-sWAPBlBe.css"},{"revision":null,"url":"assets/PodcastDetails-BMWkoQkv.js"},{"revision":null,"url":"assets/PlaylistDetails-BYOLLggx.js"},{"revision":null,"url":"assets/Players-DiFMAcvk.css"},{"revision":null,"url":"assets/Players-CMiHL1Xr.js"},{"revision":null,"url":"assets/PlayerCard-CbOeDESo.js"},{"revision":null,"url":"assets/PlayerCard-B-1h1GH8.css"},{"revision":null,"url":"assets/PanelviewItemCompact-zZvQaI6t.js"},{"revision":null,"url":"assets/PanelviewItemCompact-BzbA-hBb.css"},{"revision":null,"url":"assets/MediaItemThumb-Djieuu-m.js"},{"revision":null,"url":"assets/MediaItemImages-EU1ndGHN.css"},{"revision":null,"url":"assets/MediaItemImages-B-oQ8T4k.js"},{"revision":null,"url":"assets/ListItem-DNqmHglz.js"},{"revision":null,"url":"assets/ListItem-CZjh-Z2L.css"},{"revision":null,"url":"assets/LibraryTracks-BW-Ne0K5.js"},{"revision":null,"url":"assets/LibraryRadios-DXJv2vPJ.js"},{"revision":null,"url":"assets/LibraryPodcasts-D-KYAv5K.js"},{"revision":null,"url":"assets/LibraryPlaylists-CVSNqj6B.js"},{"revision":null,"url":"assets/LibraryAudiobooks-BXD39SCR.js"},{"revision":null,"url":"assets/LibraryArtists-CvhNCIa6.js"},{"revision":null,"url":"assets/LibraryAlbums-DsXvfpDF.js"},{"revision":null,"url":"assets/ItemsListing-DiFULYEk.js"},{"revision":null,"url":"assets/ItemsListing-DBRgGdb9.css"},{"revision":null,"url":"assets/HomeView-CF-2XJYc.js"},{"revision":null,"url":"assets/HomeView-BprizvGE.css"},{"revision":null,"url":"assets/FrontendConfig-DGr-C8uc.js"},{"revision":null,"url":"assets/EditProvider-DH6yzgKO.js"},{"revision":null,"url":"assets/EditPlayerDsp-aJcSg6U0.css"},{"revision":null,"url":"assets/EditPlayerDsp-DIRF5Ifm.js"},{"revision":null,"url":"assets/EditPlayer-C4U8nmpt.js"},{"revision":null,"url":"assets/EditCoreConfig-Dn-oiBmv.js"},{"revision":null,"url":"assets/EditConfig-CcxrPgWJ.css"},{"revision":null,"url":"assets/EditConfig-Bo92pQzx.js"},{"revision":null,"url":"assets/Default-D3QbBdka.js"},{"revision":null,"url":"assets/Default-BoZpM67W.css"},{"revision":null,"url":"assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-WD6jKrT1.js"},{"revision":null,"url":"assets/Container-Df7sl-nn.css"},{"revision":null,"url":"assets/Container-BunIU4BI.js"},{"revision":null,"url":"assets/Button-D25yJYMO.css"},{"revision":null,"url":"assets/Button-Cm9Kv1fL.js"},{"revision":null,"url":"assets/BrowseView-g_5UPiVj.js"},{"revision":null,"url":"assets/BrowseView-DsuxryYQ.css"},{"revision":null,"url":"assets/AudiobookDetails-Dk3PEU9D.js"},{"revision":null,"url":"assets/ArtistDetails-pWsx0uxv.js"},{"revision":null,"url":"assets/AlbumDetails-iZRC2HAx.js"},{"revision":null,"url":"assets/AddProviderDetails-DoKLUG5n.js"},{"revision":null,"url":"assets/AddPlayerGroup-cntNx9PL.js"},{"revision":null,"url":"assets/AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js"},{"revision":null,"url":"assets/About-DD-Ra6q9.js"},{"revision":null,"url":"assets/About-BlM2bNNU.css"},{"revision":"9dcff4d5e3fe756d5b20591dd92c0b5a","url":"apple-touch-icon.png"},{"revision":"ffe9ee24ed29912b6010c575378a6d79","url":"favicon.ico"},{"revision":"e112791d52bbf4e114786dc7f6abcf8a","url":"pwa-192x192.png"},{"revision":"0bf5daea613cc918d32731e59e6e5a9f","url":"pwa-512x512.png"},{"revision":"5e0bd1c281a62a380d7a948085bfe2d1","url":"robots.txt"},{"revision":"838096e4feffab91eb11fbca2168ed4d","url":"manifest.webmanifest"}]);const g=new Map;self.addEventListener("message",a=>{const{type:e,data:t}=a.data;if(e==="http-proxy-response"){const{id:s,status:r,headers:n,body:c}=t,i=g.get(s);if(i){g.delete(s);try{const o=ne(c),u=new Response(o,{status:r,headers:new Headers(n)});i.resolve(u)}catch(o){i.reject(o)}}}else e==="set-remote-mode"&&(self.isRemoteMode=t.isRemote)});self.addEventListener("fetch",a=>{const e=new URL(a.request.url),s=["/imageproxy","/preview"].some(r=>e.pathname.startsWith(r));if(self.isRemoteMode&&s){a.respondWith(re(a.request));return}if(s){a.respondWith(fetch(a.request));return}});async function re(a){const e=new URL(a.url),t=a.url,s=await caches.open("ma-http-proxy-v1"),r=await s.match(t);if(r)return r;const n=ce(),c=new Promise((l,h)=>{g.set(n,{resolve:l,reject:h}),setTimeout(()=>{g.has(n)&&(g.delete(n),h(new Error("HTTP proxy request timeout")))},3e4)}),i={},o=["accept","accept-encoding"];for(const l of o){const h=a.headers.get(l);h&&(i[l]=h)}const u=await self.clients.matchAll();if(u.length>0)u[0].postMessage({type:"http-proxy-request",data:{id:n,method:a.method,path:e.pathname+e.search,headers:i}});else return g.delete(n),new Response("Service worker error: No client found",{status:503});try{const l=await c;if(l.status===304&&r)return r;if(l.status>=200&&l.status<300){const h=l.clone();s.put(t,h)}return l}catch(l){return console.error("[ServiceWorker] HTTP proxy error:",l),r||new Response(l.message,{status:500})}}function ne(a){const e=new Uint8Array(a.length/2);for(let t=0;t<a.length;t+=2)e[t/2]=parseInt(a.substring(t,t+2),16);return e}function ce(){return`req_${Date.now()}_${Math.random().toString(36).substring(2,11)}`}self.isRemoteMode=!1;self.addEventListener("activate",a=>{a.waitUntil(self.clients.claim())});
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: music-assistant-frontend
3
- Version: 2.17.20
3
+ Version: 2.17.28
4
4
  Summary: The Music Assistant frontend
5
5
  Author-email: The Music Assistant Authors <m.vanderveldt@outlook.com>
6
6
  License: Apache-2.0
@@ -0,0 +1,148 @@
1
+ music_assistant_frontend/CNAME,sha256=Nb8Kp3Fi4tYqqukm-GUfjeO0CU6hBGaawwsOQiMHOLc,23
2
+ music_assistant_frontend/__init__.py,sha256=f5XgAG1zbZ8LHTVT9GwVrIblZh_XMiXC6bJYcw3vgoA,156
3
+ music_assistant_frontend/apple-touch-icon.png,sha256=Z15VsFsEd-EDBuEpKuxV9cr0iz29o_q5zKQwaLw9ENs,9628
4
+ music_assistant_frontend/favicon.ico,sha256=3emHJUOpla9GWcwAxPdjbCQSdXMTKFVBiUfrVofJshE,16958
5
+ music_assistant_frontend/index.html,sha256=erjnjZ1jMKbZd6JmgYN6vZizQlA502VnVW0LNC6l5pg,29590
6
+ music_assistant_frontend/manifest.webmanifest,sha256=y4tDS71mQ1k1D0WKxckRWJffFReAyTrGdtmv3XBF2JU,557
7
+ music_assistant_frontend/pwa-192x192.png,sha256=sFoeE2TtJHWBK0qnPCrlqIuhSNhL6WxjlcRMjVKq5yo,7095
8
+ music_assistant_frontend/pwa-512x512.png,sha256=1IDxJr1SpPfhoo23x9do8xSBEaH_qfDp43NK79QjXqE,22189
9
+ music_assistant_frontend/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ music_assistant_frontend/robots.txt,sha256=Fs617j4NwTqprfMaPrvkWh2WW4wrn3Lq-E5ZEeFA7ZU,23
11
+ music_assistant_frontend/sw.js,sha256=iNEW8Dy44h6qRxdpjgjfEzPQlovkgAgmGDNLx2o7z68,24197
12
+ music_assistant_frontend/assets/About-BlM2bNNU.css,sha256=JHwN-JDzjWRn1aKwm7Y2TqOZkYf3mMKog_hIRE8T4GY,1180
13
+ music_assistant_frontend/assets/About-DD-Ra6q9.js,sha256=EGsNNXCFRY6gvQoI2cxKQ7yViBLp-iQAijjMNjcNZR0,7775
14
+ music_assistant_frontend/assets/AddManualLink.vue_vue_type_script_setup_true_lang-4S1vyk3y.js,sha256=26-mCz74RVMl32_OykWkazgoxfKwWZPdXwAWSK6vqbM,2520
15
+ music_assistant_frontend/assets/AddPlayerGroup-cntNx9PL.js,sha256=oa3A8FJbnkwWUvYFHH9lIlw3Yg0qRctFQfBZWu2Rpzw,2881
16
+ music_assistant_frontend/assets/AddProviderDetails-DoKLUG5n.js,sha256=0Lmp8MSL-zLYRbCEXiA8sWbsYycGDG8xpN-fArXcEIg,3316
17
+ music_assistant_frontend/assets/AlbumDetails-iZRC2HAx.js,sha256=8E8oBXqWkfB3faFGZ8MbkS10oOP425dJdZY_dsbqgS4,3067
18
+ music_assistant_frontend/assets/ArtistDetails-pWsx0uxv.js,sha256=pEuTP7am4_cHQif8FZZgmN50gOaIMR5zTFiwQaP-xZU,3260
19
+ music_assistant_frontend/assets/AudiobookDetails-Dk3PEU9D.js,sha256=0Tm7kj8mN-ztx2oFQP3pEBm__GcdGoue60OzQfNRbvw,2296
20
+ music_assistant_frontend/assets/BrowseView-DsuxryYQ.css,sha256=1i5-2mmZfqxFZVc1qCWZ3W-u8Eiy8a-3CBSst30Paqw,508
21
+ music_assistant_frontend/assets/BrowseView-g_5UPiVj.js,sha256=r6DXhAPenN2AeGSgTOZMSKWiwvpAXv6Rf8X4RDs7nNA,2458
22
+ music_assistant_frontend/assets/Button-Cm9Kv1fL.js,sha256=A24Y_A5NcgfLxEaQmh3NctC6NIHjMivWg05vgzwiq3k,2247
23
+ music_assistant_frontend/assets/Button-D25yJYMO.css,sha256=SBS4243Vbq8RHNrFFbAAyJ7UootNCOCEPIIlDtYtkt8,636
24
+ music_assistant_frontend/assets/Container-BunIU4BI.js,sha256=EaoS3P63wN5Ky144MXjc1JNjbtvvFErqYE0_kR1ziOQ,1309
25
+ music_assistant_frontend/assets/Container-Df7sl-nn.css,sha256=nF_yTqvv1gQdZ2qj8vWHjBU8daOyXbihgd5lfhMGLcM,518
26
+ music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-WD6jKrT1.js,sha256=7BbCF5I6aBQvrROCT2XxeCq7G9CAnelHbW19GcgrOfs,2466
27
+ music_assistant_frontend/assets/Default-BoZpM67W.css,sha256=SKUeKoBBLy_CFQWxH0UtPJaN_McHPhs16LyQhjbP3iQ,22433
28
+ music_assistant_frontend/assets/Default-D3QbBdka.js,sha256=QJ_rAbz0NO_jBdVLMEuM1XYqtKeLZdwzysStVNjeElU,90618
29
+ music_assistant_frontend/assets/EditConfig-Bo92pQzx.js,sha256=y2AZm58hPnWMEnkQJda-wAvqxgRW-4oNDJwZCYBfbz8,34331
30
+ music_assistant_frontend/assets/EditConfig-CcxrPgWJ.css,sha256=RpUswJyJT0HQ-ep-Hn5jLIZepucM4fkWPNE6Y37T9bQ,3164
31
+ music_assistant_frontend/assets/EditCoreConfig-Dn-oiBmv.js,sha256=tTIIaOFx5IzjUAyzmbqvxsNc4YD2AWA-kWYma-LhxRU,2106
32
+ music_assistant_frontend/assets/EditPlayer-C4U8nmpt.js,sha256=w3lsX0dbgEXNz9u_U_YGXowSXvZ-wG858H78DWpk7-Q,4802
33
+ music_assistant_frontend/assets/EditPlayerDsp-DIRF5Ifm.js,sha256=BKP-TU1J58ReP9A2zW0LFbZCSFUnKaGkfvcyc0qdJ2o,31437
34
+ music_assistant_frontend/assets/EditPlayerDsp-aJcSg6U0.css,sha256=GlXeccav62kMfLHLZSuyJ9fWvcekEUsh9Sy_2pGJhzw,16954
35
+ music_assistant_frontend/assets/EditProvider-DH6yzgKO.js,sha256=QAq8mFoSzH6BpAs_LxjHzMOHWF_BU2wOEpDvn6Y3Ct4,4142
36
+ music_assistant_frontend/assets/FrontendConfig-DGr-C8uc.js,sha256=ONpxSvKwuQFABgZAFT-4GqtVt1MS4JmP6CkVyhFY48M,3759
37
+ music_assistant_frontend/assets/HomeView-BprizvGE.css,sha256=fUa7IHNnC6PUi9qZTx722y7mRv_hFTRjBweu0lXEGWo,1021
38
+ music_assistant_frontend/assets/HomeView-CF-2XJYc.js,sha256=dnXpodZauOXTHvPfyrPF9MTAVYSzJH6tqwI0wH5WnQ0,5764
39
+ music_assistant_frontend/assets/ItemsListing-DBRgGdb9.css,sha256=P3RwV1WP3hH9v2AcneEA9LfXIEsnpqPoIVULpr6wLHQ,5001
40
+ music_assistant_frontend/assets/ItemsListing-DiFULYEk.js,sha256=dwDM32rXYGlZohoc6MxhTzp04zT0DTq0gqb8FSHkH14,33495
41
+ music_assistant_frontend/assets/JetBrainsMono-Medium-3S3k2nMz.woff2,sha256=CGxI376p3a_xMg9-CTmbjikk6IzmdFNyElXbO9u1o1M,93824
42
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe-iaUSDqqS.woff2,sha256=cqnIhnD7uFbLmy14E1MlQ0ki7gvfIDK4T9GiEE7kX2I,17628
43
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe-DnPa8eh0.woff2,sha256=2UzKt0AF6mMsVoDTPTRYZjTe1ZUDWZD6LP7y8eHMy1U,4340
44
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe-3VVPul60.woff2,sha256=OBFArT_m9IYDzEiYgD0sr7PlPAO3iXQchXGxkENs6EY,35532
45
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe-Dqr_DJ6L.woff2,sha256=iEkz-1eJtHjS2mikywvVzBONmV8f6pqVe6Kcs8APG_c,26428
46
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe-24ctNiOc.woff2,sha256=IfjJA5OdioFM2iNaCtvKyiBOa0GLJeSsKqCDrfAT4gE,13040
47
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe-B1tIhOr4.woff2,sha256=wGyj_LxffDfrt8hqaVAgCZEezYGDgRuuAvmx-7BUHds,22796
48
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA-CHnqiQTt.woff2,sha256=ILU1-oDIGJ47h9GAMDg4mWAgOohtUCvC7xhXr_wvONI,40128
49
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe-CBNGtO38.woff2,sha256=CsK9KVW843tLV4Zvsg2bKp1A7-Rur8cnapmVs23Es0o,40688
50
+ music_assistant_frontend/assets/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe-Bm5C9Z0M.woff2,sha256=6SF4VJbtLZjCJXyIpvg4r6asvuBcuEZwSFAb_iowFGE,20408
51
+ music_assistant_frontend/assets/LibraryAlbums-DsXvfpDF.js,sha256=iPLGj3rCqke2IbQSnd4PU-_fum8xpsxMN0SNE_30enw,1911
52
+ music_assistant_frontend/assets/LibraryArtists-CvhNCIa6.js,sha256=Im2zgZJr8-dEVBUjj0lENTRx_1X0bvz-NLMyRQlrf-w,1900
53
+ music_assistant_frontend/assets/LibraryAudiobooks-BXD39SCR.js,sha256=9c7M0--BIVVIiNdu9dfWmF2KgmHYlV96nx1HLbJtOdE,1911
54
+ music_assistant_frontend/assets/LibraryPlaylists-CVSNqj6B.js,sha256=p853Srhb9bLYImFkjIlL1i94x2rOipzIyNyMLO55Cxg,2495
55
+ music_assistant_frontend/assets/LibraryPodcasts-D-KYAv5K.js,sha256=sdzDwRmuD5Q-LUDfEQQvkOjlBL_Xv_8D2wVZEN6YgXQ,1881
56
+ music_assistant_frontend/assets/LibraryRadios-DXJv2vPJ.js,sha256=ZX1Mtlu1q08iKlsEyuDuvTZ1wxJ-97_fRKy7xKalC1I,2218
57
+ music_assistant_frontend/assets/LibraryTracks-BW-Ne0K5.js,sha256=hkyGvgZR1vFqUsYmtW4IsjjmRFjy_4AXF7Hx5jgKxGY,2295
58
+ music_assistant_frontend/assets/ListItem-CZjh-Z2L.css,sha256=xnRgaixJWmUAV5pxybu8lKUhRab1R9zWcMfru5v4zRM,620
59
+ music_assistant_frontend/assets/ListItem-DNqmHglz.js,sha256=_yAKA4QsAolVzXgxIBvFKJOLQ-0Rgut6Tffwbt7vp-c,2147
60
+ music_assistant_frontend/assets/MaterialIcons-Regular-BjXOXp5c.eot,sha256=5p1oejmhpRsj3rcHLP9jpvMcCsc29KsRJxEW82CW27o,143452
61
+ music_assistant_frontend/assets/MaterialIcons-Regular-DEUTIz1o.ttf,sha256=KcEfpTLrtY2371nIYOTrk1vCkhqGVBctjoieUfhcYAQ,347588
62
+ music_assistant_frontend/assets/MaterialIcons-Regular-DOtZ65Va.woff2,sha256=V0PtPZFhahD8orwroPbwcHMAwFvcZbxtnU-yzXUlP_4,125116
63
+ music_assistant_frontend/assets/MaterialIcons-Regular-FsbMSDLx.woff,sha256=Eew4KjjcyrlF5NA5xYRL1X385gKnrevNGYeeQKG-gSY,160576
64
+ music_assistant_frontend/assets/MediaItemImages-B-oQ8T4k.js,sha256=bO5_F7-uAU-9Rqhsha0aSq6SbXGH39q9vdAhmbbrMTs,2821
65
+ music_assistant_frontend/assets/MediaItemImages-EU1ndGHN.css,sha256=4whfB9baW-AyAjdI98vrVnhNTHbpYAo4YaXP5AdDunw,770
66
+ music_assistant_frontend/assets/MediaItemThumb-Djieuu-m.js,sha256=L6jdVINn4VXqhevlBJz6hdzRLmcf8bIlIp3XLEO2Amc,111
67
+ music_assistant_frontend/assets/PanelviewItemCompact-BzbA-hBb.css,sha256=cBsEn2SKuOGe3osTCHzvvE_eoVXVFF2KdnjrATcEPZ0,833
68
+ music_assistant_frontend/assets/PanelviewItemCompact-zZvQaI6t.js,sha256=zJTrtQjknBvQmcA7Aw4Xja-JB-YQ_c_DA_bwGgra5f4,4080
69
+ music_assistant_frontend/assets/PlayerCard-B-1h1GH8.css,sha256=JIqCYyn_ynbzH9zDBJdNVcHCZc6Ay3WLWKvnEmqV6Oc,2702
70
+ music_assistant_frontend/assets/PlayerCard-CbOeDESo.js,sha256=4WMO5YynWWvP0A3gnIt2cydCu92kSBDgIXl0X5QIKO8,19465
71
+ music_assistant_frontend/assets/Players-CMiHL1Xr.js,sha256=DX6hVMJsJL7TVBBsGLNIXKfkuT86ulYh8UKc_GVJTRE,12390
72
+ music_assistant_frontend/assets/Players-DiFMAcvk.css,sha256=QrbyjS_STFM_voRuFNTgfCxS32o1HA86Dh1yRZ4VAB8,4555
73
+ music_assistant_frontend/assets/PlaylistDetails-BYOLLggx.js,sha256=MAPUCETQDZUAkl1wdE0U0UyH2yPaiJKGrr-WcYvVlEc,1944
74
+ music_assistant_frontend/assets/PodcastDetails-BMWkoQkv.js,sha256=VFTBhbLGOAhc1QbzB3av8gE_yx2FaSoKHzJyb9-eG0M,1912
75
+ music_assistant_frontend/assets/ProviderDetails-sWAPBlBe.css,sha256=HimbEA1ciknydjrjY-9zxi9UsMgghXk7UjO43Nmp_o0,373
76
+ music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-DzvsLzds.js,sha256=aHbPY8Wo3kYcU-ZYKHLP6J-92jQnGUOfS6FnPW3EZmI,13304
77
+ music_assistant_frontend/assets/Providers-BVL70bSb.js,sha256=KgRbobMsLwp3_vfdGQBCVR-h5OrHETxQY21kt2VrpHY,17818
78
+ music_assistant_frontend/assets/Providers-Df6R6NDc.css,sha256=5FQ3eTFYSgOneGMdRXJgRGpXTz6W6NDEBqWQJPvZSgM,4549
79
+ music_assistant_frontend/assets/RadioDetails-Dk19WXMn.js,sha256=qTQ0w-5q2iRYsbO8ME7_txyEMLnpi1GaOqGDhuMYrVo,1828
80
+ music_assistant_frontend/assets/RemoteAccessSettings-Bf5s7Cwr.css,sha256=bkNOAtUmBaaCPT2WzzPoWr9dlYxMZiPuHbXSDanLXT0,5453
81
+ music_assistant_frontend/assets/RemoteAccessSettings-Cc9VhqAV.js,sha256=46Ma5u3NZFWG2BgPR99StqyeIz7-uvTJqO-gGP5Ym5U,14633
82
+ music_assistant_frontend/assets/Search-gIzJ4Lef.js,sha256=nizYIC1e6FQCtHFe4floOJ8Bhj-LniMMguJ8c1nCvvo,4687
83
+ music_assistant_frontend/assets/ServerLogs-D16I7ozL.css,sha256=5BPgyx9HuiyDwA1aTSVXye3UQxnfwIaSL3e-dI0a4Cs,429
84
+ music_assistant_frontend/assets/ServerLogs-DEmjg0ji.js,sha256=ecEsHZwtFJbbgUBpA0AE_Fpyu4m2ww3VEYyDTNXHpNs,3335
85
+ music_assistant_frontend/assets/Settings-BPCFcSEv.js,sha256=FkHqb9wTBb-7TeSxb3QWtTXxGKxK9qQ3BHN3MntO8cg,8738
86
+ music_assistant_frontend/assets/Settings-CbTYv9HY.css,sha256=AqVi6AgHnfLWdSGs6GcIhsIF1w_gOfFjSGiczlLEYGM,1974
87
+ music_assistant_frontend/assets/SystemConfig-BKi5ffMS.css,sha256=zZIb8jgnOlq_m7ZsGsf8DJpNcC_jrMQz-RqXxoq9jSk,1100
88
+ music_assistant_frontend/assets/SystemConfig-DzuRfqZX.js,sha256=y7jA0xUYwipUl4u8hX91WsmB9sZ-317PyjJLqEoCkt8,2426
89
+ music_assistant_frontend/assets/Toolbar-DOjWle_n.css,sha256=AkXwhSq3RQpNRz2tj051kKzZPRTWcENB5SAJTWc0hlY,2456
90
+ music_assistant_frontend/assets/Toolbar-xH_GEfSi.js,sha256=i6kApZehbn7iljK3C6r5u05bfJTDGWU_MAkSoH3zP3c,6418
91
+ music_assistant_frontend/assets/TrackDetails-Bpl4yjoA.js,sha256=xuoN8ju_VvQzfAksYunp96ZH3q4aSjU3PO_sIiFi0iY,2373
92
+ music_assistant_frontend/assets/UserManagement-BXsqKl-G.css,sha256=yiMcqPnzrVX8JnBwxJowYBPyhfUjl2KtHWD3Lp1b7DU,2603
93
+ music_assistant_frontend/assets/UserManagement-BmZul5Bv.js,sha256=zu6ZNwrklDq-D4gHhymm-WQifR5Lv6lfHdHiw-AOzg8,23940
94
+ music_assistant_frontend/assets/UserProfile-2WJSaYoR.css,sha256=E1PrFhrEWtUK0t4CWl7M9nWmCJjhWCk0ABGGba0hVd0,4938
95
+ music_assistant_frontend/assets/UserProfile-C9aw6Mo0.js,sha256=Wyiln-eWeyIj4HXjhuXI4y8SBSv5QjlEbK5e80Q2dmE,11943
96
+ music_assistant_frontend/assets/VAlert-BDbtqfCV.css,sha256=Vucg-AYMS00BwvDbRzGXC_ibDc1j3FNPD5sAoM_3CaM,4750
97
+ music_assistant_frontend/assets/VAlert-CBrxai34.js,sha256=uru-9N8yXB4-JaFCMseuf0GpFhMI8VzXuZf4FKNrhmA,3167
98
+ music_assistant_frontend/assets/VCheckboxBtn-BMAdXnae.js,sha256=qdiMHySWdzoTsOM_PaVLlQiZpxZuYRKDB5UuvbBniKk,941
99
+ music_assistant_frontend/assets/VDialog-BndVdZhi.js,sha256=ALbeHTeoMWhOIICKH0s3jmuLATv4hntP7lJud_jNfY4,1601
100
+ music_assistant_frontend/assets/VDialog-DwTSAOeg.css,sha256=kf2DYyHyyVeitBzbysh0KagMv09hKJKHmCy0phlC3EM,2663
101
+ music_assistant_frontend/assets/VExpansionPanels-B8KjM0Qi.css,sha256=HvFph4IDJRfrMhZpLR8haQPwppUq2F8SGMAwkPy3f1A,6479
102
+ music_assistant_frontend/assets/VExpansionPanels-lmUrDJt6.js,sha256=davQkIWlqSfjn9g8ztPte_1ckfz93PFhPw39xDFzY7o,4885
103
+ music_assistant_frontend/assets/VForm-Dpln05ME.js,sha256=D5W2zFCOAcEuI7-h9B-vSwmAMWMKZaYlIR--aGL5tzU,685
104
+ music_assistant_frontend/assets/VInfiniteScroll-B-XMauN8.css,sha256=y76PO_VOtZzrM1IJRAna1AR-tgX6UIOwiQ34EnlzLu4,1004
105
+ music_assistant_frontend/assets/VInfiniteScroll-B5bUrC-Z.js,sha256=379-orDLCYRt7-ChgBixciIPwQXazf4ppaHtAW8Lfp4,3670
106
+ music_assistant_frontend/assets/VSelect-DMb2DNZp.css,sha256=_6f_mGImM52JP0l5drHpriGDAASlkpeJjEJNepNO-8U,1680
107
+ music_assistant_frontend/assets/VSelect-uSApsKq0.js,sha256=HDcZdliws5zISms-6Oa8BHmzul4lezBYi8rHFJeKcTw,9055
108
+ music_assistant_frontend/assets/VSelectionControl-CIeJsqfW.css,sha256=IKnS5pGaKnwG6DjIwblAYhGk7GUN3LsCW85ePQIK-v8,2346
109
+ music_assistant_frontend/assets/VSelectionControl-S-aELuKm.js,sha256=tytuPWDRWi9bQwDf4L1G45SCgIAw2rIirCXp2CP5_Rg,4879
110
+ music_assistant_frontend/assets/VSlider-DlBvQp-0.css,sha256=-u-E3y9Xc9IDIWDtZkvQY7JKz6J00rSWfnoaqrGaI7M,10262
111
+ music_assistant_frontend/assets/VSlider-DzdWVMUa.js,sha256=9hAjuvnIFSkhR9cUDC5tHcmufgOQC0KC01EOvw4Lvm4,11405
112
+ music_assistant_frontend/assets/VSwitch-B-1g31ug.js,sha256=xsc7NlAz9ZkmxBjT3rRVIdlKIfa0VZS-lliDjYyDghU,2646
113
+ music_assistant_frontend/assets/VSwitch-Mm7Rd7At.css,sha256=yFH4tt2mx5UEjiYhVFTpbCO0ZC3JwaFnBhfv7W1kMCc,5027
114
+ music_assistant_frontend/assets/VToolbar-D1tRNhN6.css,sha256=jDwKwEP2lgwbdlPgD57dNs07_NuMfLxy4Ttk-wEBCVA,2901
115
+ music_assistant_frontend/assets/VToolbar-hGVdN8lh.js,sha256=-l1U98huZXExYgjjXLu0KZcKPUtymhexian6JXLa_UU,2897
116
+ music_assistant_frontend/assets/VVirtualScroll-BNcY_ygg.css,sha256=QZ3T9ijpU6HvSuqEnIgq5cW44CnnaO1uOjPJHffZ6a4,137
117
+ music_assistant_frontend/assets/VVirtualScroll-C1eeqQrQ.js,sha256=8dNUDbyEyTd4BetmfwRFK5lXZS7LkbmV7E-h8JtQsJI,4938
118
+ music_assistant_frontend/assets/WidgetRow-CzKBwQIP.css,sha256=lyPAMs73TVc8R4BV1mokxUCXy3fbdGYxtg900U1aFso,746
119
+ music_assistant_frontend/assets/WidgetRow-DKnAiOkf.js,sha256=3bwhvASxhw0d3VpWNRjzq8-JRFCx8MOgujU2rBgKmME,2690
120
+ music_assistant_frontend/assets/almost_silent-BMvfGi7_.mp3,sha256=zlpyB67yZab5YtFl10bgzaQN5M3fQthBh3ufeI5Cvkk,496896
121
+ music_assistant_frontend/assets/constants-CXMxJR4j.js,sha256=wdFJN_eO5H66v8i-8gdcmLErtETVs_vnNhAXEJFm5B0,157
122
+ music_assistant_frontend/assets/cover_dark-DW8aYTk2.png,sha256=dUAs0EeAqYs_6vBCZ0ozzx304HNO3rNU9_Fwa2kRRtw,11926
123
+ music_assistant_frontend/assets/cover_light-Dxw-EaOr.png,sha256=uDKunsTNFXOKAmsTa6qVL6za3t2B0iEx3EtxvJV5Nzk,11831
124
+ music_assistant_frontend/assets/fallback-DFk8zSGg.png,sha256=0P8oAOi7n-sBYG7EIu22m6b7UmFoNoi0pi3neF1SxPo,10609
125
+ music_assistant_frontend/assets/hires-DgAYKrO8.png,sha256=Q4xwRtgLKtqFnL0zetHWCGDqX8CPFxzaXAX7C7diCU0,16057
126
+ music_assistant_frontend/assets/icon-U5wS6iOz.svg,sha256=Q2A7xPBg88m_RqImohKbMqNZV6_tRgs_7k8IREXUQAM,11197
127
+ music_assistant_frontend/assets/index-W5yBuLNV.css,sha256=hC-JpJ47s_GeE3Tt1hLd2Ski8G1OMewAejV22rdEI7c,827764
128
+ music_assistant_frontend/assets/index-kQIztB-E.js,sha256=_2ttfd8KliaTKWnsxsv_gXw505hXaiurIrGBypK4WeU,4979
129
+ music_assistant_frontend/assets/index-rZUS0c3q.js,sha256=jWwS3-kxM8R4ilN829D3xkB_HgJhwKhTuq9fZDSuUMo,1897735
130
+ music_assistant_frontend/assets/index.browser-OxPLOBIU.js,sha256=7Yk2rv9f9OtHxh8jSidiX3ANprqgSrYd36bysHaCvgE,196
131
+ music_assistant_frontend/assets/info_gradient-C5d1dalX.jpg,sha256=pK79HYRLHfB_2eV7Tx1gEpbAd22HhVqnXNlX5l_Q3H4,28226
132
+ music_assistant_frontend/assets/m4a-BFCodQZL.png,sha256=RTMbBczAp_wltH1X-K67zy4sfhHXhEFbX57LCikUSIQ,9150
133
+ music_assistant_frontend/assets/marquee_text_sync-AT1GwuhW.js,sha256=JB017vtnjqQ-N5UeDbi1vLBOIBG_fKZEOSh_Drfik24,3362
134
+ music_assistant_frontend/assets/marquee_text_sync-CWCHA3k2.css,sha256=gwe4BnUUGwPY3Wu6usHILl8FFkF3LYJzrA9952JO2FQ,212
135
+ music_assistant_frontend/assets/material-icons-outlined-DZhiGvEA.woff2,sha256=NdyopxRaF8jRMG8lo8oJFXjhU5bwsi1h645zJirHVXc,155276
136
+ music_assistant_frontend/assets/materialdesignicons-webfont-B7mPwVP_.ttf,sha256=YeirpaTpgf4iz3yOi82-oAR251xiw38Bv37jM2HWhCg,1307660
137
+ music_assistant_frontend/assets/materialdesignicons-webfont-CSr8KVlo.eot,sha256=CxgxBNL8XyYZbnc8d72vLgVQn9QlnS0V7O3Kebh-hPk,1307880
138
+ music_assistant_frontend/assets/materialdesignicons-webfont-Dp5v-WZN.woff2,sha256=Zi_vqPL4qVwYWI0hd0eJwQfGTnccvmWmmvRikcQxGvw,403216
139
+ music_assistant_frontend/assets/materialdesignicons-webfont-PXm3-2wK.woff,sha256=pZKKDVwvYk5G-Y2bFcL2AEU3f3xZTdeKF1kTLqO0Y-s,587984
140
+ music_assistant_frontend/assets/open-home-foundation-logo-C7bc6Uqr.svg,sha256=K5fxNXy6ok2DDSidGjtznJfiQNzJiZomuI25atFh8Wo,8745
141
+ music_assistant_frontend/assets/userPreferences-Cm6AcKY5.css,sha256=bPrvrv9bTfonZXaDN3nxawHYm4Ldy1VX3ThI2nE968k,789
142
+ music_assistant_frontend/assets/userPreferences-a0gVUlkp.js,sha256=lcFh6BDFMlfS0QFJw-kMWGRUKyzHXkjVGXHSc-qU3Ck,2566
143
+ music_assistant_frontend/assets/workbox-window.prod.es5-BIl4cyR9.js,sha256=73XcU4p01jAJTXRTvOmA9OfHgJZwDUBInY6tGREx2Lo,5761
144
+ music_assistant_frontend-2.17.28.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
145
+ music_assistant_frontend-2.17.28.dist-info/METADATA,sha256=hys791PIK_bSMcmqt3-7vl-b1zkqVe_bF0ahfYYdrEw,3007
146
+ music_assistant_frontend-2.17.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
147
+ music_assistant_frontend-2.17.28.dist-info/top_level.txt,sha256=XjtvyM66vdcfJakG0XqhazCKdoWP3eHELRvTLokYRcM,25
148
+ music_assistant_frontend-2.17.28.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- .font-monospace[data-v-450e3409]{font-family:monospace;font-size:.9em}.info-list-item[data-v-450e3409]{min-height:48px}.info-label[data-v-450e3409]{font-size:.875rem;font-weight:500;color:rgba(var(--v-theme-on-surface),.7)}.info-value[data-v-450e3409]{font-size:.875rem;color:rgba(var(--v-theme-on-surface),.9);text-align:right;word-break:break-all}@media (max-width: 600px){.info-list-item[data-v-450e3409] .v-list-item__content{display:block!important}.info-list-item[data-v-450e3409] .v-list-item__append{margin-top:4px;margin-left:0!important;align-self:flex-start!important}.info-value[data-v-450e3409]{text-align:left}}.foundation-card[data-v-450e3409]{cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.foundation-card[data-v-450e3409]:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0003!important}.foundation-logo[data-v-450e3409]{display:flex;justify-content:center;align-items:center;padding:0 24px}.foundation-img[data-v-450e3409]{max-width:400px;width:100%;height:auto;opacity:.9;transition:opacity .2s ease}.foundation-card:hover .foundation-img[data-v-450e3409]{opacity:1}@media (prefers-color-scheme: dark){[data-v-450e3409] .v-avatar{opacity:.9}}
@@ -1 +0,0 @@
1
- import{C as z}from"./Container-D5KFPVjs.js";import{aw as $,i as y,aN as u,a3 as L,av as c,aG as b,ay as g,aE as e,o as s,be as h,bf as l,aJ as i,aL as a,aS as n,c1 as m,aD as v,az as k,aH as o,aK as r,E as f,aB as d,bI as I,aQ as _,bC as p,_ as V}from"./index-Dj6UKNsX.js";import"./index-kQIztB-E.js";const A=""+new URL("open-home-foundation-logo-C7bc6Uqr.svg",import.meta.url).href,S={class:"info-value"},T={class:"info-value"},N={class:"foundation-text text-subtitle-1 mb-4"},B={class:"foundation-logo"},E=["src"],R={class:"info-value"},U={class:"info-value"},q={class:"info-value"},D={class:"info-value"},H={class:"info-value"},P=$({__name:"About",setup(F){const C=y(()=>"https://github.com/music-assistant/server/releases"),w=y(()=>{const t=u.serverInfo.value?.server_version||"";return t.includes("beta")||t.startsWith("0.")?"https://beta.music-assistant.io":"https://music-assistant.io"});return L(async()=>{c.libraryArtistsCount=await u.getLibraryArtistsCount(),c.libraryAlbumsCount=await u.getLibraryAlbumsCount(),c.libraryTracksCount=await u.getLibraryTracksCount(),c.libraryPlaylistsCount=await u.getLibraryPlaylistsCount(),c.libraryRadiosCount=await u.getLibraryRadiosCount()}),(t,G)=>(g(),b(z,null,{default:e(()=>[s(_,{class:"mb-4",elevation:"0",variant:"flat"},{default:e(()=>[s(h,{class:"text-subtitle-1 font-weight-bold py-3"},{default:e(()=>[s(i,{icon:"mdi-information-outline",class:"mr-2"}),l(" "+a(t.$t("settings.version_info")),1)]),_:1}),s(n),s(m,{class:"pa-0"},{default:e(()=>[s(v,{class:"py-0","bg-color":"transparent"},{default:e(()=>[s(o,{class:"info-list-item"},{append:e(()=>[f("span",S,a(d(u).serverInfo.value?.server_version),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.server_version")),1)]),_:1})]),_:1}),d(u).serverInfo.value?.homeassistant_addon?k("",!0):(g(),b(n,{key:0})),d(u).serverInfo.value?.homeassistant_addon?k("",!0):(g(),b(o,{key:1,class:"info-list-item"},{append:e(()=>[f("span",T,a(d(u).serverInfo.value?.base_url),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.server_base_url")),1)]),_:1})]),_:1})),s(n),s(o,{class:"info-list-item"},{append:e(()=>[s(I,{color:d(u).serverInfo.value?.homeassistant_addon?"success":"default",size:"small",variant:"flat"},{default:e(()=>[s(i,{icon:d(u).serverInfo.value?.homeassistant_addon?"mdi-check":"mdi-close",start:""},null,8,["icon"]),l(" "+a(d(u).serverInfo.value?.homeassistant_addon?t.$t("yes"):t.$t("no")),1)]),_:1},8,["color"])]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.server_as_addon")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),s(_,{href:"https://www.openhomefoundation.org/",target:"_blank",class:"foundation-card mb-4",elevation:"0",variant:"flat"},{default:e(()=>[s(m,{class:"text-center py-6"},{default:e(()=>[f("div",N,a(t.$t("settings.proud_part_of")),1),f("div",B,[f("img",{src:d(A),alt:"Open Home Foundation",class:"foundation-img"},null,8,E)])]),_:1})]),_:1}),s(_,{class:"mb-4",elevation:"0",variant:"flat"},{default:e(()=>[s(h,{class:"text-subtitle-1 font-weight-bold py-3"},{default:e(()=>[s(i,{icon:"mdi-music-box-multiple",class:"mr-2"}),l(" "+a(t.$t("settings.library_stats")),1)]),_:1}),s(n),s(m,{class:"pa-0"},{default:e(()=>[s(v,{class:"py-0","bg-color":"transparent"},{default:e(()=>[s(o,{class:"info-list-item"},{append:e(()=>[f("span",R,a((d(c).libraryArtistsCount||0).toLocaleString()),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.artists_in_library")),1)]),_:1})]),_:1}),s(n),s(o,{class:"info-list-item"},{append:e(()=>[f("span",U,a((d(c).libraryAlbumsCount||0).toLocaleString()),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.albums_in_library")),1)]),_:1})]),_:1}),s(n),s(o,{class:"info-list-item"},{append:e(()=>[f("span",q,a((d(c).libraryTracksCount||0).toLocaleString()),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.tracks_in_library")),1)]),_:1})]),_:1}),s(n),s(o,{class:"info-list-item"},{append:e(()=>[f("span",D,a((d(c).libraryPlaylistsCount||0).toLocaleString()),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.playlists_in_library")),1)]),_:1})]),_:1}),s(n),s(o,{class:"info-list-item"},{append:e(()=>[f("span",H,a((d(c).libraryRadiosCount||0).toLocaleString()),1)]),default:e(()=>[s(r,{class:"info-label"},{default:e(()=>[l(a(t.$t("settings.radio_in_library")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),s(_,{class:"mb-4",elevation:"0",variant:"flat"},{default:e(()=>[s(h,{class:"text-subtitle-1 font-weight-bold py-3"},{default:e(()=>[s(i,{icon:"mdi-link-variant",class:"mr-2"}),l(" "+a(t.$t("settings.links")),1)]),_:1}),s(n),s(m,{class:"pa-0"},{default:e(()=>[s(v,{class:"py-0","bg-color":"transparent"},{default:e(()=>[s(o,{href:C.value,target:"_blank",link:"",class:"link-item"},{prepend:e(()=>[s(p,{color:"blue-grey-lighten-4",size:"36"},{default:e(()=>[s(i,{icon:"mdi-text-box-outline",color:"blue-grey-darken-2",size:"small"})]),_:1})]),append:e(()=>[s(i,{icon:"mdi-open-in-new",size:"small"})]),default:e(()=>[s(r,null,{default:e(()=>[l(a(t.$t("settings.changelog")),1)]),_:1})]),_:1},8,["href"]),s(n),s(o,{href:w.value,target:"_blank",link:"",class:"link-item"},{prepend:e(()=>[s(p,{color:"indigo-lighten-4",size:"36"},{default:e(()=>[s(i,{icon:"mdi-bookshelf",color:"indigo-darken-2",size:"small"})]),_:1})]),append:e(()=>[s(i,{icon:"mdi-open-in-new",size:"small"})]),default:e(()=>[s(r,null,{default:e(()=>[l(a(t.$t("settings.documentation")),1)]),_:1})]),_:1},8,["href"]),s(n),s(o,{href:"https://github.com/orgs/music-assistant/discussions/categories/feature-requests-and-ideas",target:"_blank",link:"",class:"link-item"},{prepend:e(()=>[s(p,{color:"amber-lighten-4",size:"36"},{default:e(()=>[s(i,{icon:"mdi-lightbulb-outline",color:"amber-darken-3",size:"small"})]),_:1})]),append:e(()=>[s(i,{icon:"mdi-open-in-new",size:"small"})]),default:e(()=>[s(r,null,{default:e(()=>[l(a(t.$t("settings.feature_requests")),1)]),_:1})]),_:1}),s(n),s(o,{href:"https://github.com/music-assistant/support",target:"_blank",link:"",class:"link-item"},{prepend:e(()=>[s(p,{color:"red-lighten-4",size:"36"},{default:e(()=>[s(i,{icon:"mdi-bug",color:"red-darken-2",size:"small"})]),_:1})]),append:e(()=>[s(i,{icon:"mdi-open-in-new",size:"small"})]),default:e(()=>[s(r,null,{default:e(()=>[l(a(t.$t("settings.bug_reports")),1)]),_:1})]),_:1}),s(n),s(o,{href:"https://github.com/orgs/music-assistant/discussions",target:"_blank",link:"",class:"link-item"},{prepend:e(()=>[s(p,{color:"purple-lighten-4",size:"36"},{default:e(()=>[s(i,{icon:"mdi-forum",color:"purple-darken-2",size:"small"})]),_:1})]),append:e(()=>[s(i,{icon:"mdi-open-in-new",size:"small"})]),default:e(()=>[s(r,null,{default:e(()=>[l(a(t.$t("settings.discussion_forums")),1)]),_:1})]),_:1}),s(n),s(o,{href:"https://github.com/music-assistant/server/blob/dev/LICENSE",target:"_blank",link:"",class:"link-item"},{prepend:e(()=>[s(p,{color:"green-lighten-4",size:"36"},{default:e(()=>[s(i,{icon:"mdi-license",color:"green-darken-2",size:"small"})]),_:1})]),append:e(()=>[s(i,{icon:"mdi-open-in-new",size:"small"})]),default:e(()=>[s(r,null,{default:e(()=>[l(a(t.$t("settings.license")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}}),O=V(P,[["__scopeId","data-v-450e3409"]]);export{O as default};
@@ -1 +0,0 @@
1
- import{aw as M,bR as $,bS as C,J as r,L as V,aG as D,ay as U,aE as v,o as t,aQ as A,E as y,aS as I,bF as m,bT as L,bU as N,M as g,bf as c,aL as T,aO as S,aN as f,bs as h,av as w}from"./index-Dj6UKNsX.js";import{T as R}from"./Toolbar-B32L_M7G.js";import{V as E}from"./VDialog-5KHkpnhE.js";const F={style:{padding:"15px"}},J=M({__name:"AddManualLink",props:$({type:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:["update:modelValue"],setup(p){const d=C(p,"modelValue"),k=p,o=r(""),s=r(""),n=r(""),i=r(!1),l=r();V(()=>d.value,e=>{e!=null&&(w.dialogActive=e),e==!1&&(o.value="",s.value="",n.value="",l.value=void 0)},{immediate:!0}),V(()=>l.value,e=>{if(e){s.value||(s.value=e.name);for(const a of e.metadata.images||[])if(a.type=="thumb"){n.value=a.path;break}}});const b=()=>{!o.value||!["http","rtsp"].some(e=>o.value.startsWith(e))||(i.value=!0,k.type==S.RADIO?f.getRadio(o.value,"builtin").then(e=>{l.value=e}).catch(e=>{console.error(e),l.value=void 0}).finally(()=>{i.value=!1}):f.getTrack(o.value,"builtin").then(e=>{l.value=e}).catch(e=>{console.error(e),l.value=void 0}).finally(()=>{i.value=!1}))},B=function(){b(),l.value&&(l.value.name=s.value||l.value.name,delete l.value.sort_name,n.value&&(l.value.metadata.images=[{type:h.THUMB,path:n.value,provider:"builtin",remotely_accessible:!0}]),f.addItemToLibrary(l.value,!0).then(()=>{d.value=!1}))};return(e,a)=>(U(),D(E,{modelValue:d.value,"onUpdate:modelValue":a[4]||(a[4]=u=>d.value=u),transition:"dialog-bottom-transition"},{default:v(()=>[t(A,null,{default:v(()=>[t(R,{icon:"mdi-playlist-plus",title:e.$t("add_url_item")},null,8,["title"]),t(I),a[5]||(a[5]=y("br",null,null,-1)),y("div",F,[t(m,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=u=>o.value=u),variant:"outlined",label:e.$t("enter_url"),disabled:i.value,onBlur:b},null,8,["modelValue","label","disabled"]),t(m,{modelValue:s.value,"onUpdate:modelValue":a[1]||(a[1]=u=>s.value=u),variant:"outlined",label:e.$t("enter_name"),disabled:i.value},null,8,["modelValue","label","disabled"]),t(m,{modelValue:n.value,"onUpdate:modelValue":a[2]||(a[2]=u=>n.value=u),variant:"outlined",label:e.$t("image_url"),disabled:i.value},null,8,["modelValue","label","disabled"]),t(L,null,{default:v(()=>[t(N),t(g,{variant:"outlined",onClick:a[3]||(a[3]=u=>d.value=!1)},{default:v(()=>[c(T(e.$t("cancel")),1)]),_:1}),t(g,{variant:"flat",color:"primary",disabled:i.value,onClick:B},{default:v(()=>[c(T(e.$t("save")),1)]),_:1},8,["disabled"])]),_:1})])]),_:1})]),_:1},8,["modelValue"]))}});export{J as _};
@@ -1 +0,0 @@
1
- import{aw as P,J as i,i as T,aN as g,bp as S,ax as H,ay as d,o as t,aE as r,E as s,aG as V,be as L,bf as p,aL as m,aB as f,b_ as C,bg as k,aS as M,az as N,bF as U,M as w,aC as G,c1 as D}from"./index-Dj6UKNsX.js";import{V as E}from"./VForm-DDKxMAmn.js";import{V as F}from"./VSelect-VNw4nPSb.js";import{V as O}from"./VSwitch-DQEiK9D_.js";import"./VVirtualScroll-Cg5AQGzG.js";import"./VCheckboxBtn-B5wUW3kZ.js";import"./VSelectionControl-CCjz0Lnv.js";const R={style:{"margin-left":"-5px","margin-right":"-5px"}},K=P({__name:"AddPlayerGroup",props:{provider:{}},setup(_){const $=G(),v=i(""),n=i([]),o=i(!0),b=i(!1),y=_,u=T(()=>g.getProvider(y.provider)),c=T(()=>Object.values(g.players).filter(l=>l.available&&l.type!=S.GROUP&&(l.provider==u.value?.lookup_key||y.provider==="universal_group"))),B=async function(){g.createPlayerGroup(y.provider,v.value,n.value,o.value),$.push({name:"playersettings"})};return(l,e)=>(d(),H("section",null,[t(D,null,{default:r(()=>[s("div",R,[t(L,null,{default:r(()=>[p(m(l.$t("settings.add_group_player")),1)]),_:1}),u.value?.lookup_key==="universal_group"?(d(),V(k,{key:0,style:{"white-space":"break-spaces"},innerHTML:f(C)(l.$t("settings.add_group_player_desc_universal"))},null,8,["innerHTML"])):(d(),V(k,{key:1,style:{"white-space":"break-spaces"},innerHTML:f(C)(l.$t("settings.add_group_player_desc",[u.value?.name]))},null,8,["innerHTML"])),e[6]||(e[6]=s("br",null,null,-1)),t(M),e[7]||(e[7]=s("br",null,null,-1)),e[8]||(e[8]=s("br",null,null,-1)),t(E,{ref:"form",modelValue:b.value,"onUpdate:modelValue":e[3]||(e[3]=a=>b.value=a),style:{"margin-right":"10px"}},{default:r(()=>[t(U,{modelValue:v.value,"onUpdate:modelValue":e[0]||(e[0]=a=>v.value=a),label:l.$t("settings.player_name"),variant:"outlined",clearable:"",required:"",rules:[a=>a.length>0||l.$t("settings.invalid_input")]},null,8,["modelValue","label","rules"]),t(F,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=a=>n.value=a),clearable:"",multiple:"",items:c.value,"item-title":"display_name","item-value":"player_id",label:l.$t("settings.group_members")},null,8,["modelValue","items","label"]),t(O,{modelValue:o.value,"onUpdate:modelValue":e[2]||(e[2]=a=>o.value=a),color:"primary",label:l.$t("settings.dynamic_members.label")},null,8,["modelValue","label"]),u.value?.lookup_key!=="universal_group"?(d(),V(k,{key:0,style:{"white-space":"break-spaces","padding-left":"0","margin-top":"-25px","margin-bottom":"35px"}},{default:r(()=>[p(m(l.$t("settings.dynamic_members.description")),1)]),_:1})):N("",!0),e[5]||(e[5]=s("br",null,null,-1)),t(w,{block:"",color:"primary",disabled:!b.value||n.value.length==0&&!o.value,onClick:B},{default:r(()=>[p(m(l.$t("settings.save")),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue"]),e[9]||(e[9]=s("br",null,null,-1)),t(w,{block:"",onClick:e[4]||(e[4]=a=>f($).back())},{default:r(()=>[p(m(l.$t("close")),1)]),_:1})])]),_:1})]))}});export{K as default};
@@ -1 +0,0 @@
1
- import{n as x}from"./index.browser-OxPLOBIU.js";import{aw as B,J as b,a3 as L,aN as o,b9 as S,a4 as H,L as N,ax as k,ay as d,o as a,aE as i,az as V,E as f,aB as r,aG as y,be as w,bf as v,aL as P,bg as h,b_ as C,aS as I,c1 as $,bT as j,M as D,aQ as U,b6 as z,bv as O,aC as G,bL as J}from"./index-Dj6UKNsX.js";import{E as Q}from"./EditConfig-B0XoDh_u.js";import"./VForm-DDKxMAmn.js";import"./VExpansionPanels-DboS79vY.js";import"./VDialog-5KHkpnhE.js";import"./VAlert-CFvRz3gu.js";import"./VSwitch-DQEiK9D_.js";import"./VSelectionControl-CCjz0Lnv.js";import"./VSlider-Dcfg9Wg5.js";import"./VSelect-VNw4nPSb.js";import"./VVirtualScroll-Cg5AQGzG.js";import"./VCheckboxBtn-B5wUW3kZ.js";const R={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},q={id:"auth",href:"",target:"_blank"},se=B({__name:"AddProviderDetails",props:{domain:{}},setup(l){const M=G(),m=b([]),g=x(11),u=b(!1),p=b(!1),c=l;L(()=>{const n=o.subscribe(S.AUTH_SESSION,e=>{if(e.object_id!==g)return;const t=e.data;p.value=!0,window.setTimeout(()=>{const s=document.getElementById("auth");s.setAttribute("href",t),s.click()},100)});H(n)}),N(()=>c.domain,async n=>{n&&(m.value=await o.getProviderConfigEntries(c.domain,void 0,void 0,{session_id:g}))},{immediate:!0});const T=async function(n){u.value=!0,o.saveProviderConfig(c.domain,n).then(()=>{M.push({name:"providersettings"})}).catch(e=>{alert(e)}).finally(()=>{u.value=!1,p.value=!1})},A=async function(n,e){u.value=!0;for(const t of m.value)t.value!==void 0&&e[t.key]==null&&(e[t.key]=t.value);e.session_id=g,o.getProviderConfigEntries(c.domain,void 0,n,e).then(t=>{m.value=t}).catch(t=>{alert(t)}).finally(()=>{u.value=!1,p.value=!1})},E=function(n){const e=[],{t}=J();for(const s of n)s.includes("@")?e.push(`[${s.replace("@","")}](https://github.com/${s.replace("@","")})`):e.push(s);return`**${t("settings.codeowners")}**: `+e.join(" / ")};return(n,e)=>(d(),k("section",null,[a($,null,{default:i(()=>[r(o).providerManifests[l.domain]?(d(),k("div",R,[a(w,null,{default:i(()=>[v(P(n.$t("settings.setup_provider",[r(o).providerManifests[l.domain].name])),1)]),_:1}),a(h,{innerHTML:r(C)(r(o).providerManifests[l.domain].description)},null,8,["innerHTML"]),e[1]||(e[1]=f("br",null,null,-1)),r(o).providerManifests[l.domain].codeowners.length?(d(),y(h,{key:0,innerHTML:r(C)(E(r(o).providerManifests[l.domain].codeowners))},null,8,["innerHTML"])):V("",!0)])):V("",!0),e[2]||(e[2]=f("br",null,null,-1)),a(I),e[3]||(e[3]=f("br",null,null,-1)),e[4]||(e[4]=f("br",null,null,-1)),a(Q,{"config-entries":m.value,disabled:!1,onSubmit:T,onAction:A},null,8,["config-entries"])]),_:1}),a(O,{modelValue:u.value,"onUpdate:modelValue":e[0]||(e[0]=t=>u.value=t),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:i(()=>[p.value?(d(),y(U,{key:0,style:{"background-color":"white"}},{default:i(()=>[a(w,null,{default:i(()=>[...e[5]||(e[5]=[v("Authenticating...",-1)])]),_:1}),a(h,null,{default:i(()=>[...e[6]||(e[6]=[v("A new tab/popup should be opened where you can authenticate",-1)])]),_:1}),a(j,null,{default:i(()=>[f("a",q,[a(D,null,{default:i(()=>[...e[7]||(e[7]=[v("Click here if the popup did not open",-1)])]),_:1})])]),_:1})]),_:1})):(d(),y(z,{key:1,indeterminate:"",size:"64",color:"primary"}))]),_:1},8,["modelValue"])]))}});export{se as default};
@@ -1 +0,0 @@
1
- import{I as w,_ as I}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js";import{I as v}from"./ItemsListing-BP5XXmLQ.js";import{M as g}from"./MediaItemImages-RwaXDWAp.js";import{aw as _,J as f,L as A,a3 as V,aN as l,b9 as h,a4 as D,ax as B,ay as s,o as E,aG as u,az as n,E as m,aB as M}from"./index-Dj6UKNsX.js";import"./Toolbar-B32L_M7G.js";import"./VToolbar-w3YLtQh8.js";import"./marquee_text_sync-R3hHMfp7.js";import"./MediaItemThumb-DYAHQAuC.js";import"./VDialog-5KHkpnhE.js";import"./Container-D5KFPVjs.js";import"./index-kQIztB-E.js";import"./ListItem-DXTT8_G5.js";import"./Button-faGxxowY.js";import"./userPreferences-CpcwN_LW.js";import"./VCheckboxBtn-B5wUW3kZ.js";import"./VSelectionControl-CCjz0Lnv.js";import"./PanelviewItemCompact-BKBJxxoM.js";import"./VInfiniteScroll-DataCA15.js";import"./VVirtualScroll-Cg5AQGzG.js";import"./VAlert-CFvRz3gu.js";const W=_({__name:"AlbumDetails",props:{itemId:{},provider:{}},setup(p){const r=p,e=f(),o=f(!1),b=async function(){o.value=!0,e.value=await l.getAlbum(r.itemId,r.provider),o.value=!1};A(()=>r.itemId,a=>{a&&b()},{immediate:!0}),V(()=>{const a=l.subscribe(h.MEDIA_ITEM_UPDATED,t=>{const i=t.data;if(e.value?.uri==i.uri)o.value=!0,e.value=i,o.value=!1;else if("provider_mappings"in i){for(const d of i.provider_mappings)if(d.item_id==r.itemId&&[d.provider_instance,d.provider_domain].includes(r.provider)){o.value=!0,e.value=i,o.value=!1;break}}});D(a)});const y=async function(a){return await l.getAlbumTracks(r.itemId,r.provider,a.libraryOnly)},c=async function(a){return await l.getAlbumVersions(e.value.item_id,e.value.provider)},k=async function(){e.value&&(e.value=await l.sendCommand("music/albums/update",{item_id:e.value.item_id,update:e.value,overwrite:!0}))};return(a,t)=>(s(),B("section",null,[E(w,{item:e.value,"active-provider":p.provider},null,8,["item","active-provider"]),e.value?(s(),u(v,{key:0,itemtype:"albumtracks","parent-item":e.value,"show-provider":!0,"show-track-number":!0,"show-favorites-only-filter":!0,"show-library-only-filter":e.value.provider=="library"&&M(l).hasStreamingProviders.value,"show-refresh-button":!1,"allow-key-hooks":!0,"load-items":y,"sort-keys":["track_number","name","sort_name","duration","duration_desc"],title:a.$t("tracks")},null,8,["parent-item","show-library-only-filter","title"])):n("",!0),t[1]||(t[1]=m("br",null,null,-1)),e.value?(s(),u(v,{key:1,itemtype:"albumversions","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!1,"show-refresh-button":!1,"load-items":c,"sort-keys":["provider","name","year"],title:a.$t("other_versions"),"hide-on-empty":!0},null,8,["parent-item","title"])):n("",!0),t[2]||(t[2]=m("br",null,null,-1)),e.value?.provider=="library"&&e.value?.metadata?.images?(s(),u(g,{key:2,modelValue:e.value.metadata.images,"onUpdate:modelValue":[t[0]||(t[0]=i=>e.value.metadata.images=i),k]},null,8,["modelValue"])):n("",!0),t[3]||(t[3]=m("br",null,null,-1)),e.value?(s(),u(I,{key:3,"item-details":e.value},null,8,["item-details"])):n("",!0),t[4]||(t[4]=m("br",null,null,-1))]))}});export{W as default};
@@ -1 +0,0 @@
1
- import{I as C,_ as h}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js";import{C as g}from"./Container-D5KFPVjs.js";import{T as w}from"./Toolbar-B32L_M7G.js";import{aw as y,J as f,i as E,ax as m,ay as t,o as u,aG as d,az as c,aS as V,aE as l,ag as x,aF as A,aD as T,aH as B,aB as D,bK as k,aL as v,b5 as L,E as I,bI as M,bf as N,aN as _,L as $,a3 as S,b9 as F,a4 as H}from"./index-Dj6UKNsX.js";import"./marquee_text_sync-R3hHMfp7.js";import"./MediaItemThumb-DYAHQAuC.js";import"./VDialog-5KHkpnhE.js";import"./ListItem-DXTT8_G5.js";import"./Button-faGxxowY.js";import"./index-kQIztB-E.js";import"./VToolbar-w3YLtQh8.js";const U={style:{"margin-bottom":"10px"}},z={style:{width:"50px"}},G={key:0,class:"text-caption"},J=y({__name:"Chapters",props:{itemDetails:{}},setup(r){const a=r,o=f(!0),e=function(){o.value=!o.value},p=E(()=>[{label:"tooltip.collapse_expand",icon:o.value?"mdi-chevron-up":"mdi-chevron-down",action:e,overflowAllowed:!1}]),s=function(n){!a.itemDetails||!k(a.itemDetails)||_.playMedia(a.itemDetails.uri,void 0,void 0,n.position.toString())};return(n,b)=>(t(),m("section",U,[u(w,{title:n.$t("chapters"),"menu-items":p.value,onTitleClicked:e},null,8,["title","menu-items"]),u(V),o.value?(t(),d(g,{key:0},{default:l(()=>[u(T,null,{default:l(()=>[(t(!0),m(x,null,A(r.itemDetails?.metadata?.chapters,i=>(t(),d(B,{key:i.position,disabled:!D(k)(r.itemDetails),onClick:K=>s(i)},{prepend:l(()=>[I("div",z,[u(M,null,{default:l(()=>[N(v(i.position),1)]),_:2},1024)])]),title:l(()=>[I("div",null,v(i.name),1)]),append:l(()=>[i.end?(t(),m("span",G,v(D(L)(i.end-i.start)),1)):c("",!0)]),_:2},1032,["disabled","onClick"]))),128))]),_:1})]),_:1})):c("",!0)]))}}),te=y({__name:"AudiobookDetails",props:{itemId:{},provider:{}},setup(r){const a=r,o=f(!1),e=f(),p=async function(){e.value=await _.getAudiobook(a.itemId,a.provider)};return $(()=>a.itemId,s=>{s&&p()},{immediate:!0}),S(()=>{const s=_.subscribe(F.MEDIA_ITEM_UPDATED,n=>{const b=n.data;e.value?.uri==b.uri&&(o.value=!0)});H(s)}),(s,n)=>(t(),m(x,null,[u(C,{item:e.value},null,8,["item"]),e.value&&e.value.metadata?.chapters?(t(),d(J,{key:0,"item-details":e.value},null,8,["item-details"])):c("",!0),e.value?(t(),d(h,{key:1,"item-details":e.value},null,8,["item-details"])):c("",!0)],64))}});export{te as default};
@@ -1 +0,0 @@
1
- import{I as v}from"./ItemsListing-BP5XXmLQ.js";import{aw as _,bL as x,J as B,i as u,ax as n,ay as l,o as E,aE as I,E as V,ag as C,aF as L,aG as S,az as F,aL as b,aJ as N,bk as d,aN as P,aO as O,_ as j}from"./index-Dj6UKNsX.js";import"./Container-D5KFPVjs.js";import"./index-kQIztB-E.js";import"./Toolbar-B32L_M7G.js";import"./VToolbar-w3YLtQh8.js";import"./Button-faGxxowY.js";import"./ListItem-DXTT8_G5.js";import"./userPreferences-CpcwN_LW.js";import"./VCheckboxBtn-B5wUW3kZ.js";import"./VSelectionControl-CCjz0Lnv.js";import"./MediaItemThumb-DYAHQAuC.js";import"./PanelviewItemCompact-BKBJxxoM.js";import"./VInfiniteScroll-DataCA15.js";import"./VVirtualScroll-Cg5AQGzG.js";import"./VAlert-CFvRz3gu.js";const z={class:"breadcrumb-container"},D=["onClick"],J={key:1,class:"breadcrumb-text"},T=_({__name:"BrowseView",props:{path:{}},setup(i){const o=i,{t:f}=x(),p=B(!1),k=u(()=>""),h=u(()=>{const e=[];if(e.push({text:f("browse"),path:null,clickable:o.path&&o.path!=="root"||!1}),o.path&&o.path!=="root")if(o.path.includes("://")){const[a,t]=o.path.split("://"),s=a+"://";if(e.push({text:s,path:s,clickable:t&&t.length>0||!1}),t&&t.length>0){const r=t.split("/").filter(c=>c.length>0);r.forEach((c,m)=>{const y=s+r.slice(0,m+1).join("/");e.push({text:c,path:y,clickable:m<r.length-1})})}}else{const a=o.path.split("/").filter(t=>t.length>0);a.forEach((t,s)=>{const r=a.slice(0,s+1).join("/");e.push({text:t,path:r,clickable:s<a.length-1})})}return e}),w=async function(e){const a=await P.browse(o.path);return p.value=a.every(t=>t.media_type===O.FOLDER),a},g=e=>{e===null?d.push({name:"browse"}):d.push({name:"browse",query:{path:e}})};return(e,a)=>(l(),n("section",null,[E(v,{itemtype:"browse","show-provider":!1,"show-library":!1,"show-favorites-only-filter":!1,"show-track-number":!1,"show-select-button":!!(i.path&&i.path!="root"&&!p.value),"load-items":w,"sort-keys":["original","name","name_desc"],path:i.path,"allow-key-hooks":!0,icon:"mdi-folder-outline",title:k.value},{title:I(()=>[V("div",z,[(l(!0),n(C,null,L(h.value,(t,s)=>(l(),n("span",{key:s,class:"breadcrumb-segment"},[t.clickable?(l(),n("button",{key:0,class:"breadcrumb-link",onClick:r=>g(t.path)},b(t.text),9,D)):(l(),n("span",J,b(t.text),1)),s<h.value.length-1?(l(),S(N,{key:2,icon:"mdi-chevron-right",size:"small",class:"breadcrumb-separator"})):F("",!0)]))),128))])]),_:1},8,["show-select-button","path","title"])]))}}),at=j(T,[["__scopeId","data-v-c0cbe0e2"]]);export{at as default};
@@ -1 +0,0 @@
1
- import{aw as w,bL as x,J as f,L as $,aG as c,ay as u,aE as t,o as l,aQ as B,be as F,r as N,bf as p,aL as d,c1 as U,ax as I,bF as h,ag as D,E,bT as _,bU as L,M as k,aN as A,aU as i}from"./index-Dj6UKNsX.js";import{V as S}from"./VDialog-5KHkpnhE.js";const q={class:"text-body-2 mb-2 text-grey-darken-1"},J=w({__name:"CreateTokenDialog",props:{modelValue:{type:Boolean},userId:{}},emits:["update:modelValue","created"],setup(V,{emit:C}){const{t:s}=x(),y=V,m=C,v=f(!1),o=f(""),a=f(""),b=()=>{o.value="",a.value="",requestAnimationFrame(()=>{m("update:modelValue",!1)})},g=async()=>{v.value=!0;try{const e=await A.createToken(o.value,y.userId);e?(i.success(s("auth.token_created")),a.value=e,m("created")):i.error(s("auth.token_create_failed"))}catch(e){i.error(e.message||s("auth.token_create_failed"))}finally{v.value=!1}};$(()=>y.modelValue,e=>{e||(o.value="",a.value="")});const T=async()=>{if(a.value)try{await navigator.clipboard.writeText(a.value),i.success(s("auth.token_copied"))}catch(e){console.error("Failed to copy token",e),i.error(s("auth.token_copy_failed"))}};return(e,n)=>(u(),c(S,{"model-value":V.modelValue,"max-width":"500","onUpdate:modelValue":n[2]||(n[2]=r=>m("update:modelValue",r))},{default:t(()=>[l(B,null,{default:t(()=>[l(F,{class:N(["text-h6 pa-6",{"pb-0":a.value,"pb-4":!a.value}])},{default:t(()=>[p(d(a.value?o.value:e.$t("auth.create_token")),1)]),_:1},8,["class"]),l(U,{class:"px-6 pb-2"},{default:t(()=>[a.value?(u(),I(D,{key:1},[E("p",q,d(e.$t("auth.copy_new_token_hint")),1),l(h,{modelValue:a.value,"onUpdate:modelValue":n[1]||(n[1]=r=>a.value=r),readonly:"",variant:"outlined",density:"comfortable",class:"mb-2","append-inner-icon":"mdi-content-copy","onClick:appendInner":T},null,8,["modelValue"])],64)):(u(),c(h,{key:0,modelValue:o.value,"onUpdate:modelValue":n[0]||(n[0]=r=>o.value=r),label:e.$t("auth.token_name"),variant:"outlined",density:"comfortable",hint:e.$t("auth.token_name_hint"),"persistent-hint":"",autofocus:""},null,8,["modelValue","label","hint"]))]),_:1}),a.value?(u(),c(_,{key:1,class:"px-6 pb-6 pt-0"},{default:t(()=>[l(k,{color:"primary",variant:"tonal",onClick:b},{default:t(()=>[p(d(e.$t("close")),1)]),_:1})]),_:1})):(u(),c(_,{key:0,class:"pa-6 pt-4"},{default:t(()=>[l(L),l(k,{variant:"text",onClick:b},{default:t(()=>[p(d(e.$t("cancel")),1)]),_:1}),l(k,{color:"primary",variant:"flat",loading:v.value,disabled:!o.value,onClick:g},{default:t(()=>[p(d(e.$t("create")),1)]),_:1},8,["loading","disabled"])]),_:1}))]),_:1})]),_:1},8,["model-value"]))}});export{J as _};
@@ -1 +0,0 @@
1
- .v-bottom-navigation{display:flex;max-width:100%;overflow:hidden;position:absolute;transition:transform,color,.2s,.1s cubic-bezier(.4,0,.2,1)}.v-bottom-navigation{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-bottom-navigation--border{border-width:thin;box-shadow:none}.v-bottom-navigation{border-radius:0}.v-bottom-navigation{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-bottom-navigation--active{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-bottom-navigation__content{display:flex;flex:none;font-size:.75rem;justify-content:center;transition:inherit;width:100%}.v-bottom-navigation .v-bottom-navigation__content>.v-btn{font-size:inherit;height:100%;max-width:168px;min-width:80px;text-transform:none;transition:inherit;width:auto}.v-bottom-navigation .v-bottom-navigation__content>.v-btn{border-radius:0}.v-bottom-navigation .v-bottom-navigation__content>.v-btn .v-btn__content,.v-bottom-navigation .v-bottom-navigation__content>.v-btn .v-btn__icon{transition:inherit}.v-bottom-navigation .v-bottom-navigation__content>.v-btn .v-btn__icon{font-size:1.5rem}.v-bottom-navigation--grow .v-bottom-navigation__content>.v-btn{flex-basis:0;flex-grow:1}.v-bottom-navigation--shift .v-bottom-navigation__content .v-btn:not(.v-btn--selected) .v-btn__content>span{transition:inherit;opacity:0}.v-bottom-navigation--shift .v-bottom-navigation__content .v-btn:not(.v-btn--selected) .v-btn__content{transform:translateY(.5rem)}.v-window{overflow:hidden}.v-window__container{display:flex;flex-direction:column;height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window__controls{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 16px;pointer-events:none}.v-window__controls>*{pointer-events:auto}.v-window--show-arrows-on-hover{overflow:hidden}.v-window--show-arrows-on-hover .v-window__left{transform:translate(-200%)}:has(.v-window__controls--right).v-window--show-arrows-on-hover .v-window__left{transform:translate(200%)}.v-window--show-arrows-on-hover .v-window__right{transform:translate(200%)}:has(.v-window__controls--left).v-window--show-arrows-on-hover .v-window__right{transform:translate(-200%)}.v-window--show-arrows-on-hover:hover .v-window__left,.v-window--show-arrows-on-hover:hover .v-window__right{transform:translate(0)}.v-window--vertical-arrows .v-window__controls{flex-direction:column;justify-content:center;gap:12px}.v-window--vertical-arrows .v-window__controls--left{align-items:start}.v-window--vertical-arrows .v-window__controls--right{align-items:end}.v-window--vertical-arrows .v-window__controls .v-window__left .v-icon,.v-window--vertical-arrows .v-window__controls .v-window__right .v-icon{transform:rotate(90deg)}@container style(--v-window-transition-duration){.v-window .v-window-item{transition-duration:var(--v-window-transition-duration)!important}}.v-window--crossfade>.v-window__container{isolation:isolate}.v-window--crossfade>.v-window__container>.v-window-item{mix-blend-mode:plus-lighter}.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion: reduce){.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active{transition-duration:0s}}.v-window-x-transition-leave-from,.v-window-x-transition-leave-to,.v-window-x-reverse-transition-leave-from,.v-window-x-reverse-transition-leave-to,.v-window-y-transition-leave-from,.v-window-y-transition-leave-to,.v-window-y-reverse-transition-leave-from,.v-window-y-reverse-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-x-transition-enter-from{transform:translate(100%)}.v-window-x-transition-leave-to,.v-window-x-reverse-transition-enter-from{transform:translate(-100%)}.v-window-x-reverse-transition-leave-to{transform:translate(100%)}.v-window-y-transition-enter-from{transform:translateY(100%)}.v-window-y-transition-leave-to,.v-window-y-reverse-transition-enter-from{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)}.v-window-crossfade-transition-enter-active,.v-window-crossfade-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window-crossfade-transition-leave-from,.v-window-crossfade-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-crossfade-transition-enter-from,.v-window-crossfade-transition-leave-to{opacity:0}.v-footer{align-items:center;display:flex;flex:1 1 auto;padding:8px 16px;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:height,width,transform,max-width,left,right,top,bottom}.v-footer{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-footer--border{border-width:thin;box-shadow:none}.v-footer{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-footer--absolute{position:absolute}.v-footer--fixed{position:fixed}.v-footer{border-radius:0}.v-footer{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-footer--rounded{border-radius:4px}.v-navigation-drawer{-webkit-overflow-scrolling:touch;background:rgb(var(--v-theme-surface));display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute}.v-navigation-drawer{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer{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-navigation-drawer{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}@media (prefers-reduced-motion: reduce){.v-navigation-drawer{transition:none}}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary.v-navigation-drawer--active{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img:not(.v-img__img){height:inherit;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:.85;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.v-tab.v-tab.v-btn{height:var(--v-tabs-height);border-radius:0;min-width:90px}.v-slide-group--horizontal .v-tab{max-width:360px}.v-slide-group--vertical .v-tab{justify-content:start}.v-tab__slider{position:absolute;bottom:0;left:0;height:2px;width:100%;background:currentColor;pointer-events:none;opacity:0}.v-tab--selected .v-tab__slider{opacity:1}.v-slide-group--vertical .v-tab__slider{top:0;height:100%;width:2px}@media (forced-colors: active){.v-tab--selected.v-btn{color:highlight!important}.v-tab__slider{background:highlight!important}}.v-tabs{display:flex;height:var(--v-tabs-height)}.v-tabs--density-default{--v-tabs-height: 48px}.v-tabs--density-default.v-tabs--stacked{--v-tabs-height: 72px}.v-tabs--density-comfortable{--v-tabs-height: 44px}.v-tabs--density-comfortable.v-tabs--stacked{--v-tabs-height: 68px}.v-tabs--density-compact{--v-tabs-height: 36px}.v-tabs--density-compact.v-tabs--stacked{--v-tabs-height: 60px}.v-tabs.v-slide-group--vertical{height:auto;flex:none;--v-tabs-height: 48px}.v-tabs--align-tabs-title:not(.v-slide-group--has-affixes) .v-tab:first-child{margin-inline-start:42px}.v-tabs--fixed-tabs .v-slide-group__content>*:last-child,.v-tabs--align-tabs-center .v-slide-group__content>*:last-child{margin-inline-end:auto}.v-tabs--fixed-tabs .v-slide-group__content>*:first-child,.v-tabs--align-tabs-center .v-slide-group__content>*:first-child{margin-inline-start:auto}.v-tabs--grow{flex-grow:1}.v-tabs--grow .v-tab{flex:1 0 auto;max-width:none}.v-tabs--align-tabs-end .v-tab:first-child{margin-inline-start:auto}.v-tabs--align-tabs-end .v-tab:last-child{margin-inline-end:0}@media (max-width: 1279.98px){.v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:first-child{margin-inline-start:52px}.v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:last-child{margin-inline-end:52px}}.menuButton[data-v-5af0a01e]{margin:3px 10px;padding:0 15px;border-radius:15px}.v-list-item-title[data-v-5af0a01e]{font-size:medium;font-weight:700}.v-list-item--density-default.v-list-item--one-line[data-v-5af0a01e]{min-height:44px}.v-icon[data-v-5af0a01e]{opacity:1}.v-btn--active[data-v-5af0a01e]{color:rgb(var(--v-theme-primary))}.v-slide-group-item--active[data-v-5af0a01e]{opacity:100%}.sidebar[data-v-5af0a01e]{background-color:rgb(var(--v-theme-panel));width:290px;transition:width .3s ease;display:flex;flex-direction:column;height:100%}.sidebar.collapsed[data-v-5af0a01e]{width:68px}.sidebar-header[data-v-5af0a01e]{display:flex;align-items:center;gap:6px;margin:15px 22px 0;transition:all .3s ease;position:relative;cursor:pointer}.sidebar.collapsed .sidebar-header[data-v-5af0a01e]{margin:15px 10px 0;justify-content:center}.sidebar-header-logo[data-v-5af0a01e]{width:30px;height:30px;border-radius:6px;flex-shrink:0}.sidebar-header-title[data-v-5af0a01e]{font-size:1.2rem;font-weight:700;margin:3px 0 0 10px;white-space:nowrap;overflow:hidden;transition:opacity .2s ease}.sidebar-list[data-v-5af0a01e]{background-color:rgb(var(--v-theme-panel));list-style:none;padding:0 0 30px;margin:20px 0 0;flex:1}.sidebar.collapsed .menuButton[data-v-5af0a01e]{padding:0;margin:3px 10px}.sidebar.collapsed .menuButton[data-v-5af0a01e] .v-list-item__content{align-self:center;grid-area:content-start;overflow:hidden;min-width:40px;display:flex;justify-content:center}.sidebar-list li[data-v-5af0a01e]{padding:12px 16px}.sidebar-list li a[data-v-5af0a01e]{color:inherit;text-decoration:none;display:block;border-radius:4px;transition:background .2s}.sidebar-list li a[data-v-5af0a01e]:hover{background:#333}.media-thumb[data-v-8f34ca82]{padding-right:15px}.main-layout[data-v-544f60a2]{display:flex;height:100vh;overflow-y:auto}.main-layout--mobile[data-v-544f60a2]{padding-bottom:230px}.nav-section[data-v-544f60a2]{flex:0 0 auto;width:290px;transition:width .3s ease}.content-section[data-v-544f60a2]{flex:1;overflow-y:auto;height:100%}.icon-container[data-v-3db51b10]{display:flex;align-items:center;justify-content:center}.icon-container--button[data-v-3db51b10]{opacity:.62;cursor:pointer!important;transition:opacity .2s ease}.icon-container--button .v-icon[data-v-3db51b10]{cursor:pointer!important}.icon-container--button[data-v-3db51b10]:hover,.icon-container--button[data-v-3db51b10]:focus{opacity:1}.icon-container--button[data-v-3db51b10]:focus{outline:none;color:#0f0}.icon-container--button[data-v-3db51b10]:active{opacity:1}.icon-container--disabled[data-v-3db51b10]{opacity:.5;cursor:not-allowed;pointer-events:none}.icon[data-v-3db51b10]{line-height:1;display:flex!important;align-items:center!important;justify-content:center!important}.icon-container--button[data-v-3db51b10]{min-height:44px;min-width:44px;border-radius:4px}.icon-container[data-v-3db51b10]{width:100%;height:100%;max-width:100%;max-height:100%}.media-controls-item .icon[data-v-3db51b10]{font-size:1em!important}.player-controls{display:flex;justify-content:center}.player-controls-elements{width:46px;height:46px;display:flex;justify-content:center;align-items:center}.no_transform{text-transform:none}.volume-control-dialog>.v-overlay__content[data-v-bdfdc6da]{bottom:135px!important;right:5px!important;left:unset!important;top:unset!important}.v-overlay__scrim[data-v-bdfdc6da]{opacity:.4}.time-text-left[data-v-1b667236]{text-align:left;display:table-cell}.time-text-right[data-v-1b667236]{text-align:right;display:table-cell;right:0}.time-text-row[data-v-1b667236]{cursor:pointer;height:8px;flex-basis:0;flex-grow:1;max-width:100%;opacity:.6;display:flex;flex:1 1 auto;margin-top:-10px;margin-bottom:5px}.time-text-row>div[data-v-1b667236]{width:50%}.v-slider.v-input--horizontal[data-v-1b667236]{align-items:center;margin-inline:0px}.lyrics-container[data-v-a59ccea0]{height:100%;width:100%;display:flex;flex-direction:column}.lyrics-loading[data-v-a59ccea0],.lyrics-empty[data-v-a59ccea0]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:.7;gap:20px}.lyrics-intro[data-v-a59ccea0]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.song-title[data-v-a59ccea0]{font-size:2em;font-weight:700;margin-bottom:10px;color:var(--v3c09aed1)}.artist-name[data-v-a59ccea0]{font-size:1.5em;margin-bottom:40px;opacity:.8}.lyrics-coming-soon[data-v-a59ccea0]{font-size:1.2em;opacity:.6;font-style:italic}.lyrics-scroll-container[data-v-a59ccea0]{height:100%;width:100%;overflow-y:auto;padding:40vh 0;text-align:center}.static-lyrics[data-v-a59ccea0]{padding:10px 0!important;display:flex;flex-direction:column;justify-content:flex-start}.lyrics-line[data-v-a59ccea0]{padding:10px 4px;font-size:1.1em;opacity:.5;transition:all .3s ease;margin:8px 0;filter:blur(1px);text-shadow:0 0 1px var(--text-color)}.lyrics-line.active[data-v-a59ccea0]{opacity:1;font-size:1.4em;font-weight:700;color:var(--v3c09aed1);filter:blur(0);text-shadow:none}.main[data-v-b887a403]{display:flex;min-height:50%!important;height:50%!important;max-height:65%!important;padding-bottom:5px}.main-media-details[data-v-b887a403]{flex:50%;max-width:100%;width:50%}.main-queue-items[data-v-b887a403]{flex:50%;height:100%;max-width:100%;padding-right:10px;padding-left:15px}.queue-items-scroll-box[data-v-b887a403]{max-height:100%;overflow-y:scroll}.queue-items-scroll-box[data-v-b887a403]::-webkit-scrollbar{display:none}.v-infinite-scroll--vertical[data-v-b887a403]{overflow-y:unset}.main-media-details-image[data-v-b887a403]{min-height:50%;max-height:80%;height:60%;align-content:center;padding-left:20px;padding-right:20px}.main-media-details-image.v-img[data-v-b887a403]{width:auto}.main-media-details-image-alt[data-v-b887a403]{height:100%!important;max-height:100%!important;align-content:center;padding:0!important}.main-media-details-track-info[data-v-b887a403]{height:20%;max-height:20%;align-content:center;text-align:center;padding:20px}.player-bottom[data-v-b887a403]{max-height:35%!important;min-height:25%!important;height:30%!important;margin-top:auto;bottom:0;position:unset!important;padding-bottom:5%}.track-info[data-v-b887a403]{margin-top:10px;margin-bottom:10px;padding-top:2vh;padding-bottom:2vh;text-align:center;line-height:10%}.track-info-subtitle[data-v-b887a403],.v-tab[data-v-b887a403]{opacity:.5}.v-tab-item--selected[data-v-b887a403]{opacity:1}.media-controls[data-v-b887a403]{display:flex;flex:1 1 auto;align-items:center;justify-content:center;max-width:100%;padding:15px;height:100px}.media-controls-item[data-v-b887a403]{margin:0 10px;width:100%;height:100%}@media (max-width: 768px){.media-controls-item[data-v-b887a403]{margin:0 5px;width:100%;height:100%}}.row[data-v-b887a403]{align-content:center}.row-centered[data-v-b887a403]{justify-content:center;max-width:100%;padding:15px}.media-controls>button[data-v-b887a403]{flex:1 1 auto}.media-controls-bottom[data-v-b887a403]{display:flex;flex:0 1 auto;justify-content:center;align-items:center}.media-controls-bottom>div[data-v-b887a403]{flex-basis:0;flex-grow:1;max-width:100%}.media-controls>div[data-v-b887a403]{width:calc(100% / 3)}.mediacontrols-right[data-v-b887a403]{display:table-cell;text-align:right;vertical-align:middle}.mediacontrols-right>div[data-v-b887a403]{display:inline-flex;align-items:center}.v-toolbar[data-v-b887a403] .v-toolbar-title{text-align:center}.responsive-icon-holder-btn[data-v-b887a403]{display:flex;align-items:center;justify-content:center;opacity:.62;cursor:pointer!important}.responsive-icon-holder-btn[data-v-b887a403]:focus,.responsive-icon-holder-btn[data-v-b887a403]:hover{opacity:1}div[data-v-b887a403],button[data-v-b887a403]{color:var(--text-color)}.lyrics-wrapper[data-v-b887a403]{height:100%;width:100%;overflow:hidden}.title-row[data-v-b887a403]{display:flex;align-items:center;gap:6px}.player-media-thumb[data-v-01cf6ec5]{margin-right:10px}.player-track-content-type[data-v-01cf6ec5]{height:20px!important;padding:5px 9px!important;font-weight:500;font-size:10px!important;letter-spacing:.1em;border-radius:2px;margin-right:30px}.icon-thumb[data-v-01cf6ec5]{width:60px;height:60px;border-radius:3px;background-color:#0000004d;display:flex;align-items:center;justify-content:center}.v-list-item-subtitle[data-v-01cf6ec5]{-webkit-line-clamp:unset!important;line-clamp:unset!important}.mediadetails-streamdetails .icon[data-v-022a7f9a]{opacity:100}.mediacontrols[data-v-022a7f9a]{display:flex;align-items:center;width:100%;padding:10px 15px;background-color:rgb(var(--v-theme-overlay))}.mediacontrols .mediacontrols-bottom-center[data-v-022a7f9a]{width:40%}.mediacontrols[data-mobile=true][data-v-022a7f9a]{border-radius:10px}.mediacontrols[data-mobile=true] .mediacontrols-bottom-center[data-v-022a7f9a]{display:none}.mediacontrols[data-mobile=true] .mediacontrols-left[data-v-022a7f9a]{width:unset}.mediacontrols-bg[data-v-022a7f9a]{height:100%;position:absolute;width:320px;left:0;top:0;background:linear-gradient(to right,var(--v31d44b17) 0%,transparent)}.mediacontrols-bg[data-floating=true][data-v-022a7f9a]{border-radius:10px;width:100%;background:var(--v31d44b17)}.mediacontrols-top-right[data-v-022a7f9a]{display:table-row}.mediacontrols-left[data-v-022a7f9a]{margin-inline-end:auto;width:20%}.mediacontrols-left>div[data-v-022a7f9a]{padding:0!important}.mediacontrols-bottom-right[data-v-022a7f9a]{margin-inline-start:auto}.mediacontrols-bottom-right>div[data-v-022a7f9a]{display:inline-flex;align-items:center}.volume-slider[data-v-022a7f9a]{width:calc(100% - 30px);margin-bottom:6px;margin-top:-10px}.menuButton{font-weight:350;font-size:x-small;font-stretch:condensed;text-transform:none;margin-top:5px}.v-btn--active>.v-btn__overlay{background:rgb(var(--v-theme-default))!important}.v-slide-group-item--active{opacity:100%}.mediacontrols-player-float{display:flex;flex-direction:column;margin:10px 10px 0;width:calc(100% - 20px)!important;border-radius:10px!important}.gradient-dark{background:linear-gradient(0deg,#000000e6 0% 75%,#fff0)}.gradient-light{background:linear-gradient(0deg,#ffffffe6 0% 75%,#fff0)}.v-bottom-navigation--active{box-shadow:none}.title[data-v-4cef3bfb]{font-family:JetBrains Mono Medium;font-size:x-large;opacity:.7}.expansion[data-v-4cef3bfb] .v-expansion-panel-title{padding:10px 16px}.expansion[data-v-4cef3bfb] .v-expansion-panel-text__wrapper{padding:10px 5px}.pwa-toast{position:fixed;right:0;bottom:0;margin:16px;padding:12px;border:1px solid #8885;border-radius:4px;z-index:1;text-align:left;box-shadow:3px 4px 5px #8885;background-color:#fff}.pwa-toast .message{margin-bottom:8px}.pwa-toast button{border:1px solid #8885;outline:none;margin-right:5px;border-radius:2px;padding:3px 10px}.centeredoverlay[data-v-f5755772] .v-overlay__content{inset:50%}