music-assistant-frontend 2.17.15__py3-none-any.whl → 2.17.20__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 (123) hide show
  1. music_assistant_frontend/assets/About-Ba3VLBU-.css +1 -0
  2. music_assistant_frontend/assets/About-eW-4urJV.js +1 -0
  3. music_assistant_frontend/assets/{AddManualLink.vue_vue_type_script_setup_true_lang-DG4jP955.js → AddManualLink.vue_vue_type_script_setup_true_lang-DQP6MVZU.js} +1 -1
  4. music_assistant_frontend/assets/AddPlayerGroup-DrpKvGgv.js +1 -0
  5. music_assistant_frontend/assets/AddProviderDetails-CWS1vCiZ.js +1 -0
  6. music_assistant_frontend/assets/AlbumDetails-wRWGtQUA.js +1 -0
  7. music_assistant_frontend/assets/ArtistDetails-CR47rAMr.js +1 -0
  8. music_assistant_frontend/assets/{AudiobookDetails-BtzViAS0.js → AudiobookDetails-CE9gIq3Q.js} +1 -1
  9. music_assistant_frontend/assets/BrowseView-Cx_P4-_Y.js +1 -0
  10. music_assistant_frontend/assets/{Button-Da2w4xZe.js → Button-faGxxowY.js} +1 -1
  11. music_assistant_frontend/assets/{Container-vEyxubcK.js → Container-D5KFPVjs.js} +1 -1
  12. music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-Cad6HStr.js +1 -0
  13. music_assistant_frontend/assets/{Default-C8ExxF7E.css → Default-GVlZdAUf.css} +1 -1
  14. music_assistant_frontend/assets/Default-KyHEk5ZR.js +21 -0
  15. music_assistant_frontend/assets/EditConfig-B0XoDh_u.js +1 -0
  16. music_assistant_frontend/assets/{EditConfig-SyvCtrr0.css → EditConfig-TBO3lEGx.css} +1 -1
  17. music_assistant_frontend/assets/EditCoreConfig-DFyuSEd9.js +1 -0
  18. music_assistant_frontend/assets/EditPlayer-Cgs9ko95.js +1 -0
  19. music_assistant_frontend/assets/EditPlayerDsp-D98k0PKW.js +9 -0
  20. music_assistant_frontend/assets/EditProvider-CgzI4UVG.js +1 -0
  21. music_assistant_frontend/assets/FrontendConfig-B-B9Z2Vn.js +1 -0
  22. music_assistant_frontend/assets/HomeView-DFXlCmKt.js +1 -0
  23. music_assistant_frontend/assets/ItemsListing-BP5XXmLQ.js +1 -0
  24. music_assistant_frontend/assets/{ItemsListing-qc86ZllS.css → ItemsListing-DL5ZjBes.css} +1 -1
  25. music_assistant_frontend/assets/LibraryAlbums-BGHrSh_z.js +1 -0
  26. music_assistant_frontend/assets/LibraryArtists-rX5Sb_ET.js +1 -0
  27. music_assistant_frontend/assets/LibraryAudiobooks-BL7Qa-rV.js +1 -0
  28. music_assistant_frontend/assets/LibraryPlaylists-mtIVGJsc.js +1 -0
  29. music_assistant_frontend/assets/LibraryPodcasts-DFW7qn7z.js +1 -0
  30. music_assistant_frontend/assets/LibraryRadios-3VXOISsH.js +1 -0
  31. music_assistant_frontend/assets/LibraryTracks-D1kcnNYD.js +1 -0
  32. music_assistant_frontend/assets/{ListItem-CMI0ccXI.js → ListItem-DXTT8_G5.js} +1 -1
  33. music_assistant_frontend/assets/{MediaItemImages-CpqpuCtk.js → MediaItemImages-RwaXDWAp.js} +1 -1
  34. music_assistant_frontend/assets/MediaItemThumb-DYAHQAuC.js +1 -0
  35. music_assistant_frontend/assets/PanelviewItemCompact-BKBJxxoM.js +1 -0
  36. music_assistant_frontend/assets/PlayerCard-DdgZ3XZ5.js +1 -0
  37. music_assistant_frontend/assets/{Players-DbwqOQm4.js → Players-BelAvYKh.js} +1 -1
  38. music_assistant_frontend/assets/PlaylistDetails-Bf5e08Ep.js +1 -0
  39. music_assistant_frontend/assets/PodcastDetails-B8Mjw_8n.js +1 -0
  40. music_assistant_frontend/assets/{ProviderDetails.vue_vue_type_script_setup_true_lang-BvNkAPPj.js → ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js} +1 -1
  41. music_assistant_frontend/assets/Providers-BYVx_A_K.js +1 -0
  42. music_assistant_frontend/assets/RadioDetails-pOddxrkl.js +1 -0
  43. music_assistant_frontend/assets/Search-B6SlCk_7.js +1 -0
  44. music_assistant_frontend/assets/ServerLogs-BzVXmR6_.js +4 -0
  45. music_assistant_frontend/assets/ServerLogs-D16I7ozL.css +1 -0
  46. music_assistant_frontend/assets/{Settings-DgZgWYgS.css → Settings-CDWcSKlt.css} +1 -1
  47. music_assistant_frontend/assets/Settings-Cqw-X9OU.js +1 -0
  48. music_assistant_frontend/assets/SystemConfig-BKi5ffMS.css +1 -0
  49. music_assistant_frontend/assets/SystemConfig-BOdTwx9R.js +1 -0
  50. music_assistant_frontend/assets/Toolbar-B32L_M7G.js +1 -0
  51. music_assistant_frontend/assets/{Toolbar-DJx0b-Ea.css → Toolbar-CVFN8H4Z.css} +1 -1
  52. music_assistant_frontend/assets/TrackDetails-CkCm62Ec.js +1 -0
  53. music_assistant_frontend/assets/UserManagement-c_dhgxwj.js +1 -0
  54. music_assistant_frontend/assets/{UserProfile-2DGSt3Q4.js → UserProfile-CpcF98Ve.js} +1 -1
  55. music_assistant_frontend/assets/{VAlert-DfNKgxBR.js → VAlert-CFvRz3gu.js} +1 -1
  56. music_assistant_frontend/assets/VCheckboxBtn-B5wUW3kZ.js +1 -0
  57. music_assistant_frontend/assets/{VDialog-B7h8eW0m.js → VDialog-5KHkpnhE.js} +1 -1
  58. music_assistant_frontend/assets/{VExpansionPanels-cqvywsgH.js → VExpansionPanels-DboS79vY.js} +1 -1
  59. music_assistant_frontend/assets/{VForm-D2eK17M_.js → VForm-DDKxMAmn.js} +1 -1
  60. music_assistant_frontend/assets/{VInfiniteScroll-CBHSFC6_.js → VInfiniteScroll-DataCA15.js} +1 -1
  61. music_assistant_frontend/assets/{VSelect-cNIaLpz4.js → VSelect-VNw4nPSb.js} +1 -1
  62. music_assistant_frontend/assets/VSelectionControl-CCjz0Lnv.js +1 -0
  63. music_assistant_frontend/assets/{VSlider-Dt4jt2Zl.js → VSlider-Dcfg9Wg5.js} +1 -1
  64. music_assistant_frontend/assets/VSwitch-DQEiK9D_.js +1 -0
  65. music_assistant_frontend/assets/{VToolbar-DyyzvXAh.js → VToolbar-w3YLtQh8.js} +1 -1
  66. music_assistant_frontend/assets/VVirtualScroll-Cg5AQGzG.js +1 -0
  67. music_assistant_frontend/assets/{WidgetRow-CXYVjNw0.js → WidgetRow-CZHmyp7T.js} +1 -1
  68. music_assistant_frontend/assets/{index-BjdGY0D1.js → index-Dj6UKNsX.js} +35 -35
  69. music_assistant_frontend/assets/index-iTwi4kPx.css +1 -0
  70. music_assistant_frontend/assets/{marquee_text_sync-WzwJ--pH.js → marquee_text_sync-R3hHMfp7.js} +1 -1
  71. music_assistant_frontend/assets/open-home-foundation-logo-C7bc6Uqr.svg +22 -0
  72. music_assistant_frontend/assets/userPreferences-CpcwN_LW.js +1 -0
  73. music_assistant_frontend/index.html +2 -2
  74. music_assistant_frontend/sw.js +2 -2
  75. {music_assistant_frontend-2.17.15.dist-info → music_assistant_frontend-2.17.20.dist-info}/METADATA +1 -1
  76. music_assistant_frontend-2.17.20.dist-info/RECORD +145 -0
  77. music_assistant_frontend/assets/AddPlayerGroup-Bwk7pmNx.js +0 -1
  78. music_assistant_frontend/assets/AddProviderDetails-9el-oexz.js +0 -1
  79. music_assistant_frontend/assets/AlbumDetails-BxtRl2YX.js +0 -1
  80. music_assistant_frontend/assets/ArtistDetails-C15MPi-J.js +0 -1
  81. music_assistant_frontend/assets/BrowseView-DwddahrD.js +0 -1
  82. music_assistant_frontend/assets/CoreConfigs-BsI6FsWH.css +0 -1
  83. music_assistant_frontend/assets/CoreConfigs-D3Lk-7JE.js +0 -1
  84. music_assistant_frontend/assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-C6YdwidI.js +0 -1
  85. music_assistant_frontend/assets/Default-Br-juh2E.js +0 -21
  86. music_assistant_frontend/assets/EditConfig-BnGkC7Dx.js +0 -1
  87. music_assistant_frontend/assets/EditCoreConfig-CnIejyq9.js +0 -1
  88. music_assistant_frontend/assets/EditPlayer-DWbeXaJ5.js +0 -1
  89. music_assistant_frontend/assets/EditPlayerDsp-BFHS-0i1.js +0 -9
  90. music_assistant_frontend/assets/EditProvider-DaVXHsTj.js +0 -1
  91. music_assistant_frontend/assets/FrontendConfig-eR1Z1zGd.js +0 -1
  92. music_assistant_frontend/assets/HomeView-Dn-M1jTz.js +0 -1
  93. music_assistant_frontend/assets/ItemsListing-DsCHQduO.js +0 -1
  94. music_assistant_frontend/assets/LibraryAlbums-CHYwiQaW.js +0 -1
  95. music_assistant_frontend/assets/LibraryArtists-BdcWa4H2.js +0 -1
  96. music_assistant_frontend/assets/LibraryAudiobooks-DC0SIBx-.js +0 -1
  97. music_assistant_frontend/assets/LibraryPlaylists-AKjmGQHJ.js +0 -1
  98. music_assistant_frontend/assets/LibraryPodcasts-D8nYpNLG.js +0 -1
  99. music_assistant_frontend/assets/LibraryRadios-1GRC-OzJ.js +0 -1
  100. music_assistant_frontend/assets/LibraryTracks-p8Y13gW3.js +0 -1
  101. music_assistant_frontend/assets/MediaItemThumb-CMOvHHof.js +0 -1
  102. music_assistant_frontend/assets/NowPlayingBadge.vue_vue_type_style_index_0_lang-B8G50Aza.js +0 -1
  103. music_assistant_frontend/assets/PanelviewItemCompact-C6DCjPZU.js +0 -1
  104. music_assistant_frontend/assets/PlayerCard-RpvQiENI.js +0 -1
  105. music_assistant_frontend/assets/PlaylistDetails-DhlSXFbi.js +0 -1
  106. music_assistant_frontend/assets/PodcastDetails-bqHu2VUs.js +0 -1
  107. music_assistant_frontend/assets/Providers-CgdTyZF0.js +0 -1
  108. music_assistant_frontend/assets/RadioDetails-BDJXF1Lf.js +0 -1
  109. music_assistant_frontend/assets/Search-BOjaQ4tl.js +0 -1
  110. music_assistant_frontend/assets/Settings-D8dH3JXV.js +0 -1
  111. music_assistant_frontend/assets/Toolbar-94EvSFT-.js +0 -1
  112. music_assistant_frontend/assets/TrackDetails-D-mFx3v3.js +0 -1
  113. music_assistant_frontend/assets/UserManagement-DqY36gSD.js +0 -1
  114. music_assistant_frontend/assets/VCheckboxBtn-B_ZAO1Qo.js +0 -1
  115. music_assistant_frontend/assets/VSwitch-CvtgmnVD.js +0 -1
  116. music_assistant_frontend/assets/VVirtualScroll-Ck3MSSZi.js +0 -1
  117. music_assistant_frontend/assets/index-DFqSLpsO.css +0 -1
  118. music_assistant_frontend-2.17.15.dist-info/RECORD +0 -139
  119. /music_assistant_frontend/assets/{VCheckboxBtn-CIeJsqfW.css → VSelectionControl-CIeJsqfW.css} +0 -0
  120. /music_assistant_frontend/assets/{NowPlayingBadge-Cm6AcKY5.css → userPreferences-Cm6AcKY5.css} +0 -0
  121. {music_assistant_frontend-2.17.15.dist-info → music_assistant_frontend-2.17.20.dist-info}/WHEEL +0 -0
  122. {music_assistant_frontend-2.17.15.dist-info → music_assistant_frontend-2.17.20.dist-info}/licenses/LICENSE +0 -0
  123. {music_assistant_frontend-2.17.15.dist-info → music_assistant_frontend-2.17.20.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-BjdGY0D1.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{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};
@@ -0,0 +1,22 @@
1
+ <svg width="1578" height="356" viewBox="0 0 1578 356" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M130.992 4.78147C124.939 -1.30395 115.034 -1.30395 109.008 4.78147L11.0056 103.307C4.95251 109.393 0 121.405 0 129.994V219.352C0 227.94 6.9964 235 15.565 235H224.435C232.977 235 240 227.966 240 219.352V129.994C240 121.405 235.048 109.393 228.994 103.307L130.992 4.78147Z" fill="#18BCF2" />
3
+ <path d="M228 275C234.627 275 240 280.373 240 287V344C240 350.627 234.627 356 228 356H213C206.373 356 201 350.627 201 344V314H39V344C39 350.627 33.6274 356 27 356H12C5.37258 356 0 350.627 0 344V287C0 280.373 5.37258 275 12 275H228Z" fill="#09202E" />
4
+ <path d="M394.872 38C405.86 38 416.041 39.9792 425.415 43.9638C434.789 47.9223 442.731 53.4173 449.241 60.4228C455.751 67.4283 460.828 75.814 464.474 85.6321C468.093 95.4502 469.916 106.05 469.916 117.456C470.046 128.733 468.275 139.306 464.63 149.228C460.958 159.151 455.829 167.615 449.241 174.646C442.653 181.678 434.633 187.199 425.207 191.183C415.781 195.194 405.6 197.121 394.663 196.991C380.212 197.199 367.219 193.866 355.709 187.016C344.2 180.167 335.321 170.662 329.072 158.5C322.822 146.338 319.802 132.717 320.01 117.665C319.88 106.388 321.651 95.8148 325.296 85.8926C328.967 75.9703 334.071 67.5064 340.633 60.4228C347.195 53.3652 355.163 47.8181 364.563 43.8336C373.963 39.849 384.066 37.8958 394.872 38.026V38ZM395.054 166.547C408.021 166.547 418.281 162.146 425.858 153.369C433.435 144.567 437.211 132.613 437.211 117.456C437.211 102.299 433.435 90.1636 425.91 81.3872C418.385 72.6368 408.1 68.2616 395.054 68.2616C382.009 68.2616 371.723 72.6368 364.198 81.3872C356.673 90.1375 352.897 102.169 352.897 117.456C352.897 132.743 356.673 144.749 364.198 153.473C371.723 162.198 382.009 166.573 395.054 166.573V166.547Z" fill="#18BCF2" />
5
+ <path d="M606.49 91.5699C606.49 106.987 601.829 119.383 592.533 128.785C583.237 138.186 570.582 142.9 554.542 142.9H524.103V194.439H493.038V40.7345H554.959C571.051 40.7345 583.654 45.2659 592.793 54.3288C601.933 63.3917 606.49 75.814 606.49 91.5438V91.5699ZM573.681 90.9709C573.681 84.4602 571.572 79.0694 567.327 74.8244C563.083 70.5794 556.964 68.47 548.944 68.47H524.103V115.842H548.944C557.016 115.842 563.161 113.55 567.379 108.966C571.598 104.383 573.681 98.3931 573.681 90.9969V90.9709Z" fill="#18BCF2" />
6
+ <path d="M725.123 194.439H628.388V40.7345H725.123V70.2669H659.427V103.055H717.78V130.556H659.427V165.193H725.123V194.439Z" fill="#18BCF2" />
7
+ <path d="M886.434 40.7605V194.465H855.578L788.267 90.3719V194.465H757.411V40.7605H788.267L855.578 145.062V40.7605H886.434Z" fill="#18BCF2" />
8
+ <path d="M974.419 40.7605H1005.48V102.898L1066.39 103.107V40.7605H1097.66V194.465H1066.39V130.816L1005.48 130.4V194.465H974.419V40.7605Z" fill="#18BCF2" />
9
+ <path d="M1195.41 38C1206.4 38 1216.58 39.9792 1225.95 43.9638C1235.33 47.9223 1243.27 53.4173 1249.78 60.4228C1256.29 67.4283 1261.37 75.814 1265.01 85.6321C1268.63 95.4502 1270.45 106.05 1270.45 117.456C1270.59 128.733 1268.81 139.306 1265.17 149.228C1261.5 159.151 1256.37 167.615 1249.78 174.646C1243.19 181.678 1235.17 187.199 1225.75 191.183C1216.32 195.194 1206.14 197.121 1195.2 196.991C1180.75 197.199 1167.76 193.866 1156.25 187.016C1144.74 180.167 1135.86 170.662 1129.61 158.5C1123.36 146.338 1120.34 132.717 1120.55 117.665C1120.42 106.388 1122.19 95.8148 1125.84 85.8926C1129.51 75.9703 1134.61 67.5064 1141.17 60.4228C1147.73 53.3652 1155.7 47.8181 1165.1 43.8336C1174.5 39.849 1184.6 37.8958 1195.41 38.026V38ZM1195.59 166.547C1208.56 166.547 1218.82 162.146 1226.4 153.369C1233.97 144.567 1237.75 132.613 1237.75 117.456C1237.75 102.299 1233.97 90.1636 1226.45 81.3872C1218.92 72.6368 1208.64 68.2616 1195.59 68.2616C1182.55 68.2616 1172.26 72.6368 1164.74 81.3872C1157.21 90.1375 1153.44 102.169 1153.44 117.456C1153.44 132.743 1157.21 144.749 1164.74 153.473C1172.26 162.198 1182.55 166.573 1195.59 166.573V166.547Z" fill="#18BCF2" />
10
+ <path d="M1448.66 40.7605V194.465H1418.02V110.425L1385.13 194.465H1355.71L1323.21 111.05V194.465H1293.58V40.7605H1323.21L1370.47 158.187L1418.02 40.7605H1448.66Z" fill="#18BCF2" />
11
+ <path d="M1578 194.439H1481.27V40.7345H1578V70.2669H1512.3V103.055H1570.66V130.556H1512.3V165.193H1578V194.439Z" fill="#18BCF2" />
12
+ <path d="M337.556 255.482V290.019H381.796V305.793H337.556V353.947H320V238.876H390.145V255.482H337.556Z" fill="#09202E" />
13
+ <path d="M457.116 237.005C465.101 236.901 472.591 238.357 479.536 241.345C486.48 244.334 492.41 248.465 497.299 253.741C502.163 259.016 505.986 265.357 508.743 272.711C511.5 280.092 512.826 287.966 512.722 296.36C512.826 304.805 511.5 312.758 508.743 320.164C505.986 327.596 502.163 333.911 497.299 339.186C492.436 344.436 486.506 348.568 479.536 351.556C472.565 354.545 465.101 356 457.116 355.896C449.132 356 441.667 354.545 434.723 351.556C427.779 348.568 421.875 344.436 417.011 339.16C412.148 333.885 408.325 327.544 405.594 320.19C402.863 312.835 401.536 304.935 401.64 296.542C401.536 288.148 402.863 280.248 405.594 272.867C408.325 265.487 412.122 259.146 417.011 253.845C421.875 248.569 427.779 244.412 434.723 241.397C441.667 238.382 449.132 236.927 457.116 237.031V237.005ZM430.328 326.998C437.116 334.691 446.089 338.563 457.272 338.563C468.456 338.563 477.429 334.717 484.191 326.998C490.953 319.306 494.334 309.093 494.334 296.36C494.334 283.626 490.953 273.335 484.191 265.643C477.429 257.951 468.456 254.079 457.272 254.079C446.089 254.079 437.09 257.951 430.328 265.669C423.539 273.387 420.158 283.626 420.158 296.36C420.158 309.093 423.539 319.306 430.328 326.998Z" fill="#09202E" />
14
+ <path d="M548.77 238.85V312.42C548.822 321.177 551.397 327.804 556.494 332.274C561.592 336.77 568.302 339.004 576.599 339.004C584.896 339.004 591.242 336.64 596.547 331.936C601.853 327.232 604.506 320.71 604.506 312.42V238.85H622.062V313.121C622.062 319.878 620.839 325.985 618.42 331.468C616.002 336.951 612.699 341.473 608.563 344.981C604.402 348.516 599.616 351.218 594.129 353.141C588.641 355.064 582.815 356 576.573 356C570.331 356 564.739 355.064 559.329 353.219C553.92 351.374 549.082 348.698 544.869 345.215C540.629 341.733 537.3 337.237 534.855 331.702C532.411 326.167 531.188 319.956 531.188 313.121V238.85H548.77Z" fill="#09202E" />
15
+ <path d="M739.438 238.85V353.921H721.882L665.106 267.202V353.921H647.55V238.85H665.106L721.882 325.725V238.85H739.438Z" fill="#09202E" />
16
+ <path d="M862.119 296.516C862.171 304.753 860.741 312.498 857.828 319.696C854.915 326.92 850.884 333.053 845.76 338.095C840.636 343.136 834.472 347.086 827.268 349.919C820.064 352.752 812.391 354.103 804.173 353.947H765.81V238.876H804.173C814.992 238.72 824.875 241.111 833.77 246.075C842.665 251.012 849.635 257.925 854.681 266.786C859.727 275.648 862.197 285.575 862.119 296.542V296.516ZM843.471 296.516C843.471 284.354 839.856 274.479 832.6 266.89C825.343 259.302 815.824 255.482 804.017 255.482H783.522V337.627H804.017C815.928 337.627 825.473 333.859 832.678 326.297C839.882 318.761 843.471 308.807 843.471 296.516Z" fill="#09202E" />
17
+ <path d="M939.208 326.271H893.251L883.264 353.947H865.24L906.854 238.876H925.736L967.583 353.947H949.013L939.182 326.271H939.208ZM934.111 311.354L916.399 261.199L898.531 311.354H934.111Z" fill="#09202E" />
18
+ <path d="M1046.41 255.482H1012.99V353.947H995.282V255.482H961.862V238.876H1046.39V255.482H1046.41Z" fill="#09202E" />
19
+ <path d="M1062.28 353.921V238.85H1079.99V353.921H1062.28Z" fill="#09202E" />
20
+ <path d="M1154.92 237.005C1162.91 236.901 1170.4 238.357 1177.34 241.345C1184.31 244.334 1190.22 248.465 1195.1 253.741C1199.97 259.016 1203.79 265.357 1206.55 272.711C1209.31 280.092 1210.63 287.966 1210.53 296.36C1210.63 304.805 1209.31 312.758 1206.55 320.164C1203.79 327.596 1199.97 333.911 1195.1 339.186C1190.24 344.436 1184.31 348.568 1177.34 351.556C1170.37 354.545 1162.91 356 1154.92 355.896C1146.94 356 1139.47 354.545 1132.53 351.556C1125.58 348.568 1119.68 344.436 1114.82 339.16C1109.95 333.885 1106.13 327.544 1103.4 320.19C1100.67 312.835 1099.34 304.935 1099.45 296.542C1099.34 288.148 1100.67 280.248 1103.4 272.867C1106.13 265.487 1109.93 259.146 1114.82 253.845C1119.68 248.569 1125.58 244.412 1132.53 241.397C1139.47 238.382 1146.94 236.927 1154.92 237.031V237.005ZM1128.13 326.998C1134.92 334.691 1143.89 338.563 1155.08 338.563C1166.26 338.563 1175.23 334.717 1182 326.998C1188.76 319.306 1192.14 309.093 1192.14 296.36C1192.14 283.626 1188.76 273.335 1182 265.643C1175.23 257.951 1166.26 254.079 1155.08 254.079C1143.89 254.079 1134.9 257.951 1128.13 265.669C1121.34 273.387 1117.96 283.626 1117.96 296.36C1117.96 309.093 1121.34 319.306 1128.13 326.998Z" fill="#09202E" />
21
+ <path d="M1322 238.85V353.921H1304.44L1247.67 267.202V353.921H1230.11V238.85H1247.67L1304.44 325.725V238.85H1322Z" fill="#09202E" />
22
+ </svg>
@@ -0,0 +1 @@
1
+ import{V as g,m as F}from"./VCheckboxBtn-B5wUW3kZ.js";import{g as U,p as S,j as A,cp as K,J as L,cq as R,n as q,cr as z,cs as b,o as P,ad as V,am as E,an as j,ct as D,aw as J,ax as m,ay as p,ag as M,az as k,q as w,E as u,i as G,av as H,aN as O}from"./index-Dj6UKNsX.js";const Q=S({...D(),...j(F(),["inline"])},"VCheckbox"),X=U()({name:"VCheckbox",inheritAttrs:!1,props:Q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,l){let{attrs:r,slots:c}=l;const n=A(e,"modelValue"),{isFocused:t,focus:s,blur:a}=K(e),o=L(),y=R();return q(()=>{const[i,v]=z(r),d=b.filterProps(e),h=g.filterProps(e);return P(b,V({ref:o,class:["v-checkbox",e.class]},i,d,{modelValue:n.value,"onUpdate:modelValue":f=>n.value=f,id:e.id||`checkbox-${y}`,focused:t.value,style:e.style}),{...c,default:f=>{let{id:x,messagesId:B,isDisabled:C,isReadonly:I,isValid:N}=f;return P(g,V(h,{id:x.value,"aria-describedby":B.value,disabled:C.value,readonly:I.value},v,{error:N.value===!1,modelValue:n.value,"onUpdate:modelValue":$=>n.value=$,onFocus:s,onBlur:a}),c)}})}),E({},o)}}),Y=J({__name:"NowPlayingBadge",props:{showBadge:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},badgeStyle:{default:""},iconStyle:{default:""}},setup(e){return(l,r)=>(p(),m(M,null,[e.showBadge?(p(),m("span",{key:0,style:w(e.badgeStyle),class:"now-playing-badge","aria-label":"Now playing"}," Now playing ",4)):k("",!0),e.showIcon?(p(),m("div",{key:1,style:w(e.iconStyle),class:"now-playing-icon"},[...r[0]||(r[0]=[u("div",{class:"bar"},null,-1),u("div",{class:"bar"},null,-1),u("div",{class:"bar"},null,-1),u("div",{class:"bar"},null,-1)])],4)):k("",!0)],64))}});function Z(){const e=G(()=>H.currentUser);function l(t,s){if(!e.value?.preferences)return s;const a=e.value.preferences[t];return a!==void 0?a:s}async function r(t,s){if(!e.value){console.warn("Cannot set preference: no user logged in");return}const a={...e.value.preferences,[t]:s};e.value.preferences=a;try{await O.updateUser(e.value.user_id,{preferences:a})}catch(o){console.error("Failed to update user preferences:",o)}}function c(t,s){const a=`${t}.${s}`;return l(`itemsListing.${a}`,{})||{}}async function n(t,s,a,o){const i=`itemsListing.${`${t}.${s}`}`,d={...c(t,s),[a]:o};await r(i,d)}return{currentUser:e,getPreference:l,setPreference:r,getItemsListingPreferences:c,setItemsListingPreference:n}}export{X as V,Y as _,Z as u};
@@ -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-BjdGY0D1.js"></script>
17
- <link rel="stylesheet" crossorigin href="./assets/index-DFqSLpsO.css">
16
+ <script type="module" crossorigin src="./assets/index-Dj6UKNsX.js"></script>
17
+ <link rel="stylesheet" crossorigin href="./assets/index-iTwi4kPx.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=(r,...e)=>{let t=r;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},N=x;class l extends Error{constructor(e,t){const s=N(e,t);super(s),this.name=e,this.details=t}}const f={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},b=r=>[f.prefix,r,f.suffix].filter(e=>e&&e.length>0).join("-"),M=r=>{for(const e of Object.keys(f))r(e)},k={updateDetails:r=>{M(e=>{typeof r[e]=="string"&&(f[e]=r[e])})},getGoogleAnalyticsName:r=>r||b(f.googleAnalytics),getPrecacheName:r=>r||b(f.precache),getPrefix:()=>f.prefix,getRuntimeName:r=>r||b(f.runtime),getSuffix:()=>f.suffix};function P(r,e){const t=e();return r.waitUntil(t),t}try{self["workbox:precaching:7.2.0"]&&_()}catch{}const E="__WB_REVISION__";function I(r){if(!r)throw new l("add-to-cache-list-unexpected-type",{entry:r});if(typeof r=="string"){const n=new URL(r,location.href);return{cacheKey:n.href,url:n.href}}const{revision:e,url:t}=r;if(!t)throw new l("add-to-cache-list-unexpected-type",{entry:r});if(!e){const n=new URL(t,location.href);return{cacheKey:n.href,url:n.href}}const s=new URL(t,location.href),a=new URL(t,location.href);return s.searchParams.set(E,e),{cacheKey:s.href,url:a.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 a=t.originalRequest.url;s?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return s}}}class W{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:s})=>{const a=s?.cacheKey||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}let y;function O(){if(y===void 0){const r=new Response("");if("body"in r)try{new Response(r.body),y=!0}catch{y=!1}y=!1}return y}async function S(r,e){let t=null;if(r.url&&(t=new URL(r.url).origin),t!==self.location.origin)throw new l("cross-origin-copy-response",{origin:t});const s=r.clone(),n={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},c=O()?s.body:await s.blob();return new Response(c,n)}const A=r=>new URL(String(r),location.href).href.replace(new RegExp(`^${location.origin}`),"");function v(r,e){const t=new URL(r);for(const s of e)t.searchParams.delete(s);return t.href}async function D(r,e,t,s){const a=v(e.url,t);if(e.url===a)return r.match(e,s);const n=Object.assign(Object.assign({},s),{ignoreSearch:!0}),c=await r.keys(e,n);for(const i of c){const o=v(i.url,t);if(a===o)return r.match(i,s)}}class H{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const j=new Set;async function F(){for(const r of j)await r()}function B(r){return new Promise(e=>setTimeout(e,r))}try{self["workbox:strategies:7.2.0"]&&_()}catch{}function R(r){return typeof r=="string"?new Request(r):r}class ${constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new H,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 a=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 l("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 a&&await this.runCallbacks("fetchDidFail",{error:c,event:t,originalRequest:a.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:a,matchOptions:n}=this._strategy,c=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},n),{cacheName:a});s=await caches.match(c,i);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:a,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 a=await this.getCacheKey(s,"write");if(!t)throw new l("cache-put-with-no-response",{url:A(a.url)});const n=await this._ensureResponseSafeToCache(t);if(!n)return!1;const{cacheName:c,matchOptions:i}=this._strategy,o=await self.caches.open(c),h=this.hasCallback("cacheDidUpdate"),p=h?await D(o,a.clone(),["__WB_REVISION__"],i):null;try{await o.put(a,h?n.clone():n)}catch(u){if(u instanceof Error)throw u.name==="QuotaExceededError"&&await F(),u}for(const u of this.iterateCallbacks("cacheDidUpdate"))await u({cacheName:c,oldResponse:p,newResponse:n.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let a=e;for(const n of this.iterateCallbacks("cacheKeyWillBeUsed"))a=R(await n({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[s]=a}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 a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({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=k.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,a="params"in e?e.params:void 0,n=new $(this,{event:t,request:s,params:a}),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 a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new l("no-response",{url:t.url})}catch(n){if(n instanceof Error){for(const c of e.iterateCallbacks("handlerDidError"))if(a=await c({error:n,event:s,request:t}),a)break}if(!a)throw n}for(const n of e.iterateCallbacks("handlerWillRespond"))a=await n({event:s,request:t,response:a});return a}async _awaitComplete(e,t,s,a){let n,c;try{n=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:s,response:n}),await t.doneWaiting()}catch(i){i instanceof Error&&(c=i)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:s,response:n,error:c}),t.destroy(),c)throw c}}class d extends V{constructor(e={}){e.cacheName=k.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(d.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 a=t.params||{};if(this._fallbackToNetwork){const n=a.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 l("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 l("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,a]of this.plugins.entries())a!==d.copyRedirectedCacheableResponsesPlugin&&(a===d.defaultPrecacheCacheabilityPlugin&&(e=s),a.cacheWillUpdate&&t++);t===0?this.plugins.push(d.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}d.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:r}){return!r||r.status>=400?null:r}};d.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:r}){return r.redirected?await S(r):r}};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 d({cacheName:k.getPrecacheName(e),plugins:[...t,new W({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:a,url:n}=I(s),c=typeof s!="string"&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(n)&&this._urlsToCacheKeys.get(n)!==a)throw new l("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(n),secondEntry:a});if(typeof s!="string"&&s.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==s.integrity)throw new l("add-to-cache-list-conflicting-integrities",{url:n});this._cacheKeysToIntegrities.set(a,s.integrity)}if(this._urlsToCacheKeys.set(n,a),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 P(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),h=new Request(n,{integrity:i,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:c},request:h,event:e}))}const{updatedURLs:s,notUpdatedURLs:a}=t;return{updatedURLs:s,notUpdatedURLs:a}})}activate(e){return P(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),s=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),n=[];for(const c of s)a.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 l("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 K=()=>(U||(U=new G),U);try{self["workbox:routing:7.2.0"]&&_()}catch{}const T="GET",C=r=>r&&typeof r=="object"?r:{handle:r};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 a=({url:n})=>{const c=e.exec(n.href);if(c&&!(n.origin!==location.origin&&c.index!==0))return c.slice(1)};super(a,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(a=>{typeof a=="string"&&(a=[a]);const n=new Request(...a);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 a=s.origin===location.origin,{params:n,route:c}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,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 h;try{h=i.handle({url:s,request:e,event:t,params:n})}catch(u){h=Promise.reject(u)}const p=c&&c.catchHandler;return h instanceof Promise&&(this._catchHandler||p)&&(h=h.catch(async u=>{if(p)try{return await p.handle({url:s,request:e,event:t,params:n})}catch(L){L instanceof Error&&(u=L)}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:t});throw u})),h}findMatchingRoute({url:e,sameOrigin:t,request:s,event:a}){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:a});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 l("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 l("unregister-route-route-not-registered")}}let w;const J=()=>(w||(w=new z,w.addFetchListener(),w.addCacheListener()),w);function X(r,e,t){let s;if(typeof r=="string"){const n=new URL(r,location.href),c=({url:i})=>i.href===n.href;s=new m(c,e,t)}else if(r instanceof RegExp)s=new Q(r,e,t);else if(typeof r=="function")s=new m(r,e,t);else if(r instanceof m)s=r;else throw new l("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return J().registerRoute(s),s}function Y(r,e=[]){for(const t of[...r.searchParams.keys()])e.some(s=>s.test(t))&&r.searchParams.delete(t);return r}function*Z(r,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:s=!0,urlManipulation:a}={}){const n=new URL(r,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(a){const i=a({url:n});for(const o of i)yield o.href}}class ee extends m{constructor(e,t){const s=({request:a})=>{const n=e.getURLsToCacheKeys();for(const c of Z(a.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(r){const e=K(),t=new ee(e,r);X(t)}function se(r){K().precache(r)}function re(r,e){se(r),te(e)}re([{"revision":null,"url":"assets/AddManualLink.vue_vue_type_script_setup_true_lang-DG4jP955.js"},{"revision":null,"url":"assets/AddPlayerGroup-Bwk7pmNx.js"},{"revision":null,"url":"assets/AddProviderDetails-9el-oexz.js"},{"revision":null,"url":"assets/AlbumDetails-BxtRl2YX.js"},{"revision":null,"url":"assets/ArtistDetails-C15MPi-J.js"},{"revision":null,"url":"assets/AudiobookDetails-BtzViAS0.js"},{"revision":null,"url":"assets/BrowseView-DsuxryYQ.css"},{"revision":null,"url":"assets/BrowseView-DwddahrD.js"},{"revision":null,"url":"assets/Button-D25yJYMO.css"},{"revision":null,"url":"assets/Button-Da2w4xZe.js"},{"revision":null,"url":"assets/constants-CXMxJR4j.js"},{"revision":null,"url":"assets/Container-Df7sl-nn.css"},{"revision":null,"url":"assets/Container-vEyxubcK.js"},{"revision":null,"url":"assets/CoreConfigs-BsI6FsWH.css"},{"revision":null,"url":"assets/CoreConfigs-D3Lk-7JE.js"},{"revision":null,"url":"assets/CreateTokenDialog.vue_vue_type_script_setup_true_lang-C6YdwidI.js"},{"revision":null,"url":"assets/Default-Br-juh2E.js"},{"revision":null,"url":"assets/Default-C8ExxF7E.css"},{"revision":null,"url":"assets/EditConfig-BnGkC7Dx.js"},{"revision":null,"url":"assets/EditConfig-SyvCtrr0.css"},{"revision":null,"url":"assets/EditCoreConfig-CnIejyq9.js"},{"revision":null,"url":"assets/EditPlayer-DWbeXaJ5.js"},{"revision":null,"url":"assets/EditPlayerDsp-aJcSg6U0.css"},{"revision":null,"url":"assets/EditPlayerDsp-BFHS-0i1.js"},{"revision":null,"url":"assets/EditProvider-DaVXHsTj.js"},{"revision":null,"url":"assets/FrontendConfig-eR1Z1zGd.js"},{"revision":null,"url":"assets/HomeView-BprizvGE.css"},{"revision":null,"url":"assets/HomeView-Dn-M1jTz.js"},{"revision":null,"url":"assets/index-BjdGY0D1.js"},{"revision":null,"url":"assets/index-DFqSLpsO.css"},{"revision":null,"url":"assets/index-kQIztB-E.js"},{"revision":null,"url":"assets/index.browser-OxPLOBIU.js"},{"revision":null,"url":"assets/ItemsListing-DsCHQduO.js"},{"revision":null,"url":"assets/ItemsListing-qc86ZllS.css"},{"revision":null,"url":"assets/LibraryAlbums-CHYwiQaW.js"},{"revision":null,"url":"assets/LibraryArtists-BdcWa4H2.js"},{"revision":null,"url":"assets/LibraryAudiobooks-DC0SIBx-.js"},{"revision":null,"url":"assets/LibraryPlaylists-AKjmGQHJ.js"},{"revision":null,"url":"assets/LibraryPodcasts-D8nYpNLG.js"},{"revision":null,"url":"assets/LibraryRadios-1GRC-OzJ.js"},{"revision":null,"url":"assets/LibraryTracks-p8Y13gW3.js"},{"revision":null,"url":"assets/ListItem-CMI0ccXI.js"},{"revision":null,"url":"assets/ListItem-CZjh-Z2L.css"},{"revision":null,"url":"assets/marquee_text_sync-CWCHA3k2.css"},{"revision":null,"url":"assets/marquee_text_sync-WzwJ--pH.js"},{"revision":null,"url":"assets/MediaItemImages-CpqpuCtk.js"},{"revision":null,"url":"assets/MediaItemImages-EU1ndGHN.css"},{"revision":null,"url":"assets/MediaItemThumb-CMOvHHof.js"},{"revision":null,"url":"assets/NowPlayingBadge-Cm6AcKY5.css"},{"revision":null,"url":"assets/NowPlayingBadge.vue_vue_type_style_index_0_lang-B8G50Aza.js"},{"revision":null,"url":"assets/PanelviewItemCompact-BzbA-hBb.css"},{"revision":null,"url":"assets/PanelviewItemCompact-C6DCjPZU.js"},{"revision":null,"url":"assets/PlayerCard-BtmAlIKh.css"},{"revision":null,"url":"assets/PlayerCard-RpvQiENI.js"},{"revision":null,"url":"assets/Players-DbwqOQm4.js"},{"revision":null,"url":"assets/PlaylistDetails-DhlSXFbi.js"},{"revision":null,"url":"assets/PodcastDetails-bqHu2VUs.js"},{"revision":null,"url":"assets/ProviderDetails-sWAPBlBe.css"},{"revision":null,"url":"assets/ProviderDetails.vue_vue_type_script_setup_true_lang-BvNkAPPj.js"},{"revision":null,"url":"assets/Providers-CgdTyZF0.js"},{"revision":null,"url":"assets/Providers-Dpp2O4F9.css"},{"revision":null,"url":"assets/RadioDetails-BDJXF1Lf.js"},{"revision":null,"url":"assets/Search-BOjaQ4tl.js"},{"revision":null,"url":"assets/Settings-D8dH3JXV.js"},{"revision":null,"url":"assets/Settings-DgZgWYgS.css"},{"revision":null,"url":"assets/Toolbar-94EvSFT-.js"},{"revision":null,"url":"assets/Toolbar-DJx0b-Ea.css"},{"revision":null,"url":"assets/TrackDetails-D-mFx3v3.js"},{"revision":null,"url":"assets/UserManagement-BXsqKl-G.css"},{"revision":null,"url":"assets/UserManagement-DqY36gSD.js"},{"revision":null,"url":"assets/UserProfile-2DGSt3Q4.js"},{"revision":null,"url":"assets/UserProfile-2WJSaYoR.css"},{"revision":null,"url":"assets/VAlert-BDbtqfCV.css"},{"revision":null,"url":"assets/VAlert-DfNKgxBR.js"},{"revision":null,"url":"assets/VCheckboxBtn-B_ZAO1Qo.js"},{"revision":null,"url":"assets/VCheckboxBtn-CIeJsqfW.css"},{"revision":null,"url":"assets/VDialog-B7h8eW0m.js"},{"revision":null,"url":"assets/VDialog-DwTSAOeg.css"},{"revision":null,"url":"assets/VExpansionPanels-B8KjM0Qi.css"},{"revision":null,"url":"assets/VExpansionPanels-cqvywsgH.js"},{"revision":null,"url":"assets/VForm-D2eK17M_.js"},{"revision":null,"url":"assets/VInfiniteScroll-Bbntx9NP.css"},{"revision":null,"url":"assets/VInfiniteScroll-CBHSFC6_.js"},{"revision":null,"url":"assets/VSelect-cNIaLpz4.js"},{"revision":null,"url":"assets/VSelect-DMb2DNZp.css"},{"revision":null,"url":"assets/VSlider-DlBvQp-0.css"},{"revision":null,"url":"assets/VSlider-Dt4jt2Zl.js"},{"revision":null,"url":"assets/VSwitch-CvtgmnVD.js"},{"revision":null,"url":"assets/VSwitch-Mm7Rd7At.css"},{"revision":null,"url":"assets/VToolbar-COKHN9Hu.css"},{"revision":null,"url":"assets/VToolbar-DyyzvXAh.js"},{"revision":null,"url":"assets/VVirtualScroll-BNcY_ygg.css"},{"revision":null,"url":"assets/VVirtualScroll-Ck3MSSZi.js"},{"revision":null,"url":"assets/WidgetRow-CXYVjNw0.js"},{"revision":null,"url":"assets/WidgetRow-CzKBwQIP.css"},{"revision":null,"url":"assets/workbox-window.prod.es5-CwtvwXb3.js"},{"revision":"b3006a19477799ad6383a2a4935bb70b","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",r=>{const{type:e,data:t}=r.data;if(console.log("[ServiceWorker] Received message:",e,t),e==="http-proxy-response"){const{id:s,status:a,headers:n,body:c}=t,i=g.get(s);if(i){g.delete(s);try{const o=ne(c),h=new Response(o,{status:a,headers:new Headers(n)});i.resolve(h)}catch(o){i.reject(o)}}}else e==="set-remote-mode"&&(self.isRemoteMode=t.isRemote,console.log("[ServiceWorker] Remote mode set to:",self.isRemoteMode))});self.addEventListener("fetch",r=>{const e=new URL(r.request.url);if(self.isRemoteMode&&e.pathname.startsWith("/imageproxy")){console.log("[ServiceWorker] Intercepting imageproxy request:",e.pathname),r.respondWith(ae(r.request));return}if(e.pathname.startsWith("/imageproxy")){console.log("[ServiceWorker] Passing through imageproxy request (not in remote mode)"),r.respondWith(fetch(r.request));return}});async function ae(r){const e=new URL(r.url),t=ce(),s=new Promise((i,o)=>{g.set(t,{resolve:i,reject:o}),setTimeout(()=>{g.has(t)&&(g.delete(t),o(new Error("HTTP proxy request timeout")))},3e4)}),a={},n=["accept","accept-encoding","cache-control","if-none-match","if-modified-since"];for(const i of n){const o=r.headers.get(i);o&&(a[i]=o)}const c=await self.clients.matchAll();if(c.length>0)c[0].postMessage({type:"http-proxy-request",data:{id:t,method:r.method,path:e.pathname+e.search,headers:a}});else return g.delete(t),new Response("Service worker error: No client found",{status:503});try{return await s}catch(i){return console.error("[ServiceWorker] HTTP proxy error:",i),new Response(i.message,{status:500})}}function ne(r){const e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.substring(t,t+2),16);return e}function ce(){return`req_${Date.now()}_${Math.random().toString(36).substring(2,11)}`}self.isRemoteMode=!1;console.log("[ServiceWorker] Loaded");
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: music-assistant-frontend
3
- Version: 2.17.15
3
+ Version: 2.17.20
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,145 @@
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=kNqnTAgcqHGY6pcVz1t3m5XfxcWLTbqsV0ILQPrzOic,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=nlCu8Fn_kbY6XGOXIA9SIdZoDUU11RButYKfcmFOCo8,23895
12
+ music_assistant_frontend/assets/About-Ba3VLBU-.css,sha256=4iFyW9wBsDKjMdtPAVbFefrHrzW2vavoxy6tksCDuAM,1180
13
+ music_assistant_frontend/assets/About-eW-4urJV.js,sha256=X__fSbB4MC77EPbi4czGnMdmtxkwbIW7Fx9xeUhNNVE,7326
14
+ music_assistant_frontend/assets/AddManualLink.vue_vue_type_script_setup_true_lang-DQP6MVZU.js,sha256=SEX9sXXlMfkWKHai_vBePNNSy5Mmrdir72kFvbgsW_M,2520
15
+ music_assistant_frontend/assets/AddPlayerGroup-DrpKvGgv.js,sha256=XyveKGuCASlNWLF5J-JOf2OaQwHrx9rMH0rUywngHI8,2893
16
+ music_assistant_frontend/assets/AddProviderDetails-CWS1vCiZ.js,sha256=Xn-0lfX70RYaVLxxock1NqnBAEyjp2vRIePItZ0XyG4,3321
17
+ music_assistant_frontend/assets/AlbumDetails-wRWGtQUA.js,sha256=t7ikfTjnjvo4kTp5o1rg_s1Dvdfrpske0d7kVmzqyDg,3072
18
+ music_assistant_frontend/assets/ArtistDetails-CR47rAMr.js,sha256=3z4hBtmhxXqGjcE4jxEMxi7K-rkEzjeoo6He4yWNbVk,3260
19
+ music_assistant_frontend/assets/AudiobookDetails-CE9gIq3Q.js,sha256=yawXNV5l53n5k7vzNHYYybC0cz9npPqqYvBLl5Ayp5o,2296
20
+ music_assistant_frontend/assets/BrowseView-Cx_P4-_Y.js,sha256=LxeOR3Ibj4Q7c5q3pr5rxFx73xobx6tJhs2PuagOjBg,2458
21
+ music_assistant_frontend/assets/BrowseView-DsuxryYQ.css,sha256=1i5-2mmZfqxFZVc1qCWZ3W-u8Eiy8a-3CBSst30Paqw,508
22
+ music_assistant_frontend/assets/Button-D25yJYMO.css,sha256=SBS4243Vbq8RHNrFFbAAyJ7UootNCOCEPIIlDtYtkt8,636
23
+ music_assistant_frontend/assets/Button-faGxxowY.js,sha256=H8tkhWwTtkcHXrn5Y0k0vBT2XgjIGmjQkcYRrGRfi70,2247
24
+ music_assistant_frontend/assets/Container-D5KFPVjs.js,sha256=bcro57Xv7EBcAmOyfhRPBTnQFl6rtTJGC0ZGtJ2NQqw,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-Cad6HStr.js,sha256=aukFI1OHqUo7xImg3IuJN266hemAptYY6rSSRC1PpO0,2527
27
+ music_assistant_frontend/assets/Default-GVlZdAUf.css,sha256=5sjPnoJFQQmgRJUsoFbiQUlKaaIP23gfKXfPTpSF-LE,21045
28
+ music_assistant_frontend/assets/Default-KyHEk5ZR.js,sha256=wEpneNoKAc2LoL2ZQzob6sGTm28BM0H3rEY3gWgefDw,89155
29
+ music_assistant_frontend/assets/EditConfig-B0XoDh_u.js,sha256=iCv3aJzDgP0OsHpAwv1ZFb4YCO7hG_O4IyfRPvuUWyk,34100
30
+ music_assistant_frontend/assets/EditConfig-TBO3lEGx.css,sha256=IrPAh1eF3Yf7UO9ODNgOOqPFAoejb2Rx7ixkz4llWrc,3121
31
+ music_assistant_frontend/assets/EditCoreConfig-DFyuSEd9.js,sha256=cjuvholfTNF1XviC2npDFMDpOGajSxlQ4-vNyhx_a34,2111
32
+ music_assistant_frontend/assets/EditPlayer-Cgs9ko95.js,sha256=2URbMN7aEbl5c5TAqD8Em6rasBL5wWD9Cn-5-HeK2L0,4802
33
+ music_assistant_frontend/assets/EditPlayerDsp-D98k0PKW.js,sha256=jUZaYzL3aO2oD4_uOzeFDfoOe7cTZgdHSzE_qZ9UuUY,31437
34
+ music_assistant_frontend/assets/EditPlayerDsp-aJcSg6U0.css,sha256=GlXeccav62kMfLHLZSuyJ9fWvcekEUsh9Sy_2pGJhzw,16954
35
+ music_assistant_frontend/assets/EditProvider-CgzI4UVG.js,sha256=jI0Zdze1DuLCN6xT6yDLp8nSmHcKifXFiw_7UD7gdD0,4142
36
+ music_assistant_frontend/assets/FrontendConfig-B-B9Z2Vn.js,sha256=MxLluWrJKymogdXqHDIu8_97oS16cvEHVZApUGKHSog,3023
37
+ music_assistant_frontend/assets/HomeView-BprizvGE.css,sha256=fUa7IHNnC6PUi9qZTx722y7mRv_hFTRjBweu0lXEGWo,1021
38
+ music_assistant_frontend/assets/HomeView-DFXlCmKt.js,sha256=RhvzfNnMEBhQzUFQUuDERV41oAxgIyTesXodYvzIT90,5625
39
+ music_assistant_frontend/assets/ItemsListing-BP5XXmLQ.js,sha256=O41KAdf_CvDKSRZmHc--WNcgLBol8M9vtIUFVBN1zGc,33390
40
+ music_assistant_frontend/assets/ItemsListing-DL5ZjBes.css,sha256=57nq4cF6Fyy7TaSX_y3NFuCe_r75HDlbDkZPZBr3TJI,5001
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-BGHrSh_z.js,sha256=O-obY5jsAF6s3eibJ_Ftz88fVTIQS2UvOeVPk_bSsuk,1911
52
+ music_assistant_frontend/assets/LibraryArtists-rX5Sb_ET.js,sha256=KkPGQ5LwPElW9pO2vfj-xXJBEUnq_oojZK--FSNVVfE,1900
53
+ music_assistant_frontend/assets/LibraryAudiobooks-BL7Qa-rV.js,sha256=nlVTxYf17NKwWMbJtYubhlMSfeMWpcpGLnB59svAjgc,1911
54
+ music_assistant_frontend/assets/LibraryPlaylists-mtIVGJsc.js,sha256=1keR3bzTXxdlx-tIU8Cn4nGVYT_oKggkwblu2I5Q3e0,2495
55
+ music_assistant_frontend/assets/LibraryPodcasts-DFW7qn7z.js,sha256=aBvarC1iWsCUQ1VG6_ywVSCQnIdn69abxyIUzNB60ys,1881
56
+ music_assistant_frontend/assets/LibraryRadios-3VXOISsH.js,sha256=Hr7L3IiO304GP0nFEy5vsQvN-7O_eOm7Bsxp753rBxE,2218
57
+ music_assistant_frontend/assets/LibraryTracks-D1kcnNYD.js,sha256=-rQtcXJkUdQgfbCjPolP6La5EgLJYGxAFD66ONifqv4,2295
58
+ music_assistant_frontend/assets/ListItem-CZjh-Z2L.css,sha256=xnRgaixJWmUAV5pxybu8lKUhRab1R9zWcMfru5v4zRM,620
59
+ music_assistant_frontend/assets/ListItem-DXTT8_G5.js,sha256=bL6StNnhHmSX5fPRsUrTHaXF0o3Hox3M_FCv5ZJWJis,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-EU1ndGHN.css,sha256=4whfB9baW-AyAjdI98vrVnhNTHbpYAo4YaXP5AdDunw,770
65
+ music_assistant_frontend/assets/MediaItemImages-RwaXDWAp.js,sha256=HzVaKyub6Emx4rA_CJYYHmBcSVQYMVc5w8KtQCK21To,2821
66
+ music_assistant_frontend/assets/MediaItemThumb-DYAHQAuC.js,sha256=Py7xrqBCvLksZ-XIm6zYMibs2Pz6lACTd2gGDrVK67g,111
67
+ music_assistant_frontend/assets/PanelviewItemCompact-BKBJxxoM.js,sha256=FSmtJthRuVnBudPHPsskjmdckGEEi9HSbcbMyIQCY3E,4080
68
+ music_assistant_frontend/assets/PanelviewItemCompact-BzbA-hBb.css,sha256=cBsEn2SKuOGe3osTCHzvvE_eoVXVFF2KdnjrATcEPZ0,833
69
+ music_assistant_frontend/assets/PlayerCard-BtmAlIKh.css,sha256=p7XiCirPv7tgeIuVfy9jiDCDlDzTVmmdOqRMgvI3zn8,2594
70
+ music_assistant_frontend/assets/PlayerCard-DdgZ3XZ5.js,sha256=B_Vvq6iV0xmFT21H0QSExuQGtIqPiAfK37mA6cm2T8U,18901
71
+ music_assistant_frontend/assets/Players-BelAvYKh.js,sha256=zBaRUKME7M9IOriEb1xkS2lnmTk7aWucMVD56I0VKyg,4282
72
+ music_assistant_frontend/assets/PlaylistDetails-Bf5e08Ep.js,sha256=RaE9Uuq92Pf_BFQzTxdtEENtX0MQz7rBnXx5G1hkod4,1944
73
+ music_assistant_frontend/assets/PodcastDetails-B8Mjw_8n.js,sha256=ERmRbpDYmWKR9ZoviEvafuxJ7xpEC_wCIHvqfd1HZs0,1912
74
+ music_assistant_frontend/assets/ProviderDetails-sWAPBlBe.css,sha256=HimbEA1ciknydjrjY-9zxi9UsMgghXk7UjO43Nmp_o0,373
75
+ music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-CPN1bhCQ.js,sha256=Dtdjw05CaVFXVJXBczk-aJqNDHCgP8KLP4tvKyBCK6s,13096
76
+ music_assistant_frontend/assets/Providers-BYVx_A_K.js,sha256=Of0oh9AHfFMjO2C9HPjh9dENvTLTYMRGVRY4LsV08co,15766
77
+ music_assistant_frontend/assets/Providers-Dpp2O4F9.css,sha256=TyKDzqDQSWTBbKJmt_eAqUZX76LBy4t6zwTq0OxpRgI,3383
78
+ music_assistant_frontend/assets/RadioDetails-pOddxrkl.js,sha256=CdK-yAG4qai0oWVFMsWoN93upE54n-PniuPkTYkrCWE,1828
79
+ music_assistant_frontend/assets/Search-B6SlCk_7.js,sha256=RricsolAluFxWZlY-b3jbmKOma7IZ7RRp7r4QbCtQ10,4676
80
+ music_assistant_frontend/assets/ServerLogs-BzVXmR6_.js,sha256=3wW2dxMgLdRMf6xDh-LncOiL7oAI3PCVPUawnl5Z66I,3335
81
+ music_assistant_frontend/assets/ServerLogs-D16I7ozL.css,sha256=5BPgyx9HuiyDwA1aTSVXye3UQxnfwIaSL3e-dI0a4Cs,429
82
+ music_assistant_frontend/assets/Settings-CDWcSKlt.css,sha256=DTA46TspW94UEpihC_7xdZ--UFKdV7UkuILpMsmGQvM,1974
83
+ music_assistant_frontend/assets/Settings-Cqw-X9OU.js,sha256=V6uMX8Z6Y6HlBeON8TQA-lRaxBnoOyxuioinPQJTBS8,8064
84
+ music_assistant_frontend/assets/SystemConfig-BKi5ffMS.css,sha256=zZIb8jgnOlq_m7ZsGsf8DJpNcC_jrMQz-RqXxoq9jSk,1100
85
+ music_assistant_frontend/assets/SystemConfig-BOdTwx9R.js,sha256=nwbQnDz34K6hulPx4-Jdkycfzd0VSUZRNh9ZQ2CnV0k,2426
86
+ music_assistant_frontend/assets/Toolbar-B32L_M7G.js,sha256=af6ztGapa5FJrtRVCcEfG4wiwEX1stm8ccqeC83E7yk,6412
87
+ music_assistant_frontend/assets/Toolbar-CVFN8H4Z.css,sha256=4R2uNmGkh_HRvxyhhTnqRM7g1_GIP-ecXP8vcAWFHb8,2456
88
+ music_assistant_frontend/assets/TrackDetails-CkCm62Ec.js,sha256=n035BHyTPSr9Bn1bWSMs48CEgB7oeetAb3G0pR_4Aoc,2373
89
+ music_assistant_frontend/assets/UserManagement-BXsqKl-G.css,sha256=yiMcqPnzrVX8JnBwxJowYBPyhfUjl2KtHWD3Lp1b7DU,2603
90
+ music_assistant_frontend/assets/UserManagement-c_dhgxwj.js,sha256=ZjR5HFtBOikX0zkA0vK7g5T2O34oEWHMS73qg7zL4-g,23940
91
+ music_assistant_frontend/assets/UserProfile-2WJSaYoR.css,sha256=E1PrFhrEWtUK0t4CWl7M9nWmCJjhWCk0ABGGba0hVd0,4938
92
+ music_assistant_frontend/assets/UserProfile-CpcF98Ve.js,sha256=OJ0KCh6eemeWfFyWiS7OenDNdahYbgjmVAbYTh8ITak,11943
93
+ music_assistant_frontend/assets/VAlert-BDbtqfCV.css,sha256=Vucg-AYMS00BwvDbRzGXC_ibDc1j3FNPD5sAoM_3CaM,4750
94
+ music_assistant_frontend/assets/VAlert-CFvRz3gu.js,sha256=8nA5fuC7cdvjd_l-i-_9CLvU9bHtLyg_M32USSaZrqQ,3167
95
+ music_assistant_frontend/assets/VCheckboxBtn-B5wUW3kZ.js,sha256=yBvfvaCbs9B1KLplIJOwgJaa9nDZfdgB7nPRBaksjmE,941
96
+ music_assistant_frontend/assets/VDialog-5KHkpnhE.js,sha256=UfF-DOh1D2NfJzebMX87Qb3Wn0u_6HKgo8svTitjGlM,2411
97
+ music_assistant_frontend/assets/VDialog-DwTSAOeg.css,sha256=kf2DYyHyyVeitBzbysh0KagMv09hKJKHmCy0phlC3EM,2663
98
+ music_assistant_frontend/assets/VExpansionPanels-B8KjM0Qi.css,sha256=HvFph4IDJRfrMhZpLR8haQPwppUq2F8SGMAwkPy3f1A,6479
99
+ music_assistant_frontend/assets/VExpansionPanels-DboS79vY.js,sha256=jMs5oUNa1eV9w2iB5ABOJ6QVQW0dieKtpECpGgMOpWY,4895
100
+ music_assistant_frontend/assets/VForm-DDKxMAmn.js,sha256=08C1mHrjtBkPuqKOe9pctYKa2uaJDDyr8aknnvzOGYs,685
101
+ music_assistant_frontend/assets/VInfiniteScroll-Bbntx9NP.css,sha256=hJWXZGdhkbWumbAXz_CIEg0zM_yN7mybIzVhrprLLLQ,792
102
+ music_assistant_frontend/assets/VInfiniteScroll-DataCA15.js,sha256=o3S7ZVY0e0TPH_5auosqlMqho5jMtDiNg-pbzvtu9Zk,3659
103
+ music_assistant_frontend/assets/VSelect-DMb2DNZp.css,sha256=_6f_mGImM52JP0l5drHpriGDAASlkpeJjEJNepNO-8U,1680
104
+ music_assistant_frontend/assets/VSelect-VNw4nPSb.js,sha256=9OftCnPRhDj9USMOOlSXUwZrHqqVUqU1lXOJxWm7-Lk,8831
105
+ music_assistant_frontend/assets/VSelectionControl-CCjz0Lnv.js,sha256=WuJ3p1pmTqvQubV-eCcxlRZJw_RiEwR5SJPbHG1R6nU,4879
106
+ music_assistant_frontend/assets/VSelectionControl-CIeJsqfW.css,sha256=IKnS5pGaKnwG6DjIwblAYhGk7GUN3LsCW85ePQIK-v8,2346
107
+ music_assistant_frontend/assets/VSlider-Dcfg9Wg5.js,sha256=JWkSXlBBidTZXm5LQZrFuJnq9em0w8sdKAtIcy6KxIg,11405
108
+ music_assistant_frontend/assets/VSlider-DlBvQp-0.css,sha256=-u-E3y9Xc9IDIWDtZkvQY7JKz6J00rSWfnoaqrGaI7M,10262
109
+ music_assistant_frontend/assets/VSwitch-DQEiK9D_.js,sha256=mpqNOzluYwBGzX5fdfPumQnyzQTK9t0UKAGo3GjUNZQ,2646
110
+ music_assistant_frontend/assets/VSwitch-Mm7Rd7At.css,sha256=yFH4tt2mx5UEjiYhVFTpbCO0ZC3JwaFnBhfv7W1kMCc,5027
111
+ music_assistant_frontend/assets/VToolbar-COKHN9Hu.css,sha256=RiUKuMHsetrFzzzyBOvqZPDKd99tQ3QE1cHSoe5q03M,2730
112
+ music_assistant_frontend/assets/VToolbar-w3YLtQh8.js,sha256=AoVu_4AhLGoNkYAI6gRYxjxkn35-k2s889mo5ThDt90,2801
113
+ music_assistant_frontend/assets/VVirtualScroll-BNcY_ygg.css,sha256=QZ3T9ijpU6HvSuqEnIgq5cW44CnnaO1uOjPJHffZ6a4,137
114
+ music_assistant_frontend/assets/VVirtualScroll-Cg5AQGzG.js,sha256=c_bpMMklCQu1X4ivcpfnT6o7MfGAiX8CJS0R24HYABY,4938
115
+ music_assistant_frontend/assets/WidgetRow-CZHmyp7T.js,sha256=asiqtk2BorDFH0nKk_6NWS_2SX_HBvt-SVWvQoAsBw0,2695
116
+ music_assistant_frontend/assets/WidgetRow-CzKBwQIP.css,sha256=lyPAMs73TVc8R4BV1mokxUCXy3fbdGYxtg900U1aFso,746
117
+ music_assistant_frontend/assets/almost_silent-BMvfGi7_.mp3,sha256=zlpyB67yZab5YtFl10bgzaQN5M3fQthBh3ufeI5Cvkk,496896
118
+ music_assistant_frontend/assets/constants-CXMxJR4j.js,sha256=wdFJN_eO5H66v8i-8gdcmLErtETVs_vnNhAXEJFm5B0,157
119
+ music_assistant_frontend/assets/cover_dark-DW8aYTk2.png,sha256=dUAs0EeAqYs_6vBCZ0ozzx304HNO3rNU9_Fwa2kRRtw,11926
120
+ music_assistant_frontend/assets/cover_light-Dxw-EaOr.png,sha256=uDKunsTNFXOKAmsTa6qVL6za3t2B0iEx3EtxvJV5Nzk,11831
121
+ music_assistant_frontend/assets/fallback-DFk8zSGg.png,sha256=0P8oAOi7n-sBYG7EIu22m6b7UmFoNoi0pi3neF1SxPo,10609
122
+ music_assistant_frontend/assets/hires-DgAYKrO8.png,sha256=Q4xwRtgLKtqFnL0zetHWCGDqX8CPFxzaXAX7C7diCU0,16057
123
+ music_assistant_frontend/assets/icon-U5wS6iOz.svg,sha256=Q2A7xPBg88m_RqImohKbMqNZV6_tRgs_7k8IREXUQAM,11197
124
+ music_assistant_frontend/assets/index-Dj6UKNsX.js,sha256=heLVtKjXjAwe_NdC_eyUIIbPgyvsl7s7AoXOnxVKC00,1870465
125
+ music_assistant_frontend/assets/index-iTwi4kPx.css,sha256=3dbqjbAtf6GiGoEOoNp50rPFAvBj2bL5dduV-v2M0xo,825240
126
+ music_assistant_frontend/assets/index-kQIztB-E.js,sha256=_2ttfd8KliaTKWnsxsv_gXw505hXaiurIrGBypK4WeU,4979
127
+ music_assistant_frontend/assets/index.browser-OxPLOBIU.js,sha256=7Yk2rv9f9OtHxh8jSidiX3ANprqgSrYd36bysHaCvgE,196
128
+ music_assistant_frontend/assets/info_gradient-C5d1dalX.jpg,sha256=pK79HYRLHfB_2eV7Tx1gEpbAd22HhVqnXNlX5l_Q3H4,28226
129
+ music_assistant_frontend/assets/m4a-BFCodQZL.png,sha256=RTMbBczAp_wltH1X-K67zy4sfhHXhEFbX57LCikUSIQ,9150
130
+ music_assistant_frontend/assets/marquee_text_sync-CWCHA3k2.css,sha256=gwe4BnUUGwPY3Wu6usHILl8FFkF3LYJzrA9952JO2FQ,212
131
+ music_assistant_frontend/assets/marquee_text_sync-R3hHMfp7.js,sha256=iEPrBBjNe0du2hFLRtvzCcddyLKMbZxASLkhh_LPVp0,3362
132
+ music_assistant_frontend/assets/material-icons-outlined-DZhiGvEA.woff2,sha256=NdyopxRaF8jRMG8lo8oJFXjhU5bwsi1h645zJirHVXc,155276
133
+ music_assistant_frontend/assets/materialdesignicons-webfont-B7mPwVP_.ttf,sha256=YeirpaTpgf4iz3yOi82-oAR251xiw38Bv37jM2HWhCg,1307660
134
+ music_assistant_frontend/assets/materialdesignicons-webfont-CSr8KVlo.eot,sha256=CxgxBNL8XyYZbnc8d72vLgVQn9QlnS0V7O3Kebh-hPk,1307880
135
+ music_assistant_frontend/assets/materialdesignicons-webfont-Dp5v-WZN.woff2,sha256=Zi_vqPL4qVwYWI0hd0eJwQfGTnccvmWmmvRikcQxGvw,403216
136
+ music_assistant_frontend/assets/materialdesignicons-webfont-PXm3-2wK.woff,sha256=pZKKDVwvYk5G-Y2bFcL2AEU3f3xZTdeKF1kTLqO0Y-s,587984
137
+ music_assistant_frontend/assets/open-home-foundation-logo-C7bc6Uqr.svg,sha256=K5fxNXy6ok2DDSidGjtznJfiQNzJiZomuI25atFh8Wo,8745
138
+ music_assistant_frontend/assets/userPreferences-Cm6AcKY5.css,sha256=bPrvrv9bTfonZXaDN3nxawHYm4Ldy1VX3ThI2nE968k,789
139
+ music_assistant_frontend/assets/userPreferences-CpcwN_LW.js,sha256=o8UZaWlQ9hlMiKAEONAvUtYDQjm2WVrGLoO-CgHJgC0,2365
140
+ music_assistant_frontend/assets/workbox-window.prod.es5-CwtvwXb3.js,sha256=Al-oy-yvMWilZAiuOhA9LLDNoLq3pOaE6Ax3qncyLuY,5760
141
+ music_assistant_frontend-2.17.20.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
142
+ music_assistant_frontend-2.17.20.dist-info/METADATA,sha256=85roq2SYyoM6uwALM__Jwr9PLj3Is7CAZW1O8q4KlPA,3007
143
+ music_assistant_frontend-2.17.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
144
+ music_assistant_frontend-2.17.20.dist-info/top_level.txt,sha256=XjtvyM66vdcfJakG0XqhazCKdoWP3eHELRvTLokYRcM,25
145
+ music_assistant_frontend-2.17.20.dist-info/RECORD,,
@@ -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,aD 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 D,c1 as G}from"./index-BjdGY0D1.js";import{V as F}from"./VForm-D2eK17M_.js";import{V as E}from"./VSelect-cNIaLpz4.js";import{V as O}from"./VSwitch-CvtgmnVD.js";import"./VVirtualScroll-Ck3MSSZi.js";import"./VCheckboxBtn-B_ZAO1Qo.js";const R={style:{"margin-left":"-5px","margin-right":"-5px"}},I=P({__name:"AddPlayerGroup",props:{provider:{}},setup(_){const $=D(),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(G,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(F,{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(E,{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{I as default};
@@ -1 +0,0 @@
1
- import{n as B}from"./index.browser-OxPLOBIU.js";import{aw as N,J as k,a3 as S,aN as o,b9 as $,a4 as x,L as H,ax as V,ay as f,o as a,aD as s,az as C,E as u,aB as i,aG as g,be as h,bf as m,aL as w,bg as b,b_ as M,cC as I,aS as P,c1 as D,bT as j,M as U,aQ as z,b6 as O,bv as G,aC as J,bL as Q}from"./index-BjdGY0D1.js";import{E as R}from"./EditConfig-BnGkC7Dx.js";import"./VForm-D2eK17M_.js";import"./VExpansionPanels-cqvywsgH.js";import"./VDialog-B7h8eW0m.js";import"./VAlert-DfNKgxBR.js";import"./VSwitch-CvtgmnVD.js";import"./VCheckboxBtn-B_ZAO1Qo.js";import"./VSlider-Dt4jt2Zl.js";import"./VSelect-cNIaLpz4.js";import"./VVirtualScroll-Ck3MSSZi.js";const q={key:0,style:{"margin-left":"-5px","margin-right":"-5px"}},F={id:"auth",href:"",target:"_blank"},se=N({__name:"AddProviderDetails",props:{domain:{}},setup(r){const T=J(),p=k([]),y=B(11),d=k(!1),c=k(!1),v=r;S(()=>{const n=o.subscribe($.AUTH_SESSION,e=>{if(e.object_id!==y)return;const t=e.data;c.value=!0,window.setTimeout(()=>{const l=document.getElementById("auth");l.setAttribute("href",t),l.click()},100)});x(n)}),H(()=>v.domain,async n=>{n&&(p.value=await o.getProviderConfigEntries(v.domain,void 0,void 0,{session_id:y}))},{immediate:!0});const A=async function(n){d.value=!0,o.saveProviderConfig(v.domain,n).then(()=>{T.push({name:"providersettings"})}).catch(e=>{alert(e)}).finally(()=>{d.value=!1,c.value=!1})},E=async function(n,e){d.value=!0;for(const t of p.value)t.value!==void 0&&e[t.key]==null&&(e[t.key]=t.value);e.session_id=y,o.getProviderConfigEntries(v.domain,void 0,n,e).then(t=>{p.value=t}).catch(t=>{alert(t)}).finally(()=>{d.value=!1,c.value=!1})},L=function(n){const e=[],{t}=Q();for(const l of n)l.includes("@")?e.push(`[${l.replace("@","")}](https://github.com/${l.replace("@","")})`):e.push(l);return`**${t("settings.codeowners")}**: `+e.join(" / ")};return(n,e)=>(f(),V("section",null,[a(D,null,{default:s(()=>[i(o).providerManifests[r.domain]?(f(),V("div",q,[a(h,null,{default:s(()=>[m(w(n.$t("settings.setup_provider",[i(o).providerManifests[r.domain].name])),1)]),_:1}),a(b,{innerHTML:i(M)(i(o).providerManifests[r.domain].description)},null,8,["innerHTML"]),e[3]||(e[3]=u("br",null,null,-1)),i(o).providerManifests[r.domain].codeowners.length?(f(),g(b,{key:0,innerHTML:i(M)(L(i(o).providerManifests[r.domain].codeowners))},null,8,["innerHTML"])):C("",!0),i(o).providerManifests[r.domain].documentation?(f(),g(b,{key:1},{default:s(()=>[u("b",null,w(n.$t("settings.need_help_setup_provider")),1),e[2]||(e[2]=m("  ",-1)),u("a",{onClick:e[0]||(e[0]=t=>i(I)(i(o).providerManifests[r.domain].documentation))},w(n.$t("settings.check_docs")),1)]),_:1})):C("",!0)])):C("",!0),e[4]||(e[4]=u("br",null,null,-1)),a(P),e[5]||(e[5]=u("br",null,null,-1)),e[6]||(e[6]=u("br",null,null,-1)),a(R,{"config-entries":p.value,disabled:!1,onSubmit:A,onAction:E},null,8,["config-entries"])]),_:1}),a(G,{modelValue:d.value,"onUpdate:modelValue":e[1]||(e[1]=t=>d.value=t),scrim:"true",persistent:"",style:{display:"flex","align-items":"center","justify-content":"center"}},{default:s(()=>[c.value?(f(),g(z,{key:0,style:{"background-color":"white"}},{default:s(()=>[a(h,null,{default:s(()=>[...e[7]||(e[7]=[m("Authenticating...",-1)])]),_:1}),a(b,null,{default:s(()=>[...e[8]||(e[8]=[m("A new tab/popup should be opened where you can authenticate",-1)])]),_:1}),a(j,null,{default:s(()=>[u("a",F,[a(U,null,{default:s(()=>[...e[9]||(e[9]=[m("Click here if the popup did not open",-1)])]),_:1})])]),_:1})]),_:1})):(f(),g(O,{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-BvNkAPPj.js";import{I as v}from"./ItemsListing-DsCHQduO.js";import{M as g}from"./MediaItemImages-CpqpuCtk.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-BjdGY0D1.js";import"./Toolbar-94EvSFT-.js";import"./VToolbar-DyyzvXAh.js";import"./marquee_text_sync-WzwJ--pH.js";import"./MediaItemThumb-CMOvHHof.js";import"./VDialog-B7h8eW0m.js";import"./Container-vEyxubcK.js";import"./index-kQIztB-E.js";import"./ListItem-CMI0ccXI.js";import"./Button-Da2w4xZe.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-B8G50Aza.js";import"./VCheckboxBtn-B_ZAO1Qo.js";import"./PanelviewItemCompact-C6DCjPZU.js";import"./VInfiniteScroll-CBHSFC6_.js";import"./VVirtualScroll-Ck3MSSZi.js";import"./VAlert-DfNKgxBR.js";const R=_({__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{R as default};
@@ -1 +0,0 @@
1
- import{I as _,_ as k}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-BvNkAPPj.js";import{I as p}from"./ItemsListing-DsCHQduO.js";import{M as g}from"./MediaItemImages-CpqpuCtk.js";import{aw as A,J as v,L as h,a3 as D,aN as o,b9 as B,a4 as E,ax as M,ay as s,o as V,aG as n,az as u,E as m,aB as f}from"./index-BjdGY0D1.js";import"./Toolbar-94EvSFT-.js";import"./VToolbar-DyyzvXAh.js";import"./marquee_text_sync-WzwJ--pH.js";import"./MediaItemThumb-CMOvHHof.js";import"./VDialog-B7h8eW0m.js";import"./Container-vEyxubcK.js";import"./index-kQIztB-E.js";import"./ListItem-CMI0ccXI.js";import"./Button-Da2w4xZe.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-B8G50Aza.js";import"./VCheckboxBtn-B_ZAO1Qo.js";import"./PanelviewItemCompact-C6DCjPZU.js";import"./VInfiniteScroll-CBHSFC6_.js";import"./VVirtualScroll-Ck3MSSZi.js";import"./VAlert-DfNKgxBR.js";const R=A({__name:"ArtistDetails",props:{itemId:{},provider:{}},setup(y){const r=y,e=v(),i=v(!1),c=async function(){i.value=!0,e.value=await o.getArtist(r.itemId,r.provider),i.value=!1};h(()=>r.itemId,a=>{a&&c()},{immediate:!0}),D(()=>{const a=o.subscribe(B.MEDIA_ITEM_UPDATED,t=>{const l=t.data;if(e.value?.uri==l.uri)i.value=!0,e.value=l,i.value=!1;else if("provider_mappings"in l){for(const d of l.provider_mappings)if(d.item_id==r.itemId&&[d.provider_instance,d.provider_domain].includes(r.provider)){i.value=!0,e.value=l,i.value=!1;break}}});E(a)});const b=async function(a){return await o.getArtistAlbums(r.itemId,r.provider,a.libraryOnly)},w=async function(a){return await o.getArtistTracks(r.itemId,r.provider,a.libraryOnly)},I=async function(){e.value&&(e.value=await o.sendCommand("music/artists/update",{item_id:e.value.item_id,update:e.value,overwrite:!0}))};return(a,t)=>(s(),M("section",null,[V(_,{item:e.value},null,8,["item"]),e.value&&!i.value?(s(),n(p,{key:0,itemtype:"artistalbums","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!0,"show-library-only-filter":e.value.provider=="library"&&f(o).hasStreamingProviders.value,"show-album-type-filter":!0,"show-refresh-button":!1,"load-items":b,"sort-keys":["name","sort_name","year","name_desc","sort_name_desc","year_desc"],title:a.$t("albums"),"allow-collapse":!0},null,8,["parent-item","show-library-only-filter","title"])):u("",!0),t[1]||(t[1]=m("br",null,null,-1)),e.value&&!i.value?(s(),n(p,{key:1,itemtype:"artisttracks","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!0,"show-library-only-filter":e.value.provider=="library"&&f(o).hasStreamingProviders.value,"show-refresh-button":!1,"show-track-number":!1,"load-items":w,"sort-keys":["name","sort_name","album","duration","name_desc","sort_name_desc","duration_desc","original"],title:a.$t("tracks"),"allow-collapse":!0},null,8,["parent-item","show-library-only-filter","title"])):u("",!0),t[2]||(t[2]=m("br",null,null,-1)),e.value?.provider=="library"&&e.value?.metadata?.images?(s(),n(g,{key:2,modelValue:e.value.metadata.images,"onUpdate:modelValue":[t[0]||(t[0]=l=>e.value.metadata.images=l),I]},null,8,["modelValue"])):u("",!0),t[3]||(t[3]=m("br",null,null,-1)),e.value?(s(),n(k,{key:3,"item-details":e.value},null,8,["item-details"])):u("",!0),t[4]||(t[4]=m("br",null,null,-1))]))}});export{R as default};
@@ -1 +0,0 @@
1
- import{I as v}from"./ItemsListing-DsCHQduO.js";import{aw as _,bL as x,J as B,i as u,ax as n,ay as l,o as E,aD as I,E as V,ag as C,aE as L,aG as S,az as N,aL as b,aJ as P,bk as d,aN as D,aO as F,_ as O}from"./index-BjdGY0D1.js";import"./Container-vEyxubcK.js";import"./index-kQIztB-E.js";import"./Toolbar-94EvSFT-.js";import"./VToolbar-DyyzvXAh.js";import"./Button-Da2w4xZe.js";import"./ListItem-CMI0ccXI.js";import"./NowPlayingBadge.vue_vue_type_style_index_0_lang-B8G50Aza.js";import"./VCheckboxBtn-B_ZAO1Qo.js";import"./MediaItemThumb-CMOvHHof.js";import"./PanelviewItemCompact-C6DCjPZU.js";import"./VInfiniteScroll-CBHSFC6_.js";import"./VVirtualScroll-Ck3MSSZi.js";import"./VAlert-DfNKgxBR.js";const j={class:"breadcrumb-container"},z=["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 D.browse(o.path);return p.value=a.every(t=>t.media_type===F.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",j,[(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,z)):(l(),n("span",J,b(t.text),1)),s<h.value.length-1?(l(),S(P,{key:2,icon:"mdi-chevron-right",size:"small",class:"breadcrumb-separator"})):N("",!0)]))),128))])]),_:1},8,["show-select-button","path","title"])]))}}),et=O(T,[["__scopeId","data-v-c0cbe0e2"]]);export{et as default};
@@ -1 +0,0 @@
1
- .v-table{font-size:.875rem;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-table .v-table-divider{border-right:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>thead>tr>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td,.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tfoot>tr>td,.v-table .v-table__wrapper>table>tfoot>tr>th{border-top:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr>td{position:relative}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr:hover>td:after{background:rgba(var(--v-border-color),var(--v-hover-opacity));pointer-events:none}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr:hover>td:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-table.v-table--striped-even>.v-table__wrapper>table>tbody>tr:nth-child(2n){background-image:linear-gradient(0deg,rgba(var(--v-border-color),var(--v-hover-opacity)),rgba(var(--v-border-color),var(--v-hover-opacity)))}.v-table.v-table--striped-odd>.v-table__wrapper>table>tbody>tr:nth-child(odd){background-image:linear-gradient(0deg,rgba(var(--v-border-color),var(--v-hover-opacity)),rgba(var(--v-border-color),var(--v-hover-opacity)))}.v-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{background:rgb(var(--v-theme-surface));box-shadow:inset 0 -1px rgba(var(--v-border-color),var(--v-border-opacity));z-index:1}.v-table.v-table--fixed-footer>tfoot>tr>th,.v-table.v-table--fixed-footer>tfoot>tr>td{background:rgb(var(--v-theme-surface));box-shadow:inset 0 1px rgba(var(--v-border-color),var(--v-border-opacity))}.v-table{border-radius:inherit;line-height:1.5;max-width:100%;display:flex;flex-direction:column}.v-table>.v-table__wrapper>table{width:100%;border-spacing:0}.v-table>.v-table__wrapper>table>tbody>tr>td,.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>td,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>td,.v-table>.v-table__wrapper>table>tfoot>tr>th{padding:0 16px;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table>.v-table__wrapper>table>tbody>tr>td,.v-table>.v-table__wrapper>table>thead>tr>td,.v-table>.v-table__wrapper>table>tfoot>tr>td{height:var(--v-table-row-height)}.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>th{height:var(--v-table-header-height);font-weight:500;-webkit-user-select:none;user-select:none;text-align:start}.v-table--density-default{--v-table-header-height: 56px;--v-table-row-height: 52px}.v-table--density-comfortable{--v-table-header-height: 48px;--v-table-row-height: 44px}.v-table--density-compact{--v-table-header-height: 40px;--v-table-row-height: 36px}.v-table__wrapper{border-radius:inherit;overflow:auto;flex:1 1 auto}.v-table--has-top>.v-table__wrapper{border-top-left-radius:0;border-top-right-radius:0}.v-table--has-bottom>.v-table__wrapper{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-table--fixed-height>.v-table__wrapper{overflow-y:auto}.v-table--fixed-header>.v-table__wrapper>table>thead{position:sticky;top:0;z-index:2}.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{border-bottom:0px!important}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr{position:sticky;bottom:0;z-index:1}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>td,.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>th{border-top:0px!important}
@@ -1 +0,0 @@
1
- import{C}from"./Container-vEyxubcK.js";import{L as B}from"./ListItem-CMI0ccXI.js";import{g as M,p as V,G as L,d as I,n as A,o as u,q as P,r as N,v as R,x,B as z,C as D,E as e,s as F,aw as S,J as E,a3 as X,aN as s,av as d,ax as p,ay as c,aD as o,bf as y,aL as t,ag as h,aE as G,aB as l,az as k,aJ as $,aC as H,aX as J,aG as T,aT as U,cC as Y,aM as q}from"./index-BjdGY0D1.js";import{V as w}from"./VToolbar-DyyzvXAh.js";import"./index-kQIztB-E.js";import"./Button-Da2w4xZe.js";const j=V({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,striped:{type:String,default:null,validator:n=>["even","odd"].includes(n)},...D(),...z(),...x(),...R()},"VTable"),K=M()({name:"VTable",props:j(),setup(n,v){let{slots:r,emit:g}=v;const{themeClasses:f}=L(n),{densityClasses:a}=I(n);return A(()=>u(n.tag,{class:N(["v-table",{"v-table--fixed-height":!!n.height,"v-table--fixed-header":n.fixedHeader,"v-table--fixed-footer":n.fixedFooter,"v-table--has-top":!!r.top,"v-table--has-bottom":!!r.bottom,"v-table--hover":n.hover,"v-table--striped-even":n.striped==="even","v-table--striped-odd":n.striped==="odd"},f.value,a.value,n.class]),style:P(n.style)},{default:()=>[r.top?.(),r.default?e("div",{class:"v-table__wrapper",style:{height:F(n.height)}},[e("table",null,[r.default()])]):r.wrapper?.(),r.bottom?.()]})),{}}}),O={style:{"margin-bottom":"10px"}},Q={class:"line-clamp-1"},W={class:"line-clamp-1"},Z={style:{"margin-bottom":"10px"}},ee={key:0},te=["href"],ie=S({__name:"CoreConfigs",setup(n){const v=H(),r=E([]),g=function(a){v.push(`/settings/editcore/${a}`)},f=function(a,m){const _=[{label:"settings.configure",labelArgs:[],action:()=>{g(m.domain)},icon:"mdi-cog"},{label:"settings.documentation",labelArgs:[],action:()=>{Y(s.providerManifests[m.domain].documentation)},icon:"mdi-bookshelf",disabled:!s.providerManifests[m.domain].documentation}];q.emit("contextmenu",{items:_,posX:a.clientX,posY:a.clientY})};return X(async()=>{r.value=await s.getCoreConfigs(),d.libraryArtistsCount=await s.getLibraryArtistsCount(),d.libraryAlbumsCount=await s.getLibraryAlbumsCount(),d.libraryTracksCount=await s.getLibraryTracksCount(),d.libraryPlaylistsCount=await s.getLibraryPlaylistsCount(),d.libraryRadiosCount=await s.getLibraryRadiosCount()}),(a,m)=>{const _=J("Button");return c(),p(h,null,[e("div",O,[u(w,{color:"transparent"},{title:o(()=>[y(t(a.$t("settings.core_modules")),1)]),_:1}),u(C,null,{default:o(()=>[(c(!0),p(h,null,G(r.value.sort((i,b)=>l(s).providerManifests[i.domain].name.localeCompare(l(s).providerManifests[b.domain].name)),i=>(c(),T(B,{key:i.domain,"show-menu-btn":"",class:"list-item-main",link:"",onMenu:b=>f(b,i),onClick:b=>g(i.domain)},{prepend:o(()=>[u(U,{domain:i.domain,size:40,class:"listitem-media-thumb",style:{"margin-left":"10px"}},null,8,["domain"])]),title:o(()=>[e("div",Q,t(l(s).providerManifests[i.domain].name),1)]),subtitle:o(()=>[e("div",W,t(l(s).providerManifests[i.domain].description),1)]),append:o(()=>[i.last_error?(c(),T(_,{key:0,icon:"",title:i.last_error},{default:o(()=>[u($,{color:"red"},{default:o(()=>[...m[0]||(m[0]=[y(" mdi-alert-circle ",-1)])]),_:1})]),_:1},8,["title"])):k("",!0)]),_:2},1032,["onMenu","onClick"]))),128))]),_:1})]),e("div",Z,[u(w,{color:"transparent"},{title:o(()=>[y(t(a.$t("settings.server_info")),1)]),_:1}),u(C,null,{default:o(()=>[u(K,null,{default:o(()=>[e("tbody",null,[e("tr",null,[e("td",null,t(a.$t("settings.server_id")),1),e("td",null,t(l(s).serverInfo.value?.server_id),1)]),e("tr",null,[e("td",null,t(a.$t("settings.server_version")),1),e("td",null,t(l(s).serverInfo.value?.server_version),1)]),l(s).serverInfo.value?.homeassistant_addon?k("",!0):(c(),p("tr",ee,[e("td",null,t(a.$t("settings.server_base_url")),1),e("td",null,t(l(s).serverInfo.value?.base_url),1)])),e("tr",null,[e("td",null,t(a.$t("settings.server_as_addon")),1),e("td",null,[u($,{icon:l(s).serverInfo.value?.homeassistant_addon?"mdi-check":"mdi-close"},null,8,["icon"])])]),e("tr",null,[e("td",null,t(a.$t("settings.artists_in_library")),1),e("td",null,t(l(d).libraryArtistsCount),1)]),e("tr",null,[e("td",null,t(a.$t("settings.albums_in_library")),1),e("td",null,t(l(d).libraryAlbumsCount),1)]),e("tr",null,[e("td",null,t(a.$t("settings.tracks_in_library")),1),e("td",null,t(l(d).libraryTracksCount),1)]),e("tr",null,[e("td",null,t(a.$t("settings.playlists_in_library")),1),e("td",null,t(l(d).libraryPlaylistsCount),1)]),e("tr",null,[e("td",null,t(a.$t("settings.radio_in_library")),1),e("td",null,t(l(d).libraryRadiosCount),1)]),e("tr",null,[e("td",null,t(a.$t("settings.server_logging")),1),e("td",null,[e("a",{href:`${l(s).baseUrl}/music-assistant.log`,target:"_blank"},t(a.$t("settings.download_log")),9,te)])])])]),_:1})]),_:1})])],64)}}});export{ie as default};
@@ -1 +0,0 @@
1
- import{aw as w,bL as x,J as f,L as $,aG as c,ay as u,aD 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 D,bF as h,ag as I,E as L,bT as _,bU as A,M as k,aN as E,aU as i}from"./index-BjdGY0D1.js";import{V as S}from"./VDialog-B7h8eW0m.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 E.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(),D(I,{key:1},[L("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(A),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 _};