diff --git a/package.json b/package.json index 814d8b5..30e61b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "deemix-webui", - "version": "1.8.11", + "version": "1.8.12", "scripts": { "clean": "rimraf public/js/bundle.js public/js/bundle.temp.js public/js/bundle.js.map", "clean-temp": "rimraf public/js/bundle.temp.js", diff --git a/public/js/bundle.js b/public/js/bundle.js index fdadd40..7875550 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -2949,7 +2949,7 @@ a { `)])]),e._v(" "),a("div",{directives:[{name:"show",rawName:"v-show",value:e.isExpanded,expression:"isExpanded"}],ref:"list",staticClass:"w-full pr-2",class:{slim:e.isSlim},attrs:{id:"download_list"}},e._l(e.queueList,function(i){return a("QueueItem",{key:i.uuid,attrs:{"queue-item":i,"show-tags":e.showTags},on:{"show-errors":e.showErrorsTab,"remove-item":e.onRemoveItem}})}),1)])},__vue_staticRenderFns__$o=[];const __vue_inject_styles__$o=function(e){!e||e("data-v-72b1a1f4_0",{source:"#toggle_download_tab[data-v-72b1a1f4]{width:25px;height:25px}#toggle_download_tab[data-v-72b1a1f4]::before{font-family:'Material Icons';font-style:normal;font-weight:400;content:'chevron_right'}#download_tab_container.tab-hidden #toggle_download_tab[data-v-72b1a1f4]::before{content:'chevron_left'}#download_tab_container.tab-hidden[data-v-72b1a1f4]::after{content:attr(data-label);display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:2rem}#download_list[data-v-72b1a1f4]{height:calc(100% - 32px);padding-left:28px;overflow-y:scroll}#download_list[data-v-72b1a1f4]::-webkit-scrollbar{width:10px}#download_list[data-v-72b1a1f4]::-webkit-scrollbar-track{background:var(--panels-background)}#download_list[data-v-72b1a1f4]::-webkit-scrollbar-thumb{background:var(--panels-scroll);border-radius:4px;width:6px;padding:0 2px}",map:void 0,media:void 0})},__vue_scope_id__$o="data-v-72b1a1f4",__vue_module_identifier__$6=void 0,__vue_is_functional_template__$o=!1;function __vue_normalize__$o(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};s.__file="TheDownloadBar.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i;{let d;if(n&&(d=function(u){n.call(this,o(u))}),d!==void 0)if(s.functional){const u=s.render;s.render=function(v,f){return d.call(f),u(v,f)}}else{const u=s.beforeCreate;s.beforeCreate=u?[].concat(u,d):[d]}}return s}function __vue_create_injector__$6(){const e=document.head||document.getElementsByTagName("head")[0],n=__vue_create_injector__$6.styles||(__vue_create_injector__$6.styles={}),a=typeof navigator!="undefined"&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(r,l){if(document.querySelector('style[data-vue-ssr-id~="'+r+'"]'))return;const o=a?l.media||"default":r,c=n[o]||(n[o]={ids:[],parts:[],element:void 0});if(!c.ids.includes(r)){let s=l.source,d=c.ids.length;if(c.ids.push(r),l.map&&(s+=` /*# sourceURL=`+l.map.sources[0]+" */",s+=` /*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(l.map))))+" */"),a&&(c.element=c.element||document.querySelector("style[data-group="+o+"]")),!c.element){const u=c.element=document.createElement("style");u.type="text/css",l.media&&u.setAttribute("media",l.media),a&&(u.setAttribute("data-group",o),u.setAttribute("data-next-index","0")),e.appendChild(u)}if(a&&(d=parseInt(c.element.getAttribute("data-next-index")),c.element.setAttribute("data-next-index",d+1)),c.element.styleSheet)c.parts.push(s),c.element.styleSheet.cssText=c.parts.filter(Boolean).join(` -`);else{const u=document.createTextNode(s),h=c.element.childNodes;h[d]&&c.element.removeChild(h[d]),h.length?c.element.insertBefore(u,h[d]):c.element.appendChild(u)}}}}var TheDownloadBar=__vue_normalize__$o({render:__vue_render__$o,staticRenderFns:__vue_staticRenderFns__$o},__vue_inject_styles__$o,__vue_script__$o,__vue_scope_id__$o,__vue_is_functional_template__$o,__vue_module_identifier__$6,__vue_create_injector__$6),script$n={components:{TheSidebar,TheSearchBar,TheDownloadBar,TheTrackPreview,TheQualityModal,BaseLoadingPlaceholder,TheContextMenu,TheContent,DeezerWarning},data(){return{isSocketConnected:!1}},mounted(){socket.addEventListener("open",()=>{console.log("Connected to WebSocket"),this.isSocketConnected=!0})}};const __vue_script__$n=script$n;var __vue_render__$n=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",{attrs:{id:"app"}},[a("div",{staticClass:"app-container"},[a("TheSidebar"),e._v(" "),a("div",{staticClass:"content-container"},[a("TheSearchBar"),e._v(" "),a("DeezerWarning"),e._v(" "),a("TheContent")],1),e._v(" "),a("TheDownloadBar")],1),e._v(" "),a("BaseLoadingPlaceholder",{attrs:{text:"Connecting to local server...",hidden:e.isSocketConnected,"additional-classes":"absolute top-0 left-0 w-screen h-screen bg-black bg-opacity-50 z-50"}}),e._v(" "),a("TheTrackPreview"),e._v(" "),a("TheQualityModal"),e._v(" "),a("TheContextMenu")],1)},__vue_staticRenderFns__$n=[];const __vue_inject_styles__$n=function(e){!e||e("data-v-1cb2a990_0",{source:".app-container{display:flex}.content-container{width:100%;display:flex;flex-direction:column}",map:void 0,media:void 0})},__vue_scope_id__$n=void 0,__vue_module_identifier__$5=void 0,__vue_is_functional_template__$n=!1;function __vue_normalize__$n(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};s.__file="App.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i;{let d;if(n&&(d=function(u){n.call(this,o(u))}),d!==void 0)if(s.functional){const u=s.render;s.render=function(v,f){return d.call(f),u(v,f)}}else{const u=s.beforeCreate;s.beforeCreate=u?[].concat(u,d):[d]}}return s}function __vue_create_injector__$5(){const e=document.head||document.getElementsByTagName("head")[0],n=__vue_create_injector__$5.styles||(__vue_create_injector__$5.styles={}),a=typeof navigator!="undefined"&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(r,l){if(document.querySelector('style[data-vue-ssr-id~="'+r+'"]'))return;const o=a?l.media||"default":r,c=n[o]||(n[o]={ids:[],parts:[],element:void 0});if(!c.ids.includes(r)){let s=l.source,d=c.ids.length;if(c.ids.push(r),l.map&&(s+=` +`);else{const u=document.createTextNode(s),h=c.element.childNodes;h[d]&&c.element.removeChild(h[d]),h.length?c.element.insertBefore(u,h[d]):c.element.appendChild(u)}}}}var TheDownloadBar=__vue_normalize__$o({render:__vue_render__$o,staticRenderFns:__vue_staticRenderFns__$o},__vue_inject_styles__$o,__vue_script__$o,__vue_scope_id__$o,__vue_is_functional_template__$o,__vue_module_identifier__$6,__vue_create_injector__$6),script$n={components:{TheSidebar,TheSearchBar,TheDownloadBar,TheTrackPreview,TheQualityModal,BaseLoadingPlaceholder,TheContextMenu,TheContent,DeezerWarning},data(){return{isSocketConnected:!1}},mounted(){this.isSocketConnected=socket.readyState===WebSocket.OPEN,socket.addEventListener("open",()=>{console.log("Connected to WebSocket"),this.isSocketConnected=!0})}};const __vue_script__$n=script$n;var __vue_render__$n=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",{attrs:{id:"app"}},[a("div",{staticClass:"app-container"},[a("TheSidebar"),e._v(" "),a("div",{staticClass:"content-container"},[a("TheSearchBar"),e._v(" "),a("DeezerWarning"),e._v(" "),a("TheContent")],1),e._v(" "),a("TheDownloadBar")],1),e._v(" "),a("BaseLoadingPlaceholder",{attrs:{text:"Connecting to local server...",hidden:e.isSocketConnected,"additional-classes":"absolute top-0 left-0 w-screen h-screen bg-black bg-opacity-50 z-50"}}),e._v(" "),a("TheTrackPreview"),e._v(" "),a("TheQualityModal"),e._v(" "),a("TheContextMenu")],1)},__vue_staticRenderFns__$n=[];const __vue_inject_styles__$n=function(e){!e||e("data-v-5469d590_0",{source:".app-container{display:flex}.content-container{width:100%;display:flex;flex-direction:column}",map:void 0,media:void 0})},__vue_scope_id__$n=void 0,__vue_module_identifier__$5=void 0,__vue_is_functional_template__$n=!1;function __vue_normalize__$n(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};s.__file="App.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i;{let d;if(n&&(d=function(u){n.call(this,o(u))}),d!==void 0)if(s.functional){const u=s.render;s.render=function(v,f){return d.call(f),u(v,f)}}else{const u=s.beforeCreate;s.beforeCreate=u?[].concat(u,d):[d]}}return s}function __vue_create_injector__$5(){const e=document.head||document.getElementsByTagName("head")[0],n=__vue_create_injector__$5.styles||(__vue_create_injector__$5.styles={}),a=typeof navigator!="undefined"&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(r,l){if(document.querySelector('style[data-vue-ssr-id~="'+r+'"]'))return;const o=a?l.media||"default":r,c=n[o]||(n[o]={ids:[],parts:[],element:void 0});if(!c.ids.includes(r)){let s=l.source,d=c.ids.length;if(c.ids.push(r),l.map&&(s+=` /*# sourceURL=`+l.map.sources[0]+" */",s+=` /*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(l.map))))+" */"),a&&(c.element=c.element||document.querySelector("style[data-group="+o+"]")),!c.element){const u=c.element=document.createElement("style");u.type="text/css",l.media&&u.setAttribute("media",l.media),a&&(u.setAttribute("data-group",o),u.setAttribute("data-next-index","0")),e.appendChild(u)}if(a&&(d=parseInt(c.element.getAttribute("data-next-index")),c.element.setAttribute("data-next-index",d+1)),c.element.styleSheet)c.parts.push(s),c.element.styleSheet.cssText=c.parts.filter(Boolean).join(` `);else{const u=document.createTextNode(s),h=c.element.childNodes;h[d]&&c.element.removeChild(h[d]),h.length?c.element.insertBefore(u,h[d]):c.element.appendChild(u)}}}}var App=__vue_normalize__$n({render:__vue_render__$n,staticRenderFns:__vue_staticRenderFns__$n},__vue_inject_styles__$n,__vue_script__$n,__vue_scope_id__$n,__vue_is_functional_template__$n,__vue_module_identifier__$5,__vue_create_injector__$5);/*! @@ -3007,7 +3007,7 @@ a { `+e._s(e.$t("about.appStatus."+(e.isOnline?"online":"offline")))+` `)])]),e._v(" "),a("ul",[a("li",[e._v(` `+e._s(e.$t("about.updates.currentWebuiVersion"))+`: - `),a("span",[e._v(e._s("1.8.11"))])]),e._v(" "),a("li",[e._v(` + `),a("span",[e._v(e._s("1.8.12"))])]),e._v(" "),a("li",[e._v(` `+e._s(e.$t("about.updates.currentVersion"))+`: `),a("span",[e._v(e._s(e.current||e.$t("about.updates.versionNotAvailable")))])]),e._v(" "),a("li",[e._v(e._s(e.$t("about.updates.deemixVersion"))+": "+e._s(e.deemixVersion))]),e._v(" "),e.updateAvailable&&e.latest?a("li",[e._v(e._s(e.$t("about.updates.updateAvailable",{version:e.latest})))]):e._e()]),e._v(" "),a("ul",[a("li",{domProps:{innerHTML:e._s(e.$t("about.usesLibrary"))}}),e._v(" "),a("li",{domProps:{innerHTML:e._s(e.$t("about.thanks"))}}),e._v(" "),a("i18n",{attrs:{path:"about.upToDate.text",tag:"li"},scopedSlots:e._u([{key:"newsChannel",fn:function(){return[a("a",{attrs:{href:"https://tg.deemix.app",target:"_blank"}},[e._v(e._s(e.$t("about.upToDate.newsChannel")))])]},proxy:!0}])})],1),e._v(" "),a("h2",[e._v(e._s(e.$t("about.titles.usefulLinks")))]),e._v(" "),a("ul",{staticClass:"no-dots"},[a("li",[a("a",{attrs:{href:"https://git.freezer.life/RemixDev/deemix-js",target:"_blank"}},[e._v("\u{1F680} "+e._s(e.$t("about.officialRepo")))])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://gitlab.com/RemixDev/deemix-webui",target:"_blank"}},[e._v(" \u{1F4BB} "+e._s(e.$t("about.officialWebuiRepo"))+" ")])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://www.reddit.com/r/deemix",target:"_blank"}},[e._v("\u{1F916} "+e._s(e.$t("about.officialSubreddit")))])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://tg.deemix.app",target:"_blank"}},[e._v("\u{1F4F0} "+e._s(e.$t("about.newsChannel")))])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://t.me/RemixDevNews",target:"_blank"}},[e._v("\u{1F4BE} "+e._s(e.$t("about.devlogChannel")))])])]),e._v(" "),a("h2",[e._v(` `+e._s(e.$t("about.titles.bugReports"))+` @@ -3033,7 +3033,7 @@ a { `+e._s(e.$t("about.subtitles.donations"))+` `)])]),e._v(" "),a("ul",[a("li",{domProps:{innerHTML:e._s(e.$t("about.itsFree"))}}),e._v(" "),a("li",[e._v(` `+e._s(e.$t("about.notObligated"))+` - `)])]),e._v(" "),a("ul",[a("li",[a("i",{domProps:{innerHTML:e._s(e.paypal)}}),e._v(" "),a("strong",[e._v("PayPal:")]),e._v(" "),a("a",{attrs:{href:"https://paypal.me/RemixDev",target:"_blank"}},[e._v("PayPal.me/RemixDev")])])]),e._v(" "),a("h2",[e._v(e._s(e.$t("about.titles.license")))]),e._v(" "),e._m(0),e._v(" "),a("i18n",{attrs:{path:"about.lincensedUnder.text",tag:"p"},scopedSlots:e._u([{key:"gpl3",fn:function(){return[a("a",{attrs:{rel:"license",href:"https://www.gnu.org/licenses/gpl-3.0.en.html",target:"_blank"}},[e._v(e._s(e.$t("about.lincensedUnder.gpl3")))])]},proxy:!0}])})],1)},__vue_staticRenderFns__$m=[function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("p",[a("a",{attrs:{rel:"license",href:"https://www.gnu.org/licenses/gpl-3.0.en.html",target:"_blank"}},[a("img",{staticStyle:{"border-width":"0"},attrs:{alt:"GNU General Public License",src:"https://www.gnu.org/graphics/gplv3-127x51.png"}})])])}];const __vue_inject_styles__$m=function(e){!e||e("data-v-e799ef6c_0",{source:`@charset "UTF-8";a[data-v-e799ef6c],li[data-v-e799ef6c],p[data-v-e799ef6c]{letter-spacing:.4px;font-size:20px;line-height:1.2}i[data-v-e799ef6c]{vertical-align:middle}i[data-v-e799ef6c] svg{fill:#fff;width:20px}.ethereum[data-v-e799ef6c] svg{fill:var(--foreground)}[data-v-e799ef6c]:link{text-decoration:none}#about_tab[data-v-e799ef6c]{margin-bottom:40px}h2[data-v-e799ef6c]{text-transform:capitalize}h2[data-v-e799ef6c]:not(.page_heading){font-size:2rem;border-bottom:1px solid rgba(51,51,51,.25);padding-top:2rem;padding-bottom:1rem}h2 .subheading[data-v-e799ef6c]{display:block;font-size:.5em;margin-top:.5em;font-weight:400;opacity:.8;text-transform:none}p[data-v-e799ef6c]{margin:0!important}ul li[data-v-e799ef6c]{margin-bottom:7px}h2+ul[data-v-e799ef6c]{margin-top:1rem}ul+ul[data-v-e799ef6c]{margin-top:1.25rem}ul.no-dots[data-v-e799ef6c]{list-style-type:none}ul[data-v-e799ef6c]:not(.no-dots){list-style-type:none}ul:not(.no-dots) li[data-v-e799ef6c]{position:relative}ul:not(.no-dots) li[data-v-e799ef6c]::before{content:'\u2014';position:absolute;left:-30px;opacity:.25}`,map:void 0,media:void 0})},__vue_scope_id__$m="data-v-e799ef6c",__vue_module_identifier__$4=void 0,__vue_is_functional_template__$m=!1;function __vue_normalize__$m(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};s.__file="About.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i;{let d;if(n&&(d=function(u){n.call(this,o(u))}),d!==void 0)if(s.functional){const u=s.render;s.render=function(v,f){return d.call(f),u(v,f)}}else{const u=s.beforeCreate;s.beforeCreate=u?[].concat(u,d):[d]}}return s}function __vue_create_injector__$4(){const e=document.head||document.getElementsByTagName("head")[0],n=__vue_create_injector__$4.styles||(__vue_create_injector__$4.styles={}),a=typeof navigator!="undefined"&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(r,l){if(document.querySelector('style[data-vue-ssr-id~="'+r+'"]'))return;const o=a?l.media||"default":r,c=n[o]||(n[o]={ids:[],parts:[],element:void 0});if(!c.ids.includes(r)){let s=l.source,d=c.ids.length;if(c.ids.push(r),l.map&&(s+=` + `)])]),e._v(" "),a("ul",[a("li",[a("i",{domProps:{innerHTML:e._s(e.paypal)}}),e._v(" "),a("strong",[e._v("PayPal:")]),e._v(" "),a("a",{attrs:{href:"https://paypal.me/RemixDev",target:"_blank"}},[e._v("PayPal.me/RemixDev")])])]),e._v(" "),a("h2",[e._v(e._s(e.$t("about.titles.license")))]),e._v(" "),e._m(0),e._v(" "),a("i18n",{attrs:{path:"about.lincensedUnder.text",tag:"p"},scopedSlots:e._u([{key:"gpl3",fn:function(){return[a("a",{attrs:{rel:"license",href:"https://www.gnu.org/licenses/gpl-3.0.en.html",target:"_blank"}},[e._v(e._s(e.$t("about.lincensedUnder.gpl3")))])]},proxy:!0}])})],1)},__vue_staticRenderFns__$m=[function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("p",[a("a",{attrs:{rel:"license",href:"https://www.gnu.org/licenses/gpl-3.0.en.html",target:"_blank"}},[a("img",{staticStyle:{"border-width":"0"},attrs:{alt:"GNU General Public License",src:"https://www.gnu.org/graphics/gplv3-127x51.png"}})])])}];const __vue_inject_styles__$m=function(e){!e||e("data-v-10bdf0a9_0",{source:`@charset "UTF-8";a[data-v-10bdf0a9],li[data-v-10bdf0a9],p[data-v-10bdf0a9]{letter-spacing:.4px;font-size:20px;line-height:1.2}i[data-v-10bdf0a9]{vertical-align:middle}i[data-v-10bdf0a9] svg{fill:#fff;width:20px}.ethereum[data-v-10bdf0a9] svg{fill:var(--foreground)}[data-v-10bdf0a9]:link{text-decoration:none}#about_tab[data-v-10bdf0a9]{margin-bottom:40px}h2[data-v-10bdf0a9]{text-transform:capitalize}h2[data-v-10bdf0a9]:not(.page_heading){font-size:2rem;border-bottom:1px solid rgba(51,51,51,.25);padding-top:2rem;padding-bottom:1rem}h2 .subheading[data-v-10bdf0a9]{display:block;font-size:.5em;margin-top:.5em;font-weight:400;opacity:.8;text-transform:none}p[data-v-10bdf0a9]{margin:0!important}ul li[data-v-10bdf0a9]{margin-bottom:7px}h2+ul[data-v-10bdf0a9]{margin-top:1rem}ul+ul[data-v-10bdf0a9]{margin-top:1.25rem}ul.no-dots[data-v-10bdf0a9]{list-style-type:none}ul[data-v-10bdf0a9]:not(.no-dots){list-style-type:none}ul:not(.no-dots) li[data-v-10bdf0a9]{position:relative}ul:not(.no-dots) li[data-v-10bdf0a9]::before{content:'\u2014';position:absolute;left:-30px;opacity:.25}`,map:void 0,media:void 0})},__vue_scope_id__$m="data-v-10bdf0a9",__vue_module_identifier__$4=void 0,__vue_is_functional_template__$m=!1;function __vue_normalize__$m(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};s.__file="About.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i;{let d;if(n&&(d=function(u){n.call(this,o(u))}),d!==void 0)if(s.functional){const u=s.render;s.render=function(v,f){return d.call(f),u(v,f)}}else{const u=s.beforeCreate;s.beforeCreate=u?[].concat(u,d):[d]}}return s}function __vue_create_injector__$4(){const e=document.head||document.getElementsByTagName("head")[0],n=__vue_create_injector__$4.styles||(__vue_create_injector__$4.styles={}),a=typeof navigator!="undefined"&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(r,l){if(document.querySelector('style[data-vue-ssr-id~="'+r+'"]'))return;const o=a?l.media||"default":r,c=n[o]||(n[o]={ids:[],parts:[],element:void 0});if(!c.ids.includes(r)){let s=l.source,d=c.ids.length;if(c.ids.push(r),l.map&&(s+=` /*# sourceURL=`+l.map.sources[0]+" */",s+=` /*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(l.map))))+" */"),a&&(c.element=c.element||document.querySelector("style[data-group="+o+"]")),!c.element){const u=c.element=document.createElement("style");u.type="text/css",l.media&&u.setAttribute("media",l.media),a&&(u.setAttribute("data-group",o),u.setAttribute("data-next-index","0")),e.appendChild(u)}if(a&&(d=parseInt(c.element.getAttribute("data-next-index")),c.element.setAttribute("data-next-index",d+1)),c.element.styleSheet)c.parts.push(s),c.element.styleSheet.cssText=c.parts.filter(Boolean).join(` `);else{const u=document.createTextNode(s),h=c.element.childNodes;h[d]&&c.element.removeChild(h[d]),h.length?c.element.insertBefore(u,h[d]):c.element.appendChild(u)}}}}var About=__vue_normalize__$m({render:__vue_render__$m,staticRenderFns:__vue_staticRenderFns__$m},__vue_inject_styles__$m,__vue_script__$m,__vue_scope_id__$m,__vue_is_functional_template__$m,__vue_module_identifier__$4,__vue_create_injector__$4),script$l={};const __vue_script__$l=script$l;var __vue_render__$l=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",[a("h1",{staticClass:"mb-8 text-5xl"},[e._v(e._s(e.$t("settings.login.arl.question")))]),e._v(" "),e._m(0),e._v(" "),a("h3",{staticClass:"mt-6 text-3xl"},[e._v("Chrome (Easy way)")]),e._v(" "),e._m(1),e._v(" "),a("h3",{staticClass:"mt-6 text-3xl"},[e._v("Chrome")]),e._v(" "),e._m(2),e._v(" "),e._m(3),e._v(" "),a("h3",{staticClass:"mt-6 text-3xl"},[e._v("Firefox")]),e._v(" "),e._m(4)])},__vue_staticRenderFns__$l=[function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("p",{staticClass:"mb-2 text-base"},[e._v(` @@ -3086,7 +3086,7 @@ a { `)])])],1)}),0)])])])},__vue_staticRenderFns__$h=[];const __vue_inject_styles__$h=void 0,__vue_scope_id__$h=void 0,__vue_is_functional_template__$h=!1;function __vue_normalize__$h(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};return s.__file="Charts.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i,s}var Charts=__vue_normalize__$h({render:__vue_render__$h,staticRenderFns:__vue_staticRenderFns__$h},__vue_inject_styles__$h,__vue_script__$h,__vue_scope_id__$h,__vue_is_functional_template__$h),script$g={computed:{...mapGetters(["getErrors"]),title(){return`${this.getErrors.artist} - ${this.getErrors.title}`},errors(){let e=[];return this.getErrors.errors.forEach(n=>{(!n.type||n.type==="track")&&e.push(n)}),e},postErrors(){let e=[];return this.getErrors.errors.forEach(n=>{n.type==="post"&&e.push(n)}),e}}};const __vue_script__$g=script$g;var __vue_render__$g=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",[a("h1",{staticClass:"mb-8 text-5xl"},[e._v(e._s(e.$t("errors.title",{name:e.title})))]),e._v(" "),e.errors.length>=1?a("table",{staticClass:"table table--tracklist"},[a("tr",[a("th",[e._v("ID")]),e._v(" "),a("th",{staticClass:"uppercase-first-letter"},[e._v(e._s(e.$tc("globals.listTabs.artist",1)))]),e._v(" "),a("th",{staticClass:"uppercase-first-letter"},[e._v(e._s(e.$tc("globals.listTabs.title",1)))]),e._v(" "),a("th",{staticClass:"uppercase-first-letter"},[e._v(e._s(e.$tc("globals.listTabs.error",1)))])]),e._v(" "),e._l(e.errors,function(i){return a("tr",{key:i.data.id},[a("td",[e._v(e._s(i.data.id))]),e._v(" "),a("td",[e._v(e._s(i.data.artist))]),e._v(" "),a("td",[e._v(e._s(i.data.title))]),e._v(" "),a("td",[a("span",{attrs:{title:i.stack}},[e._v(e._s(i.errid?e.$t("errors.ids."+i.errid):i.message))])])])})],2):e._e(),e._v(" "),e.postErrors.length>=1?a("div",[a("h2",[e._v(e._s(e.$t("errors.postTitle")))]),e._v(" "),a("table",{staticClass:"table table--tracklist"},[a("tr",[a("th",[e._v("ID")]),e._v(" "),a("th",{staticClass:"uppercase-first-letter"},[e._v(e._s(e.$tc("globals.listTabs.empty")))]),e._v(" "),a("th",{staticClass:"uppercase-first-letter"},[e._v(e._s(e.$tc("globals.listTabs.error",1)))])]),e._v(" "),e._l(e.postErrors,function(i){return a("tr",{key:i.data.id},[a("td",[e._v(e._s(i.data.position))]),e._v(" "),a("td",[i.data.id?a("span",[e._v(e._s(i.data.artist)+" - "+e._s(i.data.title))]):e._e()]),e._v(" "),a("td",[a("span",{attrs:{title:i.stack}},[e._v(e._s(i.errid?e.$t("errors.ids."+i.errid):i.message))])])])})],2)]):e._e()])},__vue_staticRenderFns__$g=[];const __vue_inject_styles__$g=void 0,__vue_scope_id__$g=void 0,__vue_is_functional_template__$g=!1;function __vue_normalize__$g(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};return s.__file="Errors.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i,s}var Errors=__vue_normalize__$g({render:__vue_render__$g,staticRenderFns:__vue_staticRenderFns__$g},__vue_inject_styles__$g,__vue_script__$g,__vue_scope_id__$g,__vue_is_functional_template__$g),script$f={inheritAttrs:!1,props:{cover:{type:String,required:!0},isRounded:{type:Boolean,required:!1},isCircle:{type:Boolean,required:!1},link:{type:String,required:!0}}};const __vue_script__$f=script$f;var __vue_render__$f=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",{staticClass:"relative cover-container group"},[a("img",{staticClass:"block w-full opacity-100 coverart",class:{rounded:e.isRounded,"rounded-full":e.isCircle},attrs:{"aria-hidden":"true",src:e.cover}}),e._v(" "),a("button",e._g({staticClass:"absolute p-0 text-center bg-black border-0 rounded-full opacity-0 download_overlay hover:bg-primary",attrs:{role:"button","aria-label":"download","data-link":e.link,tabindex:"0"}},e.$listeners),[a("i",{staticClass:"text-white cursor-pointer material-icons",attrs:{title:e.$t("globals.download_hint")}},[e._v("get_app")])])])},__vue_staticRenderFns__$f=[];const __vue_inject_styles__$f=function(e){!e||e("data-v-c57a88ba_0",{source:".cover-container[data-v-c57a88ba]{width:156px;height:156px;margin-bottom:10px}.cover-container .coverart[data-v-c57a88ba]{backface-visibility:hidden;transition:.5s ease;height:auto}.cover-container .download_overlay[data-v-c57a88ba]{top:50%;left:50%;transform:translate(-50%,-50%);transition:.5s ease;opacity:0;min-width:2rem;height:2.75rem;text-align:center}.cover-container .download_overlay i[data-v-c57a88ba]{padding:.625rem}.cover-container .download_overlay[data-v-c57a88ba]:focus{opacity:1}.cover-container:hover .coverart[data-v-c57a88ba]{opacity:.75}.cover-container:hover .download_overlay[data-v-c57a88ba]{opacity:1;border:0}",map:void 0,media:void 0})},__vue_scope_id__$f="data-v-c57a88ba",__vue_module_identifier__$3=void 0,__vue_is_functional_template__$f=!1;function __vue_normalize__$f(e,n,a,i,r,l,o,c){const s=(typeof a=="function"?a.options:a)||{};s.__file="CoverContainer.vue",s.render||(s.render=e.render,s.staticRenderFns=e.staticRenderFns,s._compiled=!0,r&&(s.functional=!0)),s._scopeId=i;{let d;if(n&&(d=function(u){n.call(this,o(u))}),d!==void 0)if(s.functional){const u=s.render;s.render=function(v,f){return d.call(f),u(v,f)}}else{const u=s.beforeCreate;s.beforeCreate=u?[].concat(u,d):[d]}}return s}function __vue_create_injector__$3(){const e=document.head||document.getElementsByTagName("head")[0],n=__vue_create_injector__$3.styles||(__vue_create_injector__$3.styles={}),a=typeof navigator!="undefined"&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(r,l){if(document.querySelector('style[data-vue-ssr-id~="'+r+'"]'))return;const o=a?l.media||"default":r,c=n[o]||(n[o]={ids:[],parts:[],element:void 0});if(!c.ids.includes(r)){let s=l.source,d=c.ids.length;if(c.ids.push(r),l.map&&(s+=` /*# sourceURL=`+l.map.sources[0]+" */",s+=` /*# sourceMappingURL=data:application/json;base64,`+btoa(unescape(encodeURIComponent(JSON.stringify(l.map))))+" */"),a&&(c.element=c.element||document.querySelector("style[data-group="+o+"]")),!c.element){const u=c.element=document.createElement("style");u.type="text/css",l.media&&u.setAttribute("media",l.media),a&&(u.setAttribute("data-group",o),u.setAttribute("data-next-index","0")),e.appendChild(u)}if(a&&(d=parseInt(c.element.getAttribute("data-next-index")),c.element.setAttribute("data-next-index",d+1)),c.element.styleSheet)c.parts.push(s),c.element.styleSheet.cssText=c.parts.filter(Boolean).join(` -`);else{const u=document.createTextNode(s),h=c.element.childNodes;h[d]&&c.element.removeChild(h[d]),h.length?c.element.insertBefore(u,h[d]):c.element.appendChild(u)}}}}var CoverContainer=__vue_normalize__$f({render:__vue_render__$f,staticRenderFns:__vue_staticRenderFns__$f},__vue_inject_styles__$f,__vue_script__$f,__vue_scope_id__$f,__vue_is_functional_template__$f,__vue_module_identifier__$3,__vue_create_injector__$3);let settingsData={},defaultSettingsData={},spotifyCredentials={};async function getSettingsData(){const e=await fetchData("getSettings"),{settings:n,defaultSettings:a,spotifySettings:i}=e;return settingsData=n,defaultSettingsData=a,spotifyCredentials=i||{},{settingsData,defaultSettingsData,spotifyCredentials}}function getInitialPreviewVolume(){let e=parseInt(localStorage.getItem("previewVolume"));return isNaN(e)&&(e=80,localStorage.setItem("previewVolume",e.toString())),e}function checkInitialSlimDownloads(){return localStorage.getItem("slimDownloads")==="true"}function checkInitialSlimSidebar(){return localStorage.getItem("slimSidebar")==="true"}function checkInitialShowBitrateTags(){return localStorage.getItem("showBitrateTags")==="true"}function checkInitialShowSearchButton(){return localStorage.getItem("showSearchButton")==="true"}const state$2=()=>({currentCommit:null,latestCommit:null,updateAvailable:!1,deemixVersion:null,previewVolume:getInitialPreviewVolume(),hasSlimDownloads:checkInitialSlimDownloads(),hasSlimSidebar:checkInitialSlimSidebar(),showBitrateTags:checkInitialShowBitrateTags(),showSearchButton:checkInitialShowSearchButton()}),actions$2={setAppInfo({commit:e},n){e("SET_CURRENT_COMMIT",n.currentCommit),e("SET_LATEST_COMMIT",n.latestCommit),e("SET_UPDATE_AVAILABLE",n.updateAvailable),e("SET_DEEMIX_VERSION",n.deemixVersion)},setPreviewVolume({commit:e},n){e("SET_PREVIEW_VOLUME",n),localStorage.setItem("previewVolume",n.toString())},setSlimDownloads({commit:e},n){e("SET_SLIM_DOWNLOADS",n),localStorage.setItem("slimDownloads",n.toString())},setSlimSidebar({commit:e},n){e("SET_SLIM_SIDEBAR",n),localStorage.setItem("slimSidebar",n.toString()),Array.from(document.getElementsByClassName("toastify")).forEach(a=>{a.style.transform=`translate(${n?"3rem":"14rem"}, 0)`})},setShowBitrateTags({commit:e},n){e("SET_SHOW_BITRATE_TAGS",n),localStorage.setItem("showBitrateTags",n.toString())},setShowSearchButton({commit:e},n){e("SET_SHOW_SEARCH_BUTTON",n),localStorage.setItem("showSearchButton",n.toString())}},getters$2={getAppInfo:e=>e,getPreviewVolume:e=>e.previewVolume,getSlimDownloads:e=>e.hasSlimDownloads,getSlimSidebar:e=>e.hasSlimSidebar,getShowBitrateTags:e=>e.showBitrateTags,getShowSearchButton:e=>e.showSearchButton},mutations$2={SET_CURRENT_COMMIT(e,n){e.currentCommit=n},SET_LATEST_COMMIT(e,n){e.latestCommit=n},SET_UPDATE_AVAILABLE(e,n){e.updateAvailable=n},SET_DEEMIX_VERSION(e,n){e.deemixVersion=n},SET_PREVIEW_VOLUME(e,n){e.previewVolume=n},SET_SLIM_DOWNLOADS(e,n){e.hasSlimDownloads=n},SET_SLIM_SIDEBAR(e,n){e.hasSlimSidebar=n},SET_SHOW_BITRATE_TAGS(e,n){e.showBitrateTags=n},SET_SHOW_SEARCH_BUTTON(e,n){e.showSearchButton=n}};var appInfo={state:state$2,getters:getters$2,actions:actions$2,mutations:mutations$2};const SPOTIFY_STATUS={DISABLED:"DISABLED",ENABLED:"ENABLED"},getDefaultState=()=>({arl:localStorage.getItem("arl")||"",accessToken:localStorage.getItem("accessToken")||"",status:null,user:{id:null,name:"",picture:""},spotifyUser:{id:localStorage.getItem("spotifyUser"),name:null,picture:null},spotifyStatus:SPOTIFY_STATUS.DISABLED,clientMode:!1}),state$1=()=>getDefaultState(),actions$1={login({commit:e,dispatch:n},a){const{arl:i,user:r,status:l}=a;n("setARL",{arl:i}),e("SET_USER",r),e("SET_STATUS",l)},logout({commit:e}){localStorage.removeItem("arl"),localStorage.removeItem("accessToken"),e("RESET_LOGIN")},setARL({commit:e},n){let{saveOnLocalStorage:a}=n;const{arl:i}=n;a=typeof a=="undefined"?!0:a,e("SET_ARL",i),a&&localStorage.setItem("arl",i)},setAccessToken({commit:e},n){let{saveOnLocalStorage:a}=n;const{accessToken:i}=n;a=typeof a=="undefined"?!0:a,e("SET_ACCESS_TOKEN",i),a&&localStorage.setItem("accessToken",i)},removeARL({commit:e}){e("SET_ARL",""),localStorage.removeItem("arl")},removeAccessToken({commit:e}){e("SET_ACCESS_TOKEN",""),localStorage.removeItem("accessToken")},setUser({commit:e},n){e("SET_USER",n)},setClientMode({commit:e},n){e("SET_CLIENT_MODE",n)},setSpotifyStatus({commit:e},n){e("SET_SPOTIFY_STATUS",n)},setSpotifyUserId({commit:e},n){e("SET_SPOTIFY_USER_ID",n)},refreshSpotifyStatus({commit:e}){return fetchData("spotifyStatus").then(n=>{e("SET_SPOTIFY_STATUS",n.spotifyEnabled?SPOTIFY_STATUS.ENABLED:SPOTIFY_STATUS.DISABLED)})}},getters$1={getARL:e=>e.arl,getAccessToken:e=>e.accessToken,getUser:e=>e.user,getSpotifyUser:e=>e.spotifyUser,getClientMode:e=>e.clientMode,isLoggedIn:e=>!!e.arl,isLoggedWithSpotify:e=>!!e.spotifyUser.id&&e.spotifyStatus===SPOTIFY_STATUS.ENABLED},mutations$1={SET_ARL(e,n){e.arl=n},SET_ACCESS_TOKEN(e,n){e.accessToken=n},SET_STATUS(e,n){e.status=n},SET_USER(e,n){e.user=n},SET_CLIENT_MODE(e,n){e.clientMode=n},RESET_LOGIN(e){const n=e.clientMode;Object.assign(e,getDefaultState()),e.clientMode=n},SET_SPOTIFY_STATUS(e,n){e.spotifyStatus=n},SET_SPOTIFY_USER_ID(e,n){e.spotifyUser={...e.spotifyUser,id:n}}};var login={state:state$1,getters:getters$1,actions:actions$1,mutations:mutations$1};const state=()=>({artist:"",bitrate:"",cover:"",downloaded:0,errors:[],failed:0,id:"",progress:0,silent:!0,size:0,title:"",type:"",uuid:""}),actions={setErrors({commit:e},n){e("SET_ERRORS",n)}},getters={getErrors:e=>e},mutations={SET_ERRORS(e,n){for(const a in e)e.hasOwnProperty(a)&&(e[a]=n[a])}};var errors={state,getters,actions,mutations};Vue$2.use(Vuex);var store=new Vuex.Store({modules:{appInfo,login,errors},strict:!1});const favoriteArtists=ref([]),favoriteAlbums=ref([]),favoriteSpotifyPlaylists=ref([]),favoritePlaylists=ref([]),favoriteTracks=ref([]),lovedTracksPlaylist=ref(""),isLoggedWithSpotify=computed(()=>store.getters.isLoggedWithSpotify),isRefreshingFavorites=ref(!1),setAllFavorites=e=>{const{tracks:n,albums:a,artists:i,playlists:r,lovedTracks:l}=e;isRefreshingFavorites.value=!1,favoriteArtists.value=i,favoriteAlbums.value=a,favoritePlaylists.value=r,favoriteTracks.value=n,lovedTracksPlaylist.value=l},setSpotifyPlaylists=e=>{if(e.error==="spotifyNotEnabled"){favoriteSpotifyPlaylists.value=[],store.dispatch("setSpotifyStatus",SPOTIFY_STATUS.DISABLED).catch(console.error);return}favoriteSpotifyPlaylists.value=e},refreshFavorites=async({isInitial:e=!1})=>{if(e||(isRefreshingFavorites.value=!0),await store.dispatch("refreshSpotifyStatus"),fetchData("getUserFavorites").then(setAllFavorites).catch(console.error),isLoggedWithSpotify.value){const n=store.getters.getSpotifyUser.id;fetchData("getUserSpotifyPlaylists",{spotifyUser:n}).then(setSpotifyPlaylists).catch(console.error)}else favoriteSpotifyPlaylists.value=[]},useFavorites=()=>({favoriteArtists,favoriteAlbums,favoriteSpotifyPlaylists,favoritePlaylists,favoriteTracks,lovedTracksPlaylist,isRefreshingFavorites,refreshFavorites});var script$e=defineComponent({components:{PreviewControls,CoverContainer,BaseTabs,BaseTab},setup(e,n){const a=reactive({activeTab:"playlist",tabs:["playlist","album","artist","track"]}),{favoriteArtists:i,favoriteAlbums:r,favoriteSpotifyPlaylists:l,favoritePlaylists:o,favoriteTracks:c,lovedTracksPlaylist:s,isRefreshingFavorites:d,refreshFavorites:u}=useFavorites();return u({isInitial:!0}).catch(console.error),watch(d,(h,v)=>{!(v&&!h)||toast(n.root.$t("toasts.refreshFavs"),"done",!0)}),{...toRefs(a),tracks:c,albums:r,artists:i,playlists:o,spotifyPlaylists:l,lovedTracks:s,refreshFavorites:u,isRefreshingFavorites:d}},computed:{activeTabEmpty(){return this.getActiveRelease()?.length===0}},methods:{playPausePreview,convertDuration,downloadAllOfType(){try{const e=this.getActiveRelease();if(this.activeTab==="track")if(this.lovedTracks)sendAddToQueue(this.lovedTracks);else{const n=this.getLovedTracksPlaylist();sendAddToQueue(n.link)}else sendAddToQueue(aggregateDownloadLinks(e))}catch(e){console.error(e.message)}},addToQueue(e){sendAddToQueue(e.currentTarget.dataset.link)},getActiveRelease(e=this.activeTab){let n;switch(e){case"playlist":n=this.playlists,n+=this.spotifyPlaylists;break;case"album":n=this.albums;break;case"artist":n=this.artists;break;case"track":n=this.tracks;break}return n},getTabLength(e=this.activeTab){let n=this[`${e}s`]?.length;return e==="playlist"&&(n+=this.spotifyPlaylists.length),n||0},getLovedTracksPlaylist(){const e=this.playlists.filter(n=>n.is_loved_track);if(e.length!==0)return e[0];throw toast(this.$t("toasts.noLovedPlaylist"),"warning",!0),new Error("No loved tracks playlist!")}}});const __vue_script__$e=script$e;var __vue_render__$e=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",[a("h1",{staticClass:"mb-8 text-5xl"},[e._v(` +`);else{const u=document.createTextNode(s),h=c.element.childNodes;h[d]&&c.element.removeChild(h[d]),h.length?c.element.insertBefore(u,h[d]):c.element.appendChild(u)}}}}var CoverContainer=__vue_normalize__$f({render:__vue_render__$f,staticRenderFns:__vue_staticRenderFns__$f},__vue_inject_styles__$f,__vue_script__$f,__vue_scope_id__$f,__vue_is_functional_template__$f,__vue_module_identifier__$3,__vue_create_injector__$3);let settingsData={},defaultSettingsData={},spotifyCredentials={};async function getSettingsData(){const e=await fetchData("getSettings"),{settings:n,defaultSettings:a,spotifySettings:i}=e;return settingsData=n,defaultSettingsData=a,spotifyCredentials=i||{},{settingsData,defaultSettingsData,spotifyCredentials}}function getInitialPreviewVolume(){let e=parseInt(localStorage.getItem("previewVolume"));return isNaN(e)&&(e=80,localStorage.setItem("previewVolume",e.toString())),e}function checkInitialSlimDownloads(){return localStorage.getItem("slimDownloads")==="true"}function checkInitialSlimSidebar(){return localStorage.getItem("slimSidebar")==="true"}function checkInitialShowBitrateTags(){return localStorage.getItem("showBitrateTags")==="true"}function checkInitialShowSearchButton(){return localStorage.getItem("showSearchButton")==="true"}const state$2=()=>({currentCommit:null,latestCommit:null,updateAvailable:!1,deemixVersion:null,previewVolume:getInitialPreviewVolume(),hasSlimDownloads:checkInitialSlimDownloads(),hasSlimSidebar:checkInitialSlimSidebar(),showBitrateTags:checkInitialShowBitrateTags(),showSearchButton:checkInitialShowSearchButton()}),actions$2={setAppInfo({commit:e},n){e("SET_CURRENT_COMMIT",n.currentCommit),e("SET_LATEST_COMMIT",n.latestCommit),e("SET_UPDATE_AVAILABLE",n.updateAvailable),e("SET_DEEMIX_VERSION",n.deemixVersion)},setPreviewVolume({commit:e},n){e("SET_PREVIEW_VOLUME",n),localStorage.setItem("previewVolume",n.toString())},setSlimDownloads({commit:e},n){e("SET_SLIM_DOWNLOADS",n),localStorage.setItem("slimDownloads",n.toString())},setSlimSidebar({commit:e},n){e("SET_SLIM_SIDEBAR",n),localStorage.setItem("slimSidebar",n.toString()),Array.from(document.getElementsByClassName("toastify")).forEach(a=>{a.style.transform=`translate(${n?"3rem":"14rem"}, 0)`})},setShowBitrateTags({commit:e},n){e("SET_SHOW_BITRATE_TAGS",n),localStorage.setItem("showBitrateTags",n.toString())},setShowSearchButton({commit:e},n){e("SET_SHOW_SEARCH_BUTTON",n),localStorage.setItem("showSearchButton",n.toString())}},getters$2={getAppInfo:e=>e,getPreviewVolume:e=>e.previewVolume,getSlimDownloads:e=>e.hasSlimDownloads,getSlimSidebar:e=>e.hasSlimSidebar,getShowBitrateTags:e=>e.showBitrateTags,getShowSearchButton:e=>e.showSearchButton},mutations$2={SET_CURRENT_COMMIT(e,n){e.currentCommit=n},SET_LATEST_COMMIT(e,n){e.latestCommit=n},SET_UPDATE_AVAILABLE(e,n){e.updateAvailable=n},SET_DEEMIX_VERSION(e,n){e.deemixVersion=n},SET_PREVIEW_VOLUME(e,n){e.previewVolume=n},SET_SLIM_DOWNLOADS(e,n){e.hasSlimDownloads=n},SET_SLIM_SIDEBAR(e,n){e.hasSlimSidebar=n},SET_SHOW_BITRATE_TAGS(e,n){e.showBitrateTags=n},SET_SHOW_SEARCH_BUTTON(e,n){e.showSearchButton=n}};var appInfo={state:state$2,getters:getters$2,actions:actions$2,mutations:mutations$2};const SPOTIFY_STATUS={DISABLED:"DISABLED",ENABLED:"ENABLED"},getDefaultState=()=>({arl:localStorage.getItem("arl")||"",accessToken:localStorage.getItem("accessToken")||"",status:null,user:{id:null,name:"",picture:""},spotifyUser:{id:localStorage.getItem("spotifyUser"),name:null,picture:null},spotifyStatus:SPOTIFY_STATUS.DISABLED,clientMode:!1}),state$1=()=>getDefaultState(),actions$1={login({commit:e,dispatch:n},a){const{arl:i,user:r,status:l}=a;n("setARL",{arl:i}),e("SET_USER",r),e("SET_STATUS",l)},logout({commit:e}){localStorage.removeItem("arl"),localStorage.removeItem("accessToken"),e("RESET_LOGIN")},setARL({commit:e},n){let{saveOnLocalStorage:a}=n;const{arl:i}=n;a=typeof a=="undefined"?!0:a,e("SET_ARL",i),a&&localStorage.setItem("arl",i)},setAccessToken({commit:e},n){let{saveOnLocalStorage:a}=n;const{accessToken:i}=n;a=typeof a=="undefined"?!0:a,e("SET_ACCESS_TOKEN",i),a&&localStorage.setItem("accessToken",i)},removeARL({commit:e}){e("SET_ARL",""),localStorage.removeItem("arl")},removeAccessToken({commit:e}){e("SET_ACCESS_TOKEN",""),localStorage.removeItem("accessToken")},setUser({commit:e},n){e("SET_USER",n)},setClientMode({commit:e},n){e("SET_CLIENT_MODE",n)},setSpotifyStatus({commit:e},n){e("SET_SPOTIFY_STATUS",n)},setSpotifyUserId({commit:e},n){e("SET_SPOTIFY_USER_ID",n)},refreshSpotifyStatus({commit:e}){return fetchData("spotifyStatus").then(n=>{e("SET_SPOTIFY_STATUS",n.spotifyEnabled?SPOTIFY_STATUS.ENABLED:SPOTIFY_STATUS.DISABLED)})}},getters$1={getARL:e=>e.arl,getAccessToken:e=>e.accessToken,getUser:e=>e.user,getSpotifyUser:e=>e.spotifyUser,getClientMode:e=>e.clientMode,isLoggedIn:e=>!!e.arl,isLoggedWithSpotify:e=>!!e.spotifyUser.id&&e.spotifyStatus===SPOTIFY_STATUS.ENABLED},mutations$1={SET_ARL(e,n){e.arl=n},SET_ACCESS_TOKEN(e,n){e.accessToken=n},SET_STATUS(e,n){e.status=n},SET_USER(e,n){e.user=n},SET_CLIENT_MODE(e,n){e.clientMode=n},RESET_LOGIN(e){const n=e.clientMode;Object.assign(e,getDefaultState()),e.clientMode=n},SET_SPOTIFY_STATUS(e,n){e.spotifyStatus=n},SET_SPOTIFY_USER_ID(e,n){e.spotifyUser={...e.spotifyUser,id:n}}};var login={state:state$1,getters:getters$1,actions:actions$1,mutations:mutations$1};const state=()=>({artist:"",bitrate:"",cover:"",downloaded:0,errors:[],failed:0,id:"",progress:0,silent:!0,size:0,title:"",type:"",uuid:""}),actions={setErrors({commit:e},n){e("SET_ERRORS",n)}},getters={getErrors:e=>e},mutations={SET_ERRORS(e,n){for(const a in e)e.hasOwnProperty(a)&&(e[a]=n[a])}};var errors={state,getters,actions,mutations};Vue$2.use(Vuex);var store=new Vuex.Store({modules:{appInfo,login,errors},strict:!1});const favoriteArtists=ref([]),favoriteAlbums=ref([]),favoriteSpotifyPlaylists=ref([]),favoritePlaylists=ref([]),favoriteTracks=ref([]),lovedTracksPlaylist=ref(""),isLoggedWithSpotify=computed(()=>store.getters.isLoggedWithSpotify),isRefreshingFavorites=ref(!1),setAllFavorites=e=>{const{tracks:n,albums:a,artists:i,playlists:r,lovedTracks:l}=e;isRefreshingFavorites.value=!1,favoriteArtists.value=i,favoriteAlbums.value=a,favoritePlaylists.value=r,favoriteTracks.value=n,lovedTracksPlaylist.value=l},setSpotifyPlaylists=e=>{if(e.error==="spotifyNotEnabled"){favoriteSpotifyPlaylists.value=[],store.dispatch("setSpotifyStatus",SPOTIFY_STATUS.DISABLED).catch(console.error);return}favoriteSpotifyPlaylists.value=e},refreshFavorites=async({isInitial:e=!1})=>{if(e||(isRefreshingFavorites.value=!0),await store.dispatch("refreshSpotifyStatus"),fetchData("getUserFavorites").then(setAllFavorites).catch(console.error),isLoggedWithSpotify.value){const n=store.getters.getSpotifyUser.id;fetchData("getUserSpotifyPlaylists",{spotifyUser:n}).then(setSpotifyPlaylists).catch(console.error)}else favoriteSpotifyPlaylists.value=[]},useFavorites=()=>({favoriteArtists,favoriteAlbums,favoriteSpotifyPlaylists,favoritePlaylists,favoriteTracks,lovedTracksPlaylist,isRefreshingFavorites,refreshFavorites});var script$e=defineComponent({components:{PreviewControls,CoverContainer,BaseTabs,BaseTab},setup(e,n){const a=reactive({activeTab:"playlist",tabs:["playlist","album","artist","track"]}),{favoriteArtists:i,favoriteAlbums:r,favoriteSpotifyPlaylists:l,favoritePlaylists:o,favoriteTracks:c,lovedTracksPlaylist:s,isRefreshingFavorites:d,refreshFavorites:u}=useFavorites();return u({isInitial:!0}).catch(console.error),watch(d,(h,v)=>{!(v&&!h)||toast(n.root.$t("toasts.refreshFavs"),"done",!0)}),{...toRefs(a),tracks:c,albums:r,artists:i,playlists:o,spotifyPlaylists:l,lovedTracks:s,refreshFavorites:u,isRefreshingFavorites:d}},computed:{activeTabEmpty(){return this.getActiveRelease()?.length===0}},methods:{playPausePreview,convertDuration,downloadAllOfType(){try{const e=this.getActiveRelease();if(this.activeTab==="track")if(this.lovedTracks)sendAddToQueue(this.lovedTracks);else{const n=this.getLovedTracksPlaylist();sendAddToQueue(n.link)}else sendAddToQueue(aggregateDownloadLinks(e))}catch(e){console.error(e.message)}},addToQueue(e){sendAddToQueue(e.currentTarget.dataset.link)},getActiveRelease(e=this.activeTab){let n;switch(e){case"playlist":n=this.playlists,n.concat(this.spotifyPlaylists);break;case"album":n=this.albums;break;case"artist":n=this.artists;break;case"track":n=this.tracks;break}return n},getTabLength(e=this.activeTab){let n=this[`${e}s`]?.length;return e==="playlist"&&(n+=this.spotifyPlaylists.length),n||0},getLovedTracksPlaylist(){const e=this.playlists.filter(n=>n.is_loved_track);if(e.length!==0)return e[0];throw toast(this.$t("toasts.noLovedPlaylist"),"warning",!0),new Error("No loved tracks playlist!")}}});const __vue_script__$e=script$e;var __vue_render__$e=function(){var e=this,n=e.$createElement,a=e._self._c||n;return a("div",[a("h1",{staticClass:"mb-8 text-5xl"},[e._v(` `+e._s(e.$t("favorites.title"))+` `),a("div",{ref:"reloadButton",staticClass:"inline-block clickable",attrs:{"aria-label":"reload",role:"button"},on:{click:e.refreshFavorites}},[a("i",{staticClass:"material-icons",class:{spin:e.isRefreshingFavorites}},[e._v("sync")])])]),e._v(" "),a("BaseTabs",e._l(e.tabs,function(i){return a("BaseTab",{key:i,class:{active:e.activeTab===i},on:{click:function(r){e.activeTab=i}}},[e._v(` `+e._s(e.$tc("globals.listTabs."+i,2))+`