diff --git a/public/css/style.css b/public/css/style.css index f5a1afc..70f0b85 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -1 +1 @@ -html{--main-scroll: hsl(0, 0%, 33%);--panels-scroll: hsl(180, 2%, 17%);--tag-background: hsl(210, 100%, 38%);--tag-text: hsl(0, 0%, 100%);--toast-background: hsla(0, 0%, 0%, 0.867);--toast-secondary: hsla(0, 0%, 100%, 0.133);--toast-text: hsla(0, 0%, 100%, 0.871);--separator: hsl(0, 0%, 50%)}html[data-theme=light]{--main-background: hsl(0, 0%, 100%);--secondary-background: hsl(0, 0%, 93%);--foreground: hsl(0, 0%, 20%);--foreground-inverted: hsl(0, 0%, 93%);--accent-color: hsl(210, 100%, 52%);--panels-background: hsl(210, 3%, 14%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 0%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--table-bg: hsl(0, 0%, 100%);--table-zebra: hsl(0, 0%, 79%);--table-highlight: hsl(0, 0%, 56%)}html[data-theme=dark]{--main-background: hsl(0, 0%, 8%);--secondary-background: hsl(0, 0%, 14%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(0, 0%, 20%);--accent-color: hsl(210, 100%, 52%);--panels-background: hsl(0, 0%, 10%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--table-bg: hsl(0, 0%, 8%);--table-zebra: hsl(0, 0%, 14%);--table-highlight: hsl(0, 0%, 20%)}html[data-theme=purple]{--main-background: hsl(261, 74%, 6%);--secondary-background: hsl(257, 61%, 10%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(258, 62%, 8%);--accent-color: hsl(261, 85%, 37%);--panels-background: hsl(257, 70%, 9%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(257, 70%, 17%);--sidebar-link-bg-20: hsla(257, 70%, 17%, 0.2);--table-bg: hsl(261, 74%, 6%);--table-zebra: hsl(257, 61%, 10%);--table-highlight: hsl(257, 66%, 27%)}html{height:100vh}body{margin:0px;width:100%;height:100%;font-family:"Open Sans";overflow:hidden;background:var(--main-background);color:var(--foreground)}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}table{border-collapse:collapse;border-spacing:0}.lds-ring{display:inline-block;position:relative;width:80px;height:80px}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:8px solid #fff;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:#fff transparent transparent transparent}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}input[type=text],input[type=password],input[type=number],input[type=search]{width:calc(100% - 16px);border:0px solid #000;line-height:36px;padding:0px 8px;border-radius:4px;background-color:var(--secondary-background);color:var(--foreground);margin-bottom:8px}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;width:28px;height:28px;background-color:var(--foreground);-webkit-mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:none;border:2px solid gray;opacity:.5;border-radius:2px;padding:7px;margin:3px;display:inline-block;position:relative}input[type=checkbox]:checked{opacity:1;background-color:var(--accent-color);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='18' viewBox='3 3 18 18' width='18'%3E%3Cpath fill='%23ffffff' d='M 10,17 5,12 6.41,10.59 10,14.17 17.59,6.58 19,8 Z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-position:center center;border:0px solid var(--accent-color);border-radius:2px;padding:9px;margin:3px;color:var(--accent-text)}select{-webkit-appearance:none;appearance:none;width:100%;border:0px solid #000;line-height:36px;padding:0px 40px 0px 8px;border-radius:4px;background-color:var(--secondary-background);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath style='fill%3A%23000000%3Bfill-opacity%3A0.25' d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:24px;background-position:calc(100% - 8px) center;background-clip:border-box;color:var(--foreground);margin-bottom:8px}p{word-break:break-word}button{min-width:64px;color:var(--accent-text);position:relative;background-color:var(--accent-color);border:1px solid transparent;border-radius:4px;font-family:inherit;font-weight:600;font-size:14px;padding:0px 8px;margin-right:8px;height:36px;text-transform:uppercase;cursor:pointer;transition:transform 50ms ease-in-out,background-color 200ms ease}button[disabled]{background-color:var(--secondary-background);color:var(--foreground);opacity:.75}button.selective{background-color:var(--main-background);color:var(--foreground)}button.selective.active{background-color:var(--accent-color);color:var(--accent-text)}button.with_icon{display:flex;align-items:center}button.with_icon i{margin-left:8px}button:active{background-color:var(--accent-color);transform:scale(0.98)}button:hover{background:none;border:1px solid var(--accent-color)}img.rounded{border-radius:5px}img.circle{border-radius:50%}i.disabled{opacity:.5;cursor:default}i.explicit_icon{color:#ff382e;margin-right:.3125em}i.explicit_icon.explicit_icon--right{margin-left:.3125em;margin-right:0px}span.tag{background-color:var(--tag-background);border-radius:2px;color:var(--tag-text);display:inline-block;font-size:10px;padding:3px 6px}a{color:#1e90ff}a.single-cover{position:relative;display:inline-block;color:#fff}a:visited{color:#1e90ff}.clickable{cursor:pointer !important}.fixed_footer footer{position:sticky;display:flex;align-items:center;flex-direction:row;justify-content:flex-end;background-color:var(--main-background);bottom:0px;height:64px;width:100%;margin-top:24px}.fab{width:56px;height:56px;border-radius:28px;display:inline-block;background-color:var(--accent-color);color:var(--accent-text);cursor:pointer}.fab i{font-size:24px;padding:16px}.with_checkbox{display:flex;align-items:center}.with_checkbox [type=checkbox]{cursor:pointer}.with_checkbox .checkbox_text{margin-left:10px;cursor:pointer}.with_checkbox .checkbox_text::selection{background:none}.loading_placeholder{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;height:100%}.loading_placeholder.loading_placeholder--hidden{display:none}.loading_placeholder__text{margin-bottom:20px}.loading_placeholder#search_placeholder{height:calc(100% - 93px)}.loading_placeholder#start_app_placeholder{position:absolute;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);z-index:1000}.coverart{background-color:var(--secondary-background)}.cover_container{position:relative}.cover_container .coverart{opacity:1;display:block;width:100%;height:auto;transition:.5s ease;backface-visibility:hidden}.cover_container .download_overlay{transition:.5s ease;opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}.cover_container .download_overlay i{background-color:#000;color:#fff;border-radius:50%;padding:10px;cursor:pointer}.cover_container:hover .coverart{opacity:.75}.cover_container:hover .download_overlay{opacity:1}#main_content{margin-left:48px;width:calc(100% - $sidebar-width);height:100%;display:flex}.inline-flex{display:flex;align-items:center}.inline-flex .right{margin-left:auto}.right{float:right}.hide{display:none !important}.table{width:100%;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px}.table tbody tr:not(.table__row-no-highlight):hover{background:var(--table-highlight)}.table tr{background:var(--table-bg);transition:background-color 175ms ease-in-out}.table tr:nth-child(even){background:var(--table-zebra);transition:background-color 175ms ease-in-out}.table tr:not(:last-child){border-bottom:1px solid var(--table-highlight)}.table td,.table th{vertical-align:middle}.table th .sortable{-webkit-user-select:none;user-select:none}.table th .sort-asc::after,.table th .sort-desc::after{font-size:.7em;padding-left:3px;line-height:.7em}.table th .sort-asc::after{content:"▲"}.table th .sort-desc::after{content:"▼"}.table td{padding:7px 10px}.table td:first-child{padding:7px 10px 7px 20px}.table td:last-child{padding:7px 20px 7px 10px}.table td img{vertical-align:middle}.table--tracks{border-collapse:collapse}.table--tracks thead{border-bottom:2px solid var(--table-highlight)}.table--tracks th{padding-bottom:10px;height:45px}.table--tracks td{height:35px}.table--tracks td.breakline{word-break:break-word}.table--tracks tr:first-child td:first-child{border-top-left-radius:3px}.table--tracks tr:first-child td:last-child{border-top-right-radius:3px}.table--tracks tr:last-child td:first-child{border-bottom-left-radius:3px}.table--tracks tr:last-child td:last-child{border-bottom-right-radius:3px}.table--tracklist thead{border-bottom:2px solid var(--table-highlight)}.table--tracklist th{height:45px;padding:7px 10px}.table--tracklist th:first-child{padding:7px 10px 7px 20px}.table--tracklist th:last-child{padding:7px 20px 7px 10px}.table--tracklist td{height:35px}.table--charts td{height:35px}.table .table__icon{box-sizing:content-box;width:32px}.table .table__icon--big{width:48px;text-align:center}.table .table__cell--x-small{width:.32%}.table .table__cell--small{width:3.2%}.table .table__cell--medium{width:28.7%}.table .table__cell--large{width:50%}.table .table__cell--left{text-align:left}.table .table__cell--center{text-align:center}.table .table__cell--right{text-align:right}.table .table__cell--download{cursor:pointer}.table .table__cell--download i.material-icons{transition:color 175ms ease-in-out}.table .table__cell--download:hover i.material-icons{color:var(--table-bg)}.table .table__cell-content.table__cell-content--vertical-center{display:flex;align-items:center}.track_row>td>img{width:32px;height:32px}.track_row>td>a>img{width:56px;height:56px}.top-tracks-position{padding:12px;text-align:center;cursor:default}.page_heading{font-size:2.5rem;margin-bottom:35px}.section_heading{font-size:1.75rem;margin-bottom:25px}#about_tab p{margin-bottom:8px}#about_tab h3{margin:8px 0px}#about_tab hr{margin:12px 0px}.charts_grid .release .coverart{width:156px;height:156px}#download_tab_container{height:100%;background-color:var(--panels-background);color:var(--panels-text);display:block;flex-direction:column}#download_tab_container.tab_hidden{width:32px}#download_tab_container.tab_hidden #toggle_download_tab{margin-left:4px}#download_tab_container.tab_hidden #toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_left"}#download_tab_container.tab_hidden #download_tab_drag_handler{display:none}#download_tab_container.tab_hidden #queue_buttons{opacity:0;visibility:hidden}#download_tab_container.tab_hidden #download_list{display:none}#download_tab_container.tab_hidden #download_tab_label{opacity:1;visibility:visible}#download_tab_container.tab_hidden::after{content:"downloads";display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:32px}#toggle_download_tab{width:25px;height:25px;margin-left:20px}#toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_right"}.download_bar_icon{cursor:pointer;font-size:24px;margin:4px}#download_list{width:100%;height:calc(100% - 32px);padding:0px 8px 0px 28px;overflow-y:scroll}#download_list>.download_object{padding-bottom:8px}#download_list>.download_object .download_info{display:flex;align-items:center}#download_list>.download_object .download_info img{width:75px;height:75px;display:inline-block;flex-shrink:0}#download_list>.download_object .download_info .download_line{display:block}#download_list>.download_object .download_info .download_slim_separator{display:none}#download_list>.download_object .download_info_data{width:100%;margin-left:8px}#download_list>.download_object .download_info_status{margin-left:8px;width:80px}#download_list.slim>.download_object .download_info{display:block}#download_list.slim>.download_object .download_info img{display:none}#download_list.slim>.download_object .download_info .download_line{display:inline-block}#download_list.slim>.download_object .download_info .download_slim_separator{display:inline-block}#download_list.slim>.download_object .download_info_data{width:calc(80% - 16px);display:inline-block;padding-left:0px}#download_list.slim>.download_object .download_info_status{width:20%;display:inline-block;float:right}#download_list::-webkit-scrollbar{width:10px}#download_list::-webkit-scrollbar-track{background:var(--panels-background)}#download_list::-webkit-scrollbar-thumb{background:var(--panels-scroll);border-radius:4px;width:6px;padding:0px 2px}.download_object>.download_bar{display:flex;align-items:center;height:24px}.download_object>.download_bar>.queue_icon{cursor:default;margin-left:8px}.download_object>.download_bar>.progress{margin:0px}#download_tab_container #queue_buttons{position:absolute;top:0;right:0;opacity:1;visibility:visible;transition:all 250ms ease-in-out}#download_tab_container #download_tab_label{opacity:0;visibility:hidden;transition:all 250ms ease-in-out}#download_tab_drag_handler{width:15px;height:100%;position:absolute;background-color:#333;cursor:ew-resize}.reload-button.reload-button--inline{display:inline-block}.reload-button.spin i{animation:spin 500ms infinite ease-out reverse}#home_not_logged_text{margin-bottom:15px}.home_section{border-top:1px solid var(--separator);padding-top:25px;padding-bottom:25px}#main_search .search_section{float:none;padding-top:20px;padding-bottom:20px}#main_search .search_section:not(:first-child){border-top:1px solid var(--separator)}#main_search .top_result_header{display:block;cursor:default;font-size:2rem;text-align:center}.search_header{display:inline-block;cursor:pointer;font-size:1.75rem;margin-bottom:25px}.search_header:not(.top_result_header){transition:color 200ms ease-in-out}.search_header:not(.top_result_header):hover{color:var(--accent-color)}.top_result{display:flex;align-items:center;flex-direction:column}.top_result>.cover_container{width:156px;height:156px}.top_result .info_box{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:15px}.top_result .info_box .primary-text,.top_result .info_box .secondary-text{font-size:18px;text-align:center}.top_result .info_box .primary-text{margin-bottom:5px}.top_result .info_box .secondary-text{margin-bottom:10px}.top_result .info_box .tag{width:40px;text-align:center}.release .primary-text,.release .secondary-text{margin:0px;margin-bottom:4px}.release .secondary-text{opacity:.75;font-size:14px}.release .secondary-text .material-icons{font-size:17px !important;margin-left:4px}.release_grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(156px, 1fr));grid-gap:1rem}.release_grid.firstrow_only{grid-template-rows:1fr;grid-auto-rows:0;grid-row-gap:0px;overflow-y:hidden}#settings_picture{width:125px;height:125px}#logged_in_info{height:250px;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center}#log_info{display:flex;flex-direction:column;align-items:center}#open_login_prompt{margin:8px 0px}#login_input_arl{margin-bottom:0px}#settings_btn_copyArl{min-width:24px;width:48px;margin:0px 0px 0px 8px;padding:0px 4px}#settings_btn_copyArl i{padding:6px 0px}#spotify_icon{width:24px;height:24px;fill:#1db954;margin-right:15px}.settings-group{display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--separator);padding-top:20px;padding-bottom:20px}.settings-group>*{margin-bottom:15px}.settings-group__header{font-size:1.5rem;margin-bottom:25px}.settings-group__header.settings-group__header--with-icon{display:inline-flex;align-items:center}.settings-group__header.settings-group__header--with-icon i.material-icons{margin-right:15px}.settings-container{display:flex}.settings-container__half{width:50%}.settings-container__third{width:33%}.settings-container__third--only-checkbox{display:flex;flex-direction:column;justify-content:center;align-items:start}.settings-container__half>*,.settings-container__third>*{margin-bottom:15px}.input_group{margin-bottom:25px}.input_group .input_group_text{margin-bottom:7px}.with_checkbox+.input_group{margin-top:10px}.search_tabcontent,.main_tabcontent,.favorites_tabcontent{display:none}.main_tabcontent h1{margin-bottom:12px}.tab{margin:16px 0px}.tab button{background-color:var(--main-background);color:var(--foreground)}.tab button.active{background-color:var(--accent-color)}.release{display:inline-block;width:156px}.release .cover_container{width:156px;height:156px;margin-bottom:10px}.section-tabs{list-style-type:none;display:flex;margin:16px 0 24px 0;cursor:pointer}.section-tabs__tab{flex:1;font-size:1.2rem;padding:.8em;border-top:3px solid var(--foreground);text-align:center}.section-tabs__tab.active{color:var(--accent-color);border-top:3px solid var(--accent-color)}#middle_section{background-color:var(--main-background);width:100%;height:100%;min-width:10px}#search{background-color:var(--secondary-background);width:100%;padding:0 1em;margin-bottom:20px;margin-right:32px;display:flex;align-items:center;border:1px solid transparent;transition:border 200ms ease-in-out}#search .search__icon{width:2rem;height:2rem}#search .search__icon i{font-size:2rem;color:var(--foreground)}#search .search__icon i::selection{background:none}#search:focus-within{border:1px solid var(--foreground)}#search #searchbar{height:calc(2rem + 1em);padding-left:.5em;border:0px;border-radius:0px;background-color:var(--secondary-background);color:var(--foreground);font-size:2rem;font-family:"Open Sans";font-weight:300}#search #searchbar:focus{outline:none}#search #searchbar:-webkit-autofill,#search #searchbar:-webkit-autofill:hover,#search #searchbar:-webkit-autofill:focus,#search #searchbar:-webkit-autofill:active{-webkit-box-shadow:0 0 0 calc(2rem + 1em) var(--secondary-background) inset !important;box-shadow:0 0 0 calc(2rem + 1em) var(--secondary-background) inset !important}#content{background-color:var(--main-background);width:100%;height:calc(100% - 93px);overflow-y:scroll;overflow-x:hidden}#content::-webkit-scrollbar{width:10px}#content::-webkit-scrollbar-track{background:var(--main-background)}#content::-webkit-scrollbar-thumb{background:var(--main-scroll);border-radius:4px;width:6px;padding:0px 2px}#container{--container-width: 95%}@media only screen and (min-width: 601px){#container{--container-width: 85%}}@media only screen and (min-width: 993px){#container{--container-width: 70%}}#container{margin:0 auto;max-width:1280px;width:var(--container-width)}.smallmodal{display:none;position:fixed;z-index:1250;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4);animation-duration:.3s}.smallmodal-content{--modal-content-width: 95%}@media only screen and (min-width: 601px){.smallmodal-content{--modal-content-width: 85%}}@media only screen and (min-width: 993px){.smallmodal-content{--modal-content-width: 70%}}.smallmodal-content{background-color:transparent;margin:auto;width:var(--modal-content-width);position:relative;top:50%;transform:translateY(-50%)}.smallmodal-content button{width:100%;margin-bottom:8px}.progress{position:relative;height:4px;display:block;width:100%;background-color:var(--secondary-background);border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:var(--accent-color);-webkit-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:var(--accent-color)}.progress .indeterminate::before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate::after{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}#sidebar{display:flex;flex-direction:column;width:48px;height:100%;position:absolute;top:0;left:0;background-color:var(--panels-background);color:var(--panels-text);transition:width 125ms ease-in-out 75ms;z-index:999}#sidebar:hover{width:200px}#sidebar .main_tablinks{transition:all 500ms}#sidebar .main_tablinks.active{background-color:var(--accent-color)}#sidebar .main_tablinks:not(#theme_selector){display:flex;align-items:center;height:55px;cursor:pointer}#sidebar .main_tablinks:not(#theme_selector):hover{background-color:var(--sidebar-link-bg)}#sidebar .main_tablinks:not(#theme_selector):hover .side_icon{color:var(--accent-color)}#sidebar .main_tablinks_text{margin-left:20px;opacity:0;overflow:hidden;white-space:nowrap;transition:all 50ms ease-in-out 200ms}#sidebar .side_icon{font-size:30px;padding:9px;transition:all 500ms}#sidebar .side_icon--theme{cursor:default}#sidebar .side_icon::selection{background:none}#sidebar:hover .main_tablinks:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0) opacity(1)}#sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg);filter:grayscale(1)}html[data-theme=purple] #sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks.active:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks_text{opacity:1}#sidebar:hover #theme_togglers{opacity:1}#sidebar #theme_selector{margin-top:20px;display:flex;height:50px}#sidebar #theme_togglers{position:relative;display:flex;justify-content:space-evenly;align-items:center;width:100%;opacity:0;transition:all 125ms ease-in-out 75ms}#sidebar .theme_toggler{width:25px;height:25px;border-radius:1000px;border:1px solid var(--separator);cursor:pointer;transition:border 200ms ease-in-out}#sidebar .theme_toggler--active{border-width:3px}#sidebar .theme_toggler[data-theme-variant=light]{background:#fff}#sidebar .theme_toggler[data-theme-variant=dark]{background:#141414}#sidebar .theme_toggler[data-theme-variant=purple]{background:#460eaf}.image_header header{background-position:0% 35%;background-size:cover;padding:220px 24px 8px;border-radius:8px 8px 0px 0px}.image_header header h1,.image_header header h2{margin:0px}.image_header header h2{font-size:18px;margin-bottom:12px}.preview_controls{opacity:0;display:block;background:rgba(0,0,0,.5);width:56px;height:56px;text-align:center;line-height:56px;position:absolute;border-radius:5px;top:0;right:0;transition:opacity 200ms ease-in-out}.preview_playlist_controls{cursor:pointer}.toast-icon{display:inline-block;margin-right:8px}.circle-loader{display:inline-block;border:2px solid var(--accent-color);border-radius:50%;border-bottom:2px solid var(--secondary-background);width:16px;height:16px;animation:spin 1s linear infinite}.toastify{display:flex;align-items:center;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(0,0,0,.3);background:var(--toast-background);color:var(--toast-text)}.toastify .circle-loader{border-bottom-color:var(--toast-secondary)} +html{--main-scroll: hsl(0, 0%, 33%);--panels-scroll: hsl(180, 2%, 17%);--tag-background: hsl(210, 100%, 38%);--tag-text: hsl(0, 0%, 100%);--toast-background: hsla(0, 0%, 0%, 0.867);--toast-secondary: hsla(0, 0%, 100%, 0.133);--toast-text: hsla(0, 0%, 100%, 0.871);--separator: hsl(0, 0%, 50%)}html[data-theme=light]{--main-background: hsl(0, 0%, 100%);--secondary-background: hsl(0, 0%, 93%);--foreground: hsl(0, 0%, 20%);--foreground-inverted: hsl(0, 0%, 93%);--accent-color: hsl(210, 100%, 52%);--panels-background: hsl(210, 3%, 14%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 0%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--table-bg: hsl(0, 0%, 100%);--table-zebra: hsl(0, 0%, 79%);--table-highlight: hsl(0, 0%, 56%)}html[data-theme=dark]{--main-background: hsl(0, 0%, 8%);--secondary-background: hsl(0, 0%, 14%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(0, 0%, 20%);--accent-color: hsl(210, 100%, 52%);--panels-background: hsl(0, 0%, 10%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(0, 0%, 24%);--sidebar-link-bg-20: hsla(0, 0%, 24%, 0.2);--table-bg: hsl(0, 0%, 8%);--table-zebra: hsl(0, 0%, 14%);--table-highlight: hsl(0, 0%, 20%)}html[data-theme=purple]{--main-background: hsl(261, 74%, 6%);--secondary-background: hsl(257, 61%, 10%);--foreground: hsl(0, 0%, 93%);--foreground-inverted: hsl(258, 62%, 8%);--accent-color: hsl(261, 85%, 37%);--panels-background: hsl(257, 70%, 9%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--sidebar-link-bg: hsl(257, 70%, 17%);--sidebar-link-bg-20: hsla(257, 70%, 17%, 0.2);--table-bg: hsl(261, 74%, 6%);--table-zebra: hsl(257, 61%, 10%);--table-highlight: hsl(257, 66%, 27%)}html{height:100vh}body{margin:0px;width:100%;height:100%;font-family:"Open Sans";overflow:hidden;background:var(--main-background);color:var(--foreground)}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}table{border-collapse:collapse;border-spacing:0}.lds-ring{display:inline-block;position:relative;width:80px;height:80px}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:8px solid #fff;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:#fff transparent transparent transparent}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}input[type=text],input[type=password],input[type=number],input[type=search]{-webkit-appearance:none;appearance:none;width:calc(100% - 16px);border:0px solid #000;line-height:36px;padding:0px 8px;border-radius:4px;background-color:var(--secondary-background);color:var(--foreground);margin-bottom:8px}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;width:28px;height:28px;background-color:var(--foreground);-webkit-mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='28' viewBox='0 0 24 24' width='28'%3E%%3Cpath fill='%23ffffff' d='M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z'/%3E3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:none;border:2px solid gray;opacity:.5;border-radius:2px;padding:7px;margin:3px;display:inline-block;position:relative}input[type=checkbox]:checked{opacity:1;background-color:var(--accent-color);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='18' viewBox='3 3 18 18' width='18'%3E%3Cpath fill='%23ffffff' d='M 10,17 5,12 6.41,10.59 10,14.17 17.59,6.58 19,8 Z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-position:center center;border:0px solid var(--accent-color);border-radius:2px;padding:9px;margin:3px;color:var(--accent-text)}select{-webkit-appearance:none;appearance:none;width:100%;border:0px solid #000;line-height:36px;padding:0px 40px 0px 8px;border-radius:4px;background-color:var(--secondary-background);background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath style='fill%3A%23000000%3Bfill-opacity%3A0.25' d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:24px;background-position:calc(100% - 8px) center;background-clip:border-box;color:var(--foreground);margin-bottom:8px}p{word-break:break-word}button{min-width:64px;color:var(--accent-text);position:relative;background-color:var(--accent-color);border:1px solid transparent;border-radius:4px;font-family:inherit;font-weight:600;font-size:14px;padding:0px 8px;margin-right:8px;height:36px;text-transform:uppercase;cursor:pointer;transition:transform 50ms ease-in-out,background-color 200ms ease}button[disabled]{background-color:var(--secondary-background);color:var(--foreground);opacity:.75}button.selective{background-color:var(--main-background);color:var(--foreground)}button.selective.active{background-color:var(--accent-color);color:var(--accent-text)}button.with_icon{display:flex;align-items:center}button.with_icon i{margin-left:8px}button:active{background-color:var(--accent-color);transform:scale(0.98)}button:hover{background:none;border:1px solid var(--accent-color)}img.rounded{border-radius:5px}img.circle{border-radius:50%}i.disabled{opacity:.5;cursor:default}i.explicit_icon{color:#ff382e;margin-right:.3125em}i.explicit_icon.explicit_icon--right{margin-left:.3125em;margin-right:0px}span.tag{background-color:var(--tag-background);border-radius:2px;color:var(--tag-text);display:inline-block;font-size:10px;padding:3px 6px}a{color:#1e90ff}a.single-cover{position:relative;display:inline-block;color:#fff}a:visited{color:#1e90ff}.clickable{cursor:pointer !important}.fixed_footer footer{position:sticky;display:flex;align-items:center;flex-direction:row;justify-content:flex-end;background-color:var(--main-background);bottom:0px;height:64px;width:100%;margin-top:24px}.fab{width:56px;height:56px;border-radius:28px;display:inline-block;background-color:var(--accent-color);color:var(--accent-text);cursor:pointer}.fab i{font-size:24px;padding:16px}.with_checkbox{display:flex;align-items:center}.with_checkbox [type=checkbox]{cursor:pointer}.with_checkbox .checkbox_text{margin-left:10px;cursor:pointer}.with_checkbox .checkbox_text::selection{background:none}.loading_placeholder{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;height:100%}.loading_placeholder.loading_placeholder--hidden{display:none}.loading_placeholder__text{margin-bottom:20px}.loading_placeholder#search_placeholder{height:calc(100% - 93px)}.loading_placeholder#start_app_placeholder{position:absolute;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);z-index:1000}.coverart{background-color:var(--secondary-background)}.cover_container{position:relative}.cover_container .coverart{opacity:1;display:block;width:100%;height:auto;transition:.5s ease;backface-visibility:hidden}.cover_container .download_overlay{transition:.5s ease;opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}.cover_container .download_overlay i{background-color:#000;color:#fff;border-radius:50%;padding:10px;cursor:pointer}.cover_container:hover .coverart{opacity:.75}.cover_container:hover .download_overlay{opacity:1}#main_content{margin-left:48px;width:calc(100% - $sidebar-width);height:100%;display:flex}.inline-flex{display:flex;align-items:center}.inline-flex .right{margin-left:auto}.right{float:right}.hide{display:none !important}.table{width:100%;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px}.table tbody tr:not(.table__row-no-highlight):hover{background:var(--table-highlight)}.table tr{background:var(--table-bg);transition:background-color 175ms ease-in-out}.table tr:nth-child(even){background:var(--table-zebra);transition:background-color 175ms ease-in-out}.table tr:not(:last-child){border-bottom:1px solid var(--table-highlight)}.table td,.table th{vertical-align:middle}.table th .sortable{-webkit-user-select:none;user-select:none}.table th .sort-asc::after,.table th .sort-desc::after{font-size:.7em;padding-left:3px;line-height:.7em}.table th .sort-asc::after{content:"▲"}.table th .sort-desc::after{content:"▼"}.table td{padding:7px 10px}.table td:first-child{padding:7px 10px 7px 20px}.table td:last-child{padding:7px 20px 7px 10px}.table td img{vertical-align:middle}.table--tracks{border-collapse:collapse}.table--tracks thead{border-bottom:2px solid var(--table-highlight)}.table--tracks th{padding-bottom:10px;height:45px}.table--tracks td{height:35px}.table--tracks td.breakline{word-break:break-word}.table--tracks tr:first-child td:first-child{border-top-left-radius:3px}.table--tracks tr:first-child td:last-child{border-top-right-radius:3px}.table--tracks tr:last-child td:first-child{border-bottom-left-radius:3px}.table--tracks tr:last-child td:last-child{border-bottom-right-radius:3px}.table--tracklist thead{border-bottom:2px solid var(--table-highlight)}.table--tracklist th{height:45px;padding:7px 10px}.table--tracklist th:first-child{padding:7px 10px 7px 20px}.table--tracklist th:last-child{padding:7px 20px 7px 10px}.table--tracklist td{height:35px}.table--charts td{height:35px}.table .table__icon{box-sizing:content-box;width:32px}.table .table__icon--big{width:48px;text-align:center}.table .table__cell--x-small{width:.32%}.table .table__cell--small{width:3.2%}.table .table__cell--medium{width:28.7%}.table .table__cell--large{width:50%}.table .table__cell--left{text-align:left}.table .table__cell--center{text-align:center}.table .table__cell--right{text-align:right}.table .table__cell--download{cursor:pointer}.table .table__cell--download i.material-icons{transition:color 175ms ease-in-out}.table .table__cell--download:hover i.material-icons{color:var(--table-bg)}.table .table__cell-content.table__cell-content--vertical-center{display:flex;align-items:center}.track_row>td>img{width:32px;height:32px}.track_row>td>a>img{width:56px;height:56px}.top-tracks-position{padding:12px;text-align:center;cursor:default}.page_heading{font-size:2.5rem;margin-bottom:35px}.section_heading{font-size:1.75rem;margin-bottom:25px}#about_tab p{margin-bottom:8px}#about_tab h3{margin:8px 0px}#about_tab hr{margin:12px 0px}.charts_grid .release .coverart{width:156px;height:156px}#download_tab_container{height:100%;background-color:var(--panels-background);color:var(--panels-text);display:block;flex-direction:column}#download_tab_container.tab_hidden{width:32px}#download_tab_container.tab_hidden #toggle_download_tab{margin-left:4px}#download_tab_container.tab_hidden #toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_left"}#download_tab_container.tab_hidden #download_tab_drag_handler{display:none}#download_tab_container.tab_hidden #queue_buttons{opacity:0;visibility:hidden}#download_tab_container.tab_hidden #download_list{display:none}#download_tab_container.tab_hidden #download_tab_label{opacity:1;visibility:visible}#download_tab_container.tab_hidden::after{content:"downloads";display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:32px}#toggle_download_tab{width:25px;height:25px;margin-left:20px}#toggle_download_tab::before{font-family:"Material Icons";font-style:normal;font-weight:400;content:"chevron_right"}.download_bar_icon{cursor:pointer;font-size:24px;margin:4px}#download_list{width:100%;height:calc(100% - 32px);padding:0px 8px 0px 28px;overflow-y:scroll}#download_list>.download_object{padding-bottom:8px}#download_list>.download_object .download_info{display:flex;align-items:center}#download_list>.download_object .download_info img{width:75px;height:75px;display:inline-block;flex-shrink:0}#download_list>.download_object .download_info .download_line{display:block}#download_list>.download_object .download_info .download_slim_separator{display:none}#download_list>.download_object .download_info_data{width:100%;margin-left:8px}#download_list>.download_object .download_info_status{margin-left:8px;width:80px}#download_list.slim>.download_object .download_info{display:block}#download_list.slim>.download_object .download_info img{display:none}#download_list.slim>.download_object .download_info .download_line{display:inline-block}#download_list.slim>.download_object .download_info .download_slim_separator{display:inline-block}#download_list.slim>.download_object .download_info_data{width:calc(80% - 16px);display:inline-block;padding-left:0px}#download_list.slim>.download_object .download_info_status{width:20%;display:inline-block;float:right}#download_list::-webkit-scrollbar{width:10px}#download_list::-webkit-scrollbar-track{background:var(--panels-background)}#download_list::-webkit-scrollbar-thumb{background:var(--panels-scroll);border-radius:4px;width:6px;padding:0px 2px}.download_object>.download_bar{display:flex;align-items:center;height:24px}.download_object>.download_bar>.queue_icon{cursor:default;margin-left:8px}.download_object>.download_bar>.progress{margin:0px}#download_tab_container #queue_buttons{position:absolute;top:0;right:0;opacity:1;visibility:visible;transition:all 250ms ease-in-out}#download_tab_container #download_tab_label{opacity:0;visibility:hidden;transition:all 250ms ease-in-out}#download_tab_drag_handler{width:15px;height:100%;position:absolute;background-color:#333;cursor:ew-resize}.reload-button.reload-button--inline{display:inline-block}.reload-button.spin i{animation:spin 500ms infinite ease-out reverse}#home_not_logged_text{margin-bottom:15px}.home_section{border-top:1px solid var(--separator);padding-top:25px;padding-bottom:25px}#main_search .search_section{float:none;padding-top:20px;padding-bottom:20px}#main_search .search_section:not(:first-child){border-top:1px solid var(--separator)}#main_search .top_result_header{display:block;cursor:default;font-size:2rem;text-align:center}.search_header{display:inline-block;cursor:pointer;font-size:1.75rem;margin-bottom:25px}.search_header:not(.top_result_header){transition:color 200ms ease-in-out}.search_header:not(.top_result_header):hover{color:var(--accent-color)}.top_result{display:flex;align-items:center;flex-direction:column}.top_result>.cover_container{width:156px;height:156px}.top_result .info_box{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:15px}.top_result .info_box .primary-text,.top_result .info_box .secondary-text{font-size:18px;text-align:center}.top_result .info_box .primary-text{margin-bottom:5px}.top_result .info_box .secondary-text{margin-bottom:10px}.top_result .info_box .tag{width:40px;text-align:center}.release .primary-text,.release .secondary-text{margin:0px;margin-bottom:4px}.release .secondary-text{opacity:.75;font-size:14px}.release .secondary-text .material-icons{font-size:17px !important;margin-left:4px}.release_grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(156px, 1fr));grid-gap:1rem}.release_grid.firstrow_only{grid-template-rows:1fr;grid-auto-rows:0;grid-row-gap:0px;overflow-y:hidden}#settings_picture{width:125px;height:125px}#logged_in_info{height:250px;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center}#log_info{display:flex;flex-direction:column;align-items:center}#open_login_prompt{margin:8px 0px}#login_input_arl{margin-bottom:0px}#settings_btn_copyArl{min-width:24px;width:48px;margin:0px 0px 0px 8px;padding:0px 4px}#settings_btn_copyArl i{padding:6px 0px}#spotify_icon{width:24px;height:24px;fill:#1db954;margin-right:15px}.settings-group{display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--separator);padding-top:20px;padding-bottom:20px}.settings-group>*{margin-bottom:15px}.settings-group__header{font-size:1.5rem;margin-bottom:25px}.settings-group__header.settings-group__header--with-icon{display:inline-flex;align-items:center}.settings-group__header.settings-group__header--with-icon i.material-icons{margin-right:15px}.settings-container{display:flex}.settings-container__half{width:50%}.settings-container__third{width:33%}.settings-container__third--only-checkbox{display:flex;flex-direction:column;justify-content:center;align-items:start}.settings-container__half>*,.settings-container__third>*{margin-bottom:15px}.input_group{margin-bottom:25px}.input_group .input_group_text{margin-bottom:7px}.with_checkbox+.input_group{margin-top:10px}.search_tabcontent,.main_tabcontent,.favorites_tabcontent{display:none}.main_tabcontent h1{margin-bottom:12px}.tab{margin:16px 0px}.tab button{background-color:var(--main-background);color:var(--foreground)}.tab button.active{background-color:var(--accent-color)}.release{display:inline-block;width:156px}.release .cover_container{width:156px;height:156px;margin-bottom:10px}.section-tabs{list-style-type:none;display:flex;margin:16px 0 24px 0;cursor:pointer}.section-tabs__tab{flex:1;font-size:1.2rem;padding:.8em;border-top:3px solid var(--foreground);text-align:center}.section-tabs__tab.active{color:var(--accent-color);border-top:3px solid var(--accent-color)}#middle_section{background-color:var(--main-background);width:100%;height:100%;min-width:10px}#search{background-color:var(--secondary-background);width:100%;padding:0 1em;margin-bottom:20px;margin-right:32px;display:flex;align-items:center;border:1px solid transparent;transition:border 200ms ease-in-out}#search .search__icon{width:2rem;height:2rem}#search .search__icon i{font-size:2rem;color:var(--foreground)}#search .search__icon i::selection{background:none}#search:focus-within{border:1px solid var(--foreground)}#search #searchbar{height:calc(2rem + 1em);padding-left:.5em;border:0px;border-radius:0px;background-color:var(--secondary-background);color:var(--foreground);font-size:2rem;font-family:"Open Sans";font-weight:300}#search #searchbar:focus{outline:none}#search #searchbar:-webkit-autofill,#search #searchbar:-webkit-autofill:hover,#search #searchbar:-webkit-autofill:focus,#search #searchbar:-webkit-autofill:active{-webkit-box-shadow:0 0 0 calc(2rem + 1em) var(--secondary-background) inset !important;box-shadow:0 0 0 calc(2rem + 1em) var(--secondary-background) inset !important}#content{background-color:var(--main-background);width:100%;height:calc(100% - 93px);overflow-y:scroll;overflow-x:hidden}#content::-webkit-scrollbar{width:10px}#content::-webkit-scrollbar-track{background:var(--main-background)}#content::-webkit-scrollbar-thumb{background:var(--main-scroll);border-radius:4px;width:6px;padding:0px 2px}#container{--container-width: 95%}@media only screen and (min-width: 601px){#container{--container-width: 85%}}@media only screen and (min-width: 993px){#container{--container-width: 70%}}#container{margin:0 auto;max-width:1280px;width:var(--container-width)}.smallmodal{display:none;position:fixed;z-index:1250;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4);animation-duration:.3s}.smallmodal-content{--modal-content-width: 95%}@media only screen and (min-width: 601px){.smallmodal-content{--modal-content-width: 85%}}@media only screen and (min-width: 993px){.smallmodal-content{--modal-content-width: 70%}}.smallmodal-content{background-color:transparent;margin:auto;width:var(--modal-content-width);position:relative;top:50%;transform:translateY(-50%)}.smallmodal-content button{width:100%;margin-bottom:8px}.progress{position:relative;height:4px;display:block;width:100%;background-color:var(--secondary-background);border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:var(--accent-color);-webkit-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:var(--accent-color)}.progress .indeterminate::before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate::after{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}#sidebar{display:flex;flex-direction:column;width:48px;height:100%;position:absolute;top:0;left:0;background-color:var(--panels-background);color:var(--panels-text);transition:width 125ms ease-in-out 75ms;z-index:999}#sidebar:hover{width:200px}#sidebar .main_tablinks{transition:all 500ms}#sidebar .main_tablinks.active{background-color:var(--accent-color)}#sidebar .main_tablinks:not(#theme_selector){display:flex;align-items:center;height:55px;cursor:pointer}#sidebar .main_tablinks:not(#theme_selector):hover{background-color:var(--sidebar-link-bg)}#sidebar .main_tablinks:not(#theme_selector):hover .side_icon{color:var(--accent-color)}#sidebar .main_tablinks_text{margin-left:20px;opacity:0;overflow:hidden;white-space:nowrap;transition:all 50ms ease-in-out 200ms}#sidebar .side_icon{font-size:30px;padding:9px;transition:all 500ms}#sidebar .side_icon--theme{cursor:default}#sidebar .side_icon::selection{background:none}#sidebar:hover .main_tablinks:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0) opacity(1)}#sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg);filter:grayscale(1)}html[data-theme=purple] #sidebar:hover .main_tablinks.active{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks.active:hover{background:var(--sidebar-link-bg-20);filter:grayscale(0)}#sidebar:hover .main_tablinks_text{opacity:1}#sidebar:hover #theme_togglers{opacity:1}#sidebar #theme_selector{margin-top:20px;display:flex;height:50px}#sidebar #theme_togglers{position:relative;display:flex;justify-content:space-evenly;align-items:center;width:100%;opacity:0;transition:all 125ms ease-in-out 75ms}#sidebar .theme_toggler{width:25px;height:25px;border-radius:1000px;border:1px solid var(--separator);cursor:pointer;transition:border 200ms ease-in-out}#sidebar .theme_toggler--active{border-width:3px}#sidebar .theme_toggler[data-theme-variant=light]{background:#fff}#sidebar .theme_toggler[data-theme-variant=dark]{background:#141414}#sidebar .theme_toggler[data-theme-variant=purple]{background:#460eaf}.image_header header{background-position:0% 35%;background-size:cover;padding:220px 24px 8px;border-radius:8px 8px 0px 0px}.image_header header h1,.image_header header h2{margin:0px}.image_header header h2{font-size:18px;margin-bottom:12px}.preview_controls{opacity:0;display:block;background:rgba(0,0,0,.5);width:56px;height:56px;text-align:center;line-height:56px;position:absolute;border-radius:5px;top:0;right:0;transition:opacity 200ms ease-in-out}.preview_playlist_controls{cursor:pointer}.toast-icon{display:inline-block;margin-right:8px}.circle-loader{display:inline-block;border:2px solid var(--accent-color);border-radius:50%;border-bottom:2px solid var(--secondary-background);width:16px;height:16px;animation:spin 1s linear infinite}.toastify{display:flex;align-items:center;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(0,0,0,.3);background:var(--toast-background);color:var(--toast-text)}.toastify .circle-loader{border-bottom-color:var(--toast-secondary)} diff --git a/public/js/bundle.js b/public/js/bundle.js index eca51a9..7eb6c71 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -36,4 +36,4 @@ function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,v,m,g,y,b,_="sizzle"+1*new Date,w=e. * * Copyright (C) 2018 Varun A P */ -!function(t,n){e.exports?e.exports=n():t.Toastify=n()}(Tu,(function(e){var t=function(e){return new t.lib.init(e)};function n(e,t){return!(!e||"string"!=typeof t)&&!!(e.className&&e.className.trim().split(/\s+/gi).indexOf(t)>-1)}return t.lib=t.prototype={toastify:"1.8.0",constructor:t,init:function(e){return e||(e={}),this.options={},this.toastElement=null,this.options.text=e.text||"Hi there!",this.options.node=e.node,this.options.duration=0===e.duration?0:e.duration||3e3,this.options.selector=e.selector,this.options.callback=e.callback||function(){},this.options.destination=e.destination,this.options.newWindow=e.newWindow||!1,this.options.close=e.close||!1,this.options.gravity="bottom"===e.gravity?"toastify-bottom":"toastify-top",this.options.positionLeft=e.positionLeft||!1,this.options.position=e.position||"",this.options.backgroundColor=e.backgroundColor,this.options.avatar=e.avatar||"",this.options.className=e.className||"",this.options.stopOnFocus=void 0===e.stopOnFocus||e.stopOnFocus,this.options.onClick=e.onClick,this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var e=document.createElement("div");if(e.className="toastify on "+this.options.className,this.options.position?e.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(e.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):e.className+=" toastify-right",e.className+=" "+this.options.gravity,this.options.backgroundColor&&(e.style.background=this.options.backgroundColor),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)e.appendChild(this.options.node);else if(e.innerHTML=this.options.text,""!==this.options.avatar){var t=document.createElement("img");t.src=this.options.avatar,t.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?e.appendChild(t):e.insertAdjacentElement("beforeend",t)}if(!0===this.options.close){var n=document.createElement("span");n.innerHTML="✖",n.className="toast-close",n.addEventListener("click",function(e){e.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var r=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&r>360?e.insertAdjacentElement("afterbegin",n):e.appendChild(n)}if(this.options.stopOnFocus&&this.options.duration>0){const t=this;e.addEventListener("mouseover",(function(t){window.clearTimeout(e.timeOutValue)})),e.addEventListener("mouseleave",(function(){e.timeOutValue=window.setTimeout((function(){t.removeElement(e)}),t.options.duration)}))}return void 0!==this.options.destination&&e.addEventListener("click",function(e){e.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&e.addEventListener("click",function(e){e.stopPropagation(),this.options.onClick()}.bind(this)),e},showToast:function(){var e;if(this.toastElement=this.buildToast(),!(e=void 0===this.options.selector?document.body:document.getElementById(this.options.selector)))throw"Root element is not defined";return e.insertBefore(this.toastElement,e.firstChild),t.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(e){e.className=e.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),e.parentNode&&e.parentNode.removeChild(e),this.options.callback.call(e),t.reposition()}.bind(this),400)}},t.reposition=function(){for(var e,t={top:15,bottom:15},r={top:15,bottom:15},i={top:15,bottom:15},o=document.getElementsByClassName("toastify"),a=0;a0?window.innerWidth:screen.width)<=360?(o[a].style[e]=i[e]+"px",i[e]+=s+15):!0===n(o[a],"toastify-left")?(o[a].style[e]=t[e]+"px",t[e]+=s+15):(o[a].style[e]=r[e]+"px",r[e]+=s+15)}return this},t.lib.init.prototype=t.lib,t}))}));let Au={};const Eu=function(e,t=null,n=!0,r=null){if(Au[r]){let i=Au[r],o=ku(`div.toastify[toast_id=${r}]`);e&&o.find(".toast-message").html(e),t&&(t="loading"==t?'
':`${t}`,o.find(".toast-icon").html(t)),null!==n&&n&&setTimeout((function(){i.hideToast(),delete Au[r]}),3e3)}else{let i=Su({text:`${t=null==t?"":"loading"==t?'
':`${t}`}
${e}`,duration:n?3e3:0,gravity:"bottom",position:"left"}).showToast();r&&(Au[r]=i,ku(i.toastElement).attr("toast_id",r))}};xu.on("toast",e=>{const{msg:t,icon:n,dismiss:r,id:i}=e;Eu(t,n||null,void 0===r||r,i||null)});const $u={open:!1,url:"",element:null};function Ou(e){const{target:t}=e;if($u.element.classList.add("animated","fadeOut"),!t.matches(".quality-button"))return;let n=t.dataset.qualityValue;yc.sendAddToQueue($u.url,n)}function ju(){$u.element.classList.remove("animated",$u.open?"fadeOut":"fadeIn"),$u.element.style.display=$u.open?"none":"block",$u.open=!$u.open}var Lu={init:function(){$u.element=document.getElementById("modal_quality"),$u.element.addEventListener("click",Ou),$u.element.addEventListener("webkitAnimationEnd",ju)},open:function(e){$u.url=e,$u.element.style.display="block",$u.element.classList.add("animated","fadeIn")}};window.vol={preview_max_volume:100};let Nu=document.getElementById("preview-track"),Du=!0;var Iu={init:function(){Nu.volume=1,Nu.addEventListener("canplay",(function(){Nu.play(),Du=!1,ku(Nu).animate({volume:vol.preview_max_volume/100},500)})),Nu.addEventListener("timeupdate",(function(){Nu.currentTime>Nu.duration-1&&(ku(Nu).animate({volume:0},800),Du=!0,ku("a[playing] > .preview_controls").css({opacity:0}),ku("*").removeAttr("playing"),ku(".preview_controls").text("play_arrow"),ku(".preview_playlist_controls").text("play_arrow"))}))},stopStackedTabsPreview:function(){ku(".preview_playlist_controls").filter((function(){return ku(this).attr("playing")})).length>0&&(ku(Nu).animate({volume:0},800),Du=!0,ku(".preview_playlist_controls").removeAttr("playing"),ku(".preview_playlist_controls").text("play_arrow"))},previewMouseEnter:function(e){ku(e.currentTarget).css({opacity:1})},previewMouseLeave:function(e){const{currentTarget:t}=e;(ku(t).parent().attr("playing")&&Du||!ku(t).parent().attr("playing"))&&ku(t).css({opacity:0},200)},playPausePreview:function(e){e.preventDefault();const{currentTarget:t}=event;var n="I"==t.tagName?ku(t):ku(t).children("i");ku(t).attr("playing")?Nu.paused?(Nu.play(),Du=!1,n.text("pause"),ku(Nu).animate({volume:vol.preview_max_volume/100},500)):(Du=!0,n.text("play_arrow"),ku(Nu).animate({volume:0},250,"swing",()=>{Nu.pause()})):(ku("*").removeAttr("playing"),ku(t).attr("playing",!0),ku(".preview_controls").text("play_arrow"),ku(".preview_playlist_controls").text("play_arrow"),ku(".preview_controls").css({opacity:0}),n.text("pause"),n.css({opacity:1}),Du=!1,ku(Nu).animate({volume:0},250,"swing",()=>{Nu.pause(),ku("#preview-track_source").prop("src",ku(t).data("preview")),Nu.load()}))}};var Mu={isValidURL:function(e){let t=e.toLowerCase();if(t.startsWith("http")){if(t.indexOf("deezer.com")>=0||t.indexOf("open.spotify.com")>=0)return!0}else if(t.startsWith("spotify:"))return!0;return!1},convertDuration:function(e){let t,n;return t=Math.floor(e/60),n=e-60*t,n<10&&(n="0"+n),t+":"+n},convertDurationSeparated:function(e){let t,n,r;return n=Math.floor(e/60),t=Math.floor(n/60),r=e-60*n,n-=60*t,[t,n,r]},numberWithDots:function(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,".")},debounce:function(e,t,n){var r;return function(){var i=this,o=arguments,a=function(){r=null,n||e.apply(i,o)},s=n&&!r;clearTimeout(r),r=setTimeout(a,t),s&&e.apply(i,o)}},COUNTRIES:{AF:"Afghanistan",AX:"Åland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia, Plurinational State of",BQ:"Bonaire, Sint Eustatius and Saba",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, the Democratic Republic of the",CK:"Cook Islands",CR:"Costa Rica",CI:"Côte d'Ivoire",HR:"Croatia",CU:"Cuba",CW:"Curaçao",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and McDonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran, Islamic Republic of",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea, Democratic People's Republic of",KR:"Korea, Republic of",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao People's Democratic Republic",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia, the Former Yugoslav Republic of",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia, Federated States of",MD:"Moldova, Republic of",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine, State of",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Réunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",BL:"Saint Barthélemy",SH:"Saint Helena, Ascension and Tristan da Cunha",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin (French part)",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten (Dutch part)",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania, United Republic of",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela, Bolivarian Republic of",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"}};const Pu=new wn({data:()=>({title:"",metadata:"",release_date:"",label:"",explicit:!1,image:"",type:"",link:"",body:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playPausePreview:Iu.playPausePreview,reset(){this.title="Loading...",this.image="",this.metadata="",this.label="",this.release_date="",this.explicit=!1,this.type="",this.body=[]},addToQueue(e){yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},toggleAll(e){this.body.forEach(t=>{"track"==t.type&&(t.selected=e.currentTarget.checked)})},selectedLinks(){var e=[];return this.body&&this.body.forEach(t=>{"track"==t.type&&t.selected&&e.push("Spotify Playlist"==this.type?t.uri:t.link)}),e.join(";")},convertDuration:Mu.convertDuration,showAlbum(e){const{id:t,title:n,explicit_lyrics:r,label:i,artist:{name:o},tracks:a,tracks:{length:s},release_date:l,cover_xl:u}=e;this.type="Album",this.link="https://www.deezer.com/album/"+t,this.title=n,this.explicit=r,this.label=i,this.metadata=`${o} • ${s} songs`,this.release_date=l.substring(0,10),this.image=u,bu(a)?this.body=null:this.body=a},showPlaylist(e){const{id:t,title:n,picture_xl:r,creation_date:i,creator:{name:o},tracks:a,tracks:{length:s}}=e;this.type="Playlist",this.link="https://www.deezer.com/playlist/"+t,this.title=n,this.image=r,this.release_date=i.substring(0,10),this.metadata=`by ${o} • ${s} songs`,bu(a)?this.body=null:this.body=a},showSpotifyPlaylist(e){const{uri:t,name:n,images:r,images:{length:i},owner:{display_name:o},tracks:a,tracks:{length:s}}=e;this.type="Spotify Playlist",this.link=t,this.title=n,this.image=i?r[0].url:"https://e-cdns-images.dzcdn.net/images/cover/d41d8cd98f00b204e9800998ecf8427e/1000x1000-000000-80-0-0.jpg",this.release_date="",this.metadata=`by ${o} • ${s} songs`,bu(a)?this.body=null:this.body=a}},mounted(){xu.on("show_album",this.showAlbum),xu.on("show_playlist",this.showPlaylist),xu.on("show_spotifyplaylist",this.showSpotifyPlaylist)}}).$mount("#tracklist_tab"),Ru=new wn({data:()=>({title:"",subtitle:"",image:"",data:{},type:"",link:"",id:"0",countries:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),convertDuration:Mu.convertDuration,reset(){this.title="Loading...",this.subtitle="",this.image="",this.data={},this.type="",this.link="",this.countries=[]},showTrack(e){const{title:t,title_version:n,album:{cover_xl:r},link:i,available_countries:o,id:a}=e;this.title=t+(n&&-1==t.indexOf(n)?" "+n:""),this.image=r,this.type="track",this.link=i,this.id=a,o.forEach(e=>{let t=[],n=[...e].map(e=>e.charCodeAt()+127397);t.push(String.fromCodePoint(...n)),t.push(Mu.COUNTRIES[e]),this.countries.push(t)}),this.data=e},showAlbum(e){const{title:t,cover_xl:n,link:r,id:i}=e;this.title=t,this.image=n,this.type="album",this.link=r,this.data=e,this.id=i},notSupported(){this.link="error"}},mounted(){xu.on("analyze_track",this.showTrack),xu.on("analyze_album",this.showAlbum),xu.on("analyze_notSupported",this.notSupported)}}).$mount("#analyzer_tab"),Bu=new wn({data:()=>({title:"",errors:[]}),methods:{reset(){this.title="",this.errors=[]},showErrors(e){this.title=e.artist+" - "+e.title,this.errors=e.errors}}}).$mount("#errors_tab");var Fu={data:()=>({test:"super test"}),mounted(){console.log("abcdefghi")}};var qu=function(e,t,n,r,i,o,a,s,l,u){"boolean"!=typeof a&&(l=s,s=a,a=!1);var c,d="function"==typeof n?n.options:n;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,i&&(d.functional=!0)),r&&(d._scopeId=r),o?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(o)},d._ssrRegister=c):t&&(c=a?function(){t.call(this,u(this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),c)if(d.functional){var f=d.render;d.render=function(e,t){return c.call(t),f(e,t)}}else{var p=d.beforeCreate;d.beforeCreate=p?[].concat(p,c):[c]}return n},Hu="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());var zu=document.head||document.getElementsByTagName("head")[0],Uu={};var Vu=function(e){return function(e,t){return function(e,t){var n=Hu?t.media||"default":e,r=Uu[n]||(Uu[n]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);var i=t.source;if(t.map&&(i+="\n/*# sourceURL="+t.map.sources[0]+" */",i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",t.media&&r.element.setAttribute("media",t.media),zu.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(i),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{var o=r.ids.size-1,a=document.createTextNode(i),s=r.element.childNodes;s[o]&&r.element.removeChild(s[o]),s.length?r.element.insertBefore(a,s[o]):r.element.appendChild(a)}}}(e,t)}};const Wu=Fu;var Gu=function(){var e=this.$createElement;return(this._self._c||e)("div",[this._v("Test")])};Gu._withStripped=!0;const Ku=new wn({components:{TestComponent:qu({render:Gu,staticRenderFns:[]},(function(e){e&&e("data-v-278cdeea_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"TestComponent.vue"},media:void 0})}),Wu,void 0,!1,void 0,Vu,void 0)},data:()=>({settings:{tags:{}},lastSettings:{},spotifyFeatures:{},lastCredentials:{},defaultSettings:{},lastUser:"",spotifyUser:"",slimDownloads:!1,previewVolume:window.vol,accountNum:0,accounts:[]}),computed:{changeSlimDownloads:{get(){return this.slimDownloads},set(e){this.slimDownloads=e,document.getElementById("download_list").classList.toggle("slim",e),localStorage.setItem("slimDownloads",e)}}},methods:{copyARLtoClipboard(){let e=this.$refs.loginInput;e.setAttribute("type","text"),e.select(),e.setSelectionRange(0,99999),document.execCommand("copy"),e.setAttribute("type","password"),Eu("ARL copied to clipboard","assignment")},updateMaxVolume(){localStorage.setItem("previewVolume",this.previewVolume.preview_max_volume)},saveSettings(){this.lastSettings={...this.settings},this.lastCredentials={...this.spotifyFeatures};let e=!1;this.lastUser!=this.spotifyUser&&(this.lastUser=(" "+this.spotifyUser).slice(1),localStorage.setItem("spotifyUser",this.lastUser),e=!0),xu.emit("saveSettings",this.lastSettings,this.lastCredentials,!!e&&this.lastUser)},loadSettings(e,t,n=null){n&&(this.defaultSettings={...n}),this.lastSettings={...e},this.lastCredentials={...t},this.settings=e,this.spotifyFeatures=t},login(){let e=this.$refs.loginInput.value.trim();""!=e&&e!=localStorage.getItem("arl")&&xu.emit("login",e,!0,this.accountNum)},changeAccount(){xu.emit("changeAccount",this.accountNum)},accountChanged(e,t){this.$refs.username.innerText=e.name,this.$refs.userpicture.src=`https://e-cdns-images.dzcdn.net/images/user/${e.picture}/125x125-000000-80-0-0.jpg`,this.accountNum=t,localStorage.setItem("accountNum",this.accountNum)},initAccounts(e){this.accounts=e},logout(){xu.emit("logout")},initSettings(e,t,n){this.loadSettings(e,t,n),Eu("Settings loaded!","settings")},updateSettings(e,t){this.loadSettings(e,t),Eu("Settings updated!","settings")},resetSettings(){this.settings={...this.defaultSettings}}},mounted(){this.$refs.loggedInInfo.classList.add("hide"),localStorage.getItem("arl")&&(this.$refs.loginInput.value=localStorage.getItem("arl").trim()),localStorage.getItem("accountNum")&&(this.accountNum=localStorage.getItem("accountNum"));let e=localStorage.getItem("spotifyUser");e&&(this.lastUser=e,this.spotifyUser=e,xu.emit("update_userSpotifyPlaylists",e)),this.changeSlimDownloads="true"===localStorage.getItem("slimDownloads");let t=parseInt(localStorage.getItem("previewVolume"));isNaN(t)&&(t=80,localStorage.setItem("previewVolume",t)),window.vol.preview_max_volume=t,xu.on("init_settings",this.initSettings),xu.on("updateSettings",this.updateSettings),xu.on("accountChanged",this.accountChanged),xu.on("familyAccounts",this.initAccounts)}}).$mount("#settings_tab"),Qu=new wn({data:{names:{TOP_RESULT:"Top Result",TRACK:"Tracks",ARTIST:"Artists",ALBUM:"Albums",PLAYLIST:"Playlists"},results:{query:"",allTab:{ORDER:[],TOP_RESULT:[],ALBUM:{},ARTIST:{},TRACK:{},PLAYLIST:{}},trackTab:{data:[],next:0,total:0,loaded:!1},albumTab:{data:[],next:0,total:0,loaded:!1},artistTab:{data:[],next:0,total:0,loaded:!1},playlistTab:{data:[],next:0,total:0,loaded:!1}}},methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playlistView:Xu.bind(null,"playlist"),playPausePreview:Iu.playPausePreview,previewMouseEnter:Iu.previewMouseEnter,previewMouseLeave:Iu.previewMouseLeave,handleClickTopResult(e){switch(this.results.allTab.TOP_RESULT[0].type){case"artist":this.artistView(e);break;case"album":this.albumView(e);break;case"playlist":this.playlistView(e)}},changeSearchTab(e){if("TOP_RESULT"===e)return;let t;switch(e){case"TRACK":t="search_track_tab";break;case"ALBUM":t="search_album_tab";break;case"ARTIST":t="search_artist_tab";break;case"PLAYLIST":t="search_playlist_tab"}document.getElementById(t).click()},addToQueue(e){yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},numberWithDots:Mu.numberWithDots,convertDuration:Mu.convertDuration,search(e){xu.emit("search",{term:this.results.query,type:e,start:this.results[e+"Tab"].next,nb:30})},scrolledSearch(e){let t=e+"Tab";this.results[t].next{e.style.transition="all 200ms ease-in-out"}),document.documentElement.addEventListener("transitionend",(function e(){document.querySelectorAll("*").forEach(e=>{e.style.transition=""}),document.documentElement.removeEventListener("transitionend",e)}))}}function ec(e){const{target:t,target:{id:n}}=e;switch(n){case"search_all_tab":nc(t,"search","main_search");break;case"search_track_tab":nc(t,"search","track_search");break;case"search_album_tab":nc(t,"search","album_search");break;case"search_artist_tab":nc(t,"search","artist_search");break;case"search_playlist_tab":nc(t,"search","playlist_search")}}function tc(e){const{target:t,target:{id:n}}=e;switch(n){case"favorites_playlist_tab":nc(t,"favorites","playlist_favorites");break;case"favorites_album_tab":nc(t,"favorites","album_favorites");break;case"favorites_artist_tab":nc(t,"favorites","artist_favorites");break;case"favorites_track_tab":nc(t,"favorites","track_favorites")}}function nc(e,t,n){var r,i,o;for(windows_stack=[],Ju={},i=document.getElementsByClassName(t+"_tabcontent"),r=0;r{e.addEventListener("click",ic)})},changeTab:nc,showView:Xu,analyzeLink:function(e){Ru.reset(),xu.emit("analyzeLink",e)},showErrors:Yu};let ac,sc,lc,uc=parseInt(localStorage.getItem("downloadTabWidth"))||300,cc={},dc=[],fc=[];function pc(e){void 0===e?(ac.style.width="",sc.style.width=""):(ac.style.width=e+"px",sc.style.width=e+"px")}function hc(e){let t=window.innerWidth-e.pageX+2;t<250?t=250:t>500&&(t=500),uc=t,pc(t)}function vc(e,t=!1){cc[e.uuid]=e,e.downloaded+e.failed==e.size?-1==fc.indexOf(e.uuid)&&fc.push(e.uuid):-1==dc.indexOf(e.uuid)&&dc.push(e.uuid);let n=document.getElementById("download_"+e.uuid);if(void 0!==n&&null!=n||ku(sc).append(`
\n\t\t\t
\n\t\t\t\tCover ${e.title}\n\t\t\t\t
\n\t\t\t\t\t${e.title} - \n\t\t\t\t\t${e.artist}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t${e.downloaded+e.failed}/${e.size}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\tremove\n\t\t\t
\n\t\t
`),(e.progress>0||t)&&ku("#bar_"+e.uuid).removeClass("indeterminate").addClass("determinate"),ku("#bar_"+e.uuid).css("width",e.progress+"%"),e.failed>=1&&0==ku("#download_"+e.uuid+" .queue_failed").length&&ku("#download_"+e.uuid+" .download_info_status").append(`(${e.failed}error_outline)`),e.downloaded+e.failed==e.size){let t=ku("#download_"+e.uuid).find(".queue_icon");if(0==e.failed)t.text("done");else{let n=ku("#download_"+e.uuid).find(".queue_failed_button");t.addClass("clickable"),n.addClass("clickable"),t.bind("click",{item:e},Yu),n.bind("click",{item:e},Yu),e.failed>=e.size?t.text("error"):t.text("warning")}}e.init||Eu(e.title+" added to queue","playlist_add_check")}function mc(e){const{target:t}=e;if(!t.matches(".queue_icon[data-uuid]"))return;let n=t.innerText,r=ku(t).data("uuid");switch(n){case"remove":xu.emit("removeFromQueue",r)}}function gc(e){e.preventDefault(),pc(),ac.style.transition="all 250ms ease-in-out";let t=ac.classList.toggle("tab_hidden");t||pc(uc),localStorage.setItem("downloadTabOpen",!t)}xu.on("startDownload",(function(e){ku("#bar_"+e).removeClass("indeterminate").addClass("determinate")})),xu.on("init_downloadQueue",(function(e){const{queue:t,queueComplete:n,currentItem:r,queueList:i}=e;n.length&&n.forEach(e=>{i[e].init=!0,vc(i[e])}),r&&(i[r].init=!0,vc(i[r],!0)),t.forEach(e=>{i[e].init=!0,vc(i[e])})})),xu.on("addedToQueue",vc),xu.on("removedFromQueue",(function(e){let t=dc.indexOf(e);t>-1&&(dc.splice(t,1),ku("#download_"+cc[e].uuid).remove(),delete cc[e])})),xu.on("finishDownload",(function(e){if(dc.indexOf(e)>-1){Eu(cc[e].title+" finished downloading.","done"),ku("#bar_"+e).css("width","100%");let t=ku("#download_"+e).find(".queue_icon");if(0==cc[e].failed)t.text("done");else{let n=ku("#download_"+e).find(".queue_failed_button");t.addClass("clickable"),n.addClass("clickable"),t.bind("click",{item:cc[e]},Yu),n.bind("click",{item:cc[e]},Yu),cc[e].failed>=cc[e].size?t.text("error"):t.text("warning")}let n=dc.indexOf(e);n>-1&&(dc.splice(n,1),fc.push(e)),dc.length<=0&&Eu("All downloads completed!","done_all")}})),xu.on("removedAllDownloads",(function(e){if(fc=[],""==e)dc=[],cc={},ku(sc).html("");else{dc=[e];let t=cc[e];cc={},cc[e]=t,ku(".download_object").each((function(t){ku(this).attr("id")!="download_"+e&&ku(this).remove()}))}})),xu.on("removedFinishedDownloads",(function(){fc.forEach(e=>{ku("#download_"+e).remove()}),fc=[]})),xu.on("updateQueue",(function(e){const{uuid:t,downloaded:n,failed:r,progress:i}=e;t&&dc.indexOf(t)>-1&&(n&&(cc[t].downloaded++,ku("#download_"+t+" .queue_downloaded").text(cc[t].downloaded+cc[t].failed)),r&&(cc[t].failed++,ku("#download_"+t+" .queue_downloaded").text(cc[t].downloaded+cc[t].failed),1==cc[t].failed&&0==ku("#download_"+t+" .queue_failed").length?ku("#download_"+t+" .download_info_status").append('(1 error_outline)'):ku("#download_"+t+" .queue_failed").text(cc[t].failed),cc[t].errors.push({message:e.error,data:e.data})),i&&(cc[t].progress=i,ku("#bar_"+t).css("width",i+"%")))}));var yc={init:function(){ac=document.getElementById("download_tab_container"),sc=document.getElementById("download_list"),lc=document.getElementById("download_tab_drag_handler"),"true"===localStorage.getItem("slimDownloads")&&sc.classList.add("slim"),"true"===localStorage.getItem("downloadTabOpen")&&(ac.classList.remove("tab_hidden"),pc(uc)),sc.addEventListener("click",mc),document.getElementById("toggle_download_tab").addEventListener("click",gc),document.getElementById("clean_queue").addEventListener("click",()=>{xu.emit("removeFinishedDownloads")}),document.getElementById("cancel_queue").addEventListener("click",()=>{xu.emit("cancelAllDownloads")}),document.getElementById("open_downloads_folder").addEventListener("click",()=>{window.clientMode&&xu.emit("openDownloadsFolder")}),lc.addEventListener("mousedown",e=>{e.preventDefault(),document.addEventListener("mousemove",hc)}),document.addEventListener("mouseup",()=>{document.removeEventListener("mousemove",hc)}),ac.addEventListener("transitionend",()=>{ac.style.transition=""}),window.addEventListener("beforeunload",()=>{localStorage.setItem("downloadTabWidth",uc)})},sendAddToQueue:function(e,t=null){""!=e&&xu.emit("addToQueue",{url:e,bitrate:t})},addToQueue:vc};const bc=new wn({data:()=>({currentTab:"",sortKey:"release_date",sortOrder:"desc",title:"",image:"",type:"",link:"",head:null,body:null}),methods:{albumView:Xu.bind(null,"album"),reset(){this.title="Loading...",this.image="",this.type="",this.currentTab="",this.sortKey="release_date",this.sortOrder="desc",this.link="",this.head=[],this.body=null},addToQueue(e){e.stopPropagation(),yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},sortBy(e){e==this.sortKey?this.sortOrder="asc"==this.sortOrder?"desc":"asc":(this.sortKey=e,this.sortOrder="asc")},changeTab(e){this.currentTab=e},getCurrentTab(){return this.currentTab},checkNewRelease(e){let t=new Date,n=new Date(e);return n.setDate(n.getDate()+3),t.setHours(0,0,0,0),t.getTime()<=n.getTime()},showArtist(e){const{name:t,picture_xl:n,id:r,releases:i}=e;this.title=t,this.image=n,this.type="Artist",this.link="https://www.deezer.com/artist/"+r,""===this.currentTab&&(this.currentTab=Object.keys(i)[0]),this.sortKey="release_date",this.sortOrder="desc",this.head=[{title:"Title",sortKey:"title"},{title:"Release Date",sortKey:"release_date"},{title:"",width:"32px"}],bu(i)?this.body=null:this.body=i}},computed:{showTable(){return this.body?(e=this.body[this.currentTab],t=this.sortKey,n=this.sortOrder,null==e?[]:(ms(t)||(t=null==t?[]:[t]),ms(n=r?void 0:n)||(n=null==n?[]:[n]),wu(e,t,n))):[];var e,t,n,r}},mounted(){xu.on("show_artist",this.showArtist)}}).$mount("#artist_tab");new wn({data:()=>({country:"",id:0,countries:[],chart:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playPausePreview:Iu.playPausePreview,previewMouseEnter:Iu.previewMouseEnter,previewMouseLeave:Iu.previewMouseLeave,convertDuration:Mu.convertDuration,addToQueue(e){e.stopPropagation(),yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},getTrackList(e){document.getElementById("content").scrollTo(0,0);const{currentTarget:{dataset:{title:t}},currentTarget:{dataset:{id:n}}}=e;this.country=t,localStorage.setItem("chart",this.country),this.id=n,xu.emit("getChartTracks",this.id)},setTracklist(e){this.chart=e},changeCountry(){this.country="",this.id=0},initCharts(e){if(this.countries=e,this.country=localStorage.getItem("chart")||"",!this.country)return;let t=0;for(;t({tracks:[],albums:[],artists:[],playlists:[],spotifyPlaylists:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playlistView:Xu.bind(null,"playlist"),spotifyPlaylistView:Xu.bind(null,"spotifyplaylist"),playPausePreview:Iu.playPausePreview,previewMouseEnter:Iu.previewMouseEnter,previewMouseLeave:Iu.previewMouseLeave,convertDuration:Mu.convertDuration,addToQueue(e){e.stopPropagation(),yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},updated_userSpotifyPlaylists(e){this.spotifyPlaylists=e},updated_userPlaylists(e){this.playlists=e},updated_userAlbums(e){this.albums=e},updated_userArtist(e){this.artists=e},updated_userTracks(e){this.tracks=e},reloadTabs(){this.$refs.reloadButton.classList.add("spin"),xu.emit("update_userFavorites"),localStorage.getItem("spotifyUser")&&xu.emit("update_userSpotifyPlaylists",localStorage.getItem("spotifyUser"))},updated_userFavorites(e){const{tracks:t,albums:n,artists:r,playlists:i}=e;this.tracks=t,this.albums=n,this.artists=r,this.playlists=i,this.$refs.reloadButton.addEventListener("animationiteration",()=>{this.$refs.reloadButton.classList.remove("spin"),Eu("Refresh completed!","done",!0)},{once:!0})},initFavorites(e){this.updated_userFavorites(e),document.getElementById("favorites_playlist_tab").click()}},mounted(){xu.on("init_favorites",this.initFavorites),xu.on("updated_userFavorites",this.updated_userFavorites),xu.on("updated_userSpotifyPlaylists",this.updated_userSpotifyPlaylists),xu.on("updated_userPlaylists",this.updated_userPlaylists),xu.on("updated_userAlbums",this.updated_userAlbums),xu.on("updated_userArtist",this.updated_userArtist),xu.on("updated_userTracks",this.updated_userTracks)}}).$mount("#favorites_tab"),new wn({data:()=>({playlists:[],albums:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playlistView:Xu.bind(null,"playlist"),openSettings(){document.getElementById("main_settings_tablink").click()},addToQueue(e){yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},initHome(e){const{playlists:{data:t},albums:{data:n}}=e;this.playlists=t,this.albums=n}},mounted(){localStorage.getItem("arl")&&this.$refs.notLogged.classList.add("hide"),xu.on("init_home",this.initHome)}}).$mount("#home_tab");function _c(e){let t=e.target;t.scrollTop+t.clientHeight>=t.scrollHeight&&"search_tab"===main_selected&&-1!=["track_search","album_search","artist_search","playlist_search"].indexOf(search_selected)&&Qu.scrolledSearch(search_selected.split("_")[0])}function wc(e){if(13!==e.keyCode)return;let t=this.value;if(Mu.isValidURL(t))e.ctrlKey?Lu.open(t):"analyzer_tab"==window.main_selected?oc.analyzeLink(t):yc.sendAddToQueue(t);else{if(""===t)return;t!==Qu.results.query||"search_tab"==main_selected?(document.getElementById("search_tab_content").style.display="none",xu.emit("mainSearch",{term:t}),document.getElementById("content").style.display="none",document.getElementById("search_placeholder").classList.toggle("loading_placeholder--hidden")):(document.getElementById("search_tab_content").style.display="block",document.getElementById("main_search_tablink").click())}}var xc={linkListeners:function(){document.getElementById("content").addEventListener("scroll",Mu.debounce(_c,100)),document.getElementById("searchbar").addEventListener("keyup",wc)}};document.addEventListener("DOMContentLoaded",(function(){!function(){let e=localStorage.getItem("selectedTheme");if(e){let t="theme_toggler--active";document.querySelector("."+t).classList.remove(t),document.querySelector(`.theme_toggler[data-theme-variant="${e}"]`).classList.add(t)}}(),yc.init(),Lu.init(),oc.init(),xc.linkListeners(),Iu.init()})),window.addEventListener("pywebviewready",(function(){window.clientMode=!0,document.querySelector("#open_downloads_folder").classList.remove("hide")})),xu.on("message",(function(e){console.log(e)})),xu.on("logging_in",(function(){Eu("Logging in","loading",!1,"login-toast")})),xu.on("init_autologin",(function(){let e=localStorage.getItem("arl"),t=localStorage.getItem("accountNum");e&&(e=e.trim(),0!=t?xu.emit("login",e,!0,t):xu.emit("login",e))})),xu.on("logged_in",(function(e){switch(e.status){case 1:case 3:Eu("Logged in","done",!0,"login-toast"),e.arl&&(localStorage.setItem("arl",e.arl),ku("#login_input_arl").val(e.arl)),ku("#open_login_prompt").hide(),e.user&&(ku("#settings_username").text(e.user.name),ku("#settings_picture").attr("src",`https://e-cdns-images.dzcdn.net/images/user/${e.user.picture}/125x125-000000-80-0-0.jpg`),document.getElementById("logged_in_info").classList.remove("hide")),document.getElementById("home_not_logged_in").classList.add("hide");break;case 2:Eu("Already logged in","done",!0,"login-toast"),e.user&&(ku("#settings_username").text(e.user.name),ku("#settings_picture").attr("src",`https://e-cdns-images.dzcdn.net/images/user/${e.user.picture}/125x125-000000-80-0-0.jpg`),document.getElementById("logged_in_info").classList.remove("hide")),document.getElementById("home_not_logged_in").classList.add("hide");break;case 0:Eu("Couldn't log in","close",!0,"login-toast"),localStorage.removeItem("arl"),ku("#login_input_arl").val(""),ku("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),ku("#settings_username").text("Not Logged"),ku("#settings_picture").attr("src","https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg"),document.getElementById("home_not_logged_in").classList.remove("hide")}})),xu.on("logged_out",(function(){Eu("Logged out","done",!0,"login-toast"),localStorage.removeItem("arl"),ku("#login_input_arl").val(""),ku("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),ku("#settings_username").text("Not Logged"),ku("#settings_picture").attr("src","https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg"),document.getElementById("home_not_logged_in").classList.remove("hide")})),xu.on("cancellingCurrentItem",(function(e){Eu("Cancelling current item.","loading",!1,"cancelling_"+e)})),xu.on("currentItemCancelled",(function(e){Eu("Current item cancelled.","done",!0,"cancelling_"+e)})),xu.on("startAddingArtist",(function(e){Eu(`Adding ${e.name} albums to queue`,"loading",!1,"artist_"+e.id)})),xu.on("finishAddingArtist",(function(e){Eu(`Added ${e.name} albums to queue`,"done",!0,"artist_"+e.id)})),xu.on("startConvertingSpotifyPlaylist",(function(e){Eu("Converting spotify tracks to deezer tracks","loading",!1,"spotifyplaylist_"+e)})),xu.on("finishConvertingSpotifyPlaylist",(function(e){Eu("Spotify playlist converted","done",!0,"spotifyplaylist_"+e)})),xu.on("errorMessage",(function(e){Eu(e,"error")})),xu.on("alreadyInQueue",(function(e){Eu(e.title+" is already in queue!","playlist_add_check")})); +!function(t,n){e.exports?e.exports=n():t.Toastify=n()}(Tu,(function(e){var t=function(e){return new t.lib.init(e)};function n(e,t){return!(!e||"string"!=typeof t)&&!!(e.className&&e.className.trim().split(/\s+/gi).indexOf(t)>-1)}return t.lib=t.prototype={toastify:"1.8.0",constructor:t,init:function(e){return e||(e={}),this.options={},this.toastElement=null,this.options.text=e.text||"Hi there!",this.options.node=e.node,this.options.duration=0===e.duration?0:e.duration||3e3,this.options.selector=e.selector,this.options.callback=e.callback||function(){},this.options.destination=e.destination,this.options.newWindow=e.newWindow||!1,this.options.close=e.close||!1,this.options.gravity="bottom"===e.gravity?"toastify-bottom":"toastify-top",this.options.positionLeft=e.positionLeft||!1,this.options.position=e.position||"",this.options.backgroundColor=e.backgroundColor,this.options.avatar=e.avatar||"",this.options.className=e.className||"",this.options.stopOnFocus=void 0===e.stopOnFocus||e.stopOnFocus,this.options.onClick=e.onClick,this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var e=document.createElement("div");if(e.className="toastify on "+this.options.className,this.options.position?e.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(e.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):e.className+=" toastify-right",e.className+=" "+this.options.gravity,this.options.backgroundColor&&(e.style.background=this.options.backgroundColor),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)e.appendChild(this.options.node);else if(e.innerHTML=this.options.text,""!==this.options.avatar){var t=document.createElement("img");t.src=this.options.avatar,t.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?e.appendChild(t):e.insertAdjacentElement("beforeend",t)}if(!0===this.options.close){var n=document.createElement("span");n.innerHTML="✖",n.className="toast-close",n.addEventListener("click",function(e){e.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var r=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&r>360?e.insertAdjacentElement("afterbegin",n):e.appendChild(n)}if(this.options.stopOnFocus&&this.options.duration>0){const t=this;e.addEventListener("mouseover",(function(t){window.clearTimeout(e.timeOutValue)})),e.addEventListener("mouseleave",(function(){e.timeOutValue=window.setTimeout((function(){t.removeElement(e)}),t.options.duration)}))}return void 0!==this.options.destination&&e.addEventListener("click",function(e){e.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&e.addEventListener("click",function(e){e.stopPropagation(),this.options.onClick()}.bind(this)),e},showToast:function(){var e;if(this.toastElement=this.buildToast(),!(e=void 0===this.options.selector?document.body:document.getElementById(this.options.selector)))throw"Root element is not defined";return e.insertBefore(this.toastElement,e.firstChild),t.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(e){e.className=e.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),e.parentNode&&e.parentNode.removeChild(e),this.options.callback.call(e),t.reposition()}.bind(this),400)}},t.reposition=function(){for(var e,t={top:15,bottom:15},r={top:15,bottom:15},i={top:15,bottom:15},o=document.getElementsByClassName("toastify"),a=0;a0?window.innerWidth:screen.width)<=360?(o[a].style[e]=i[e]+"px",i[e]+=s+15):!0===n(o[a],"toastify-left")?(o[a].style[e]=t[e]+"px",t[e]+=s+15):(o[a].style[e]=r[e]+"px",r[e]+=s+15)}return this},t.lib.init.prototype=t.lib,t}))}));let Au={};const Eu=function(e,t=null,n=!0,r=null){if(Au[r]){let i=Au[r],o=ku(`div.toastify[toast_id=${r}]`);e&&o.find(".toast-message").html(e),t&&(t="loading"==t?'
':`${t}`,o.find(".toast-icon").html(t)),null!==n&&n&&setTimeout((function(){i.hideToast(),delete Au[r]}),3e3)}else{let i=Su({text:`${t=null==t?"":"loading"==t?'
':`${t}`}
${e}`,duration:n?3e3:0,gravity:"bottom",position:"left"}).showToast();r&&(Au[r]=i,ku(i.toastElement).attr("toast_id",r))}};xu.on("toast",e=>{const{msg:t,icon:n,dismiss:r,id:i}=e;Eu(t,n||null,void 0===r||r,i||null)});const $u={open:!1,url:"",element:null};function Ou(e){const{target:t}=e;if($u.element.classList.add("animated","fadeOut"),!t.matches(".quality-button"))return;let n=t.dataset.qualityValue;yc.sendAddToQueue($u.url,n)}function ju(){$u.element.classList.remove("animated",$u.open?"fadeOut":"fadeIn"),$u.element.style.display=$u.open?"none":"block",$u.open=!$u.open}var Lu={init:function(){$u.element=document.getElementById("modal_quality"),$u.element.addEventListener("click",Ou),$u.element.addEventListener("webkitAnimationEnd",ju)},open:function(e){$u.url=e,$u.element.style.display="block",$u.element.classList.add("animated","fadeIn")}};window.vol={preview_max_volume:100};let Nu=document.getElementById("preview-track"),Du=!0;var Iu={init:function(){Nu.volume=1,Nu.addEventListener("canplay",(function(){Nu.play(),Du=!1,ku(Nu).animate({volume:vol.preview_max_volume/100},500)})),Nu.addEventListener("timeupdate",(function(){Nu.currentTime>Nu.duration-1&&(ku(Nu).animate({volume:0},800),Du=!0,ku("a[playing] > .preview_controls").css({opacity:0}),ku("*").removeAttr("playing"),ku(".preview_controls").text("play_arrow"),ku(".preview_playlist_controls").text("play_arrow"))}))},stopStackedTabsPreview:function(){ku(".preview_playlist_controls").filter((function(){return ku(this).attr("playing")})).length>0&&(ku(Nu).animate({volume:0},800),Du=!0,ku(".preview_playlist_controls").removeAttr("playing"),ku(".preview_playlist_controls").text("play_arrow"))},previewMouseEnter:function(e){ku(e.currentTarget).css({opacity:1})},previewMouseLeave:function(e){const{currentTarget:t}=e;(ku(t).parent().attr("playing")&&Du||!ku(t).parent().attr("playing"))&&ku(t).css({opacity:0},200)},playPausePreview:function(e){e.preventDefault();const{currentTarget:t}=event;var n="I"==t.tagName?ku(t):ku(t).children("i");ku(t).attr("playing")?Nu.paused?(Nu.play(),Du=!1,n.text("pause"),ku(Nu).animate({volume:vol.preview_max_volume/100},500)):(Du=!0,n.text("play_arrow"),ku(Nu).animate({volume:0},250,"swing",()=>{Nu.pause()})):(ku("*").removeAttr("playing"),ku(t).attr("playing",!0),ku(".preview_controls").text("play_arrow"),ku(".preview_playlist_controls").text("play_arrow"),ku(".preview_controls").css({opacity:0}),n.text("pause"),n.css({opacity:1}),Du=!1,ku(Nu).animate({volume:0},250,"swing",()=>{Nu.pause(),ku("#preview-track_source").prop("src",ku(t).data("preview")),Nu.load()}))}};var Mu={isValidURL:function(e){let t=e.toLowerCase();if(t.startsWith("http")){if(t.indexOf("deezer.com")>=0||t.indexOf("open.spotify.com")>=0)return!0}else if(t.startsWith("spotify:"))return!0;return!1},convertDuration:function(e){let t,n;return t=Math.floor(e/60),n=e-60*t,n<10&&(n="0"+n),t+":"+n},convertDurationSeparated:function(e){let t,n,r;return n=Math.floor(e/60),t=Math.floor(n/60),r=e-60*n,n-=60*t,[t,n,r]},numberWithDots:function(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,".")},debounce:function(e,t,n){var r;return function(){var i=this,o=arguments,a=function(){r=null,n||e.apply(i,o)},s=n&&!r;clearTimeout(r),r=setTimeout(a,t),s&&e.apply(i,o)}},COUNTRIES:{AF:"Afghanistan",AX:"Åland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia, Plurinational State of",BQ:"Bonaire, Sint Eustatius and Saba",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, the Democratic Republic of the",CK:"Cook Islands",CR:"Costa Rica",CI:"Côte d'Ivoire",HR:"Croatia",CU:"Cuba",CW:"Curaçao",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and McDonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran, Islamic Republic of",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea, Democratic People's Republic of",KR:"Korea, Republic of",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao People's Democratic Republic",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia, the Former Yugoslav Republic of",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia, Federated States of",MD:"Moldova, Republic of",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine, State of",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Réunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",BL:"Saint Barthélemy",SH:"Saint Helena, Ascension and Tristan da Cunha",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin (French part)",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten (Dutch part)",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania, United Republic of",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela, Bolivarian Republic of",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"}};const Pu=new wn({data:()=>({title:"",metadata:"",release_date:"",label:"",explicit:!1,image:"",type:"",link:"",body:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playPausePreview:Iu.playPausePreview,reset(){this.title="Loading...",this.image="",this.metadata="",this.label="",this.release_date="",this.explicit=!1,this.type="",this.body=[]},addToQueue(e){yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},toggleAll(e){this.body.forEach(t=>{"track"==t.type&&(t.selected=e.currentTarget.checked)})},selectedLinks(){var e=[];return this.body&&this.body.forEach(t=>{"track"==t.type&&t.selected&&e.push("Spotify Playlist"==this.type?t.uri:t.link)}),e.join(";")},convertDuration:Mu.convertDuration,showAlbum(e){const{id:t,title:n,explicit_lyrics:r,label:i,artist:{name:o},tracks:a,tracks:{length:s},release_date:l,cover_xl:u}=e;this.type="Album",this.link="https://www.deezer.com/album/"+t,this.title=n,this.explicit=r,this.label=i,this.metadata=`${o} • ${s} songs`,this.release_date=l.substring(0,10),this.image=u,bu(a)?this.body=null:this.body=a},showPlaylist(e){const{id:t,title:n,picture_xl:r,creation_date:i,creator:{name:o},tracks:a,tracks:{length:s}}=e;this.type="Playlist",this.link="https://www.deezer.com/playlist/"+t,this.title=n,this.image=r,this.release_date=i.substring(0,10),this.metadata=`by ${o} • ${s} songs`,bu(a)?this.body=null:this.body=a},showSpotifyPlaylist(e){const{uri:t,name:n,images:r,images:{length:i},owner:{display_name:o},tracks:a,tracks:{length:s}}=e;this.type="Spotify Playlist",this.link=t,this.title=n,this.image=i?r[0].url:"https://e-cdns-images.dzcdn.net/images/cover/d41d8cd98f00b204e9800998ecf8427e/1000x1000-000000-80-0-0.jpg",this.release_date="",this.metadata=`by ${o} • ${s} songs`,bu(a)?this.body=null:this.body=a}},mounted(){xu.on("show_album",this.showAlbum),xu.on("show_playlist",this.showPlaylist),xu.on("show_spotifyplaylist",this.showSpotifyPlaylist)}}).$mount("#tracklist_tab"),Ru=new wn({data:()=>({title:"",subtitle:"",image:"",data:{},type:"",link:"",id:"0",countries:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),convertDuration:Mu.convertDuration,reset(){this.title="Loading...",this.subtitle="",this.image="",this.data={},this.type="",this.link="",this.countries=[]},showTrack(e){const{title:t,title_version:n,album:{cover_xl:r},link:i,available_countries:o,id:a}=e;this.title=t+(n&&-1==t.indexOf(n)?" "+n:""),this.image=r,this.type="track",this.link=i,this.id=a,o.forEach(e=>{let t=[],n=[...e].map(e=>e.charCodeAt()+127397);t.push(String.fromCodePoint(...n)),t.push(Mu.COUNTRIES[e]),this.countries.push(t)}),this.data=e},showAlbum(e){const{title:t,cover_xl:n,link:r,id:i}=e;this.title=t,this.image=n,this.type="album",this.link=r,this.data=e,this.id=i},notSupported(){this.link="error"}},mounted(){xu.on("analyze_track",this.showTrack),xu.on("analyze_album",this.showAlbum),xu.on("analyze_notSupported",this.notSupported)}}).$mount("#analyzer_tab"),Bu=new wn({data:()=>({title:"",errors:[]}),methods:{reset(){this.title="",this.errors=[]},showErrors(e){this.title=e.artist+" - "+e.title,this.errors=e.errors}}}).$mount("#errors_tab");var Fu={data:()=>({test:"super test"}),mounted(){console.log("abcdefghi")}};var qu=function(e,t,n,r,i,o,a,s,l,u){"boolean"!=typeof a&&(l=s,s=a,a=!1);var c,d="function"==typeof n?n.options:n;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,i&&(d.functional=!0)),r&&(d._scopeId=r),o?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(o)},d._ssrRegister=c):t&&(c=a?function(){t.call(this,u(this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),c)if(d.functional){var f=d.render;d.render=function(e,t){return c.call(t),f(e,t)}}else{var p=d.beforeCreate;d.beforeCreate=p?[].concat(p,c):[c]}return n},Hu="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());var zu=document.head||document.getElementsByTagName("head")[0],Uu={};var Vu=function(e){return function(e,t){return function(e,t){var n=Hu?t.media||"default":e,r=Uu[n]||(Uu[n]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);var i=t.source;if(t.map&&(i+="\n/*# sourceURL="+t.map.sources[0]+" */",i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",t.media&&r.element.setAttribute("media",t.media),zu.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(i),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{var o=r.ids.size-1,a=document.createTextNode(i),s=r.element.childNodes;s[o]&&r.element.removeChild(s[o]),s.length?r.element.insertBefore(a,s[o]):r.element.appendChild(a)}}}(e,t)}};const Wu=Fu;var Gu=function(){var e=this.$createElement;return(this._self._c||e)("div",[this._v("Test")])};Gu._withStripped=!0;const Ku=new wn({components:{TestComponent:qu({render:Gu,staticRenderFns:[]},(function(e){e&&e("data-v-4f3341a0_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"TestComponent.vue"},media:void 0})}),Wu,void 0,!1,void 0,Vu,void 0)},data:()=>({settings:{tags:{}},lastSettings:{},spotifyFeatures:{},lastCredentials:{},defaultSettings:{},lastUser:"",spotifyUser:"",slimDownloads:!1,previewVolume:window.vol,accountNum:0,accounts:[]}),computed:{changeSlimDownloads:{get(){return this.slimDownloads},set(e){this.slimDownloads=e,document.getElementById("download_list").classList.toggle("slim",e),localStorage.setItem("slimDownloads",e)}}},methods:{copyARLtoClipboard(){let e=this.$refs.loginInput;e.setAttribute("type","text"),e.select(),e.setSelectionRange(0,99999),document.execCommand("copy"),e.setAttribute("type","password"),Eu("ARL copied to clipboard","assignment")},updateMaxVolume(){localStorage.setItem("previewVolume",this.previewVolume.preview_max_volume)},saveSettings(){this.lastSettings={...this.settings},this.lastCredentials={...this.spotifyFeatures};let e=!1;this.lastUser!=this.spotifyUser&&(this.lastUser=(" "+this.spotifyUser).slice(1),localStorage.setItem("spotifyUser",this.lastUser),e=!0),xu.emit("saveSettings",this.lastSettings,this.lastCredentials,!!e&&this.lastUser)},loadSettings(e,t,n=null){n&&(this.defaultSettings={...n}),this.lastSettings={...e},this.lastCredentials={...t},this.settings=e,this.spotifyFeatures=t},login(){let e=this.$refs.loginInput.value.trim();""!=e&&e!=localStorage.getItem("arl")&&xu.emit("login",e,!0,this.accountNum)},changeAccount(){xu.emit("changeAccount",this.accountNum)},accountChanged(e,t){this.$refs.username.innerText=e.name,this.$refs.userpicture.src=`https://e-cdns-images.dzcdn.net/images/user/${e.picture}/125x125-000000-80-0-0.jpg`,this.accountNum=t,localStorage.setItem("accountNum",this.accountNum)},initAccounts(e){this.accounts=e},logout(){xu.emit("logout")},initSettings(e,t,n){this.loadSettings(e,t,n),Eu("Settings loaded!","settings")},updateSettings(e,t){this.loadSettings(e,t),Eu("Settings updated!","settings")},resetSettings(){this.settings={...this.defaultSettings}}},mounted(){this.$refs.loggedInInfo.classList.add("hide"),localStorage.getItem("arl")&&(this.$refs.loginInput.value=localStorage.getItem("arl").trim()),localStorage.getItem("accountNum")&&(this.accountNum=localStorage.getItem("accountNum"));let e=localStorage.getItem("spotifyUser");e&&(this.lastUser=e,this.spotifyUser=e,xu.emit("update_userSpotifyPlaylists",e)),this.changeSlimDownloads="true"===localStorage.getItem("slimDownloads");let t=parseInt(localStorage.getItem("previewVolume"));isNaN(t)&&(t=80,localStorage.setItem("previewVolume",t)),window.vol.preview_max_volume=t,xu.on("init_settings",this.initSettings),xu.on("updateSettings",this.updateSettings),xu.on("accountChanged",this.accountChanged),xu.on("familyAccounts",this.initAccounts)}}).$mount("#settings_tab"),Qu=new wn({data:{names:{TOP_RESULT:"Top Result",TRACK:"Tracks",ARTIST:"Artists",ALBUM:"Albums",PLAYLIST:"Playlists"},results:{query:"",allTab:{ORDER:[],TOP_RESULT:[],ALBUM:{},ARTIST:{},TRACK:{},PLAYLIST:{}},trackTab:{data:[],next:0,total:0,loaded:!1},albumTab:{data:[],next:0,total:0,loaded:!1},artistTab:{data:[],next:0,total:0,loaded:!1},playlistTab:{data:[],next:0,total:0,loaded:!1}}},methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playlistView:Xu.bind(null,"playlist"),playPausePreview:Iu.playPausePreview,previewMouseEnter:Iu.previewMouseEnter,previewMouseLeave:Iu.previewMouseLeave,handleClickTopResult(e){switch(this.results.allTab.TOP_RESULT[0].type){case"artist":this.artistView(e);break;case"album":this.albumView(e);break;case"playlist":this.playlistView(e)}},changeSearchTab(e){if("TOP_RESULT"===e)return;let t;switch(e){case"TRACK":t="search_track_tab";break;case"ALBUM":t="search_album_tab";break;case"ARTIST":t="search_artist_tab";break;case"PLAYLIST":t="search_playlist_tab"}document.getElementById(t).click()},addToQueue(e){yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},numberWithDots:Mu.numberWithDots,convertDuration:Mu.convertDuration,search(e){xu.emit("search",{term:this.results.query,type:e,start:this.results[e+"Tab"].next,nb:30})},scrolledSearch(e){let t=e+"Tab";this.results[t].next{e.style.transition="all 200ms ease-in-out"}),document.documentElement.addEventListener("transitionend",(function e(){document.querySelectorAll("*").forEach(e=>{e.style.transition=""}),document.documentElement.removeEventListener("transitionend",e)}))}}function ec(e){const{target:t,target:{id:n}}=e;switch(n){case"search_all_tab":nc(t,"search","main_search");break;case"search_track_tab":nc(t,"search","track_search");break;case"search_album_tab":nc(t,"search","album_search");break;case"search_artist_tab":nc(t,"search","artist_search");break;case"search_playlist_tab":nc(t,"search","playlist_search")}}function tc(e){const{target:t,target:{id:n}}=e;switch(n){case"favorites_playlist_tab":nc(t,"favorites","playlist_favorites");break;case"favorites_album_tab":nc(t,"favorites","album_favorites");break;case"favorites_artist_tab":nc(t,"favorites","artist_favorites");break;case"favorites_track_tab":nc(t,"favorites","track_favorites")}}function nc(e,t,n){var r,i,o;for(windows_stack=[],Ju={},i=document.getElementsByClassName(t+"_tabcontent"),r=0;r{e.addEventListener("click",ic)})},changeTab:nc,showView:Xu,analyzeLink:function(e){Ru.reset(),xu.emit("analyzeLink",e)},showErrors:Yu};let ac,sc,lc,uc=parseInt(localStorage.getItem("downloadTabWidth"))||300,cc={},dc=[],fc=[];function pc(e){void 0===e?(ac.style.width="",sc.style.width=""):(ac.style.width=e+"px",sc.style.width=e+"px")}function hc(e){let t=window.innerWidth-e.pageX+2;t<250?t=250:t>500&&(t=500),uc=t,pc(t)}function vc(e,t=!1){cc[e.uuid]=e,e.downloaded+e.failed==e.size?-1==fc.indexOf(e.uuid)&&fc.push(e.uuid):-1==dc.indexOf(e.uuid)&&dc.push(e.uuid);let n=document.getElementById("download_"+e.uuid);if(void 0!==n&&null!=n||ku(sc).append(`
\n\t\t\t
\n\t\t\t\tCover ${e.title}\n\t\t\t\t
\n\t\t\t\t\t${e.title} - \n\t\t\t\t\t${e.artist}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t${e.downloaded+e.failed}/${e.size}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\tremove\n\t\t\t
\n\t\t
`),(e.progress>0||t)&&ku("#bar_"+e.uuid).removeClass("indeterminate").addClass("determinate"),ku("#bar_"+e.uuid).css("width",e.progress+"%"),e.failed>=1&&0==ku("#download_"+e.uuid+" .queue_failed").length&&ku("#download_"+e.uuid+" .download_info_status").append(`(${e.failed}error_outline)`),e.downloaded+e.failed==e.size){let t=ku("#download_"+e.uuid).find(".queue_icon");if(0==e.failed)t.text("done");else{let n=ku("#download_"+e.uuid).find(".queue_failed_button");t.addClass("clickable"),n.addClass("clickable"),t.bind("click",{item:e},Yu),n.bind("click",{item:e},Yu),e.failed>=e.size?t.text("error"):t.text("warning")}}e.init||Eu(e.title+" added to queue","playlist_add_check")}function mc(e){const{target:t}=e;if(!t.matches(".queue_icon[data-uuid]"))return;let n=t.innerText,r=ku(t).data("uuid");switch(n){case"remove":xu.emit("removeFromQueue",r)}}function gc(e){e.preventDefault(),pc(),ac.style.transition="all 250ms ease-in-out";let t=ac.classList.toggle("tab_hidden");t||pc(uc),localStorage.setItem("downloadTabOpen",!t)}xu.on("startDownload",(function(e){ku("#bar_"+e).removeClass("indeterminate").addClass("determinate")})),xu.on("init_downloadQueue",(function(e){const{queue:t,queueComplete:n,currentItem:r,queueList:i}=e;n.length&&n.forEach(e=>{i[e].init=!0,vc(i[e])}),r&&(i[r].init=!0,vc(i[r],!0)),t.forEach(e=>{i[e].init=!0,vc(i[e])})})),xu.on("addedToQueue",vc),xu.on("removedFromQueue",(function(e){let t=dc.indexOf(e);t>-1&&(dc.splice(t,1),ku("#download_"+cc[e].uuid).remove(),delete cc[e])})),xu.on("finishDownload",(function(e){if(dc.indexOf(e)>-1){Eu(cc[e].title+" finished downloading.","done"),ku("#bar_"+e).css("width","100%");let t=ku("#download_"+e).find(".queue_icon");if(0==cc[e].failed)t.text("done");else{let n=ku("#download_"+e).find(".queue_failed_button");t.addClass("clickable"),n.addClass("clickable"),t.bind("click",{item:cc[e]},Yu),n.bind("click",{item:cc[e]},Yu),cc[e].failed>=cc[e].size?t.text("error"):t.text("warning")}let n=dc.indexOf(e);n>-1&&(dc.splice(n,1),fc.push(e)),dc.length<=0&&Eu("All downloads completed!","done_all")}})),xu.on("removedAllDownloads",(function(e){if(fc=[],""==e)dc=[],cc={},ku(sc).html("");else{dc=[e];let t=cc[e];cc={},cc[e]=t,ku(".download_object").each((function(t){ku(this).attr("id")!="download_"+e&&ku(this).remove()}))}})),xu.on("removedFinishedDownloads",(function(){fc.forEach(e=>{ku("#download_"+e).remove()}),fc=[]})),xu.on("updateQueue",(function(e){const{uuid:t,downloaded:n,failed:r,progress:i}=e;t&&dc.indexOf(t)>-1&&(n&&(cc[t].downloaded++,ku("#download_"+t+" .queue_downloaded").text(cc[t].downloaded+cc[t].failed)),r&&(cc[t].failed++,ku("#download_"+t+" .queue_downloaded").text(cc[t].downloaded+cc[t].failed),1==cc[t].failed&&0==ku("#download_"+t+" .queue_failed").length?ku("#download_"+t+" .download_info_status").append('(1 error_outline)'):ku("#download_"+t+" .queue_failed").text(cc[t].failed),cc[t].errors.push({message:e.error,data:e.data})),i&&(cc[t].progress=i,ku("#bar_"+t).css("width",i+"%")))}));var yc={init:function(){ac=document.getElementById("download_tab_container"),sc=document.getElementById("download_list"),lc=document.getElementById("download_tab_drag_handler"),"true"===localStorage.getItem("slimDownloads")&&sc.classList.add("slim"),"true"===localStorage.getItem("downloadTabOpen")&&(ac.classList.remove("tab_hidden"),pc(uc)),sc.addEventListener("click",mc),document.getElementById("toggle_download_tab").addEventListener("click",gc),document.getElementById("clean_queue").addEventListener("click",()=>{xu.emit("removeFinishedDownloads")}),document.getElementById("cancel_queue").addEventListener("click",()=>{xu.emit("cancelAllDownloads")}),document.getElementById("open_downloads_folder").addEventListener("click",()=>{window.clientMode&&xu.emit("openDownloadsFolder")}),lc.addEventListener("mousedown",e=>{e.preventDefault(),document.addEventListener("mousemove",hc)}),document.addEventListener("mouseup",()=>{document.removeEventListener("mousemove",hc)}),ac.addEventListener("transitionend",()=>{ac.style.transition=""}),window.addEventListener("beforeunload",()=>{localStorage.setItem("downloadTabWidth",uc)})},sendAddToQueue:function(e,t=null){""!=e&&xu.emit("addToQueue",{url:e,bitrate:t})},addToQueue:vc};const bc=new wn({data:()=>({currentTab:"",sortKey:"release_date",sortOrder:"desc",title:"",image:"",type:"",link:"",head:null,body:null}),methods:{albumView:Xu.bind(null,"album"),reset(){this.title="Loading...",this.image="",this.type="",this.currentTab="",this.sortKey="release_date",this.sortOrder="desc",this.link="",this.head=[],this.body=null},addToQueue(e){e.stopPropagation(),yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},sortBy(e){e==this.sortKey?this.sortOrder="asc"==this.sortOrder?"desc":"asc":(this.sortKey=e,this.sortOrder="asc")},changeTab(e){this.currentTab=e},getCurrentTab(){return this.currentTab},checkNewRelease(e){let t=new Date,n=new Date(e);return n.setDate(n.getDate()+3),t.setHours(0,0,0,0),t.getTime()<=n.getTime()},showArtist(e){const{name:t,picture_xl:n,id:r,releases:i}=e;this.title=t,this.image=n,this.type="Artist",this.link="https://www.deezer.com/artist/"+r,""===this.currentTab&&(this.currentTab=Object.keys(i)[0]),this.sortKey="release_date",this.sortOrder="desc",this.head=[{title:"Title",sortKey:"title"},{title:"Release Date",sortKey:"release_date"},{title:"",width:"32px"}],bu(i)?this.body=null:this.body=i}},computed:{showTable(){return this.body?(e=this.body[this.currentTab],t=this.sortKey,n=this.sortOrder,null==e?[]:(ms(t)||(t=null==t?[]:[t]),ms(n=r?void 0:n)||(n=null==n?[]:[n]),wu(e,t,n))):[];var e,t,n,r}},mounted(){xu.on("show_artist",this.showArtist)}}).$mount("#artist_tab");new wn({data:()=>({country:"",id:0,countries:[],chart:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playPausePreview:Iu.playPausePreview,previewMouseEnter:Iu.previewMouseEnter,previewMouseLeave:Iu.previewMouseLeave,convertDuration:Mu.convertDuration,addToQueue(e){e.stopPropagation(),yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},getTrackList(e){document.getElementById("content").scrollTo(0,0);const{currentTarget:{dataset:{title:t}},currentTarget:{dataset:{id:n}}}=e;this.country=t,localStorage.setItem("chart",this.country),this.id=n,xu.emit("getChartTracks",this.id)},setTracklist(e){this.chart=e},changeCountry(){this.country="",this.id=0},initCharts(e){if(this.countries=e,this.country=localStorage.getItem("chart")||"",!this.country)return;let t=0;for(;t({tracks:[],albums:[],artists:[],playlists:[],spotifyPlaylists:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playlistView:Xu.bind(null,"playlist"),spotifyPlaylistView:Xu.bind(null,"spotifyplaylist"),playPausePreview:Iu.playPausePreview,previewMouseEnter:Iu.previewMouseEnter,previewMouseLeave:Iu.previewMouseLeave,convertDuration:Mu.convertDuration,addToQueue(e){e.stopPropagation(),yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},updated_userSpotifyPlaylists(e){this.spotifyPlaylists=e},updated_userPlaylists(e){this.playlists=e},updated_userAlbums(e){this.albums=e},updated_userArtist(e){this.artists=e},updated_userTracks(e){this.tracks=e},reloadTabs(){this.$refs.reloadButton.classList.add("spin"),xu.emit("update_userFavorites"),localStorage.getItem("spotifyUser")&&xu.emit("update_userSpotifyPlaylists",localStorage.getItem("spotifyUser"))},updated_userFavorites(e){const{tracks:t,albums:n,artists:r,playlists:i}=e;this.tracks=t,this.albums=n,this.artists=r,this.playlists=i,this.$refs.reloadButton.addEventListener("animationiteration",()=>{this.$refs.reloadButton.classList.remove("spin"),Eu("Refresh completed!","done",!0)},{once:!0})},initFavorites(e){this.updated_userFavorites(e),document.getElementById("favorites_playlist_tab").click()}},mounted(){xu.on("init_favorites",this.initFavorites),xu.on("updated_userFavorites",this.updated_userFavorites),xu.on("updated_userSpotifyPlaylists",this.updated_userSpotifyPlaylists),xu.on("updated_userPlaylists",this.updated_userPlaylists),xu.on("updated_userAlbums",this.updated_userAlbums),xu.on("updated_userArtist",this.updated_userArtist),xu.on("updated_userTracks",this.updated_userTracks)}}).$mount("#favorites_tab"),new wn({data:()=>({playlists:[],albums:[]}),methods:{artistView:Xu.bind(null,"artist"),albumView:Xu.bind(null,"album"),playlistView:Xu.bind(null,"playlist"),openSettings(){document.getElementById("main_settings_tablink").click()},addToQueue(e){yc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},initHome(e){const{playlists:{data:t},albums:{data:n}}=e;this.playlists=t,this.albums=n}},mounted(){localStorage.getItem("arl")&&this.$refs.notLogged.classList.add("hide"),xu.on("init_home",this.initHome)}}).$mount("#home_tab");function _c(e){let t=e.target;t.scrollTop+t.clientHeight>=t.scrollHeight&&"search_tab"===main_selected&&-1!=["track_search","album_search","artist_search","playlist_search"].indexOf(search_selected)&&Qu.scrolledSearch(search_selected.split("_")[0])}function wc(e){if(13!==e.keyCode)return;let t=this.value;if(Mu.isValidURL(t))e.ctrlKey?Lu.open(t):"analyzer_tab"==window.main_selected?oc.analyzeLink(t):yc.sendAddToQueue(t);else{if(""===t)return;t!==Qu.results.query||"search_tab"==main_selected?(document.getElementById("search_tab_content").style.display="none",xu.emit("mainSearch",{term:t}),document.getElementById("content").style.display="none",document.getElementById("search_placeholder").classList.toggle("loading_placeholder--hidden")):(document.getElementById("search_tab_content").style.display="block",document.getElementById("main_search_tablink").click())}}var xc={linkListeners:function(){document.getElementById("content").addEventListener("scroll",Mu.debounce(_c,100)),document.getElementById("searchbar").addEventListener("keyup",wc)}};document.addEventListener("DOMContentLoaded",(function(){!function(){let e=localStorage.getItem("selectedTheme");if(e){let t="theme_toggler--active";document.querySelector("."+t).classList.remove(t),document.querySelector(`.theme_toggler[data-theme-variant="${e}"]`).classList.add(t)}}(),yc.init(),Lu.init(),oc.init(),xc.linkListeners(),Iu.init()})),window.addEventListener("pywebviewready",(function(){window.clientMode=!0,document.querySelector("#open_downloads_folder").classList.remove("hide")})),xu.on("message",(function(e){console.log(e)})),xu.on("logging_in",(function(){Eu("Logging in","loading",!1,"login-toast")})),xu.on("init_autologin",(function(){let e=localStorage.getItem("arl"),t=localStorage.getItem("accountNum");e&&(e=e.trim(),0!=t?xu.emit("login",e,!0,t):xu.emit("login",e))})),xu.on("logged_in",(function(e){switch(e.status){case 1:case 3:Eu("Logged in","done",!0,"login-toast"),e.arl&&(localStorage.setItem("arl",e.arl),ku("#login_input_arl").val(e.arl)),ku("#open_login_prompt").hide(),e.user&&(ku("#settings_username").text(e.user.name),ku("#settings_picture").attr("src",`https://e-cdns-images.dzcdn.net/images/user/${e.user.picture}/125x125-000000-80-0-0.jpg`),document.getElementById("logged_in_info").classList.remove("hide")),document.getElementById("home_not_logged_in").classList.add("hide");break;case 2:Eu("Already logged in","done",!0,"login-toast"),e.user&&(ku("#settings_username").text(e.user.name),ku("#settings_picture").attr("src",`https://e-cdns-images.dzcdn.net/images/user/${e.user.picture}/125x125-000000-80-0-0.jpg`),document.getElementById("logged_in_info").classList.remove("hide")),document.getElementById("home_not_logged_in").classList.add("hide");break;case 0:Eu("Couldn't log in","close",!0,"login-toast"),localStorage.removeItem("arl"),ku("#login_input_arl").val(""),ku("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),ku("#settings_username").text("Not Logged"),ku("#settings_picture").attr("src","https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg"),document.getElementById("home_not_logged_in").classList.remove("hide")}})),xu.on("logged_out",(function(){Eu("Logged out","done",!0,"login-toast"),localStorage.removeItem("arl"),ku("#login_input_arl").val(""),ku("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),ku("#settings_username").text("Not Logged"),ku("#settings_picture").attr("src","https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg"),document.getElementById("home_not_logged_in").classList.remove("hide")})),xu.on("cancellingCurrentItem",(function(e){Eu("Cancelling current item.","loading",!1,"cancelling_"+e)})),xu.on("currentItemCancelled",(function(e){Eu("Current item cancelled.","done",!0,"cancelling_"+e)})),xu.on("startAddingArtist",(function(e){Eu(`Adding ${e.name} albums to queue`,"loading",!1,"artist_"+e.id)})),xu.on("finishAddingArtist",(function(e){Eu(`Added ${e.name} albums to queue`,"done",!0,"artist_"+e.id)})),xu.on("startConvertingSpotifyPlaylist",(function(e){Eu("Converting spotify tracks to deezer tracks","loading",!1,"spotifyplaylist_"+e)})),xu.on("finishConvertingSpotifyPlaylist",(function(e){Eu("Spotify playlist converted","done",!0,"spotifyplaylist_"+e)})),xu.on("errorMessage",(function(e){Eu(e,"error")})),xu.on("alreadyInQueue",(function(e){Eu(e.title+" is already in queue!","playlist_add_check")})); diff --git a/src/styles/scss/globals/_globals.scss b/src/styles/scss/globals/_globals.scss index 403c0cc..194ae14 100644 --- a/src/styles/scss/globals/_globals.scss +++ b/src/styles/scss/globals/_globals.scss @@ -2,6 +2,8 @@ input[type='text'], input[type='password'], input[type='number'], input[type='search'] { + -webkit-appearance: none; + appearance: none; width: calc(100% - 16px); border: 0px solid black; line-height: 36px;